副本 Sets 分布在两个或更多数据中心

在本页面

概观

虽然副本 sets提供了针对 single-instance 故障的基本保护,但其成员都位于单个数据中心的副本集很容易受到数据中心故障的影响。停电,网络中断和自然灾害都是可能影响其成员位于单个设施中的副本集的问题。

在不同地理位置的数据中心之间分发副本集成员会增加冗余,并在其中一个数据中心不可用时提供容错功能。

会员分布

要在数据中心发生故障时保护您的数据,请在备用数据中心至少保留一个成员。如果可能,使用奇数个数据中心,并选择一个成员分布,以最大限度地提高即使丢失数据中心的可能性,剩余的副本集成员可以形成多数或至少,提供数据的副本。

例子

Three-member 副本集

对于 example,对于 three-member 副本集,一些可能的成员分布包括:

  • 两个数据中心:数据中心 1 的两个成员和数据中心 2 的一个成员。如果副本集的其中一个成员是仲裁者,则使用 data-bearing 成员将仲裁者分发到数据中心 1。

  • 如果数据中心 1 关闭,则副本集将变为 read-only。

  • 如果数据中心 2 关闭,则副本集仍然可写,因为数据中心 1 中的成员可以进行选举。

  • 三个数据中心:一个成员到数据中心 1,一个成员到数据中心 2,一个成员到数据中心 3。

  • 如果任何数据中心发生故障,副本集仍然可写,因为其余成员可以举行选举。

注意 跨两个数据中心分发副本集成员可提供单个数据中心的优势。在两个数据中心分发中, 如果可能,请至少在三个数据中心分发成员。对于配置服务器副本集(CSRS),最佳做法是分配三个(或更多,具体取决于成员数量)中心。如果第三个数据中心的成本过高,一种分配可能性是将数据承载成员均匀地分布在两个数据中心,并且存储剩余的成员(数据承载成员或仲裁者以确保成员数量奇数)。如果您的公司 policy 允许,请使用云。

Five-member 副本集

对于具有 5 个成员的副本集,一些可能的成员分布包括:

  • 两个数据中心:数据中心 1 的三个成员和数据中心 2 的两个成员。

  • 如果数据中心 1 关闭,则副本集将变为 read-only。

  • 如果数据中心 2 关闭,则副本集仍然可写,因为数据中心 1 中的成员可以创建多数。

  • 三个数据中心:数据中心 1 的两个成员,数据中心 2 的两个成员和数据中心 3 的一个成员。

  • 如果任何数据中心发生故障,副本集仍然可写,因为其余成员可以举行选举。

注意 跨两个数据中心分发副本集成员可提供单个数据中心的优势。在两个数据中心分发中, 如果可能,请至少在三个数据中心分发成员。对于配置服务器副本集(CSRS),最佳做法是分配三个(或更多,具体取决于成员数量)中心。如果第三个数据中心的成本过高,一种分配可能性是将数据承载成员均匀地分布在两个数据中心,并且存储剩余的成员(数据承载成员或仲裁者以确保成员数量奇数)。如果您的公司 policy 允许,请使用云。

例如,以下 5 个成员副本集将其成员分布在三个数据中心中。

分布在三个数据中心的 5 成员副本集的图表。

成员的可选性

副本集的某些成员(例如具有网络约束或有限资源的成员)不应该成为故障转移中的主要成员。配置不应成为主要成员的成员优先级 0

在某些情况下,您可能希望一个数据中心的成员在其他数据中心的成员之前被选为主要成员。您可以修改成员的优先,使得一个数据中心中的成员比其他数据中心中的成员具有更高的优先

在下面的示例中,数据中心 1 中的副本集成员的优先级高于数据中心 2 和 3 中的成员;数据中心 2 中的成员优先级高于数据中心 3 中的成员:

分布在三个数据中心的 5 成员副本集的图表。副本集包括优先级为 0.5 且优先级为 0 的成员。

连接

验证您的网络配置允许所有成员之间的通信; i.e。每个成员必须能够连接到每个其他成员。

也可以看看 部署地理冗余副本集部署副本集将仲裁器添加到副本集将成员添加到副本集