高可用性与容错性:FT 的正常运行时间 00.001% 的优势值得头痛吗

2023年 8月 26日 50.3k 0

高可用性与容错性:FT 的正常运行时间 00.001% 的优势值得头痛吗?

机翻:https://www.percona.com/blog/high-availability-vs-fault-tolerance/

估计各不相同,但大多数报告认为计划外数据库停机的平均成本约为每小时 300,000 至 500,000 美元,或每分钟 5,000 至 8,000 美元。考虑到如此多的利害关系,数据库高可用性和容错能力已成为必备条件,但许多公司只是不确定他们必须拥有哪一项。

这篇博客文章将探讨高可用性 (HA) 和容错 (FT) 的共享属性。我们还将研究差异,因为了解哪些架构将帮助您最好地满足最大化数据资产和实现连续正常运行时间的独特要求非常重要。

最后,我们将建议高可用性开源解决方案,并向您介绍用于确保系统持续高性能的支持选项。

高可用性是什么意思?

高可用性是指数据库系统能够持续运行,在发生系统故障、断电或其他中断时,最终用户几乎不会中断。基本的高可用性数据库系统提供从主数据库节点到集群内冗余节点的故障转移(最好是自动的)。

高可用性并不能保证 100% 的正常运行时间,但 HA 系统使您能够最大限度地减少停机时间,直至几乎达到目标。在 IT 领域,高可用性的黄金标准是 99.999%,或“五个九”的可用性,但所需的 HA 级别实际上取决于您可以承受的系统停机时间。例如,流媒体服务运行关键任务系统,其中过多的停机时间可能会导致企业遭受重大的财务和声誉损失。但许多组织可以容忍几分钟的停机,而不会对其最终用户产生负面影响。

下表显示了每个可用性级别的停机时间量。

实施高可用性系统:它是如何工作的?

高可用性通过关键元素的组合来实现。一些最重要的元素包括:

  • 无单点故障 (SPOF):您必须消除数据库环境中的任何 SPOF,包括物理或虚拟硬件中任何潜在的 SPOF。
  • 冗余:数据库的关键组件是重复的,因此,如果一个组件出现故障,则可以通过使用冗余组件继续执行功能。例如,在服务器集群中,使用多台服务器来托管同一应用程序,这样,如果一台服务器发生故障,该应用程序可以继续在其他服务器上运行。
  • 负载平衡:流量分布在多台服务器上,以防止任何一个组件过载。负载均衡器可以检测组件何时没有响应并启动流量重定向。
  • 故障检测:监控机制检测故障或可能导致故障的问题。警报报告故障或问题,以便立即解决。
  • 故障转移:这涉及当主要组件发生故障时自动切换到冗余组件。如果主服务器出现故障,备用服务器可以接管。

高可用架构

如果要实现HA 架构,前面提到的两个绝对条件(无单点故障和万无一失的故障转移)必须适用于以下领域:

  • 基础设施——这是数据库系统所依赖的硬件。如果没有足够的基础设施(物理或虚拟化服务器、网络等),就不可能实现高可用性。
  • 拓扑管理——这是专门与数据库相关的软件管理,并管理其在发生故障时保持一致的能力。
  • 连接管理——这是与数据库的网络和连接方面具体相关的软件管理。集群解决方案通常与连接管理器捆绑在一起。但是,在异步集群中,为了实现高可用性,必须部署连接管理器。
  • 备份和连续归档——如果发生任何复制延迟并且副本节点无法按照主节点的速度工作,这一点就极其重要。备份和归档的文件还可以用于时间点恢复。

什么是容错?

容错能力是指数据库系统在硬件或软件故障时继续全面运行、不停机的能力。当发生故障事件(例如服务器故障、断电或网络中断)时,容错系统将确保保留数据完整性并确保系统保持运行。

实施容错系统:它是如何工作的?

以下是容错数据库环境的一些关键组件和特征:

  • 复制:数据在多个节点或服务器之间复制,因此如果一个节点发生故障,仍可以从副本访问数据。复制可以是同步的(确保立即一致性)或异步的(允许一些延迟)。
  • 冗余:系统在不同的设备上存储多个数据副本。冗余提供备份并防止硬件故障时丢失数据。
  • 错误检测和纠正:校验和、奇偶校验位和纠错码等技术用于检测和纠正数据传输或存储过程中可能出现的错误。
  • 数据完整性检查:使用各种机制(例如校验和或散列算法)来验证存储数据的完整性。这确保了即使存在错误,数据也保持一致和准确。
  • 专用硬件:专用硬件用于检测硬件故障并立即切换到冗余硬件组件。

容错系统架构

容错信息系统旨在提供 100% 的可用性。此类设计的一些关键要素包括:

  • 备份硬件系统— 硬件系统由相同或执行相同功能但位于不同数据中心且不依赖于任何相同物理电源和功能的系统进行备份。
  • 备份软件系统——与硬件一样,软件功能不会丢失,因为有镜像副本执行相同的功能,但驻留在其他地方并使用不同的电源。
  • 容器化平台——如今,公司越来越多地使用 Kubernetes 等容器化平台来运行同一软件的多个实例。通过这样做,如果错误或其他问题迫使软件离线,流量可以路由到其他实例,并且应用程序功能可以继续。
  • 备用电源——为了应对停电,企业有备用备用电源。例如,一些企业拥有强大的发电机,可以在停电时启动。
  • 替代环境——容错信息系统可以包括执行相同功能的单独的云和本地数据库。对于没有自己的物理服务器的公司,在不同区域维护复制的云数据库,以提供停电应急服务。

高可用性与容错性:了解差异

显然,它们在设置、功能和目的方面有很多共同点。那么,虽然有很多相似之处(复制、负载平衡、冗余组件等等),但有什么区别呢?

一般来说,高可用性解决方案的目的是最大限度地减少停机时间并提供对数据库的连续访问,而容错的目的是始终保持系统功能和数据完整性,包括在故障事件或故障期间。

不过,一般来说,但从财务角度来看,实现容错的成本更高,而且回报往往不足以证明所付出的代价是合理的。例如,需要大量的时间、金钱和专业知识来完全镜像一个系统,以便在一个系统出现故障时,另一个系统可以在不造成任何停机的情况下接管。建立一个高可用性数据库系统可能要便宜得多,其中没有完全冗余,但有负载平衡,可以将停机时间降至最低(每年仅几分钟)。

基本上,这取决于公司的需求、利害关系以及适合其预算的因素。在高可用性和容错之间做出决定时需要考虑以下关键问题:

您的公司可以承受多长时间的停机时间?

借助高可用性,您可以实现前面提到的黄金标准 — 并且您的数据库系统将在 99.999% 的时间内可用。

有了容错系统,您可以花更多的钱,也许比上面描述的“五个九”带来的 5.26 分钟的停机时间(全年)做得更好。但超越 99.999% 的可用性对于任务至关重要吗?

您愿意承担多少复杂性和多少冗余组件?

高可用性系统通常具有冗余服务器或集群,以确保如果一个组件发生故障,另一个组件可以无缝接管。

容错包括多个版本的硬件和软件,还包括电源备份。硬件和软件可以检测故障并立即切换到冗余组件,但它们也带来了更多的复杂性、零件和成本。

哪个选项适合您的预算?

高可用性数据库系统需要冗余、负载平衡和故障转移。它还必须确保不存在单点故障。但根据您的需求,高可用性有不同级别,并且架构可能相当简单。

容错系统采用更复杂的架构设计,需要复杂的硬件和软件组件,以及设计、配置和维护的专业知识。额外的复杂性增加了系统的成本。

Percona HA 专业知识和架构

在 Percona,我们建议,在大多数情况下,高可用性的属性和成本效益才是正确的选择。它有足够的可用性和可扩展性。我们还大力倡导使用不受供应商锁定的开源软件,并得到全球开源社区的创新和专业知识的支持,以实现高可用性。

同时,我们意识到使用开源软件实现高可用性需要付出额外的努力。HA 没有容错系统的复杂性和价格标签,但它仍然需要大量的时间和专业知识。

因此,您不必选择、配置和测试架构来构建 HA 数据库环境,为什么不使用我们的架构呢?您可以自己使用 Percona 架构,根据需要致电我们,或者让我们为您完成这一切。

查看这些有用的白皮书,其中包括即用型架构:

Percona 设计、配置和部署高可用性数据库,以便应用程序始终可以访问基本数据。我们将帮助您确保应用程序正常运行,数据库保持无错误,并且您的整个系统以最佳性能水平运行。

常见问题解答

DR 与 HA 和 FT 之间有什么区别?

灾难恢复的重点是从重大中断事件中恢复并恢复运营。容错和高可用性侧重于构建能够承受故障并以最小中断 (HA) 和无中断 (FT) 的方式继续运行的系统。

高可用性和容错的目标是什么?

采用容错的目标是始终保持系统功能和数据完整性,包括在发生故障或故障期间。采用高可用性解决方案的目标是最大限度地减少停机时间并提供对数据库的连续访问。

HA 和 DR 有什么区别?

高可用性用于防止由于实时环境中的单个组件故障而导致的停机,而灾难恢复则侧重于从导致数据库无法访问或无法运行的重大事件中恢复。

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论