什么是高可用性(High Availability)?
一、什么是高可用性?
维基百科的解释是:
高可用性(英语:High availability,缩写为 HA),IT术语,指系统无中断地执行其功能的能力,代表系统的可用性程度。是进行系统设计时的准则之一。高可用性系统与构成该系统的各个组件相比可以更长时间运行。[1]
高可用性通常通过提高系统的容错能力来实现。定义一个系统怎样才算具有高可用性往往需要根据每一个案例的具体情况来具体分析。[1]
其度量方式,是根据系统损害、无法使用的时间,以及由无法运作回复到可运作状况的时间,与系统总运作时间的比较。计算公式为:
A(可用性),MTBF(平均故障间隔),MDT(平均修复时间)
在线系统和执行关键任务的系统通常要求其可用性要达到5个9标准(99.999%)。[2]
可用性 | 年故障时间 |
---|---|
99.9999% | 32秒 |
99.999% | 5分15秒 |
99.99% | 52分34秒 |
99.9% | 8小时46分 |
99% | 3天15小时36分 |
二、高可用系统的工作方式?
(1)主从方式 (非对称方式)
工作原理:主机工作,备机处于监控准备状况;当主机宕机时,备机接管主机的一切工作,待主机恢复正常后,按使用者的设定以自动或手动方式将服务切换到主机上运行,数据的一致性通过共享存储系统解决。
(2)双机双工方式(互备互援)
工作原理:两台主机同时运行各自的服务工作且相互监测情况,当任一台主机宕机时,另一台主机立即接管它的一切工作,保证工作实时,应用服务系统的关键数据存放在共享存储系统中。
(3)集群工作方式(多服务器互备方式)
工作原理:多台主机一起工作,各自运行一个或几个服务,各为服务定义一个或多个备用主机,当某个主机故障时,运行在其上的服务就可以被其它主机接管。
三、IT基础设施的高可用有哪些?
一:网络高可用
由于网络存储的快速发展,网络冗余技术被不断提升,提高IT系统的高可用性的关键应用就是网络高可用性,网络高可用性与网络高可靠性是有区别的,网络高可用性是通过匹配冗余的网络设备实现网络设备的冗余,达到高可用的目的。
二:服务器高可用
服务器高可用主要使用的是服务器集群软件或高可用软件来实现。
三:存储高可用
使用软件或硬件技术实现存储的高度可用性。其主要技术指标是存储切换功能,数据复制功能,数据快照功能等。当一台存储出现故障时,另一台备用的存储可以快速切换,达一存储不停机的目的。
四、问题甄别?
4.1 高可用性与容错技术有什么区别
容错(FT)技术一般利用冗余硬件交叉检测操作结果。当发现异常时,故障部件会被隔离开而不影响用户的操作。
高可用性方案则利用更少的冗余部件同时由软件检测故障,一旦故障发生立即隔离损坏部件,通过提供故障恢复实现最大化系统和应用的可用性。
容错技术随着处理器速度的加快和价格的下跌而越来越多地转移到软件中。未来容错技术将完全在软件环境下完成,那时它和高可用性技术之间的差别也就随之消失了。如我的高可用RabbitMQ框架。
4.2 负载均衡和高可用的区别
高可用性应用模式如上二中描述,通过备份提高整个系统可用性。
而负载均衡集群一般是多主,每个节点都分担流量,可以理解为负载均衡软件(nginx,lvs等)实现了增强了站点的可用性。但是本身并非高可用。负载均衡软件本身集群实现方案可以认为是高可用。