FlipServer 为公有云中的关键系统实现真正的高可用性争取五个九

公共云中的高可用性 (HA)

高可用性 (HA) 是系统在指定时间段内连续运行而不会出现故障的能力。 HA 致力于确保系统达到商定的操作性能水平。在信息技术 (IT) 中,一个广泛采用但难以实现的可用性标准被称为五个九的可用性,这意味着系统或产品在 99.999% 的时间内可用。

高度可用的系统在使用之前必须经过精心设计和全面测试。规划这些系统之一需要所有组件都满足所需的可用性标准。数据备份和故障转移功能在确保 HA 系统满足其可用性目标方面发挥着重要作用。系统设计人员还必须密切关注他们使用的数据存储和访问技术。

高可用性如何工作?

系统不可能在 100% 的时间内可用,因此真正的高可用性系统通常会争取五个 9 作为操作性能的标准。

在设计HA系统时使用以下三个原则来确保高可用性:

  • 单点故障。 单点故障是一个组件,如果它发生故障,将导致整个系统发生故障。如果企业有一台服务器运行应用程序,则该服务器是单点故障。如果该服务器出现故障,应用程序将不可用。
  • 可靠的交叉。 在这些系统中构建冗余也很重要。冗余使备份组件能够接管发生故障的组件。发生这种情况时,有必要确保可靠的交叉或故障转移,即从组件 X 切换到组件 Y 而不丢失数据或影响性能的行为。
  • 故障检测能力。 故障必须是可见的,理想情况下,系统具有内置的自动化功能来自行处理故障。还应该有内置机制来避免共因故障,即两个或多个系统或组件同时发生故障,可能是由同一原因引起的。

为确保在多个用户访问系统时的高可用性,负载平衡变得必要。负载平衡自动将工作负载分配给系统资源,例如将不同的数据请求发送到托管在混合云架构中的不同服务。负载平衡器决定哪个系统资源最有能力有效处理哪个工作负载。使用多个负载平衡器来做到这一点可确保没有一个资源不堪重负。

HA 系统中的服务器位于集群中,并以分层架构进行组织,以响应来自负载均衡器的请求。如果集群中的一台服务器出现故障,另一个集群中的复制服务器可以处理为故障服务器指定的工作负载。这种冗余支持故障转移,当第一个组件出现故障时,辅助组件接管主要组件的工作,对性能的影响最小。

系统越复杂,确保高可用性就越困难,因为复杂系统中的故障点越多。

为什么高可用性很重要?

大多数时间必须启动和运行的系统通常会影响人们的健康、经济福祉以及获得食物、住所和其他生活基本要素的机会。换句话说,它们是系统或组件,如果它们低于一定的运营绩效水平,将对企业或人们的生活产生严重影响。

示例:如前所述,自动驾驶汽车显然是 HA 系统的候选者。例如,如果一辆自动驾驶汽车的前置传感器出现故障并把 18 轮车的一侧误认为是道路,汽车就会撞车。即使在这种情况下,汽车可以正常工作,但其一个组件出现故障,无法满足必要的操作性能水平,这可能会导致严重事故。

如何衡量可用性

可以相对于系统 100% 运行或永不失败来衡量可用性——这意味着它没有中断。通常,可用性百分比计算如下:
可用性 =(一个月内的分钟数 - 停机时间的分钟数)* 100/一个月内的分钟数

用于衡量可用性的三个指标包括:
平均故障间隔时间 (MTBF) 是给定系统两次故障之间的预期时间。
平均停机时间 (MDT) 是系统不工作的平均时间。
恢复时间目标 (RTO),也称为预计维修时间,是计划中断或从计划外中断中恢复所需的总时间。

这些指标可用于内部系统或服务提供商向客户承诺服务级别协议 (SLA) 中规定的特定服务级别。 SLA 是指定客户可以期望从系统或服务获得的可用性百分比的合同。

可用性指标受制于什么构成系统或服务对最终用户的可用性的解释。即使系统继续部分运行,用户也可能会基于性能问题认为它无法使用。尽管存在这种主观性,可用性指标在服务提供商或系统负责满足的 SLA 中具体形式化。

如果系统或 SLA 提供 99.999% 的可用性,则最终用户可以预期该服务在以下时间内不可用:为了提供上下文,如果公司遵守三个九标准 (99.9%),将有大约一年中有 8 小时 45 分钟的系统停机时间。两个 9 标准的停机时间甚至更加引人注目; 99% 的可用性相当于一年停机三天多一点。

如何实现高可用

实现高可用的六个步骤如下:

  • 设计系统时要考虑到 HA。 设计 HA 系统的目标是创建一个遵守性能约定同时最小化成本和复杂性的系统。应根据需要通过提供冗余来消除故障点。
  • 定义成功指标。 有必要确定系统所需的可用性级别,以及将使用哪些指标来衡量它。服务提供商通过 SLA 让客户参与此过程。
  • 部署硬件。 硬件应该具有弹性,并在质量与成本效益之间取得平衡。热插拔和热插拔硬件在 HA 系统中特别有用,因为硬件在换出或插入或拔出组件时不必关闭电源。
  • 测试故障转移系统。 系统启动并运行后,应检查故障转移系统,以确保它已准备好在发生故障时接管。随着时间的推移,应测试和重新测试应用程序,并应制定测试计划。
  • 监控系统。 应该使用度量和观察来跟踪系统的性能。必须记录和评估与规范的任何差异,以确定系统如何受到影响以及需要进行哪些调整。
  • 评估。 分析从监控中收集的数据,然后找到改进系统的方法。随着条件的变化和系统的发展,继续确保可用性。

高可用性和容错

与 DR 一样,容错有助于确保高可用性。容错是系统容忍和预测系统功能中的错误并在发生错误时自动响应的能力。容错系统需要冗余以最大限度地减少硬件故障时的中断。

为了获得冗余,IT 组织应遵循 N+1、N+2、2N 或 2N+1 策略。 N 表示保持系统运行所需的服务器数量。 N+1 模型需要运行系统所需的所有服务器以及一个额外的服务器。 2N 模型需要两倍于系统通常需要的服务器。 2N + 1 方法意味着服务器数量是您需要的两倍,再加上一个。这些策略可确保为关键任务组件提供至少一个备份。

系统可能具有高可用性但不具有容错能力。例如,如果 HA 系统在节点集群中的服务器上托管虚拟机时遇到问题,但系统不能容错,则管理程序可能会尝试重新启动同一主机集群中的 VM。如果问题是基于软件的,这可能会成功。但是,如果问题与集群的硬件有关,在同一个集群中重新启动它并不能解决问题,因为 VM 托管在同一个损坏的集群中。

在相同情况下的容错方法可能会采用 N+1 策略,它会在不同集群的不同服务器上重新启动 VM。容错更有可能保证零停机时间。 DR 策略会更进一步,以确保在其他地方有整个系统的副本,以便在发生灾难时使用。

高可用性最佳实践

高度可用的系统应该能够从任何类型的故障状态中快速恢复,以最大限度地减少对最终用户的干扰。高可用性最佳实践包括以下内容:

  • 消除单点故障或任何会在系统功能失调时影响系统的节点。
  • 确保备份所有系统和数据,以便快速轻松地恢复。
  • 使用负载平衡在服务器或其他硬件之间分配应用程序和网络流量。冗余负载均衡器的一个例子是 HAProxy。
  • 持续监控后端数据库服务器的健康状况。
  • 在停电或自然灾害的情况下,将资源分配到不同的地理区域。
  • 实现可靠的故障转移。在存储方面,独立磁盘冗余阵列 (RAID) 或存储区域网络 (SAN) 是常见的方法。
  • 建立一个系统,在故障发生时立即检测。
  • 设计系统部件以实现高可用性并在实施前测试其功能。

高可用性和云

如上所述,高可用性有一个主观因素。根据系统的不同,所需的正常运行时间会有所不同。在云计算中,服务水平尤其多变。

FlipServe Cloud 服务为其 HA 服务提供至少 99.9% 的可用性;最近,有一些应用程序可以实现 99.99% 的可用性。问题仍然存在,哪些应用程序需要这种级别的可用性?