1

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

我不断看到最小集群为 3 个节点的建议(或者,在某些地方,明确的限制)。

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

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

1 回答 1

7

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

如果一个节点由于服务重新启动或复制问题而正常关闭,那么集群将成为一个两节点集群,并且不会发生任何重大事件。集群将继续正常运行,如果离开的服务器没有处理任何查询,则运行不会中断。

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

推荐最少三台服务器的主要原因是为了增加在发生网络问题时存在仲裁的机会。如果一个集群有两个节点(或更一般的任何偶数节点),单个网络链接故障可能会导致集群暂停,因为它可以创建两个具有一半节点的分区,而这两个分区都没有仲裁。奇数个节点意味着单个网络链接故障不会导致集群暂停,因为总会有仲裁。但是,如果有多个网络链接故障,事情会变得更复杂,但只有一个具有仲裁的分区才能正常运行。

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

如需更多信息,请访问http://galeracluster.com/documentation-webpages/recovery.html

于 2014-04-23T20:58:53.627 回答