什么是高可用性?高可用集群概念及工作原理详解

4747 2426 2023-06-06

本文讲述了什么是高可用性?高可用集群概念及工作原理详解

介绍

随着对旨在为关键系统提供服务的可靠和高性能基础架构的需求不断增加,术语可扩展性和高可用性不再受欢迎。虽然处理增加的系统负载是一个常见问题,但减少停机时间和消除单点故障同样重要。高可用性是一种大规模的基础设施设计,可以满足后面的考虑因素。

在本指南中,我们将讨论什么是高可用性意味着什么,以及它如何提高您的基础架构的可靠性。

什么是高可用性?

在计算中,术语可用性用于描述服务可用的时间段,以及系统响应用户请求所需的时间。高可用性是系统或组件的质量,可确保在给定时间段内实现高水平的操作性能。

衡量可用性

可用性通常表示为一个百分比,表示在给定时间段内特定系统或组件的正常运行时间,其中100%的值表示系统永不失效。例如,在一年的时间内保证99%可用性的系统最多可以有3.65天的停机时间(1%)。

这些值是根据几个因素计算的,包括计划和非计划维护周期,以及从可能的系统故障中恢复的时间。

高可用性如何工作?

高可用性用作基础架构的故障响应机制。它的工作方式在概念上非常简单,但通常需要一些专门的软件和配置。

何时高可用性重要?

在建立稳健的生产系统时,最大限度地减少停机时间和服务中断通常是首要任务。不管如何可靠的系统和软件,可能会出现问题,可以降低你的应用程序或服务器。 对于您的基础架构实现高可用性是减少这类事件的影响的有用策略。高度可用的系统可以自动从服务器或组件故障中恢复。

什么使系统高度可用?

高可用性的目标之一是消除基础架构中的单点故障。单点故障是技术堆栈的一个组件,如果它变得不可用,将导致服务中断。因此,这是为你的应用程序,没有冗余的正常功能的必要条件的任何部件被认为是单一故障点。

要消除单点故障,必须为堆栈的每一层做好冗余准备。例如,假设您的基础架构由负载均衡器后面的两个相同的冗余Web服务器组成。来自客户端的流量将在Web服务器之间平均分配,但如果其中一个服务器出现故障,负载均衡器会将所有流量重定向到剩余的在线服务器。

此方案中的Web服务器层不是单点故障,因为:

  • 适用于同一任务的冗余组件

  • 该层顶部的机制(负载均衡器)能够检测组件中的故障并调整其行为以便及时恢复

但是如果负载均衡器脱机会发生什么?

利用所描述的场景,这在现实生活中并不罕见,负载平衡层本身仍然是单点故障。然而,消除这个剩余的单点故障可能具有挑战性; 即使您可以轻松配置额外的负载均衡器以实现冗余,但在负载均衡器之上没有明显的点来实现故障检测和恢复。

仅冗余不能保证高可用性。必须有一种机制来检测故障并在堆栈的某个组件不可用时采取措施。

可以使用从上到下的方法实现冗余系统的故障检测和恢复:顶部的层负责监视其下方的层以确定故障。在我们之前的示例场景中,负载均衡器是顶层。如果其中一个Web服务器(底层)变得不可用,则负载平衡器将停止重定向该特定服务器的请求。

这种方法往往更简单,但它有一些局限性:您的基础架构中有一个点,即顶层不存在或不可及,负载平衡器层就是这种情况。为外部服务器中的负载均衡器创建故障检测服务只会创建新的单点故障。

在这种情况下,分布式方法是必要的。必须将多个冗余节点连接在一起作为一个集群,其中每个节点应该同样能够进行故障检测和恢复。

但是,对于负载平衡器的情况,由于名称服务器的工作方式,还有一个额外的复杂因素。从负载平衡器故障中恢复通常意味着故障转移到冗余负载平衡器,这意味着必须进行DNS更改才能将域名指向冗余负载平衡器的IP地址。这样的更改可能需要相当长的时间才能在Internet上传播,这会导致此系统严重停机。

一种可能的解决方案是使用DNS循环负载平衡。但是,这种方法不可靠,因为它使客户端应用程序的故障转移。

更强大和可靠的解决方案是使用允许灵活IP地址重映射的系统,例如浮动IP。按需IP地址重新映射通过提供可在需要时轻松重新映射的静态IP地址,消除了DNS更改中固有的传播和缓存问题。域名可以保持与相同的IP地址关联,而IP地址本身也可以在服务器之间移动。

高可用性需要哪些系统组件?

在实践中实现高可用性时,必须仔细考虑几个组件。除了软件实现之外,高可用性还取决于以下因素:

  • 环境:如果您的所有服务器都位于同一地理区域,则地震或洪水等环境条件可能会导致整个系统崩溃。在不同数据中心和地理区域中使用冗余服务器将提高可靠性。

  • 硬件:高可用性服务器应该能够适应电源中断和硬件故障,包括硬盘和网络接口。

  • 软件:整个软件堆栈,包括操作系统和应用程序本身,必须准备好处理可能需要重新启动系统的意外故障。

  • 数据:数据丢失和不一致可能由多种因素引起,并且不仅限于硬盘故障。高可用性系统必须在发生故障时考虑数据安全性。

  • 网络:计划外网络中断是高可用性系统的另一个可能的故障点。为可能的故障制定冗余网络策略非常重要。

可以使用哪些软件来配置高可用性?

高可用性系统的每一层在软件和配置方面都有不同的需求。但是,在应用程序级别,负载平衡器是创建任何高可用性设置的重要软件。

HAProxy(高可用性代理)是负载平衡的常见选择,因为它可以处理多个层的负载平衡,以及不同类型的服务器,包括数据库服务器。

向上移动系统堆栈,为应用程序入口点(通常是负载平衡器)实施可靠的冗余解决方案非常重要。要消除此单点故障,如前所述,我们需要在浮动IP后面实现负载均衡器集群。Corosync和Pacemaker是在Ubuntu和CentOS服务器上创建此类设置的流行选择。

结论

高可用性是可靠性工程的重要子集,专注于确保系统或组件在给定的时间段内具有高水平的操作性能。乍一看,它的实施可能看起来相当复杂; 但是,它可以为需要提高可靠性的系统带来巨大的好处。

高可用集群到底是个啥?工作原理又是怎样的?下面将和大家说说。建议收藏或者分享了再慢慢看,不然刷着刷着又不见了。但是答应我不要让文章在收藏夹吃灰好吗?

1、什么是高可用集群?

所谓高可用集群(High Availability Cluster,简称HA Cluster),即当前服务器出现故障时,可以将该服务器中的服务、资源、IP等转移到另外一台服务器上,从而满足业务的持续性;这两台或多台服务器构成了服务器高可用集群。

简单地说就是保证服务不间断地运行,比如淘宝网24小时都可以买买买,微信随时可以发消息斗图。

2、高可用集群的衡量标准

要保证集群服务100%时间完全可用,几乎是不可能的。举个栗子,淘宝是互联网巨佬了吧?但这几年双十一刚开抢的时候,一下子涌进淘宝买东西的人很多,访问量大,都出现了一些问题,比如下单后却支付不了(双十一的优衣库是我永远的痛,几年了我就没成功下过单)。所以说只能保证服务尽可能地可用,当然有些场景相信还是可能做到100%可用的。

具体的HA衡量标准可以看下面这张表:image.png


3、高可用集群部分名词解释

(1)集群节点

集群存在所有主机都称为节点,每个HA集群最低要求需有2个节点;正常来说,节点数最好为奇数。在生产环境中,HA集群的节点数至少为3个,可以降低发生脑裂的概率。

(2)集群服务与资源

集群服务通常包括多个资源,多个资源组成某种集群服务。如mysql高可用服务,其资源包括vip、mysqld、共享存储等。资源是启动一个服务需要的子项目。例如启动一个httpd服务,需要ip,也需要服务脚本,还需要文件系统(用来存储数据的),这些我们都可以统称为资源。对于集群服务的管理,实际上就是对资源的管理。

(3)脑裂

脑裂是指因某种特殊原因造成集群分裂成两个小集群,而这两个小集群互相不能正常通信,此时,就会发生脑裂(Brain Split)现象。

(4)共享存储

高可用集群多节点都需要访问数据,如果各节点访问同一个数据文件都是在同一个存储空间内的,就是说数据共享的就一份,而这个存储空间就共享存储。如Web或Mysql高可用集群,他们的数据一般需要放在共享存储中,主节点能访问,从节点也能访问。

4、实现高可用集群的三种方式

(1)主从方式(非对称)

这种方式组建的高可用集群通常包含2个节点和一个或多个服务器,其中一台作为主节点(active),另一台作为备份节点(standy)。备份节点随时都在检测主节点的健康状况,当主节点发生故障时,服务会自动切换到备份节点上以保证服务正常运行。

这种方式下的高可用集群其中的备份节点平时不会启动服务,只有发生故障时才会有用,因此会造成一定浪费。

(2)对称方式

这种方式一般包含2个节点和一个或多个服务,其中每一个节点都运行着不同的服务且相互作为备份,两个节点互相检测对方的健康状况,这样当其中一个节点发生故障时,该节点上的服务会自动切换到另一个节点上去。这样可以保证服务正常运行。

(3)多机方式

这种集群包含多个节点和多个服务。每一个节点都可能运行和不运行服务,每台服务器都监视着几个指定的服务,当其中的一个节点发生故障时,会自动切换到这组服务器中的一个节点上去。

5、高可用集群的逻辑架构

image.png



6、高可用集群软件介绍

随着技术的发展,市面上的高可用集群软件越来越多。在国外做得比较好的有RoseHA,在国内也有不少,其中)PingCAP数据服务平台比较成熟。

上文就是小编为大家整理的什么是高可用性?高可用集群概念及工作原理详解。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:什么是关系型数据库RDS,关系数据库和非关系数据库区别
下一篇:挑战ArkUI复刻手机备忘录(Rdb数据库)
相关文章