一、服务端配置步骤
1. 安装 iSCSI 服务端工具
# Debian/Ubuntu 系统
sudo apt update && sudo apt install -y targetcli-fb
# CentOS/RHEL 系统
sudo yum install -y targetcli
2. 创建存储目录并生成镜像文件
# 创建存储目录
sudo mkdir -p /srv/iscsi
# 生成 150MiB 的镜像文件(按需调整大小,如 10G 则写 10G)
sudo dd if=/dev/zero of=/srv/iscsi/shadowblocks.img bs=1M count=150
# 设置文件权限
sudo chmod 644 /srv/iscsi/shadowblocks.img
sudo chown root:root /srv/iscsi/shadowblocks.img
3. 配置 iSCSI Target
示例配置信息
- iSCSI 目标名(IQN):
iqn.2026-02.nyx.shadowblocks:storage.disk1 - 监听端口:
3260(默认) - 存储文件:
/srv/iscsi/shadowblocks.img(150MiB) - 监听地址:
0.0.0.0(所有网卡都可访问)
# 进入 targetcli 配置界面
sudo targetcli
# 1. 创建 fileio 存储对象
/backstores/fileio create shadowblocks /srv/iscsi/shadowblocks.img 150M
# 2. 创建 iSCSI 目标(使用指定的 IQN)
/iscsi create iqn.2026-02.nyx.shadowblocks:storage.disk1
# 3. 将存储对象关联到 LUN 0
/iscsi/iqn.2026-02.nyx.shadowblocks:storage.disk1/tpg1/luns create /backstores/fileio/shadowblocks
# 4. 配置监听端口和地址(默认 3260,0.0.0.0 监听所有网卡)
/iscsi/iqn.2026-02.nyx.shadowblocks:storage.disk1/tpg1/portals create 0.0.0.0:3260
# 5. 关闭认证(简化配置,生产环境建议开启)
/iscsi/iqn.2026-02.nyx.shadowblocks:storage.disk1/tpg1 set attribute authentication=0 generate_node_acls=1
# 6. 保存配置并退出
saveconfig
exit
4. 启动并设置服务开机自启
# 启动 target 服务
sudo systemctl start target
# 设置开机自启
sudo systemctl enable target
# 验证服务状态
sudo systemctl status target
5. 验证服务端配置
# 查看 iSCSI 配置详情
sudo targetcli ls
正常输出示例:
o- / ......................................................................................................................... [...]
o- backstores .............................................................................................................. [...]
| o- fileio ................................................................................................. [Storage Objects: 1]
| | o- shadowblocks ................................................ [/srv/iscsi/shadowblocks.img (150.0MiB) write-back activated]
o- iscsi ............................................................................................................ [Targets: 1]
| o- iqn.2026-02.nyx.shadowblocks:storage.disk1 ........................................................................ [TPGs: 1]
| o- tpg1 .................................................................................................. [gen-acls, no-auth]
| o- luns .......................................................................................................... [LUNs: 1]
| | o- lun0 ........................................... [fileio/shadowblocks (/srv/iscsi/shadowblocks.img)]
| o- portals .................................................................................................... [Portals: 1]
| o- 0.0.0.0:3260 ..................................................................................................... [OK]
二、客户端连接步骤
1. 安装 iSCSI 客户端工具
# Debian/Ubuntu 系统
sudo apt update && sudo apt install -y open-iscsi
# CentOS/RHEL 系统
sudo yum install -y iscsi-initiator-utils
2. 发现服务端的 iSCSI 目标
把下面的 SERVER_IP 替换成你服务端(shadowblocks)的实际 IP(比如 192.168.1.10):
sudo iscsiadm -m discovery -t st -p SERVER_IP:3260
正常输出示例:
SERVER_IP:3260,1 iqn.2026-02.nyx.shadowblocks:storage.disk1
3. 登录(建立连接)
方法1:通用登录(自动匹配发现的目标)
sudo iscsiadm -m node -l
方法2:指定目标登录(更精准)
sudo iscsiadm -m node -T iqn.2026-02.nyx.shadowblocks:storage.disk1 -p SERVER_IP:3260 -l
成功提示:Login to [iface: default, target: iqn.2026-02.nyx.shadowblocks:storage.disk1, portal: SERVER_IP,3260] successful.
4. 验证连接并找到磁盘
# 查看新增的磁盘设备
sudo lsblk
# 查看 iSCSI 会话状态
sudo iscsiadm -m session
关键结果:会看到一个新的磁盘(比如 /dev/sdb),这就是挂载的 iSCSI 虚拟盘。

5. 格式化并挂载使用(首次使用)
# 格式化分区(需要写入权限)
sudo mkfs.ext4 /dev/sdb1
# 创建挂载点
sudo mkdir -p /mnt/iscsi_shadowblocks
# 挂载磁盘
sudo mount /dev/sdb /mnt/iscsi_shadowblocks
# 没有写入权限,只读挂载
mount -o ro /dev/sdb1 /mnt/iscsi_shadowblocks
# 验证挂载
df -h /mnt/iscsi_shadowblocks

三、可选:设置开机自动连接+挂载
1. 设置 iSCSI 开机自动登录
sudo iscsiadm -m node -T iqn.2026-02.nyx.shadowblocks:storage.disk1 -p SERVER_IP:3260 -o update -n node.startup -v automatic
2. 设置磁盘开机自动挂载
# 查看磁盘 UUID
sudo blkid /dev/sdb
# 编辑 fstab 文件
sudo nano /etc/fstab
在文件末尾添加一行(替换成你的 UUID):
UUID=你的磁盘UUID /mnt/iscsi_shadowblocks ext4 defaults,_netdev 0 0
保存退出后,验证配置:
sudo mount -a
四、断开连接(如需)
# 先卸载挂载点
sudo umount /mnt/iscsi_shadowblocks
# 登出 iSCSI 目标
sudo iscsiadm -m node -u
# 或强制登出指定目标
sudo iscsiadm -m node -T iqn.2026-02.nyx.shadowblocks:storage.disk1 -p SERVER_IP:3260 -u
总结
- 服务端核心是通过
targetcli创建 fileio 存储对象、关联 IQN 并配置监听地址,确保服务开机自启; - 客户端需先发现目标再登录,有写入权限时可格式化分区,无权限则用
ro参数只读挂载; - 开机自动挂载需配置 iSCSI 自动登录 +
/etc/fstab加入_netdev参数,适配网络存储特性。
原文 https://blog.csdn.net/2301_79518550/article/details/158582885