(っ●ω●)っ

使用 targetcli 搭建 iSCSI-Target 共享磁盘或分区

2025-03-02

软件安装

安装软件包 targetcli ,使用此工具配置 iSCSI 服务。

1
yum -y install targetcli

进入配置界面

进入 iSCSI 配置界面,命令支持使用 TAB 快捷键补全命令。

1
targetcli

基本配置

配置块存储

使用硬盘分区或者逻辑卷配置块存储。

1
2
/> /backstores/block create [名称] [硬盘路径]
/> /backstores/block create disk0 /dev/sdb

创建 IQN

配置 iSCSI 目标

1
2
/> iscsi/ create wwn=[iqn.[日期(xxxx-xx)].[域]:[名称]]
/> iscsi/ create wwn=iqn.2008-01.lan.skills:server

进入新建的 IQN

1
2
/> cd /iscsi/iqn.<...>:<...>
/> cd /iscsi/iqn.2008-01.lan.skills:server

创建 LUN

使用块存储创建 LUN。

1
2
/iscsi/iqn.<...>:<...>/tpg1/luns> create /backstores/block/[块存储名称]
/iscsi/iqn.<...>:server/tpg1/luns> create /backstores/block/disk0

创建 ACL

创建 ACL 允许 iSCSI 客户端连接。此处的 IQN 是客户端的 IQN,用于身份验证。

1
2
/iscsi/iqn.<...>:<...>/tpg1/acls> create iqn.<...>:<...>(客户端的 IQN)
/iscsi/iqn.<...>:server/tgp1/acls> create iqn.<...>:client1

修改监听地址&端口

修改默认监听的地址和端口。先删除原有的,再设置新的自定义 IP 和端口。

删除

1
2
/iscsi/iqn.<...>:<...>/tpg1/portals> delete 0.0.0.0 3260
/iscsi/iqn.<...>:server>/tpg1/portals> delete 0.0.0.0 3260

自定义

1
2
/iscsi/iqn.<...>:<...>/tpg1/portals> create 10.155.40.2 3260
/iscsi/iqn.<...>:server>/tpg1/portals> create 10.155.40.2 3260

查看配置

  • 将上述指令的 set 替换成 get,即可查阅配置信息。
  • 查看目录结构:ls /
  • 查看当前目录路径:pwd

防火墙设置

如果自定义了端口,不能通过添加服务的方式进行放行,需要手动指定端口。

1
firewall-cmd --add-port=[...]/tcp --per

如果端口是默认的 3260,可以直接通过添加服务名称来放行端口。

1
firewall-cmd --add-service=iscsi-target --per

双向认证

配置 iSCSI Discovery & Session 双向认证。

服务端

配置 Session 双向认证(可选)

进入配置目录:

1
2
/> cd /iscsi/iqn.<...>:<...>/tpg1/acls/iqn.<...>:<...>
/> cd /iscsi/iqn.<...>:server/tpg1/acls/iqn.<...>:client1

配置认证用户名和密码:

1
2
/iscsi/iqn.<...>:<...>> set auth userid=IncomingUser password=IncomingPass mutual_userid=OutgoingUser mutual_password=OutgoingPass
/iscsi/iqn.<...>:client1> set auth userid=IncomingUser password=IncomingPass mutual_userid=OutgoingUser mutual_password=OutgoingPass

服务器开启 Session 认证:

1
2
3
4
/> cd /iscsi/iqn.<...>:<...>/tpg1
/> cd /iscsi/iqn.<...>:server/tpg1
/iscsi/iqn.<...>:<...>/tpg1> set attribute authentication=1
/iscsi/iqn.<...>:server/tpg1> set attribute authentication=1

配置 Discovery 双向认证(可选)

进入配置目录:

1
/> cd /iscsi

开启 Discovery 认证:

1
/iscsi> set discovery_auth enable=1

配置认证用户名和密码:

1
/iscsi> set discovery_auth userid=IncomingUser password=IncomingPass mutual_userid=OutgoingUser mutual_password=OutgoingPass

客户端

软件安装

安装软件包 iscsi-initiator-utils

1
yum -y install iscsi-initiator-utils

配置 iSCSI Initiator 名称

修改配置文件:vim /etc/iscsi/initiatorname.iscsi

  • InitiatorName 要设置与刚刚 ACL 配置的客户端 IQN 相同。如果不相同,会导致鉴权失败。
  • 修改完成后,需要重启服务才会生效!!
1
InitiatorName=iqn.2008-01.lan.skills:client1

修改配置文件

修改配置文件:vim /etc/iscsi/iscsid.conf

取消掉部分注释,并且修改鉴权用户名和密码。

Session 部分(node开头的)
1
2
3
4
5
node.session.auth.authmethod = CHAP
node.session.auth.username = IncomingUser
node.session.auth.password = IncomingPass
node.session.auth.username_in = OutgoingUser
node.session.auth.password_in = OutgoingPass
Discovery 部分(discovery开头的)
1
2
3
4
5
discovery.sendtargets.auth.authmethod = CHAP
discovery.sendtargets.auth.username = IncomingUser
discovery.sendtargets.auth.password = IncomingPass
discovery.sendtargets.auth.username_in = OutgoingUser
discovery.sendtargets.auth.password_in = OutgoingPass

重启服务

配置修改完成后,需要重启服务,配置才会生效。包括 initiatorname.iscsi 修改后,需要重启服务才会生效。

1
systemctl restart iscsid

重新连接

需要先断开连接,再重新发现连接:

  • 断开:iscsiadm -m node -u
  • 发现:iscsiadm -m -t st -p 10.155.40.2
  • 连接:iscsiadm -m node -l

自动挂载

  • 挂载前先格式化分区。
开机自动登录 iSCSI
1
iscsiadm -m node -T iqn.<...>:server -p 10.155.40.2 –o update -n node.startup -v automatic
格式化分区
1
mkfs.xfs /dev/sda[硬盘路径]
修改 /etc/fstab
1
/dev/sda[硬盘路径] /mnt/iscsi_part[挂载点] xfs[文件系统] defaults,_netdev 0 0