开源软件丨网易开源分布式存储系统 Curve
Posted GitHub科技
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了开源软件丨网易开源分布式存储系统 Curve相关的知识,希望对你有一定的参考价值。
软件基本信息
序号 | 维度 | 详情 |
---|---|---|
1 | 软件类型 | 分布式应用 |
2 | 开发语言 |
|
3 |
授权协议 |
|
4 | 开发厂商 |
|
当前网易基于 CURVE 已经实现了高性能块存储系统,支持快照克隆和恢复 ,支持 QEMU 虚拟机和物理机 NBD 设备两种挂载方式, 在网易内部作为高性能云盘使用。
特性
1. 高性能
高性能是 CURVE 的一大特点,也是项目团队创建 CURVE 项目的初衷。RPC 层面 CURVE 采用了高性能和低延迟并且已开源的 brpc;在一致性层面选择了基于 quorum 机制并且开源的 braft,从协议层面来说 quorum 机制在延迟方面天生优于多副本强一致的方式。
实现上 CURVE 对 braft 快照的实现进行了优化,在状态机的实现上采用 chunkfilepool 的方式 ( 初始化集群的时候格式化出指定比例的空间用作 chunk ) 使得底层的写入放大为 0
2. 高可用
高可用是 CURVE 的另一大特点。MDS、ChunkServer 以及 SnapShotCloneServer 都支持多实例部署,部分实例异常不影响整个集群的可用性。
-
MDS MDS 是无状态的,推荐至少部署两个实例。通过 Etcd 进行选主。多个 MDS 实例通过 Etcd 进行选主,当单个实例失效时,可以秒级切换到另外一个实例。 失效实例上正在处理的请求,Client 和 SnapShotCloneServer 都会对其进行重试,以达到不影响集群可用性的效果。 -
SnapShotCloneServer SnapShotCloneServer 与 MDS 类似, 也是通过 Etcd 进行选主,不同的是,它通过负载均衡对外提供服务。失效期间的请求失败重试都是幂等的,不影响任务的正确性以及集群的可用性。 -
ChunkServer ChunkServer 是一个集群,通过 Raft 协议保持数据一致性,并通过 MDS 做负载均衡。单个节点失效时,会影响到这个节点上存储的所有 Copyset。对于 Copyset 上的 Leader 节点,会中断服务,等待重新选举 对于Copyset 上的 follower 节点,服务不会受影响。当某个 Chunkserver 节点失效且在一段时间内无法恢复,MDS 会将其上的数据迁移到其他节点上。
更多推文
以上是关于开源软件丨网易开源分布式存储系统 Curve的主要内容,如果未能解决你的问题,请参考以下文章
性能是Ceph的1.84倍,网易开源分布式存储系统Curve