logo

iSCSI远程块存储配置实验

作者:菠萝爱吃肉2025.09.18 18:54浏览量:4

简介:本文通过详细实验步骤与代码示例,系统阐述iSCSI协议下远程块存储的配置方法,涵盖网络环境搭建、目标器与启动器配置、性能优化及故障排查等关键环节,为开发者提供可复用的技术指南。

iSCSI远程块存储配置实验:从基础到实践的全流程指南

一、实验背景与目标

随着云计算和分布式系统的普及,企业对存储资源的需求从本地化向网络化、共享化演进。iSCSI(Internet Small Computer System Interface)作为一种基于TCP/IP协议的块级存储技术,通过将SCSI命令封装在IP数据包中,实现了低成本、高扩展性的远程存储访问。本实验旨在通过实际配置过程,验证iSCSI远程块存储的可行性,并分析其性能特点与优化空间。

实验目标

  1. 搭建iSCSI目标器(Target)与启动器(Initiator)环境;
  2. 实现Linux与Windows系统下的存储挂载与数据读写;
  3. 测试iSCSI存储的性能指标(吞吐量、延迟);
  4. 总结常见问题与解决方案。

二、实验环境准备

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:安装目标服务

  1. sudo apt update
  2. sudo apt install -y targetcli-fb

步骤2:创建iSCSI目标与LUN

  1. sudo targetcli

进入交互式界面后执行:

  1. # 创建后端存储(使用/dev/sdb)
  2. /backstores/block create name=block_disk dev=/dev/sdb
  3. # 创建iSCSI目标(IQN格式)
  4. /iscsi create iqn.2023-06.com.example:storage.target01
  5. # 创建ACL(允许特定启动器访问)
  6. /iscsi/iqn.2023-06.com.example:storage.target01/tpg1/acls create iqn.2023-06.com.example:client.initiator01
  7. # 创建LUN并关联后端存储
  8. /iscsi/iqn.2023-06.com.example:storage.target01/tpg1/luns create /backstores/block/block_disk
  9. # 保存配置并退出
  10. saveconfig
  11. exit

步骤3:启动服务

  1. sudo systemctl restart target
  2. sudo systemctl enable target

3.2 Windows目标器配置

  1. 通过“服务器管理器”安装“iSCSI目标服务器”角色;
  2. 打开“iSCSI目标”管理界面,右键选择“新建iSCSI目标”;
  3. 输入目标名称(如iqn.2023-06.com.example:storage.target01);
  4. 添加启动器IQN(通过客户端获取);
  5. 创建虚拟磁盘(VHD或物理磁盘),关联至目标。

四、iSCSI启动器配置

4.1 Linux启动器配置

步骤1:安装客户端软件

  1. sudo apt install -y open-iscsi

步骤2:发现目标

  1. sudo iscsiadm -m discovery -t st -p 192.168.1.100

输出示例:

  1. 192.168.1.100:3260,1 iqn.2023-06.com.example:storage.target01

步骤3:登录目标

  1. sudo iscsiadm -m node --targetname iqn.2023-06.com.example:storage.target01 --portal 192.168.1.100:3260 --login

步骤4:挂载存储

  1. # 查看识别的磁盘
  2. lsblk
  3. # 格式化并挂载(假设为/dev/sdb)
  4. sudo mkfs.ext4 /dev/sdb
  5. sudo mkdir /mnt/iscsi
  6. sudo mount /dev/sdb /mnt/iscsi

4.2 Windows启动器配置

  1. 打开“iSCSI发起程序”(控制面板→管理工具);
  2. 在“发现”选项卡中输入目标器IP(192.168.1.100);
  3. 在“目标”选项卡中选择发现的目标,点击“连接”;
  4. 初始化磁盘并分配驱动器号(通过“磁盘管理”)。

五、性能测试与优化

5.1 基准测试工具

  • Linuxfio(灵活I/O测试工具)
    1. sudo apt install -y fio
    2. fio --name=seq_read --rw=read --direct=1 --bs=4k --size=1G --numjobs=4 --runtime=60 --filename=/mnt/iscsi/testfile
  • Windows:CrystalDiskMark或DiskSpd。

5.2 性能优化建议

  1. 多路径配置:通过device-mapper-multipath实现故障转移与负载均衡
  2. MTU调整:将网络接口MTU设置为9000(Jumbo Frame)以减少分片;
  3. CHAP认证:启用双向CHAP增强安全性(需在目标器与启动器配置中同步设置)。

六、故障排查与常见问题

6.1 连接失败

  • 现象iscsiadm登录超时或Windows显示“连接失败”;
  • 排查步骤
    1. 检查目标器服务是否运行(systemctl status target);
    2. 验证网络连通性(ping 192.168.1.100);
    3. 检查防火墙规则(sudo ufw status或Windows防火墙设置)。

6.2 读写延迟高

  • 可能原因
    • 网络带宽不足;
    • 后端存储性能瓶颈;
    • 协议开销(iSCSI未优化)。
  • 解决方案
    • 使用iperf3测试网络吞吐量;
    • 更换高性能存储设备(如SSD);
    • 启用iSCSI卸载(需硬件支持)。

七、实验总结与扩展应用

7.1 实验成果

通过本次实验,成功实现了:

  • Linux与Windows系统间的iSCSI存储共享;
  • 平均读写吞吐量达120MB/s(千兆网络下);
  • 存储挂载后可作为本地磁盘使用。

7.2 扩展应用场景

  1. 虚拟化环境:为VMware/KVM虚拟机提供共享存储;
  2. 数据库集群:构建高可用存储后端(如MySQL Group Replication);
  3. 备份归档:集中存储企业备份数据。

7.3 未来改进方向

  1. 探索iSER(iSCSI over RDMA)技术以降低延迟;
  2. 结合Ceph等分布式存储系统实现弹性扩展;
  3. 研究NVMe-oF(NVMe over Fabrics)对iSCSI的替代潜力。

结语:iSCSI远程块存储技术以其低成本、易部署的特点,成为中小企业存储网络化的理想选择。通过本实验的详细步骤与问题解析,开发者可快速掌握核心配置方法,并基于实际需求进一步优化性能与可靠性。

相关文章推荐

发表评论

活动