以下是详细的iSCSI存储挂载主机实验步骤及命令说明,帮助您深入理解iSCSI协议的工作原理和配置流程:


实验环境
• Target服务器(存储提供端):IP 192.168.1.100

• Initiator客户端(存储挂载端):IP 192.168.1.200

• 操作系统:Ubuntu/CentOS(以Ubuntu为例)

• 确保防火墙开放3260端口(或临时关闭防火墙测试)


一、配置iSCSI Target(存储服务端)

  1. 安装必要软件包
sudo apt-get update
sudo apt-get install targetcli-fb -y  # Ubuntu
# CentOS: yum install targetcli
  1. 创建虚拟存储设备(模拟磁盘)
# 创建一个1GB的虚拟磁盘文件(路径可自定义)
sudo dd if=/dev/zero of=/var/lib/iscsi_disks/disk1.img bs=1M count=1024
  1. 使用targetcli配置iSCSI Target
sudo targetcli

进入交互式命令行后,按顺序执行以下操作:

# 创建块存储后端(backstore)
/> /backstores/block create name=disk1 dev=/var/lib/iscsi_disks/disk1.img

# 创建iSCSI Target IQN(格式:iqn.年月.域名反写:标识)
/> /iscsi create iqn.2024-06.com.example:storage.target1

# 创建LUN并关联存储设备
/> /iscsi/iqn.2024-06.com.example:storage.target1/tpg1/luns create /backstores/block/disk1

# 设置ACL(允许指定Initiator访问)
# 获取Initiator的IQN(需在客户端查看,见下文步骤)
/> /iscsi/iqn.2024-06.com.example:storage.target1/tpg1/acls create iqn.2024-06.com.example:client.initiator1

# 配置监听IP和端口
/> /iscsi/iqn.2024-06.com.example:storage.target1/tpg1/portals create 192.168.1.100

# 保存配置并退出
/> saveconfig
/> exit
  1. 启动服务并验证
sudo systemctl restart target
sudo systemctl enable target

二、配置iSCSI Initiator(存储客户端)

  1. 安装客户端工具
sudo apt-get install open-iscsi -y  # Ubuntu
# CentOS: yum install iscsi-initiator-utils
  1. 设置Initiator名称(IQN)
# 编辑配置文件,设置与Target ACL匹配的IQN
sudo vim /etc/iscsi/initiatorname.iscsi
---
InitiatorName=iqn.2024-06.com.example:client.initiator1
  1. 发现Target存储
# 发现指定IP的Target
sudo iscsiadm -m discovery -t sendtargets -p 192.168.1.100

输出示例:

192.168.1.100:3260,1 iqn.2024-06.com.example:storage.target1
  1. 登录到Target
# 登录所有发现的Target
sudo iscsiadm -m node -L all

# 查看连接的磁盘设备
lsblk  # 应看到新磁盘(如sdb、sdc等)

三、挂载并使用iSCSI磁盘

  1. 分区及格式化
# 对新磁盘分区(示例磁盘为/dev/sdb)
sudo fdisk /dev/sdb  # 创建新分区(n→p→默认→w保存)

# 格式化分区为ext4
sudo mkfs.ext4 /dev/sdb1
  1. 挂载分区
# 创建挂载点并挂载
sudo mkdir /mnt/iscsi_disk
sudo mount /dev/sdb1 /mnt/iscsi_disk

# 验证挂载
df -h | grep iscsi_disk
  1. 配置开机自动挂载
# 获取磁盘UUID
sudo blkid /dev/sdb1

# 编辑/etc/fstab,添加以下内容(使用_netdev确保网络就绪后挂载)
UUID=xxxx-xxxx-xxxx /mnt/iscsi_disk ext4 _netdev 0 0

四、验证与维护

  1. 测试读写
sudo touch /mnt/iscsi_disk/testfile
echo "iSCSI test" | sudo tee /mnt/iscsi_disk/testfile
  1. 断开连接(可选)
# 卸载并登出
sudo umount /mnt/iscsi_disk
sudo iscsiadm -m node -U all  # 登出所有Target

五、高级配置(可选)
启用CHAP认证
• Target端:

/> /iscsi/iqn.2024-06.com.example:storage.target1/tpg1/ set auth userid=myuser
/> /iscsi/iqn.2024-06.com.example:storage.target1/tpg1/ set auth password=mypassword

• Initiator端:

# 编辑CHAP配置文件
sudo vim /etc/iscsi/iscsid.conf
---
node.session.auth.authmethod = CHAP
node.session.auth.username = myuser
node.session.auth.password = mypassword

多路径配置(高可用)
安装multipath-tools并配置多路径策略,提升存储访问可靠性。


注意事项

  1. 防火墙:确保服务端3260/tcp端口开放。
  2. IQN格式:必须符合标准格式,否则连接失败。
  3. 数据安全:生产环境务必启用CHAP认证。
  4. 性能调优:根据网络条件调整MTU、队列深度等参数。

通过此实验,您将掌握iSCSI存储协议的配置流程,理解存储网络化的实现原理。

posted on 2025-05-21 17:39  LeeHang  阅读(363)  评论(0)    收藏  举报