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 看到两个新磁盘 |
文件系统正常使用 | ✅ | 可以创建、读取文件 |
重启后自动恢复 | ✅ | 无需手动干预 |
🎉 总结与展望
恭喜你!通过本教程,你已经成功:
- 理解了iSCSI的基本概念 - 知道什么是Target和Initiator
- 配置了完整的存储环境 - 服务器端提供存储,客户端使用存储
- 掌握了两种存储类型 - 文件镜像和物理磁盘的区别和使用
- 解决了实际问题 - 能够排查和解决常见的连接问题
下一步学习建议:
- 深入理解LVM - 学习逻辑卷管理,实现存储的动态扩展
- 探索高可用方案 - 了解多路径IO和故障转移
- 学习存储性能优化 - 调整参数提升读写速度
- 实践备份策略 - 制定数据备份和恢复方案
实用命令备忘:
# 日常管理命令
sudo iscsiadm -m session # 查看连接状态
sudo targetcli ls # 查看服务器配置
df -h | grep storage # 查看存储使用情况# 故障排查命令
sudo journalctl -u iscsid # 查看客户端日志
sudo systemctl status target # 查看服务器状态
版权声明:本文为原创教程,欢迎分享学习,但请注明出处。
问题反馈:如果在实践过程中遇到问题,欢迎在评论区留言,我会及时解答。
相关资源:
- 官方iSCSI文档
- 麒麟系统官方文档
希望本教程对你有所帮助,祝你学习愉快!🎊