目录
第12章 异军突起——存储网络的新军IP SAN
开篇:平民的逆袭
12.1 横眉冷对——TCP/IP与FC的哲学之争
12.2 自叹不如——为何最初的以太网+TCP/IP不行?
12.3 天生我才必有用——攻陷Disk SAN阵地
12.4 iSCSI交互过程详析
12.4.1 iSCSI协议栈与核心概念
12.4.2 三个阶段深入解析
第一阶段:发现与登录——建立信任通道
第二阶段:SCSI命令执行——封装的智慧
第三阶段:连接与会话管理
12.5 iSCSI性能进化论:从软到硬的飞跃
12.6 实战:配置一个高性能iSCSI SAN
场景:
步骤1:存储端配置(Target, 使用targetcli)
步骤2:启动器端配置(Initiator, Linux)
步骤3:验证与测试
12.7 增强以太网和TCP/IP的性能:iSCSI的基石革命
12.8 FC SAN节节败退?真实的竞争格局
本章结语:开放的力量
第12章 异军突起——存储网络的新军IP SAN
开篇:平民的逆袭
在存储网络的贵族世界里,光纤通道如同精心建造的专用高速公路:性能卓越、规则严格、通行可靠,但造价高昂,且自成一体,与普通的“国道省道”(数据网络)互不相通。
然而,数据中心里还有一个更庞大、更通用的网络帝国——以太网和TCP/IP。能否在这张无处不在的“公共路网”上,开辟出一条同样可靠、足够快速的“货运专线”,以极低的成本承载存储流量?
iSCSI协议给出了响亮的回答。本章,我们将深入剖析这位存储网络的“平民英雄”,看它如何巧妙利用通用网络基础设施,掀起一场席卷全球的存储民主化革命,并持续进化为挑战传统王座的强大新军。
12.1 横眉冷对——TCP/IP与FC的哲学之争
在iSCSI诞生之初,FC SAN阵营对其嗤之以鼻。两者的核心差异,源于底层网络哲学的截然不同:
| 特性维度 | 光纤通道网络 | TCP/IP网络 (传统认知) |
|---|---|---|
| 设计初衷 | 为存储而生,追求确定性、无损、低延迟。 | 为通用数据通信而生,追求灵活性、可扩展性、鲁棒性。 |
| 流量控制 | 基于信用的链路级缓冲,硬件实现,确保帧级不丢包。 | 基于窗口的端到端拥塞控制,软件实现,允许丢包并通过重传恢复。 |
| 延迟 | 微秒级,稳定可预测。协议栈精简,处理在专用硬件中进行。 | 毫秒级,存在波动。协议栈复杂,经过操作系统多次上下文切换和拷贝。 |
| 网络视图 | 静态、封闭。设备登录后,拓扑相对固定,安全性基于物理隔离和分区。 | 动态、开放。路由可变,设备可自由加入离开,安全性需额外配置。 |
| 生态与成本 | 专用硬件,封闭生态,成本极高。 | 通用硬件,开放生态,成本极低。 |
核心矛盾点:存储I/O,尤其是写入,对丢包和延迟抖动极度敏感。FC从底层硬件保证了这一点,而传统TCP/IP网络“尽力而为”的特性和复杂的协议栈,似乎天生不适合存储。
12.2 自叹不如——为何最初的以太网+TCP/IP不行?
早期的1GbE网络和通用CPU运行软件iSCSI启动器,确实无法与FC抗衡,原因有三:
协议栈开销:一个SCSI命令需要经过操作系统内核的SCSI层、TCP/IP栈,再封装成以太网帧。这个过程涉及多次内存拷贝和上下文切换,CPU占用率高,延迟大。
TCP卸载难题:TCP的校验和、分段、重传等复杂计算都由主机CPU完成,成为巨大负担。
网络不确定性:共享的、拥塞的IP网络无法提供FC那样的无损和确定性延迟,一次丢包触发的TCP重传会导致存储命令超时,用户体验为“卡顿”。
因此,iSCSI最初只能在次要应用或中小环境中寻找立足之地。
12.3 天生我才必有用——攻陷Disk SAN阵地
然而,iSCSI拥有FC无法比拟的先天优势,这些优势随着时间推移和技术发展,逐渐转化为胜势:
成本优势:这是最致命的武器。iSCSI使用标准以太网交换机、网卡和线缆,价格远低于FC专用的HBA卡、交换机和光模块。CAPEX(资本性支出)大幅下降。
技能普及:TCP/IP和以太网的管理知识几乎是IT工程师的标配,而FC则需要专门技能。这降低了OPEX(运营性支出)和部署门槛。
无距离限制:借助IP路由,iSCSI可以轻松跨越局域网、城域网甚至互联网,实现远程复制和容灾,而FC的距离扩展(即使通过FCIP)要复杂得多。
网络融合潜力:iSCSI使得存储网络和数据网络最终融合在统一的以太网基础设施上成为可能,简化了数据中心架构。
当10GbE、25GbE甚至更高速率的以太网普及,并且数据中心交换机在吞吐、延迟上逼近甚至超越FC交换机时,iSCSI的性能瓶颈就主要集中在协议处理开销上了。而这项瓶颈,正在被持续攻克。
12.4 iSCSI交互过程详析
理解iSCSI,核心是理解它如何将SCSI的“命令-数据-状态”模型,映射到TCP/IP的“连接-会话”模型上。
12.4.1 iSCSI协议栈与核心概念
+---------------------------------+ | SCSI 应用 (数据库, 文件系统) | +---------------------------------+ | SCSI 命令集 | +---------------------------------+ | iSCSI 协议层 | <- **核心:封装/解封装SCSI CDB** | (会话管理, PDU构建/解析) | +---------------------------------+ | TCP | +---------------------------------+ | IP | +---------------------------------+ | 以太网 | +---------------------------------+
iSCSI节点:一个iSCSI设备,可以是启动器或目标器。
iSCSI限定名:全球唯一的标识符,格式为
iqn.日期.域名反写:自定义标识(如iqn.2024-08.com.example:server01)。会话:一个TCP连接(或多个连接捆绑)之上建立的逻辑通信上下文,用于承载一个或多个SCSI任务。
PDU:协议数据单元,iSCSI协议层的“包”。SCSI命令、数据、状态都被封装在特定的PDU中传输。
12.4.2 三个阶段深入解析
第一阶段:发现与登录——建立信任通道
发现:启动器如何找到目标器?
静态配置:手动输入目标器的IP地址和端口(默认3260)。
动态发现:向指定的发现服务器发送请求,获取可用目标器列表。
登录:这是关键的协商过程。
启动器发起TCP连接到目标器的3260端口。
双方交换登录PDU,协商关键参数:会话类型(普通/发现)、认证方式、数据段长度、是否支持即时数据/相位转移等高级功能。
登录成功后,进入全功能相,可以开始SCSI命令传输。
第二阶段:SCSI命令执行——封装的智慧
以一个读取请求为例,流程如下:
关键点:
即时数据:小型数据(如SCSI命令的写数据)可以直接嵌入Command PDU中发送,减少交互次数。
相位转移:在一次会话内,无缝地在命令、数据输入、数据输出等不同“相位”间切换,高效利用连接。
第三阶段:连接与会话管理
多重连接:一个iSCSI会话可以绑定多个TCP连接,用于负载均衡和故障转移。
心跳与超时:通过定时发送NOP-Out/NOP-InPDU作为心跳,检测连接健康,并在故障时触发恢复流程。
12.5 iSCSI性能进化论:从软到硬的飞跃
iSCSI性能的提升,是一部典型的“硬件卸载”进化史。
| 进化阶段 | 实现方式 | CPU占用 | 延迟 | 适用场景 |
|---|---|---|---|---|
| 软件启动器 | 操作系统驱动实现全部iSCSI/TCP/IP栈 | 极高 | 高且波动 | 测试、轻负载 |
| TOE网卡 | 网卡硬件卸载TCP/IP校验和、分段等 | 高 | 中 | 早期优化尝试 |
| iSCSI HBA | 专用卡,硬件处理全部iSCSI及TCP/IP协议 | 极低 | 低 | 高性能生产环境 |
| 融合网络适配器 | 单卡同时支持iSCSI、FCoE和普通以太网,硬件卸载 | 极低 | 低 | 融合数据中心 |
现代优化技术集合:
巨型帧:将以太网帧从1500字节提升至9000字节,减少协议封装开销和中断次数,显著提升大块顺序传输吞吐量。
多路径I/O:与FC SAN一样,iSCSI启动器通过多个网络端口连接到目标器,实现负载均衡和路径故障切换。
MPIO与MC/S:MPIO是操作系统层面的多路径管理;MC/S是iSCSI协议层面的多连接会话,两者结合提供更强大的冗余与性能。
12.6 实战:配置一个高性能iSCSI SAN
我们以Linux环境为例,配置一个支持多路径的高可用iSCSI存储。
场景:
存储服务器(目标器):IP:
192.168.1.10,192.168.2.10(双网卡,不同子网)应用服务器(启动器):IP:
192.168.1.20,192.168.2.20要求:为应用服务器提供一个1TB的iSCSI LUN,并通过多路径实现高可用。
步骤1:存储端配置(Target, 使用targetcli)
# 安装target框架 sudo apt-get install targetcli-fb # Ubuntu/Debian sudo yum install targetcli # RHEL/CentOS # 进入交互式配置界面 sudo targetcli # 在targetcli中执行: /> backstores/block create disk01 /dev/sdb1 # 创建块后端存储,指向物理分区或LVM卷 /> iscsi/ create iqn.2024-08.com.example.storage:target01 # 创建iSCSI目标 /> iscsi/iqn.2024-08.../tpg1/luns/ create /backstores/block/disk01 # 创建LUN /> iscsi/iqn.2024-08.../tpg1/acls/ create iqn.2024-08.com.example.host:initiator01 # 设置ACL,只允许指定启动器访问 /> iscsi/iqn.2024-08.../tpg1/portals/ create 192.168.1.10 # 创建第一个监听门户 /> iscsi/iqn.2024-08.../tpg1/portals/ create 192.168.2.10 # 创建第二个监听门户(关键!) /> saveconfig # 保存配置 /> exit
步骤2:启动器端配置(Initiator, Linux)
# 1. 安装启动器软件 sudo apt-get install open-iscsi # 2. 编辑启动器名称,与存储端ACL匹配 sudo vim /etc/iscsi/initiatorname.iscsi InitiatorName=iqn.2024-08.com.example.host:initiator01 # 3. 发现目标器(从两个网络路径) sudo iscsiadm -m discovery -t st -p 192.168.1.10 sudo iscsiadm -m discovery -t st -p 192.168.2.10 # 应看到同一个目标IQN出现两次,但地址不同 # 4. 登录目标 sudo iscsiadm -m node -T iqn.2024-08...:target01 -l # 5. 此时应看到新磁盘,例如 /dev/sdb lsblk # 6. 安装多路径软件 sudo apt-get install multipath-tools sudo systemctl enable multipathd sudo systemctl start multipathd # 7. 配置多路径(/etc/multipath.conf) # 通常默认配置即可,系统会自动将来自两个IP路径的同一LUN聚合 # 查看多路径设备 sudo multipath -ll # 你会看到一个mpath设备(如 /dev/mapper/mpatha)聚合了两个路径 # 8. 现在可以对 /dev/mapper/mpatha 进行分区、创建文件系统并挂载 sudo mkfs.ext4 /dev/mapper/mpatha sudo mount /dev/mapper/mpatha /mnt/iscsi_data
步骤3:验证与测试
# 1. 查看多路径状态 sudo multipath -ll # 应显示两条路径均为“active/ready” # 2. 模拟故障测试 # 在应用服务器上拔掉192.168.1.x网口的网线 sudo multipath -ll # 应显示一条路径失效,但I/O通过另一条路径持续进行 # 3. 性能测试(使用fio) sudo apt-get install fio fio --name=randwrite --ioengine=libaio --rw=randwrite --bs=4k --size=1G --numjobs=4 --time_based --runtime=60 --group_reporting --filename=/mnt/iscsi_data/test
12.7 增强以太网和TCP/IP的性能:iSCSI的基石革命
iSCSI的终极潜力,依赖于其底层网络——以太网和TCP/IP本身的进化。这正是第11章所铺垫的:
数据中心桥接:PFC和ETS使以太网具备无损传输能力,从根本上解决了丢包问题。
更快的以太网:25GbE、100GbE、400GbE提供了远超传统FC的带宽。
RDMA over Converged Ethernet:RoCE v2允许iSCSI的继承者——NVMe-oF,绕过TCP/IP协议栈,实现接近本地PCIe的延迟,这是对FC的降维打击。
12.8 FC SAN节节败退?真实的竞争格局
iSCSI并未、也未必能完全取代FC SAN。当前的格局是分层与融合:
核心层:对延迟和确定性要求极度严苛的核心OLTP数据库、高频交易系统等,FC SAN和新兴的NVMe/FC仍占据统治地位。
主流与企业级:虚拟化、企业级数据库、ERP/CRM应用、私有云平台,iSCSI(特别是基于10/25GbE)已经成为绝对主流,因其在性能足够的前提下,提供了最佳的成本效益和灵活性。
边缘与中小型:iSCSI是毫无疑问的王者,其简易性和低成本无可匹敌。
未来:基于NVMe-oF over TCP的解决方案正在兴起,它继承了iSCSI的IP网络优势,同时引入了更高效的NVMe协议,有望在性能上进一步逼近FC,并最终推动存储网络在IP协议上实现全面统一。
本章结语:开放的力量
iSCSI的成功,是开放架构战胜封闭专有系统的经典案例。它证明了,通过持续的技术创新和生态协作,基于通用、标准的组件,完全可以构建出满足企业级关键业务需求的存储基础设施。
它的意义远不止于提供了一种廉价的SAN选择。它真正推动了数据中心网络的融合,降低了存储技术的门槛,并为云计算时代的软件定义存储和超融合基础设施铺平了道路。iSCSI,这位存储网络的新军,以其顽强的生命力和持续的进化能力,深刻地改变了存储世界的版图,并仍在继续书写着未来。