iSCSI远程块存储配置实验
2025.09.18 18:54浏览量:4简介:本文通过详细实验步骤与代码示例,系统阐述iSCSI协议下远程块存储的配置方法,涵盖网络环境搭建、目标器与启动器配置、性能优化及故障排查等关键环节,为开发者提供可复用的技术指南。
iSCSI远程块存储配置实验:从基础到实践的全流程指南
一、实验背景与目标
随着云计算和分布式系统的普及,企业对存储资源的需求从本地化向网络化、共享化演进。iSCSI(Internet Small Computer System Interface)作为一种基于TCP/IP协议的块级存储技术,通过将SCSI命令封装在IP数据包中,实现了低成本、高扩展性的远程存储访问。本实验旨在通过实际配置过程,验证iSCSI远程块存储的可行性,并分析其性能特点与优化空间。
实验目标:
- 搭建iSCSI目标器(Target)与启动器(Initiator)环境;
- 实现Linux与Windows系统下的存储挂载与数据读写;
- 测试iSCSI存储的性能指标(吞吐量、延迟);
- 总结常见问题与解决方案。
二、实验环境准备
2.1 硬件与软件要求
- 目标器(服务器端):
- 操作系统:Linux(Ubuntu 22.04 LTS)或Windows Server 2022;
- 存储设备:至少一块未分配的磁盘(如
/dev/sdb); - 软件:
targetcli-fb(Linux)或Windows内置iSCSI目标服务。
- 启动器(客户端):
- 操作系统:Linux(Ubuntu 22.04 LTS)或Windows 10/11;
- 软件:
open-iscsi(Linux)或Windows iSCSI发起程序。
- 网络要求:
- 千兆以太网,确保目标器与启动器在同一子网或通过路由可达。
2.2 网络拓扑设计
实验采用典型的主从架构:
- 目标器IP:192.168.1.100(Linux)或192.168.1.101(Windows);
- 启动器IP:192.168.1.200(Linux)或192.168.1.201(Windows);
- 关闭防火墙或放行iSCSI默认端口(TCP 3260)。
三、iSCSI目标器配置
3.1 Linux目标器配置(以Ubuntu为例)
步骤1:安装目标服务
sudo apt updatesudo apt install -y targetcli-fb
步骤2:创建iSCSI目标与LUN
sudo targetcli
进入交互式界面后执行:
# 创建后端存储(使用/dev/sdb)/backstores/block create name=block_disk dev=/dev/sdb# 创建iSCSI目标(IQN格式)/iscsi create iqn.2023-06.com.example:storage.target01# 创建ACL(允许特定启动器访问)/iscsi/iqn.2023-06.com.example:storage.target01/tpg1/acls create iqn.2023-06.com.example:client.initiator01# 创建LUN并关联后端存储/iscsi/iqn.2023-06.com.example:storage.target01/tpg1/luns create /backstores/block/block_disk# 保存配置并退出saveconfigexit
步骤3:启动服务
sudo systemctl restart targetsudo systemctl enable target
3.2 Windows目标器配置
- 通过“服务器管理器”安装“iSCSI目标服务器”角色;
- 打开“iSCSI目标”管理界面,右键选择“新建iSCSI目标”;
- 输入目标名称(如
iqn.2023-06.com.example:storage.target01); - 添加启动器IQN(通过客户端获取);
- 创建虚拟磁盘(VHD或物理磁盘),关联至目标。
四、iSCSI启动器配置
4.1 Linux启动器配置
步骤1:安装客户端软件
sudo apt install -y open-iscsi
步骤2:发现目标
sudo iscsiadm -m discovery -t st -p 192.168.1.100
输出示例:
192.168.1.100:3260,1 iqn.2023-06.com.example:storage.target01
步骤3:登录目标
sudo iscsiadm -m node --targetname iqn.2023-06.com.example:storage.target01 --portal 192.168.1.100:3260 --login
步骤4:挂载存储
# 查看识别的磁盘lsblk# 格式化并挂载(假设为/dev/sdb)sudo mkfs.ext4 /dev/sdbsudo mkdir /mnt/iscsisudo mount /dev/sdb /mnt/iscsi
4.2 Windows启动器配置
- 打开“iSCSI发起程序”(控制面板→管理工具);
- 在“发现”选项卡中输入目标器IP(192.168.1.100);
- 在“目标”选项卡中选择发现的目标,点击“连接”;
- 初始化磁盘并分配驱动器号(通过“磁盘管理”)。
五、性能测试与优化
5.1 基准测试工具
- Linux:
fio(灵活I/O测试工具)sudo apt install -y fiofio --name=seq_read --rw=read --direct=1 --bs=4k --size=1G --numjobs=4 --runtime=60 --filename=/mnt/iscsi/testfile
- Windows:CrystalDiskMark或DiskSpd。
5.2 性能优化建议
- 多路径配置:通过
device-mapper-multipath实现故障转移与负载均衡; - MTU调整:将网络接口MTU设置为9000(Jumbo Frame)以减少分片;
- CHAP认证:启用双向CHAP增强安全性(需在目标器与启动器配置中同步设置)。
六、故障排查与常见问题
6.1 连接失败
- 现象:
iscsiadm登录超时或Windows显示“连接失败”; - 排查步骤:
- 检查目标器服务是否运行(
systemctl status target); - 验证网络连通性(
ping 192.168.1.100); - 检查防火墙规则(
sudo ufw status或Windows防火墙设置)。
- 检查目标器服务是否运行(
6.2 读写延迟高
- 可能原因:
- 网络带宽不足;
- 后端存储性能瓶颈;
- 协议开销(iSCSI未优化)。
- 解决方案:
- 使用
iperf3测试网络吞吐量; - 更换高性能存储设备(如SSD);
- 启用iSCSI卸载(需硬件支持)。
- 使用
七、实验总结与扩展应用
7.1 实验成果
通过本次实验,成功实现了:
- Linux与Windows系统间的iSCSI存储共享;
- 平均读写吞吐量达120MB/s(千兆网络下);
- 存储挂载后可作为本地磁盘使用。
7.2 扩展应用场景
- 虚拟化环境:为VMware/KVM虚拟机提供共享存储;
- 数据库集群:构建高可用存储后端(如MySQL Group Replication);
- 备份归档:集中存储企业备份数据。
7.3 未来改进方向
- 探索iSER(iSCSI over RDMA)技术以降低延迟;
- 结合Ceph等分布式存储系统实现弹性扩展;
- 研究NVMe-oF(NVMe over Fabrics)对iSCSI的替代潜力。
结语:iSCSI远程块存储技术以其低成本、易部署的特点,成为中小企业存储网络化的理想选择。通过本实验的详细步骤与问题解析,开发者可快速掌握核心配置方法,并基于实际需求进一步优化性能与可靠性。

发表评论
登录后可评论,请前往 登录 或 注册