数据库高可用浅析(1)

什么是高可用?

目前的理解,高可用是指通过设计减少系统不能提供服务的时间。

如果系统一直能不间断提供服务,我们可以说系统的可用性是100%;

如果系统在时间单位内有1%的时间不能提供服务,我们可以说系统的可用性是99%。

业内通常使用MTTF和MTTR来量化一个模块的可用性。

平均无故障时间(MTTF)

MTTF(mean time to failure),指模块处在正常服务状态的平均时间。

平均修复时间(MTTR)

MTTR(mean time to repair),指模块处在服务中断状态的平均时间。

系统可用性的定义是MTTF/(MTTF + MTTR),一个大于等于0,小于等于1的数值。且该数值越大,系统可用性越高。业界最常用的方法是用9的个数来描述系统可用性,比如3个9的可用性,指系统在99.9%的时间里可用,而5个9的可用性意味着系统在99.999%的时间里都是可用的。
下表展示了基于9的个数描述系统可用性而计算得出的,不同可用性的情况下,系统每年允许的服务不可用时间。

可用性年服务不可用时间
99%(2个9) 3.65天
99.9%(3个9) 8.76小时
99.99%(4个9) 52.56分钟
99.999%(5个9) 5.26分钟
99.9999%(6个9) 31.54秒

如何保障系统的高可用

对于数据库,我们都知道,单点往往是系统高可用最大的风险和敌人,应该尽量在系统设计的过程中避免单点。

方法论上,高可用保证的原则是“集群化”,或者叫“冗余”:只有一个单点,挂了服务会受影响;如果有冗余备份,挂了还有其他备份能够顶上。

保证系统高可用,架构设计的核心准则是:冗余。

有了冗余之后,还不够,每次出现故障需要人工介入恢复势必会增加系统的不可服务实践。所以,又往往是通过“自动故障转移”来实现系统的高可用。

所以,在方法论上,高可用是通过冗余+自动故障转移来实现的。

整个互联网分层系统架构的高可用,又是通过每一层的冗余+自动故障转移来综合实现的

总结:

1、高可用是指通过设计减少系统不能提供服务的时间

2、在方法论上,高可用是通过冗余+自动故障转移来实现的。

原文地址:https://www.cnblogs.com/mingfan/p/13047169.html