应用高可用(High Availability,HA)是一个综合性问题,IT系统的目标是为了确保业务的连续可用,所有可能引起业务无法按用户预期提供正常服务的问题,都属于高可用要解决的问题范畴。

评估一个系统可用性的一个重要内容是服务等级协议(Service-LevelAgreement,SLA)。对一个应用系统而言,SLA是本应用系统给客户做出的一份服务承诺,承诺了客户使用该系统的业务可用性和数据安全性,以及万一因系统原因导致客户业务受损,系统服务商所需承担的赔偿责任。

系统的可用性有几个度量指标,其中最核心的是系统的平均无故障时间(MeanTime To Failure,MTTF)。MTTF标识了一个应用系统平均能够正常运行多长时间才发生一次故障。系统的可用性越高,平均无故障时间越长。

一个系统的可维护性用平均维修时间(Mean Time To Repair,MTTR)来度量,即系统发生故障后维修和重新恢复正常运行平均花费的时间。系统的可维护性越强,平均维修时间越短。

一般来说,应用系统的可用性定义为MTTF/(MTTF+ MTTR)×100%。由此可见,应用系统的可用性定义为系统保持正常运行时间的占比。

可用性的另一个辅助指标是业务连续性,业务连续性与可用性并不等同,如果一个系统频繁出故障,但每次故障的时间都非常短,这样仅从时间占比来看,其可用性可能可以达到比较高的水平,但实际上这是一个不健康的系统。业务连续性和系统组件的失败率相关,衡量系统组件失败率的一个指标是失败间隔平均时间(Mean Time BetweenFailures,MTBF),通常这个指标用来衡量硬件单元的可靠性,如内存、磁盘。

应用系统对于故障的容忍度一般通过恢复时间目标(RecoveryTime Objective,RTO)、恢复点目标(Recovery Point Objective,RPO)这两个指标描述。

RTO是指故障发生后,从IT系统死机导致业务停顿时开始,到 IT 系统恢复至可以支持各部门运作、恢复运营时为止,两点之间的时间段称为RTO。该指标定义了最大可容忍的业务停顿时间,必须在此时限内恢复数据及业务。

RPO是指从系统和应用数据的角度,要实现能够恢复至可以支持各部门业务运作,系统及生产数据应恢复到怎样的更新程度。这种更新程度既可以是上一周的备份数据,也可以是上一次交易的实时数据,是业务系统所能容忍的数据丢失量。RPO指标主要反映了业务连续性管理体系下备用数据的有效性,即RPO取值越小,表示系统对数据完整性的保证能力越强。

RTO和RPO指标并不是孤立的,而是从不同角度来反映数据中心的容灾能力。在RPO和RTO都接近零的情况下,将实时数据复制与故障转移服务结合使用,可以实现接近100%的应用程序和数据的可用性。这是应用系统高可用所追求的理想目标,但实际生产系统很难做到,需要根据业务的特点,并综合考虑高可用架构带来的性能影响以及成本投入,进行一定的取舍和权衡。