当前位置: 首页 > article >正文

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

http://www.lryc.cn/news/2384688.html

相关文章:

  • Maven打包SpringBoot项目,因包含SpringBootTest单元测试和Java预览版特性导致打包失败
  • git入门之HEAD介绍
  • 车道线检测:自动驾驶的“眼睛”
  • 中国软件行业 2024 年度分析报告
  • 力扣面试150题--填充每个节点的下一个右侧节点指针 II
  • 使用openvino和onnxruntime的SDK部署yolo11检测模型
  • C 语言学习笔记(指针4)
  • PostgreSQL 数据库备份与恢复
  • QT高DPI支持
  • MySQL的相关操作
  • 从elf文件动态加载的过程解释got,plt及got.plt,plt.sec
  • 鸿蒙HarmonyOS多设备流转:分布式的智能协同技术介绍
  • XXE(外部实体注入)
  • jenkins凭据管理
  • 驱动开发硬核特训 · Day 31:理解 I2C 子系统的驱动模型与实例剖析
  • 9大开源AI智能体概况
  • 【python】局域网内通过python远程重启另一台windows电脑
  • 超越感官的实相:声、光、气味的科学与哲学探微
  • Python邮件处理:POP与SMTP
  • 什么是VR场景?VR与3D漫游到底有什么区别
  • python学习day2:进制+码制+逻辑运算符
  • 【分布式文件系统】FastDFS
  • 14、自动配置【源码分析】-初始加载自动配置类
  • word为章节标题添加自动编号
  • 无人机飞行间隔安全智能评估、安全风险评估
  • C++成员对象和封闭类
  • 【VLNs篇】03:VLMnav-端到端导航与视觉语言模型:将空间推理转化为问答
  • PCB设计实践(二十五)贴片电阻与插件电阻的全面解析:差异、演进与应用场景
  • 知道不知道
  • 文章记单词 | 第106篇(六级)