什么是高可用
先逛一逛百科和博客……
高可用
通常是指,通过设计减少系统不能提供服务的时间。高可用
通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性。高可用
指系统无中断地执行其功能的能力,代表系統的可用性程度。
定义什么的就这样吧……
核心准则
看到一篇文章的作者总结得很好(究竟啥才是互联网架构“高可用”):
保证系统高可用,架构设计的核心准则是:冗余
想想其实也挺好理解,如果运行一个系统的资源是冗余的,那就更能应对突发的情况,如:流量激增、部分服务故障、电缆被砍等。
所以当我们看到一个产品、或系统、或服务说自己是高可用
时,就可以留意它在哪些资源上做了冗余,而这些冗余能抵御的又是哪些故障。
容错机制
即使系统的资源是冗余的,也还是需要一定的手段或说机制,来保证系统的高可用运作起来
自动侦查(Auto-Detect)
就是系统要能监控资源的可用情况,那系统又是如何进行监控?定时检查?以任务执行状态判断?
自动切换(Auto-Switch)
就是系统检测到存在资源不可用时,该如何用上其冗余的资源?
自动恢复(Auto-Recovery)
就是在故障资源修复完成后,如何通知系统重新用上该资源?
其它
觉得还有许多其它的机制也可以为
高可用
服务:扩容、缩容、重载、降级、削锋……
工作方式
百度百科有一段介绍高可用的“工作方式”,但我想这一块应该主要是想探讨系统的各资源之间可能存在的关系:
主从(非对称)
主资源工作,冗余资源处于监控准备状态。当主资源发生故障时,冗余资源接管工作,待主资源恢复正常后,将切换并重新使用主资源,或者不切换作为冗余资源。
双机双工(互备互换)
两个资源同时支持各自的系统服务并相互监测运行情况,当其中一个资源发生故障时,另一个资源立刻接管其工作。
集群(多服务器互备)
要解析
集群
可能要新开一篇总结了…..搭建集群系统,是为了
单点故障
:- 消除供电的单点故障
- 消除磁盘的单点故障
- 消除 SPU(System Process Unit)单点故障
- 消除网络单点故障
- 消除软件单点故障
- ……
实施
说了这么多,那具体我们又要在哪些地方实施高可用
策略?这就涉及到系统架构设计的整个流程了……
……