CURVE是网易自主设计研发的高性能、高可用、高可靠分布式存储系统,具有非常良好的扩展性。基于该存储底座可以打造适用于不同应用场景的存储系统,如块存储、对象存储、云原生数据库等。当前我们基于CURVE已经实现了高性能块存储系统,支持快照克隆和恢复 ,支持QEMU虚拟机和物理机NBD设备两种挂载方式, 在网易内部作为高性能云盘使用 。
Curve的设计开发始终围绕三个理念:一是顺应当前存储硬件设施发展趋势,做到软硬件结合打造*的存储产品;二是秉持“Simple Can be harder than complex”,了解问题本质情况下选择*简单的方案解决问题;三是拥抱开源,在充分调研的前提下使用优秀的开源项目组件,避免造轮子。
SnapShotCloneServer和MDS的相似之处在于它们都使用Etcd进行主选,但它们的不同之处在于SnapShotCloneServer通过负载均衡向外提供服务。在失效期间,请求失败重试是幂等的,这不会影响任务的正确性以及集群的可用性。
而ChunkServer则是一个由Raft协议保持数据一致性的集群,通过MDS实现负载均衡。当单个节点失效时,会影响到这个节点上存储的所有Copyset。对于Copyset上的Leader节点,会中断服务并等待重新选举;而对于Copyset上的follower节点,服务则不会受到影响。此外,如果某个Chunkserver节点失效且在一段时间内无法恢复,MDS会将其上的数据迁移到其他节点上。