1.1.4 高可用和高可靠

可靠性和可用性这两者之间有一定的区别和联系,定义如下:

● 可用性(Availability):被定义为系统的一个属性,它说明系统已准备好,马上就可以使用。换句话说,高度可用的系统在任何给定的时刻都能及时地工作。关注的是服务总体的持续时间,系统在给定时间内总体的运行时间越长,可用性越高。

● 可靠性(Reliability):指系统可以无故障地持续运行。与可用性相反,可靠性是根据时间间隔而不是任何时刻来进行定义的。一个服务连续无故障运行的时间越长,可靠性就越高。

可靠性、可用性相关的指标如下:

● MTBF(Mean Time Between Failure,平均无故障时间)是指系统在规定的工作环境条件下开始工作到出现第一个故障的时间的平均值。MTBF越长表示可靠性越高,正确工作能力越强。

● MTTF(Mean Time To Failure,平均故障前时间)是指系统平均能够正常运行多长时间才发生一次故障。系统的可靠性越高,平均无故障时间越长。

● MTTR(Mean Time To Repair,平均修复时间)是指可修复产品的平均时间,就是从出现故障到修复中间的这段时间。MTTR越短表示易恢复性越好。

在《分布式系统原理与范型》(第2版)一书中提到的以下例子比较准确地解释了两者的区别:

如果系统每小时崩溃1ms,那么它的可用性就超过99.9999%,但是它还是高度不可靠,因为它只能无故障运行1小时。与之类似,如果一个系统从来不崩溃,但是每年要停机两个星期,那么它是高度可靠的,但是可用性只有96%。