Linux iSCSI存储共享实验指南
实验介绍
1、在Linux平台上通过iSCSI协议实现IP-SAN存储共享
2、掌握存储导出(export)和存储导入(import)的配置方法
3、学习iSCSI存储的发现、连接、断开和管理操作
1、实验环境
两台同网段的Linux虚拟机(无需物理交换机)
操作系统:Linux(具体发行版未指定)
软件包:scsi-target-utils、iscsi-initiator-utils
IP-SANde实现 | IP地址 |
导出端(Target Server) | 10.1.1.141 |
导入端(Initiator Client) | 10.1.1.142 |
拓扑图:
2、实验步骤
(1)基础环境准备(两台机器执行)
# 为两台虚拟机配置静态IP地址
# 关闭防火墙和SELinux(两台机器均需执行)
systemctl stop firewalld && systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
# 配置主机名解析(可选,建议执行)
vi /etc/hosts
10.1.1.141 hn141
10.1.1.142 hn142
# 时间同步(两台机器均需执行)
yum install -y ntpdate && ntpdate pool.ntp.org
# 检查两台机子是否可以互ping
(2)存储导出端(export)配置
#安装必要软件包 yum -y install epel-release yum -y install scsi-target-utils rpm -aq|grep scsi |
#创建块存储文件 dd if=/dev/zero of=/tmp/file0 bs=1M count=1024 #查看块存储文件 ls -lh /tmp/file0 |
#查看文件 rpm -qc scsi-target-utils-1.0.55-4.el7.x86_64 cat /etc/tgt/tgtd.conf cat -n /etc/tgt/conf.d/sample.conf |
#配置iSCSI目标 #编辑配置文件/etc/tgt/targets.conf vi /etc/tgt/targets.conf default-driver iscsi <target scsi:data> backing-store /tmp/file0 </target> |
#启动服务 systemctl start tgtd.service systemctl enable --now tgtd.service # 验证服务是否启动 systemctl status tgtd # 检查服务是否运行 lsof -i:3260 # 检查3260端口是否监听 |
|
#查看共享状态 tgt-admin --show |
(3)存储导入端(import)配置
#安装客户端软件 yum -y install iscsi-initiator-utils iscsiadm --version |
#发现iSCSI目标# (指定导出端IP) iscsiadm -m discovery -t sendtargets -p 10.1.1.141 |
如果报错如下: 可能是因为防火墙,在导出端执行以下命令,检查网络策略 # 在导出端(10.1.1.141)执行: # 1. 检查防火墙规则(即使已关闭也需确认) iptables -L -n | grep 3260 # 查看是否有3260端口的规则 # 2. 临时放行3260端口(即使防火墙已关闭) iptables -I INPUT -p tcp --dport 3260 -j ACCEPT # 3. 检查网络接口绑定(确保监听所有接口) netstat -tulnp | grep tgtd # 应显示0.0.0.0:3260 |
#登录连接iSCSI目标 iscsiadm -m node -l # 登录 lsblk # 验证新设备出现 |
#存储使用与验证 #格式化并挂载存储 mkfs.ext4 /dev/sdb mkdir /file1 mount /dev/sdb /file1 lsblk # 验证新设备出现 # 验证写入 echo "iSCSI Test" > /file1/test.txt cat /file1/test.txt |
![]() |
(4)安全断开连接操作
# 在导入端执行 #查看当前会话 iscsiadm -m session # 断开特定连接 umount /file1 iscsiadm -m node -T scsi:data -p 10.1.1.141:3260 -u # 彻底删除节点记录 iscsiadm -m node -o delete # 在导出端可停止服务(如需) systemctl stop tgtd |
3.实验结果
(1)成功在两台Linux虚拟机之间建立了iSCSI存储共享
导出端成功创建并共享了1GB的虚拟块存储
导入端能够发现、连接并使用该存储设备
掌握了iSCSI存储的连接、断开和管理操作
(2)注意事项
断开iSCSI连接前,确保没有应用程序正在使用该存储设备,否则可能导致数据丢失或应用程序出错
部分操作可能需要root权限,建议使用sudo提升权限
块设备无法同时被多个主机共享使用
(3)排错指南
# 1.连接失败:
检查两台机器是否能互相ping通
导出端执行 lsof -i:3260 确认端口监听
查看日志:journalctl -u tgtd(导出端)或 /var/log/messages(导入端)
# 2.CHAP认证错误:
确保两端的用户名/密码完全一致
导入端检查 /etc/iscsi/iscsid.conf 配置
# 3.设备未识别:
在导入端执行 dmesg | grep scsi 查看内核日志
4.实验总结
通过本次实验,我们成功在Linux平台上实现了基于iSCSI协议的IP-SAN存储共享。实验涵盖了从环境准备、服务配置到实际连接使用的完整流程,并学习了相关的管理命令。iSCSI作为一种经济高效的SAN解决方案,可以在标准IP网络上实现块级存储共享,适合中小型企业的存储需求。