一、HA cluster
集群cluster是指使用一组计算机作为一个整体向用户提供一组网络资源。在集群中的每个计算机系统称为集群节点(node)。集群可随着业务的增长,通过添加新的节点的方式来提升集群性能。集群的类型包括:Load Balance、High Availability、High Performance这三种,而我们通常所说的HA cluster就是High availability cluster。
在某个计算机系统运行的过程中,计算机的硬件和软件均有一定概率出错,导致在此计算机系统上的服务会不可避免的中断,通常我们将此类情况称之为单点故障(single point of failure)。而HA cluster就是为了保证即使某个计算机系统节点失效,也能够保证服务不受影响,继续提供服务。
二、HA cluster 的性能衡量及工作方式
因为HA cluster 高可用的是服务,因此衡量一个HA cluster 性能的优劣与服务故障及恢复时间相关。一个HA cluster的性能可使用下面的公式来计算:
HA=MTBF/(MTBF+MTTR)*100%
其中MTBF即平均故障间隔时间,而MTTR即故障的平均恢复时间。其计算值的范围为0-1,计算得到的结果越接近1,说明此HA cluster 就越稳定。99% 意味着一年宕机时间不超过4天;99.9% 意味一年宕机时间不超过10小时;99.99% 意味一年宕机时间不超过1小时;99.999% 意味一年宕机时间不超过6分钟。
HA cluster的工作方式包括:
1)主备方式
即HA cluster集群中的节点以主备的方式运行,主机处于工作状态,备机处于监控准备状态;当主机出现宕机状态时,备机接管主机的一切工作, 待主机恢复正常后,备机再根据事先设置的设定来决定是否把服务切换到主机上运行。
2)双主方式
即HA cluster 集群中的节点均已主机方式运行,互相之间同时运行维护各自的服务工作并相互检测。当任意一台主机宕机后,另一台主机会接管它的一切工作,保证服务正常运行。
三、HA cluster的运行原理
自动侦测(Auto-Detect)阶段 由主机上的软件通过冗余侦测线,经由复杂的监听程序。逻辑判断,来相互侦测对方运行的情况,所检查的项目有:主机硬件(CPU和周边)、主机网络、主机操作系统、数据库引擎及其它应用程序、主机与磁盘阵列连线。为确保侦测的正确性,而防止错误的判断,可设定安全侦测时间,包括侦测时间间隔,侦测次数以调整安全系数,并且由主机的冗余通信连线,将所汇集的讯息记录下来,以供维护参考。
自动切换(Auto-Switch)阶段 某一主机如果确认对方故障,则正常主机除了继续进行原来的任务,还将依据各种容错备援模式接管预先设定的备援作业程序,并进行后续的程序及服务,此类故障切换又被称为failover。
自动恢复(Auto-Recovery)阶段 在正常主机代替故障主机工作后,故障主机可离线进行修复工作。在故障主机修复后,透过冗余通讯线与原正常主机连线,自动切换回修复完成的主机上。整个恢复过程完成由HA相关软件自动完成,亦可依据预先配置,选择恢复动作为半自动或不恢复。而某资源的主节点故障后重新修改上线后,将转移至其它节点的资源重新切回的过程通常称为failback。