块存储是什么
块存储的本质是「把地址空间借给主机」:存储侧只负责按地址读写固定大小的块,不认识文件、目录和权限,文件系统、卷管理与缓存全部由主机操作系统承担。主机看到一块未格式化的块设备,可以建 ext4、XFS、NTFS,也可以交给数据库直接裸设备管理。正因为存储侧不做语义解析,路径最短、时延最低,随机小 IO 的 IOPS 也最容易做到硬件极限;代价是块设备天生属于一台主机,想多机共享必须引入集群文件系统或集群软件。
基本信息
| 访问接口 | 本机总线(SAS/SATA/NVMe)、IP-SAN(iSCSI)、FC-SAN、NVMe-oF |
|---|---|
| 交付单位 | 卷 / LUN,容量按固定块大小(常见 512B、4KB)寻址 |
| 命名空间 | 由主机侧文件系统或裸设备管理,存储侧不可见 |
| 共享能力 | 默认单主机;多主机需集群文件系统(如 GFS2、OCFS2)或集群软件 |
| 典型时延 | 本机 NVMe 微秒级,iSCSI 与 FC 在百微秒到毫秒级 |
常见交付方式对比
| 方式 | 承载网络 | 特点 |
|---|---|---|
| 本机直连 | SAS/SATA/NVMe 线缆 | 时延最低、成本最低,无法跨机共享 |
| iSCSI | 以太网 | 复用现网、成本可控,受网络抖动影响 |
| FC-SAN | 光纤通道 | 稳定低时延,需专用交换机与 HBA |
| NVMe-oF | RDMA 或 TCP | 接近本机 NVMe 的时延,对网络要求高 |
典型使用场景
- 关系型数据库:数据文件需要低时延随机写与可控的 fsync 行为,块设备最合适
- 虚拟化平台:虚拟机磁盘镜像放在共享块存储上,配合集群文件系统或集群软件实现迁移与高可用
- 裸设备场景:自管理缓存的数据库或专用软件希望绕过文件系统与页缓存
- 高性能计算与日志中间件:对顺序吞吐与写放大敏感,需要控制块大小与队列深度
- 启动盘与系统盘:本地 SSD 或 RAID 卷承载操作系统,运维最直接
块设备扩容后主机侧通常还要执行在线扩容(如 growpart、xfs_growfs、resize2fs)才能把新空间用起来;不同文件系统对在线扩容的支持范围不同,扩容前先确认。
同一个 LUN 挂给两台主机直接读写会让文件系统元数据互相覆盖,最终整卷损坏。需要多机共享时选集群文件系统,或改用文件存储与对象存储。