Raft在Curve存储中的工程实践Ousterhout提出,《In Search of an Understandable Consensus Algorithm(Extended Version)》 • raft 是一种Leader-Based的Multi-Paxos变种,提供了更完整更清晰的协议描述,更容易理解和实现。 • raft可以解决分布式理论中的CP,即一致性和分区容忍性 • 大多数副本成功即可返回成功 • 速度取决于写的较快的大多数RAFT协议简介 化到S3中。Curve块存储RAFT应用 数据分布 • 每个raft实例用一个copyset管理,copyset是个逻辑 概念。写入chunk的数据,由copyset对应的raft完成 3副本的写入。 • multi-raft:copyset和chunkserver是多对多的关系 • 每个copyset由3个chunkserver组成 • 每个chunkserver可以服务多个copyset raft复制组0 码力 | 29 页 | 2.20 MB | 6 月前3
CurveFS方案设计dentry,inode 两层映射关系,所有的元数据都缓存在内存中。元数据是分片的,使用 multi-raft 持久化元数据以及保证多副本数据一致性。基于这种方式开发: a. 性能 由于元数据分片,获取元数据需要跟多个节点进行rpc的交互,因此性能相比单机要弱一些 b. 扩展性/可用性/可靠性 使用 multi-raft, 扩展性、可用性和可靠性与元数据节点一致 对比结论 CurveFS0 码力 | 14 页 | 619.32 KB | 6 月前3
Curve for CNCF Mainperformance framework • Use bthread (M bthread map N pthread) for scalability and performance on Multi-thread CPU • Lock free queue design • Memory zero copy design • Cloud native supportCloud native0 码力 | 21 页 | 4.56 MB | 6 月前3
CurveBS IO Processing FlowETCD l Collect cluster status and schedule. 2. Chunkserverl Responsible for data storage l Multi-replicas consistency 3. The client l Provides read and write data interfaces for upper-layer0 码力 | 13 页 | 2.03 MB | 6 月前3
CurveFS Client 概要设计+getlk +setlk +bmap +ioctl +ioctl +poll +write_buf +retrieve_reply +forget_multi +flock +fallocate© XXX Page 5 of 11 +readdirplus +copy_file_range +lseek 关键接口分析0 码力 | 11 页 | 487.92 KB | 6 月前3
共 5 条
- 1













