iSCSI目标端(Target):提供存储设备,类似于存储服务器。
本文使用一台centos7机器作为iSCSI目标端,分配一个10G磁盘用作iSCSI存储设备,盘符为/dev/sdb。
iSCSI发起端(Initiator):需要访问存储设备的客户端。
可以是其他网络可达支持iscsi协议的客户端,如Windows、Linux等。
2. 安装iSCSI软件包
在目标端和发起端都需要安装相关的iSCSI软件包。
2.1 目标端(Target)上安装
CentOS 7/8可以使用targetcli来管理iSCSI。
yum install targetcli -y

启动并启用targetcli
systemctl start target
systemctl enable target
目标端创建iqn号,根据自己的需要进行自定义。
/> /iscsi create iqn.2024-12.com.example:mytarget

target 服务端查询iqn号

创建一个后端存储块设备(可以是物理磁盘或一个文件映像):
/> /backstores/block create name=disk01 dev=/dev/sdb

###或者使用一个文件作为存储:
# 提前创建好对应目录:mkdir -p /var/lib/iscsi_disks
/> /backstores/fileio create name=mydisk file_or_dev=/var/lib/iscsi_disks/mydisk.img size=10G
注意:如果为追求IO性能,建议使用物理磁盘作为存储。
将创建的后端存储与目标关联:
/> /iscsi/iqn.2024-12.com.example:mytarget/tpg1/luns create /backstores/block/disk01

配置网络ACL以允许发起端连接:
/> /iscsi/iqn.2024-12.com.example:mytarget/tpg1/acls create iqn.1994-05.com.redhat:a84bf91d40f7

上述ACL中添加客户端的iqn.1994-05.com.redhat:a84bf91d40f7,需要在客户端通过命令cat /etc/iscsi/initiatorname.iscsi查看。

2.2发起端(Initiator)上安装
发起端(即客户端)需要安装iscsi-initiator-utils
yum install -y iscsi-initiator-utils

3.配置防火墙规则
在目标端(Target)上,需要确保允许iSCSI端口3260的流量:
firewall-cmd --add-port=3260/tcp --permanent
firewall-cmd --reload
4.配置发起端(Initiator)
在发起端,首先使用以下命令发现目标端上的iSCSI目标:
iscsiadm -m discovery -t st -p <目标端IP地址>

5.登录到目标端
iscsiadm -m node --targetname iqn.2024-12.com.example:mytarget --portal <目标端IP地址> --login
查看映射过来的设备/dev/sdb

6.自动登录并挂载iSCSI存储
配置开机自动登录
iscsiadm -m node --targetname iqn.2024-12.com.example:mytarget --portal <目标端IP地址> --op update -n node.startup -v automatic
7.挂载iSCSI存储
创建文件系统并挂载新磁盘,例如:
sudo mkfs.ext4 /dev/sdX
sudo mkdir /mnt/iscsi_disk
sudo mount /dev/sdX /mnt/iscsi_disk
8.测试
在发起端上,您可以向挂载的iSCSI存储中写入数据,并通过目标端验证存储是否正常工作。
9.退出iSCSI会话
iscsiadm -m node --targetname iqn.2024-12.com.example:mytarget --portal <目标端IP地址> --logout




