如何使用高可用性集群消除云中的单点故障
在提供高可用性保护时,一般原则是确保所有组件都是冗余的,以避免单点故障 (SPOF)。 也就是说,确保没有单个元素导致整个系统在失败时停止。 但是,需要注意的是,运营基础设施很难在公共云中访问。
在一个基于云的高可用集群,备用节点有可能位于同一主机服务器上,在同一机架中,并使用与操作节点相同的网络交换机。 除非您使用冗余配置这些元素,否则它们中的任何一个都可能是 SPOF 并使应用程序面临灾难性故障的风险。
有必要确保集群节点位于不同的云“区域”和“可用区”上,这些“区域”和“可用区”将数据中心和运营基础设施物理隔离在不同的地理位置。
确保可用性的主要原则是什么?
您不能期望构成物理 IT 基础架构的各种组件永远按照规范运行。 零件磨损,系统变得不兼容,设置发生变化。 尽管定期维护可以降低停机风险,但在产品生命周期中可能会出现故障。
在极少数情况下,您可能会在操作系统或嵌入式软件中发现一个严重的错误,导致应用程序停止工作。
您可能已经注意到,High Availability 集群配置正是符合这一原则,通过将重要服务器及其资源冗余到活动系统(生产系统)来消除单点故障。 但是,重要的是要记住两件事。 一,服务器硬件不是唯一的关键组件。 第二点,在公共云基础架构中,您可能看不到其他关键的 SPOF 组件。
谨防隐藏在云的无形基础设施中的单点故障陷阱
大多数公共云以所谓的“多租户”模式运行。 也就是说,它们在同一物理主机服务器上运行多家公司的虚拟机。 对于常规合同,您无法指定您的系统在哪个主机服务器上运行。 这可能会导致问题,因为云集群中的备用节点可能放置在运行活动节点的同一主机服务器上。 即使配置了 HA 集群配置,如果主机服务器宕机,运行节点和备用节点也会同时宕机。 在这种情况下,您的云运营商决定何时以及如何恢复您的系统。
运行活动节点的主机服务器和运行备用节点的主机服务器可以在同一个机架中。 在这种情况下,机架变成了 SPOF,因此如果那里发生故障,其下的活动节点和备用节点也会发生故障。
此外,在基础架构的上层,例如捆绑多个机架的网络交换机、网关和路由器以及数据中心的电源单元,操作系统节点和备用系统节点可能共存于同一系统中。 如果这些关键组件不是冗余的,那么您将面临不可避免的单点故障。 同样,对于作为公共云用户的公司来说,这样的数据中心基础设施是一个黑匣子。 可能无法查看详细配置以识别 SPOF。
应利用公共云可用性区域和区域来提高可用性
我们如何才能明确避免公共云中隐藏的单点故障? 最稳健的方法是使用云端准备的“Availability Zones”和“Regions”。
可用区是数据中心内基础设施的独立物理隔离。 区域是地理上分开的独立数据中心。 一些公共云允许您故意将这些可用区或区域用于不同目的。
例如,亚马逊网络服务 (AWS) 在全球有 12 个区域。 此外,Microsoft Azure 有 22 个区域。通过构建一个 HA 集群配置,其中运行节点和备用节点分布在这两个或多个区域的不同可用区中,几乎可以肯定地避免所有 SPOF。如果您遵守这些最佳实践,您可以自信地确保可用性,DR (灾难恢复) 和 BCP(业务连续性计划)。