跳到主要内容

corosync共享多仲裁方案设计

需求背景

当前corosync仲裁方式qnetd的现状如下:

  • 为保证corosync的高可用,在出现网络分区时需使用第三方仲裁来帮助corosync投票,来选择出quorate的一方。

  • corosync官方提供的qnetd存在单点故障问题,且每个corosync集群只能连接一个qnetd

  • 使用qnetd的lms算法时,因为qnetd的票数较高,在qnetd存活时,高可用性高;但qnetd挂掉后,高可用性显著降低,corosync集群节点不允许再挂掉

期望达到的要求:

  • 尽量保证高可用性的要求,即qnetd的比重不能过高,即使qnetd挂死,也只相当于普通节点挂死

corosync通过votequorum模块允许添加第三方仲裁。

多仲裁

  • corosync可以连接多个qnetd仲裁,每个仲裁1票