一个节点死后,3节点Galera集群的定义行为是什么?

时间:2014-04-23 06:49:11

标签: mysql mariadb database-cluster galera

我一直在阅读Galera群集的文档:http://galeracluster.com/documentation-webpages/genindex.html

我一直看到建议(或者,在某些地方,显式限制)最小群集是3个节点。

我的问题是,在一个节点发生故障后,最小集群会发生什么。

  • 群集会将状态更改为不可用吗?
  • 剩余的2个节点是否仍在复制?
  • 是否仍会自动添加新节点?

1 个答案:

答案 0 :(得分:6)

这取决于节点离开群集的方式。下面的情况假设一个三节点集群,其中一个节点离开,所有节点通过以太网交换机连接。

如果一个节点由于重新启动服务或复制问题而正常关闭自身,则群集将成为双节点群集,并且不会发生任何重大事件。群集将继续正常运行,如果剩下的服务器没有提供任何查询,则操作不会中断。

如果节点因网络问题而丢失或以其他方式离开而未告知群集的其余部分,则可能会出现问题。要使群集正常运行,它需要一个仲裁,群集中的大多数节点都处于活动状态。另外两个节点将继续正常运行,因为它们的分区有超过一半的已知节点,但是当它意识到它不再与活动分区接触时,剩下的节点将停止接受查询。在这种情况下,假设一个应用程序可以访问这两个活动节点,那么故障几乎不会被注意到。

建议的最小值是三台服务器的主要原因是为了增加在出现网络问题时法定人数存在的可能性。如果群集具有两个节点(或更一般地,任何偶数个节点),则单个网络链路故障可能导致群集暂停,因为它可以创建具有一半节点的两个分区,两者都没有仲裁。奇数个节点意味着单个网络链路故障不会导致群集暂停,因为总会有仲裁。但是,如果有多个网络链接失败,事情会变得更复杂,但只有具有仲裁的分区才能正常运行。

如果某个节点尝试连接到群集中的活动分区,它将正常加入。如果它只能连接到非活动分区,它将在尝试联系活动分区时等待一段可配置的时间。

有关详情,请访问http://galeracluster.com/documentation-webpages/recovery.html