存储系统的分层架构
现代存储系统的层次从下到上:硬件层(HDD/SSD/NVMe持久化介质)→ 本地文件系统(ext4/XFS/btrfs)→ 单机存储引擎(B+Tree/LSM-Tree数据结构)→ 分布式存储系统(副本一致性、分片均衡)→ 云存储服务(对象/块/文件服务抽象)。
单机存储引擎的数据结构
B+Tree是关系型数据库(MySQL InnoDB、PostgreSQL)的基础数据结构:叶子节点有序链表使得范围查询高效;非叶子节点索引导航让点查平均复杂度为O(log N)。InnoDB通过Redo Log实现崩溃安全(WAL机制),通过Undo Log实现MVCC(多版本并发控制)。
LSM-Tree(Log-Structured Merge-Tree)是写优化的数据结构:写入先到MemTable(内存),MemTable满了转为SSTable(磁盘不可变文件),后台Compaction将多层SSTable合并去重。LevelDB、RocksDB和Cassandra都采用LSM-Tree,适合写多读少的场景。
分布式存储一致性
CAP定理指出一致性、可用性和分区容错三者最多同时满足两个。工程实践中的折衷:Raft共识算法用于CP系统(etcd、TiKV),保证强一致;Dynamo-style Gossip协议用于AP系统(Cassandra、CouchDB),保证最终一致。PACELC定理进一步细化:在分区存在时选择A或C(PA/PC),否则在延迟和一致性之间选择(EL或EC)。
共识算法详解
Raft通过Leader选举、Log复制和安全性约束三个子问题解决了分布式共识。简化理解:同一Term内只有一个Leader;Leader接受请求后AppendEntries到大多数节点后才能Commit;选举限制保证新Leader包含所有Committed Entry。Multi-Raft将数据分片(Range/Shard),每个分片独立运行Raft组,实现水平扩展。
分布式文件系统
HDFS为大数据批处理设计,块大小通常为128MB以优化大数据吞吐量。Ceph通过CRUSH算法实现去中心化的数据分布,RADOS提供强一致的底层对象存储。MinIO作为云原生对象存储,S3兼容且易于部署。
云原生存储
Kubernetes的PV/PVC抽象将存储与计算解耦。CSI(Container Storage Interface)标准化了所有存储驱动。Rook基于Ceph提供云原生统一的块/文件/对象存储。对于有状态工作负载,Local PV(利用本地NVMe SSD)可提供最佳性能。
存储技术的趋势
计算存储(Computational Storage)将计算推向数据所在位置,减少数据搬移开销。PMem/SCM(存储级内存)填补了内存与SSD之间的延迟鸿沟。NVMe-oF实现了NVMe命令的网络扩展,让远程SSD访问接近本地性能。

发表评论 取消回复