935 words
5 minutes
iSCSI 协议解析:架构原理、性能优势与并发写入限制
iSCSI (Internet Small Computer System Interface) 是现代存储区域网络 (SAN) 的核心协议之一。它通过将 SCSI 指令封装于 TCP/IP 数据包中,实现了基于标准以太网的块级存储传输。
本文将从架构层面分析 iSCSI 与传统文件共享协议的区别,探讨其性能优势,并重点解析其在多机并发写入场景下的数据一致性问题。
1. 架构核心:块级存储 (Block) vs 文件存储 (File)
理解 iSCSI 的关键在于界定“文件系统”的管理权归属。
-
文件存储 (NAS - SMB/NFS):
- 管理方:服务端 (Storage Server)。
- 机制:客户端请求特定文件(File Level),服务端处理磁盘 I/O 和元数据,返回文件流。
- 特征:抽象层级高,客户端只能看到文件夹。
-
iSCSI (SAN - Block Storage):
- 管理方:客户端 (Initiator)。
- 机制:服务端仅提供裸逻辑单元 (LUN)。客户端操作系统将其识别为本地物理硬盘,并自行负责分区和格式化(如 NTFS/EXT4)。
- 特征:抽象层级低,传输的是扇区(Sector)数据。
2. iSCSI 的技术优势
相比文件级协议,iSCSI 在特定场景下具有不可替代的优势:
-
操作系统级兼容性 由于被识别为本地块设备,iSCSI 能够支持不支持网络驱动器的应用(如 Oracle 数据库、Exchange Server、底层反作弊驱动)。
-
高性能传输
-
低开销:直接封装 SCSI 指令,无应用层协议(如 SMB 头部)的复杂封装。
-
链路优化:原生支持 MPIO (多路径 I/O) 实现负载均衡与故障切换;支持 Jumbo Frames (巨型帧) 提升有效载荷效率。
-
-
支持无盘引导 (Boot from SAN) 支持通过 PXE/iPXE 直接挂载远程 LUN 作为系统启动盘,是网吧无盘系统、云计算节点和 VDI 架构的基础。
3. 关键限制:多机并发写入与数据腐败
iSCSI 最显著的风险在于多 Initiator 同时读写同一个 LUN。在非集群文件系统下,此操作将直接导致数据永久损坏。
3.1 故障原理:元数据不同步
常规文件系统(NTFS, EXT4, XFS)设计时假定拥有磁盘的独占控制权。
- 缓存机制:主机 A 读取磁盘的文件分配表(元数据),并缓存在本地内存中。
- 不可见性:主机 B 对磁盘进行了写入,修改了元数据。
- 覆写导致损坏:主机 A 并不知道磁盘状态已变,继续基于旧的内存缓存计算写入位置,直接覆盖了主机 B 的数据,导致文件系统索引崩溃。
3.2 解决方案
若需实现 iSCSI 的多机共享写入,必须采用以下方案之一:
- 集群文件系统 (Cluster File System):使用 VMFS (VMware), GFS2 (RedHat), OCFS2 (Oracle)。这些系统引入了分布式锁管理器 (DLM),强制主机在写入前同步元数据状态。
- 读写分离架构 (COW):如网吧无盘模式。多机只读挂载同一镜像,写入操作通过 Copy-on-Write 重定向至服务器端的独立临时区域。
4. 技术总结
| 维度 | iSCSI (Block) | SMB / NFS (File) |
|---|---|---|
| 传输层级 | 块 / 扇区 (SCSI over TCP) | 文件流 (Application Layer) |
| 文件系统维护 | 客户端 OS | 服务端 OS |
| 并发写入 | 不支持 (需集群文件系统) | 原生支持 (服务端处理文件锁) |
| 适用场景 | 数据库、虚拟化存储、无盘启动 | 办公协作、文件归档、媒体流 |
结论:iSCSI 适用于对性能、底层兼容性有极高要求的场景,但在多机协同环境中,必须严格规避并发写入风险。
iSCSI 协议解析:架构原理、性能优势与并发写入限制
https://blog.hanzogenji.cn/posts/iscsi/