分布式存储系统 Curve

上周有客户问我网易的开源CURVE系统怎么样,所以我看了他的文档,简单的给大家介绍一下。

我们先来谈谈性能,CURVE确实令人惊叹。
他们使用 brpc 进行 RPC,使用 braft 进行一致性协议。
这个组合非常好。
特别是,Braft 的 chunkfilepool 实现将写入增益设置为 0。
我之前在 Ceph 上经历过这种情况,知道跨多个副本保持强一致性有多么困难。
还有块级地址空间哈希、读写分离和IO冲突。
难怪测试数据比Ceph好很多。
要知道他们的测试是在2 02 3 年在实验室进行的,单卷4 K随机读写IOPS分别是Ceph的1 .8 4 倍和1 .5 8 倍,而且延迟要低很多。

高可用也做得很好。
MDS 和 SnapshotCloneServer 都支持多个实例。
Etcd 在几秒钟内选择主切换,失败的请求将被重试。
ChunkServer使用Raft协议来保证一致性。
如果单个节点发生故障,只会影响数据的共享。
不过,值得注意的是,他们的测试是在上海的数据中心进行的。
如果单个 ChunkServer 发生故障,MDS 会慢慢地将数据移走。
您必须密切关注迁移时间。

设计理念也不错。
软硬件结合、简单至上、拥抱开源,都被网易内部使用过,效果不错。
他们内部将其用作高性能云盘,支持快照克隆、QEMU挂载、物理机NBD。

但是说到缺点,我就不得不提几句了。
比如文档中没有详细说明,集群的扩缩容有多流畅?他们在内部测试中没有提到这一点,我也没有亲自经历过这部分。
还有很多开源组件,维护成本会不会更高?我不确定这部分。

无论如何,如果您正在考虑使用CURVE,您必须首先检查您的业务场景是否需要如此强大的性能和可用性。
如果你对延迟特别敏感或者有一个很大的集群,它确实是一个不错的选择。
在其他情况下,可能需要权衡复杂性和维护成本。

分布式存储与集中式存储比较