Curve元数据节点高可用GetTimeout < ElectionTime 4.2.4.3 MDS1、MDS2、MDS3的租约全部过期 4.2.4.4 总结 4.2.5 异常情况四: Etcd集群与MDS1(当前leader)出现网络分区 4.2.5.1 事件一先发生 4.2.5.2 事件二先发生 4.2.6 异常情况4:Etcd集群的follower节点异常 4.2.7 各情况汇总 1. 需求 mds是元数据节点,负责空间 timeout时间后开始进行选举,正常情况下很快会选举成功,但异常情况下,成功选举出leader所需要的时间是不确定的 4.2.5 异常情况四: Etcd集群与MDS1(当前leader)出现网络分区 etcd集群与MDS1发生网络分区,以下事件会发生: [事件一] get Leader/MDS1会超时退出 [事件二] MDS1与etcd集群之间的lease会过期,Leader1/MDS1会被etcd server删除,触发MDS2当选leader MDS会周期性的为Lease续约,如果续约成功,Lease的expired点会后移 正常情况下 异常情况下,MDS1与etcd集群发生网络分区 MDS1给Lease续约,但因为网络分区续约失败© XXX Page 29 of 30 2. 3. 在网络分区前MDS1周期性get leader/MDS1成功 下一个周期get leader/MDS1失败,要timeout以后才能返回。出现0 码力 | 30 页 | 2.42 MB | 6 月前3
Raft在Curve存储中的工程实践Version)》 • raft 是一种Leader-Based的Multi-Paxos变种,提供了更完整更清晰的协议描述,更容易理解和实现。 • raft可以解决分布式理论中的CP,即一致性和分区容忍性 • 大多数副本成功即可返回成功 • 速度取决于写的较快的大多数RAFT协议简介 • Leader:负责从客户端接受日志,把日志复制到其 他服务器,当保证安全性的时候告诉其他服务器应用 日志条目到他们的状态机中。0 码力 | 29 页 | 2.20 MB | 6 月前3
Curve设计要点丰富的metric体系 • prometheus + grafana 可视化 • 每日报表 • 丰富的数据定位问题 • 集群状态查询工具 • curve_ops_tool • 自动化部署工具 • 一键部署,一键升级高质量 • 良好的模块化和抽象设计 • 完善的测试体系 • 单元测试 行覆盖80%+,分支覆盖70%+ • 集成测试 Given When Then 方法 完备的测试用例集 • 自动化异常测试0 码力 | 35 页 | 2.03 MB | 6 月前3
Curve质量监控与运维 - 网易数帆Curve_ops_tool 查询Curve状态 管理Curve文件 管理copyset 运维工具 Ansible 一键部署: ansible-playbook -i server.ini deploy_curve.yml 一键升级:ansible-playbook -i server.ini rolling_update_curve.yml 32/330 码力 | 33 页 | 2.64 MB | 6 月前3
Curve文件系统元数据持久化方案设计和 ht[1] 两个哈希表, 所以在渐进式 rehash 进行期间, 字典的删除 (delete)、查找(find)、更新(update) 等操作会在两个哈希表上进行: 比如说,要在字典里面查找一个键的话,程序会先在 ht[0] 里面进行查找,如果没找到的话,就会继续到 ht[1] 里面进行查找,诸如此类 另外, 在渐进式 rehash 执行期间, 新添加到字典的键值对一律会被保存到 ht[1] 里面0 码力 | 12 页 | 384.47 KB | 6 月前3
共 5 条
- 1













