Linux iSCSI存储共享实验指南

发布于:2025-05-27 ⋅ 阅读:(31) ⋅ 点赞:(0)

实验介绍

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网络上实现块级存储共享,适合中小型企业的存储需求。


网站公告

今日签到

点亮在社区的每一天
去签到