先,故障分软故障,硬故障,人为故障,可恢复故障,不可恢复故障,集群不能解决所有问题,关键还是人和规范流程.
好的系统可以提高可用性,也可以提高性能,更需要好的设计和维护.
 
VCS可以检测到应用失败和节点失败
应用需要提供各种行为的脚本(启动,关闭,监控),也依赖于文件系统和网络接口
VCS可以区分节点失败和节点通讯失败,采用心跳线,共享存储,冗余数据接口来保护系统.
 
切换分主动切换和失败切换两种
比如基于流量负荷均衡的原因可以触发主动切换,节点或通讯失败可以触发失败切换
不管是哪种切换,应用要保证数据安全特别是临时数据的可靠性,一致性,完整性,采用cluster系统的应用设计时就要考虑到,比如基于服务器-客户端结构的应用要将临时数据存在共享存储器中,程序不能依赖于系统的物理特性,只依赖于数据,所以VCS提供虚拟ip地址给客户端,对主机也有类似的技术,比如为防止共享scsi磁阵的命名冲突,同一物理磁阵在不同主机上需分配不同的scsi号,而VCS可以将不同的scsi号转化成相同的DID,如果你的程序调用scsi号,那在cluster下就没法玩了
另外决定切换的速度主要是应用,而不是vcs,真正的0秒切换的热备份是不存在的,即使系统设计成物理内存的共享,切换时节点的通讯路由变化及检测也是需要CPU时间片的.采用何种方式取决于你可以忍受多长时间的中断,及应用与数据的交互流量和带宽,如果客户端感觉不到实际的物理中断就是非常好的效果了
 
根据业务需求,确定要升级为vcs cluster,你需要做的是,定义启动、关闭、监控的程序,数据存在共享设备上吗?应用启动,关闭时能及时读写正确的数据吗,如果都是yes,那么就买注册号吧