集群计算——故障转移与高可用性之间的区别是什么?



根据我对jboss文档的阅读,它说,

我们将高可用性定义为系统持续运行的能力在一个或多个服务器出现故障后仍在运行。的一部分高可用性是故障转移,我们将其定义为以下能力客户端连接从一台服务器迁移到另一台服务器服务器故障,使客户端应用程序可以继续运行。

故障转移是高可用性的一部分吗?我们如何区分故障转移和高可用性?

故障转移是实现高可用性(HA)的一种方法。将HA视为一种功能,将故障转移视为该功能的一种可能实现。在实现HA时,故障转移并不总是唯一要考虑的问题。

例如,Cassandra通过复制实现HA,但可用性的由数据一致性设置决定。本质上,这些设置决定了一个操作(读或写)需要多少节点才能成功响应。要求更多节点响应意味着更少的可用性,而要求更少的节点意味着更多的可用性。严格来说,这是一个与故障转移无关的HA示例。

高可用性

表示服务器系统在某种程度上能够容忍故障。大多数情况下,这是通过硬件冗余来完成的。假设一台机器有冗余电源,如果其中一个电源故障,机器将继续运行。

然后是应用程序冗余(故障转移),这通常是指在多个硬件安装上运行的应用程序能够以一致的方式从这些硬件安装中的任何一个响应客户机。这样,如果硬件完全故障,或者特定机器上的O/S终止,另一台机器可以继续工作。

SQL Server以四种方式处理应用程序冗余:

    集群
  • 镜像
  • 日志传送

高可用性 (简称HA)是一个广义的术语,所以当我想到它时,我倾向于将其视为HA集群

来自维基百科高可用性集群:

高可用性集群是一组计算机支持可以可靠地利用的服务器应用程序最少的停机时间。它们通过使用高可用性来运行软件利用冗余计算机组或集群当系统组件发生故障时,提供持续的服务。没有在集群中,如果运行特定应用程序的服务器崩溃,则应用程序将不可用,直到崩溃的服务器修复。

因此,从上面的描述中得出的结论是,HA集群将在故障转移期间为您提供最少的停机时间。让我解释一下HA集群可以为您提供的两种类型的故障转移:

  1. Hot-Hot/Active-Active:冗余计算机真正并行运行,产生完全相同的状态和完全相同的输出。它们都是活动节点,作为彼此的完美镜像运行。在此场景中,故障转移停机时间为零,您可以简单地从集群中的任何机器上拔下电源插头,而不会导致任何停机或服务中断。

  2. Hot-Warn/active - passive :只有一台主计算机是主计算机,而集群中的其他计算机被动地重建与主计算机相同的状态。当主计算机发生故障时,它必须被禁用或杀死(自动或由操作员),然后集群中的被动计算机需要被激活(自动或由操作员)。

那么问题是什么呢?问题在于,可以在HA集群中运行的应用程序的设计并不简单,因为它们需要是真正的确定性有限状态机。一个典型的问题是当应用程序需要使用时钟来基于时间构建状态时,因为时钟本质上是非常不确定的。

免责声明:我是CoralSequencer的开发人员之一。

最新更新