【问题标题】:Standard availability for mongoDB replica set cluster of 3 nodes3 个节点的 mongoDB 副本集集群的标准可用性
【发布时间】:2018-02-28 06:26:10
【问题描述】:

我已经设置了一个 mongoDB 的副本集,其中一个主节点、一个辅助节点和一个仲裁节点,mongoDB 安装在三个独立的 AWS 实例上。我需要记录根据上述配置形成的副本集集群的整体可用性,但没有任何可靠/标准数据来建立。

在上述情况下,是否有任何标准数据可以用来确定整个集群/单个节点的可用性?

【问题讨论】:

  • 您希望在可用性方面描述什么?副本集配置实际上只描述了容错性。对于 3 个成员,您的副本集可以容忍 1 个成员的故障/不可用,并保持主节点的写入可用性。但是,由于您有仲裁者,因此成员不可用的后果取决于该成员是仲裁者还是次要成员。仲裁器不存储任何数据,因此如果不可用成员是辅助节点,您的副本集将不再有任何活动复制或能够确认多数写入问题。
  • 如果您指的是您的 AWS 实例的预期可用性,您必须查看您正在使用的服务的 EC2 SLA 和正常运行时间承诺。 SLA 保证通常需要部署到多个可用区,并且只考虑计划外中断(而不是计划维护)。如果您遵循所有正确的警告,您可能会收到99.99% SLA,这会导致服务中断的积分。如果未维持最低服务水平,则 SLA 只是补偿;观察到的可用性可能更高或更低。

标签: mongodb amazon-ec2 high-availability mongodb-replica-set


【解决方案1】:

您的配置将保证持续可用性,即使在一个节点出现故障后也是如此。但是,之后的可用性取决于更换故障节点的速度,这取决于您的监控和维护能力。

如果您有一段时间没有注意到某个节点已关闭,或者如果您更换节点的过程需要很长时间(您可能需要调试新的 VM、安装 MongoDB、重新配置副本集、允许新节点同步的时间),那么另一个节点可能会关闭并让您无法使用。


因此,您的实际可用性取决于四个问题的答案:

  1. 您使用哪种副本集配置?因为这决定了在副本集停止可用之前需要关闭多少节点
  2. 任何单个节点出现故障或与其他节点断开连接的可能性有多大?
  3. 您的监控有多好,所以您注意到有问题?
  4. 您修复问题的流程有多快?

第一个问题的答案很简单;您已决定至少有两个数据承载节点和一个仲裁器。

第二个的答案不是很简单;这取决于每个节点的可靠性,以及它们之间的连接,以及两个或多个节点是否可能一起出现故障(也许它们位于同一个可用区)。

第三个和第四个,我们帮不了你;你必须自己评估这些。

【讨论】:

    猜你喜欢
    • 2017-05-21
    • 1970-01-01
    • 1970-01-01
    • 2023-02-22
    • 2017-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多