一、环境说明
- centos7服务器*2
- 服务器ip:服务端10.10.10.186 客户端10.10.10.184
- 服务端存储卷sda1
- 提前关闭防火墙,或开放默认 iSCSI 使用 3260 端口
二、服务端(Target)配置
- 安装 iSCSI target 服务
j
yum install -y targetcli
systemctl enable target --now
- 创建后端存储
j
mkdir -p /iscsi_disks
truncate -s 5G /iscsi_disks/disk01.img
- 配置 target
进入管理界面
j
targetcli
执行
j
/backstores/fileio create disk01 /iscsi_disks/disk01.img
# 绑定lun
/iscsi/iqn.2025-09.com.example:storage.target01/tpg1/luns create /backstores/fileio/disk01
# 添加 ACL(客户端 IQN 必须和 initiator 配置一致)
/iscsi/iqn.2025-09.com.example:storage.target01/tpg1/acls create iqn.2025-09.com.example:client01
/saveconfig
exit
验证配置
j
targetcli
ls

三、客户端(Initiator)配置
- 安装 iSCSI initiator 工具
j
yum install -y iscsi-initiator-utils
systemctl enable iscsid --now
- 修改 initiator 名称
j
vi /etc/iscsi/initiatorname.iscsi
修改为与服务端 ACL 配置一致:
InitiatorName=iqn.2025-09.com.example:client01
重启服务
systemctl restart iscsid
- 发现 target
j
iscsiadm -m discovery -t sendtargets -p 10.10.10.186

- 登录 target
j
iscsiadm -m node -T iqn.2025-09.com.example:storage.target01 -p 10.10.10.186 --login
5.确认磁盘
j
lsblk
fdisk -l
会看到新设备(通常是 /dev/sdb 之类)。
6.格式化并挂载
j
mkfs.xfs /dev/sdb
mkdir -p /mnt/iscsi_disk
mount /dev/sdb /mnt/iscsi_disk
7.测试写入
j
echo "hello iscsi" > /mnt/iscsi_disk/test.txt
cat /mnt/iscsi_disk/test.txt
NOTICE!!!
1、
如果第四步login失败
j
/iscsi/iqn.2025-09.com.example:storage.target01/tpg1 set attribute authentication=1
/iscsi/iqn.2025-09.com.example:storage.target01/tpg1 set auth userid=myuser
/iscsi/iqn.2025-09.com.example:storage.target01/tpg1 set auth password=mypassword
客户端则需要
j
iscsiadm -m node -T iqn.2025-09.com.example:storage.target01 -p 10.10.10.186 --op update -n node.session.auth.authmethod -v CHAP
iscsiadm -m node -T iqn.2025-09.com.example:storage.target01 -p 10.10.10.186 --op update -n node.session.auth.username -v myuser
iscsiadm -m node -T iqn.2025-09.com.example:storage.target01 -p 10.10.10.186 --op update -n node.session.auth.password -v mypassword
再次登录
j
iscsiadm -m node -T iqn.2025-09.com.example:storage.target01 -p 10.10.10.186 --login
✅ 总结:
-
大概率是 initiatorname 不一致(客户端 /etc/iscsi/initiatorname.iscsi 和 targetcli ACL 配置的不一样)。
-
如果一致,那就检查是否启用了 CHAP,需配套用户名密码。
验证是否生效
1、客户端挂载 iSCSI 盘到目录
j
fdisk /dev/sdb
示例操作(新建一个分区):
- 输入 n(新建分区)
- 输入 p(主分区)
- 默认即可(全盘)
- 输入 w 保存退出
之后会出现 /dev/sdb1。
2、格式化文件系统
j
mkfs.xfs /dev/sdb1
3、挂载到目录
j
mkdir -p /mnt/iscsi_disk
mount /dev/sdb1 /mnt/iscsi_disk
4、验证
j
df -h /mnt/iscsi_disk
echo "hello from iscsi" > /mnt/iscsi_disk/test.txt
cat /mnt/iscsi_disk/test.txt
5、设置开机自动挂载
j
查看UUID
blkid /dev/sdb1
编辑 /etc/fstab,加一行:
UUID=<刚才的UUID> /mnt/iscsi_disk xfs _netdev 0 0
6、验证
j
ls -lh /iscsi_disks/disk01.img # 显示 5.0G
du -sh /iscsi_disks/disk01.img # 应该很小,比如 0M 或几K