分布式存储系统架构设计:对象存储、块存储、文件存储的对比与选型
本节聚焦面试中最常出现的存储选型问题。你需要清晰理解三种存储的本质差异、适用场景及架构限制。面试官通常通过对比题考察你对分布式系统设计取舍的认知深度。
三种存储核心对比
| 对比维度 | 块存储 | 文件存储 | 对象存储 |
|---|---|---|---|
| 访问协议 | iSCSI / FC | NFS / SMB | S3 / Swift |
| 最小操作单元 | 块(4KB-64KB) | 文件 | 对象(含元数据) |
| 典型延迟 | 亚毫秒 | 毫秒级 | 数十毫秒 |
| 扩展方式 | 垂直扩展为主 | 集群/命名空间 | 水平无上限 |
| 典型场景 | 数据库、VM磁盘 | 共享目录、HPC | 备份、媒体、大数据 |
Q1:请对比对象存储、块存储、文件存储的架构差异,并举例说明各自适用场景。
面试官考察点:是否理解底层数据组织方式;能否根据业务需求做出合理选型;对分布式系统限制的认知。
回答框架:① 各存储的数据单元与协议特点 → ② 性能/扩展性/一致性差异 → ③ 典型场景反向匹配。
示例回答:“块存储以固定大小块组织数据,通过iSCSI暴露,延迟低适合数据库;文件存储以目录树管理,NFS共享,适合协同编辑;对象存储以扁平桶存储对象,自带元数据,适合海量非结构化数据,延迟稍高但扩展性极强。”
可能追问:“为什么数据库不能直接跑在对象存储上?如果非要跑需要做什么改造?”
Q2:设计一个图片/视频存储平台,你会选择哪种存储方案?为什么?
面试官考察点:能否将业务需求映射到存储特性;是否考虑访问模式、成本、运维复杂度。
回答框架:① 分析存储对象特征(小文件/大文件、读写比) → ② 对比候选方案 → ③ 提出分层或混合方案。
示例回答:“首选对象存储(S3)。图片/视频天然适合扁平桶结构,元数据丰富;写多读少、不需POSIX语义;成本低、扩展方便。但对于极低延迟的缩略图预览,可以在CDN+缓存层叠加块存储。
可能追问:“如果用户要求按目录浏览图片,对象存储如何支持?”
Q3:块存储为什么不适合大规模扩展?如何解决其扩展瓶颈?
面试官考察点:对分布式系统原理的理解;是否了解块存储的元数据管理、一致性模型。
回答框架:① 块存储依赖元数据服务器或仲裁 → ② 单点瓶颈与脑裂风险 → ③ 常见改造方案(分布式锁、Ceph RBD、NVMe-oF)。
示例回答:“传统块存储通过集中元数据管理LUN映射,元数据服务器成为性能瓶颈和单点故障。改造方案:采用CRUSH算法去中心化(如Ceph),通过PG分布避免元数据热点,同时使用NVMe-oF降低网络延迟。”
可能追问:“Ceph RBD的写放大问题如何优化?”