以下是详细的iSCSI存储挂载主机实验步骤及命令说明,帮助您深入理解iSCSI协议的工作原理和配置流程:
实验环境
• Target服务器(存储提供端):IP 192.168.1.100
• Initiator客户端(存储挂载端):IP 192.168.1.200
• 操作系统:Ubuntu/CentOS(以Ubuntu为例)
• 确保防火墙开放3260端口(或临时关闭防火墙测试)
一、配置iSCSI Target(存储服务端)
- 安装必要软件包
sudo apt-get update
sudo apt-get install targetcli-fb -y # Ubuntu
# CentOS: yum install targetcli
- 创建虚拟存储设备(模拟磁盘)
# 创建一个1GB的虚拟磁盘文件(路径可自定义)
sudo dd if=/dev/zero of=/var/lib/iscsi_disks/disk1.img bs=1M count=1024
- 使用
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
- 启动服务并验证
sudo systemctl restart target
sudo systemctl enable target
二、配置iSCSI Initiator(存储客户端)
- 安装客户端工具
sudo apt-get install open-iscsi -y # Ubuntu
# CentOS: yum install iscsi-initiator-utils
- 设置Initiator名称(IQN)
# 编辑配置文件,设置与Target ACL匹配的IQN
sudo vim /etc/iscsi/initiatorname.iscsi
---
InitiatorName=iqn.2024-06.com.example:client.initiator1
- 发现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
- 登录到Target
# 登录所有发现的Target
sudo iscsiadm -m node -L all
# 查看连接的磁盘设备
lsblk # 应看到新磁盘(如sdb、sdc等)
三、挂载并使用iSCSI磁盘
- 分区及格式化
# 对新磁盘分区(示例磁盘为/dev/sdb)
sudo fdisk /dev/sdb # 创建新分区(n→p→默认→w保存)
# 格式化分区为ext4
sudo mkfs.ext4 /dev/sdb1
- 挂载分区
# 创建挂载点并挂载
sudo mkdir /mnt/iscsi_disk
sudo mount /dev/sdb1 /mnt/iscsi_disk
# 验证挂载
df -h | grep iscsi_disk
- 配置开机自动挂载
# 获取磁盘UUID
sudo blkid /dev/sdb1
# 编辑/etc/fstab,添加以下内容(使用_netdev确保网络就绪后挂载)
UUID=xxxx-xxxx-xxxx /mnt/iscsi_disk ext4 _netdev 0 0
四、验证与维护
- 测试读写
sudo touch /mnt/iscsi_disk/testfile
echo "iSCSI test" | sudo tee /mnt/iscsi_disk/testfile
- 断开连接(可选)
# 卸载并登出
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并配置多路径策略,提升存储访问可靠性。
注意事项
- 防火墙:确保服务端3260/tcp端口开放。
- IQN格式:必须符合标准格式,否则连接失败。
- 数据安全:生产环境务必启用CHAP认证。
- 性能调优:根据网络条件调整MTU、队列深度等参数。
通过此实验,您将掌握iSCSI存储协议的配置流程,理解存储网络化的实现原理。
浙公网安备 33010602011771号