块存储本质是提供可编程字节阵列,通过LBA寻址、SCSI/iSCSI/NVMe/FC协议直接读写裸块,延迟微秒级、IOPS数十万,需上层自行管理数据布局;文件系统(如XFS、ZFS)在其上构建路径、权限与一致性语义;协议选型重在语义保真与场景匹配:NVMe-oF适配AI集群,FC保障金融核心零丢包,iSCSI平衡虚拟化成本与可靠性。

选型存储介质和底层协议,关键不在参数堆砌,而在匹配数据访问模式。块存储不是“更快的硬盘”,而是把存储当作可编程的字节阵列来用;网络协议决定它能不能被远程可靠调度;文件系统则决定了上层应用怎么安全、高效地组织这些字节。
块存储的本质:逻辑块地址(LBA)即接口
块存储不提供文件、路径或权限概念,只暴露一维地址空间——每个块有唯一LBA,大小通常为512B或4KB。主机通过SCSI、iSCSI、NVMe或FC协议发送READ/WRITE命令,直接读写指定LBA范围。例如Linux中打开/dev/sdb后调用lseek(fd, 4096*1024, SEEK_SET),就是在跳转到第1024个4KB块的起始位置。
这种设计绕过文件系统语义,延迟压到微秒级,IOPS可达数十万,但代价是:操作系统或应用必须自己管理数据布局。数据库(如Oracle ASM)、虚拟机磁盘(如qcow2底层)、容器持久卷(如RBD)都依赖这一特性实现精细控制。
- 本地SSD直连时,NVMe协议最接近物理性能,延迟常低于50μs
- 跨网络场景下,iSCSI在IP网络上成熟稳定,FC在金融核心系统仍占一席之地
- 分布式块存储(如Ceph RBD)用CRUSH算法替代中心元数据节点,实现无单点故障的LBA映射
网络协议选型:不只是带宽,更是语义保真度
块设备远程化,协议决定“像不像本地盘”。iSCSI封装SCSI命令进TCP/IP,支持CHAP认证与多路径(MPIO),但TCP重传会放大延迟抖动;FC基于专用光纤网络,零丢包、低延迟,但成本高、运维复杂;NVMe over Fabrics(NVMe-oF)用RDMA或TCP承载NVMe命令,既保留原生命令语义,又支持远端部署,是新一代高性能云存储底座。
注意:协议本身不解决数据一致性。例如,同一块设备被两个主机同时挂载且未启用集群文件系统(如GFS2、OCFS2),极易因缓存不同步导致数据损坏——协议只负责送达,不管语义协调。
- iSCSI适合中小规模虚拟化平台,配合multipath-tools可实现链路冗余
- FC推荐用于对RPO=0要求严苛的OLTP核心库(如银行交易库)
- NVMe-oF over RDMA适用于AI训练集群,需配套支持RoCEv2的网卡与无损以太网配置
文件系统:在块之上构建可管理的数据世界
文件系统是运行在块设备之上的软件层,负责把线性LBA映射成路径、文件、权限、快照等人类可理解的概念。其核心组件包括:超级块(记录整体状态)、inode(每个文件唯一元数据容器)、数据块指针(直接/间接寻址)、日志(保障崩溃一致性)。以EXT4为例,创建一个文件会分配inode并写入目录项,而删除只是标记inode为空闲,不立即擦除数据。
文件系统选择直接影响扩展性与可靠性。NFS服务器端常用XFS(大文件吞吐优)、ZFS(内建压缩/校验/快照);客户端则依赖NFSv4.1+支持并行I/O与会话恢复;而CephFS这类分布式文件系统,把元数据与数据分离,MDS集群处理路径解析,OSD集群存实际块,从而突破单机文件系统瓶颈。
- 小文件密集场景(如Git仓库、日志归档)慎用EXT4,目录项膨胀易致ls变慢;XFS或Btrfs更稳
- 需要强一致共享读写的,避免NFSv3,改用NFSv4.2或SMB3,支持lease机制与原子重命名
- 超大规模元数据(>1亿文件),传统文件系统难扛,应考虑对象存储+前缀模拟目录,或CephFS分片MDS
三者协同:典型部署链路示意
一块企业级NVMe SSD → 接入Ceph集群,作为OSD提供RBD块设备 → 通过iSCSI网关暴露为/dev/iscsi0 → KVM宿主机用fdisk分区并格式化为XFS → 挂载至/var/lib/libvirt/images存放虚拟机磁盘镜像。整个链路中,NVMe保证底层吞吐,Ceph RBD提供弹性卷管理,iSCSI实现网络接入,XFS支撑上层文件语义——任一环节错配,都会成为瓶颈。

















