0

有效处理灾难恢复 (DR) 情况所需的副本集成员数量应该是多少。目前我们正在使用 3 个节点副本集(1 个主副本集,同一区域中的 1 个辅助副本和 DR 区域中的 1 个辅助副本)。
我们计划为其添加 2 个仲裁器以提高其容错能力。
使用多个仲裁实例是一种好习惯吗?
在 DR zone 中创建仲裁实例会更好吗?

4

2 回答 2

1

正如 JJussi 指出的那样,添加多个仲裁器根本没有帮助,但添加更多节点(数据承载和/或仲裁器)以实现最大的弹性和可用性可能会很有用。

你现在的安排是这样的:

现有的副本集配置

如果区域 1 中的数据中心出现故障,则 DR 区域中的节点将无法升级为主节点,因为它无法获得多数:

DR 区域无法提供高可用性

即使您添加了更多的数据承载节点和仲裁器,如果它们位于相同的两个区域中,您也会遇到同样的问题。

相反,我建议您配置的是区域 1 中现有的两个节点,将第四个数据承载节点添加到 DR 区域,同时添加一个仲裁器,但确保仲裁器再次位于不同的区域:

具有高可用性的 5 节点副本集配置

这样,即使区域 1 或 DR 区域中的数据中心出现故障,其他区域中的节点也将能够在仲裁器的帮助下获得多数,并继续工作:

尽管失去了整个数据中心,但仍继续运营

于 2017-04-25T10:28:39.120 回答
0

仲裁器不会增加容错性,因为它们不保存数据。您无需在当前设置中添加仲裁程序,因为您已经有了奇数票数。您当前的节点数(三个)非常适合 DR,特别是如果所有三个节点都位于不同的数据中心,即使其中两个节点位于同一地理区域。

当然,您始终可以将一个节点(然后您需要仲裁器)添加到其他区域,但通常三个独立的节点是完美的 DR 情况。如果您当前的所有节点都在美国,那么您可能有“一半”(足够大多数)位于欧洲的节点......

于 2017-04-22T09:28:56.530 回答