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

iSCSI网络存储——基于VM17下麒麟V10SP1与SP2的共享配置

iSCSI网络存储——基于VM17下麒麟V10SP1与SP2的共享配置

本文适合零基础的Linux新手,通过详细的步骤和实际输出示例,教你如何在VMware虚拟机中搭建iSCSI网络存储环境。

📖 教程前言

作为一名Linux新手,你是否曾经好奇:

  • 企业中的网络存储是怎么实现的?
  • 如何让一台服务器的硬盘给其他服务器使用?
  • 什么是iSCSI?它和普通的文件共享有什么区别?

本教程将用最通俗易懂的方式,带你从零开始搭建一个完整的iSCSI存储环境。无需任何预备知识,只要会基本的Linux命令即可!

🎯 学习目标

通过本教程,你将学会:

  • ✅ iSCSI技术的基本概念
  • ✅ 在麒麟系统上配置iSCSI服务器和客户端
  • ✅ 管理两种类型的网络存储(文件镜像和物理磁盘)
  • ✅ 解决实际配置中遇到的各种问题

💻 实验环境准备

硬件和软件要求

组件 配置要求 说明
主机系统 Windows 11 你的个人电脑
虚拟机软件 VMware Workstation 17 虚拟化平台
客户端系统 麒麟V10 SP1桌面版 IP: 192.168.200.133
服务器系统 麒麟V10 SP2服务器版 IP: 192.168.200.176
连接工具 MobaXterm SSH远程连接工具

网络架构图

你的Windows电脑↓ VMware虚拟机↓
├── 客户端 (192.168.200.133) - 使用存储的电脑
└── 服务器 (192.168.200.176) - 提供存储的电脑

🔍 基础概念扫盲

什么是iSCSI?

通俗理解:iSCSI就像是通过网线把远程硬盘"插"到你的电脑上使用。

生活化比喻

  • 本地硬盘:直接插在电脑上的U盘
  • iSCSI存储:通过网络使用的"云U盘"

核心角色说明

角色 作用 比喻
iSCSI Target(目标) 存储提供方 云盘服务器
iSCSI Initiator(发起方) 存储使用方 你的电脑
LUN(逻辑单元) 存储单元 云盘里的文件夹

🛠️ 第一步:服务器端配置

1.1 安装必要的软件

服务器端(192.168.200.176)执行:

# 更新软件源(就像手机更新应用商店)
sudo yum makecache# 安装iSCSI目标软件
sudo yum install targetcli -y# 检查安装是否成功
targetcli --version

实际输出示例

$ targetcli --version
targetcli version 2.1.53

1.2 启动iSCSI服务

# 启动服务
sudo systemctl start target# 设置开机自启动
sudo systemctl enable target# 检查服务状态
sudo systemctl status target

关键点检查:看到绿色的"active (running)"表示服务正常运行。

1.3 配置防火墙

# 开放iSCSI端口(3260)
sudo firewall-cmd --permanent --add-port=3260/tcp
sudo firewall-cmd --reload# 验证端口开放
sudo firewall-cmd --list-ports

1.4 创建两种类型的存储

类型1:文件镜像存储(适合测试)

# 创建2GB的虚拟磁盘文件(可自定义大小)
sudo dd if=/dev/zero of=/var/lib/iscsi-file.img bs=1M count=2048# 查看创建的文件
ls -lh /var/lib/iscsi-file.img

输出示例

-rw-r--r-- 1 root root 2.0G 9月 27 10:20 /var/lib/iscsi-file.img

类型2:物理磁盘存储(适合生产)

确保服务器有额外的物理磁盘(如/dev/sdb)

1.5 配置iSCSI目标

进入配置界面:

sudo targetcli

依次执行以下配置命令:

# 1. 创建文件镜像存储
/> backstores/fileio create name=file_disk file_or_dev=/var/lib/iscsi-file.img size=2G# 2. 创建物理磁盘存储
/> backstores/block create name=block_disk dev=/dev/sdb# 3. 创建iSCSI目标
/> iscsi/ create iqn.2024-04.com.kylin:mystorage# 4. 创建网络门户
/> iscsi/iqn.2024-04.com.kylin:mystorage/tpg1/portals/ create 192.168.200.176# 5. 创建两个LUN(存储单元)
/> iscsi/iqn.2024-04.com.kylin:mystorage/tpg1/luns/ create /backstores/fileio/file_disk
/> iscsi/iqn.2024-04.com.kylin:mystorage/tpg1/luns/ create /backstores/block/block_disk# 6. 设置访问权限
/> iscsi/iqn.2024-04.com.kylin:mystorage/tpg1/ set attribute generate_node_acls=1# 7. 查看配置
/> ls# 8. 退出保存
/> exit

💻 第二步:客户端配置

2.1 安装客户端软件

客户端(192.168.200.133)执行:

# 更新软件源
sudo apt update# 安装iSCSI客户端
sudo apt install open-iscsi -y# 启动服务
sudo systemctl start iscsid
sudo systemctl enable iscsid

2.2 发现和连接存储

# 发现服务器上的存储
sudo iscsiadm -m discovery -t st -p 192.168.200.176# 连接到存储
sudo iscsiadm -m node -T iqn.2024-04.com.kylin:mystorage -p 192.168.200.176 -l

成功输出示例

Logging in to [iface: default, target: iqn.2024-04.com.kylin:mystorage, portal: 192.168.200.176,3260]
Login to [iface: default, target: iqn.2024-04.com.kylin:mystorage, portal: 192.168.200.176,3260] successful.

2.3 查看识别的存储设备

# 查看新识别的磁盘
lsblk

输出示例(看到两个新磁盘):

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   50G  0 disk 
└─sda1   8:1    0   50G  0 part /
sdb      8:16   0    2G  0 disk   ← 文件镜像存储
sdc      8:32   0    8G  0 disk   ← 物理磁盘存储
└─sdc1   8:33   0    8G  0 part

💾 第三步:使用网络存储

3.1 使用文件镜像存储(/dev/sdb)

# 格式化磁盘
sudo mkfs.ext4 /dev/sdb# 创建挂载点
sudo mkdir -p /mnt/file-storage# 挂载使用
sudo mount /dev/sdb /mnt/file-storage# 测试写入
echo "Hello from File Storage" > /mnt/file-storage/test.txt

3.2 使用物理磁盘存储(/dev/sdc)

如果物理磁盘包含LVM:

# 激活LVM
sudo vgchange -ay kylin_vg1# 查看逻辑卷
sudo lvs# 挂载使用
sudo mkdir -p /mnt/block-storage
sudo mount /dev/kylin_vg1/kylin_lv /mnt/block-storage

3.3 配置开机自动挂载

# 编辑自动挂载配置
sudo nano /etc/fstab# 添加以下内容:
/dev/sdb /mnt/file-storage ext4 defaults,_netdev 0 0
/dev/kylin_vg1/kylin_lv /mnt/block-storage ext4 defaults,_netdev 0 0

⚡ 第四步:验证和测试

4.1 基础功能验证

# 检查iSCSI连接
sudo iscsiadm -m session# 检查磁盘挂载
df -h | grep storage# 测试文件操作
ls -la /mnt/file-storage/
ls -la /mnt/block-storage/

4.2 重启测试

# 重启客户端
sudo reboot# 重启后检查自动连接和挂载
sudo iscsiadm -m session
df -h | grep storage

🔧 常见问题解决

问题1:连接失败

# 检查网络连通性
ping 192.168.200.176# 重新发现和连接
sudo iscsiadm -m discovery -t st -p 192.168.200.176
sudo iscsiadm -m node -T iqn.2024-04.com.kylin:mystorage -p 192.168.200.176 -l

问题2:磁盘无法识别

# 重新扫描设备
sudo rescan-scsi-bus.sh# 重启iSCSI服务
sudo systemctl restart iscsid

问题3:挂载失败

# 检查磁盘是否存在
lsblk# 强制重新挂载
sudo umount /mnt/file-storage
sudo mount /dev/sdb /mnt/file-storage

📊 学习成果验收

完成本教程后,你应该能够:

检查项 结果 说明
服务器端服务正常运行 systemctl status target
客户端成功连接 iscsiadm -m session
两种存储正常识别 lsblk看到两个新磁盘
文件系统正常使用 可以创建、读取文件
重启后自动恢复 无需手动干预

🎉 总结与展望

恭喜你!通过本教程,你已经成功:

  1. 理解了iSCSI的基本概念 - 知道什么是Target和Initiator
  2. 配置了完整的存储环境 - 服务器端提供存储,客户端使用存储
  3. 掌握了两种存储类型 - 文件镜像和物理磁盘的区别和使用
  4. 解决了实际问题 - 能够排查和解决常见的连接问题

下一步学习建议:

  1. 深入理解LVM - 学习逻辑卷管理,实现存储的动态扩展
  2. 探索高可用方案 - 了解多路径IO和故障转移
  3. 学习存储性能优化 - 调整参数提升读写速度
  4. 实践备份策略 - 制定数据备份和恢复方案

实用命令备忘:

# 日常管理命令
sudo iscsiadm -m session    # 查看连接状态
sudo targetcli ls           # 查看服务器配置
df -h | grep storage        # 查看存储使用情况# 故障排查命令
sudo journalctl -u iscsid   # 查看客户端日志
sudo systemctl status target # 查看服务器状态

版权声明:本文为原创教程,欢迎分享学习,但请注明出处。

问题反馈:如果在实践过程中遇到问题,欢迎在评论区留言,我会及时解答。

相关资源

  • 官方iSCSI文档
  • 麒麟系统官方文档

希望本教程对你有所帮助,祝你学习愉快!🎊

http://www.hskmm.com/?act=detail&tid=19257

相关文章:

  • 微信二次开发文档
  • CSP-S1 2025
  • 金币
  • 课后作业2
  • 加密货币技术革命:揭秘数字复兴时代
  • 详细介绍:CTFshow系列——PHP特性Web113-115(123)
  • 第六篇
  • 6378:删除数组中的元素(链表)
  • DiffDock 环境安装和启用教程
  • [题解]P11533 [NOISG 2023 Finals] Topical
  • day20_修改 删除功能
  • [题解]P10231 [COCI 2023/2024 #4] Putovanje
  • # Windows CMD 基本指令参考手册
  • P13019 [GESP202506 八级] 树上旅行
  • 完整教程:负载均衡式的在线OJ项目编写(二)
  • Java语法基础课程动手动脑及课后实验问题整理文档
  • 安装包制作流程-final
  • 让YOLO飞起来:从CPU到GPU的配置指南
  • 记录这辈子见到的第一道从上到下的树上倍增
  • 06.容器存储 - 教程
  • 1748:约瑟夫问题
  • Ansible + Docker 部署 Apache Nifi 1.28 单用户集群
  • 候机的队伍
  • Keil uVision5 设置 hex 输出路径,不放Objects目录下
  • 垃圾收集器G1ZGC详解
  • 2025海丰杯WP
  • 油猴脚本(tampermonkey)离线安装文件下载,带油猴(tampermonkey)插件清单
  • react useEffect Hook讲解
  • SentinelOne与MITRE ATTCK企业版2025评估的深度解析
  • 详细介绍:Docker的介绍