iSCSI远程块存储配置实验:从理论到实践的完整指南
2025.09.18 18:54浏览量:27简介:本文详细阐述了iSCSI远程块存储的配置实验过程,从基础概念到实际部署,为开发者及系统管理员提供了全面的技术指导。通过理论解析与实验步骤结合,帮助读者掌握iSCSI的核心原理及配置技巧。
iSCSI远程块存储配置实验:从理论到实践的完整指南
引言
随着云计算与分布式存储技术的快速发展,iSCSI(Internet Small Computer System Interface)作为一种基于IP网络的块级存储协议,因其低成本、高扩展性和易管理性,成为企业存储架构中的重要组成部分。本文通过iSCSI远程块存储配置实验,深入探讨其技术原理、配置流程及优化策略,为开发者及系统管理员提供可落地的实践指南。
iSCSI技术基础
1.1 iSCSI协议概述
iSCSI通过TCP/IP网络传输SCSI命令,将物理存储设备(如磁盘阵列)虚拟化为网络可访问的块设备。其核心优势在于:
- 兼容性:与现有SCSI协议无缝兼容,无需修改上层应用。
- 成本效益:利用标准以太网基础设施,降低硬件投入。
- 灵活性:支持跨地域存储共享,适用于分布式系统。
1.2 iSCSI架构组成
- Initiator(发起端):客户端设备(如服务器),通过iSCSI驱动访问远程存储。
- Target(目标端):存储设备或服务端,提供块存储资源。
- 网络传输层:基于TCP/IP协议,确保数据可靠传输。
实验环境准备
2.1 硬件与软件要求
- 硬件:两台物理/虚拟机(一台作为Target,一台作为Initiator),千兆以太网连接。
- 软件:
- Target端:Linux系统(如Ubuntu 22.04)+
tgt或LIO软件包。 - Initiator端:Linux/Windows系统 +
open-iscsi或原生iSCSI驱动。
- Target端:Linux系统(如Ubuntu 22.04)+
2.2 网络拓扑设计
- 采用独立VLAN或专用存储网络,避免与业务流量冲突。
- 配置静态IP地址,确保Target与Initiator网络互通。
iSCSI Target端配置
3.1 安装与配置Target服务
以Ubuntu系统为例,安装tgt服务:
sudo apt updatesudo apt install tgt
3.2 创建iSCSI Target
编辑/etc/tgt/conf.d/example.conf文件,定义Target参数:
<target iqn.2024-01.com.example:storage.target1>backing-store /dev/sdb1 # 指定后端存储设备initiator-address 192.168.1.100 # 允许访问的Initiator IPlun 0 # 逻辑单元号</target>
3.3 启动Target服务
sudo systemctl start tgtsudo systemctl enable tgt
3.4 验证Target状态
sudo tgtadm --lld iscsi --op show --mode target
输出应显示已创建的Target及其LUN信息。
iSCSI Initiator端配置
4.1 安装Initiator软件
- Linux:
sudo apt install open-iscsi
- Windows:通过“iSCSI发起程序”控制面板安装。
4.2 发现Target
sudo iscsiadm -m discovery -t st -p <Target_IP># 示例:sudo iscsiadm -m discovery -t st -p 192.168.1.200
4.3 登录Target
sudo iscsiadm -m node --targetname "iqn.2024-01.com.example:storage.target1" --login
4.4 持久化配置
编辑/etc/iscsi/iscsid.conf,设置自动重连等参数:
node.startup = automatic
存储设备挂载与测试
5.1 识别新设备
登录后,通过lsblk或fdisk -l查看新增的块设备(如/dev/sdb)。
5.2 格式化与挂载
sudo mkfs.ext4 /dev/sdb # 格式化为ext4文件系统sudo mkdir /mnt/iscsisudo mount /dev/sdb /mnt/iscsi # 挂载到目录
5.3 性能测试
使用fio工具测试I/O性能:
sudo apt install fiofio --name=seq_read --rw=read --direct=1 --bs=4k --size=1G --numjobs=4 --runtime=60 --group_reporting --filename=/mnt/iscsi/testfile
高级配置与优化
6.1 多路径配置
通过device-mapper-multipath实现故障转移:
sudo apt install multipath-toolssudo mpathconf --enable
6.2 CHAP认证
在Target端配置CHAP用户名与密码:
<target iqn.2024-01.com.example:storage.target1>incominguser <username> <password>outgoinguser <username> <password></target>
在Initiator端同步配置:
sudo iscsiadm -m node --targetname "iqn.2024-01.com.example:storage.target1" --op update --name node.session.auth.authmethod --value=CHAPsudo iscsiadm -m node --targetname "iqn.2024-01.com.example:storage.target1" --op update --name node.session.auth.username --value=<username>sudo iscsiadm -m node --targetname "iqn.2024-01.com.example:storage.target1" --op update --name node.session.auth.password --value=<password>
6.3 性能调优
- TCP参数优化:调整
/etc/sysctl.conf中的net.ipv4.tcp_window_scaling和net.core.rmem_max。 - iSCSI队列深度:通过
/sys/block/sdX/queue/nr_requests调整I/O队列长度。
故障排查与日志分析
7.1 常见问题
- 连接失败:检查防火墙规则(
sudo ufw status),确保开放3260端口。 - 性能瓶颈:使用
iostat -x 1监控磁盘I/O延迟。
7.2 日志收集
- Target端日志:
/var/log/tgt/tgt.log - Initiator端日志:
/var/log/syslog或journalctl -u iscsid
结论
通过本实验,读者可掌握iSCSI远程块存储的核心配置流程,包括Target/Initiator部署、网络优化及安全认证。实际生产环境中,需结合业务需求进一步调整参数(如队列深度、多路径策略),以实现高可用与高性能的存储架构。
扩展建议:
- 探索iSCSI与Kubernetes的集成(如CSI驱动)。
- 研究基于iSCSI的超融合基础设施(HCI)解决方案。
本文提供的配置步骤与优化策略,可直接应用于企业存储升级或开发测试环境,助力技术团队高效落地iSCSI技术。

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