分类: 系统运维
2012-12-12 08:29:07
A机与B机都运行着各自的数据库或应用服务,采用IBM PowerHA技术实现双机互备,当A机故障时应用或数据库由B机进行接管,反之亦然,达到了主机硬件层面的高可用性;
另一方面,通过AIX操作系统自带的逻辑卷管理(LVM)技术,在两套磁盘存储设备间建立数据镜像,当任意一套存储出现故障时,应用或数据库都依然能对外提供服务,从而实现存储层面高可用性。
这种结构虽然略显奢侈,但对于可靠性要求非常高的系统还是有必要的。
系统的物理部署图,如下所示:
某日机柜A发生了断电,按照设想,由于有HA保护,B机应该接管A机资源,但事实上却没有成功,在B机上看不到A机的SVC IP,也没有VG资源,B机的HA似乎毫无反应,为啥呢?明明在日常测试的时候,这套HA是好的,可以正常切换,为啥要它工作的时候却罢-工了呢?幸好不是生产环境,要不然必定血压上升、心跳加速。
仔细查看了HA的日志文件,发现B机曾经尝试接管资源,但失败了。能从hacmp.out中看到如下信息:varyonvg: The volume group is not varied on because physical volume is marked missing. Run diagnostics.信息其实提示的很明确了,B机在varyon vg时发现有些pv missing了,导致无法varyonvg。
为啥有盘missing了?很简单,因为机柜A发生断电,存储A也掉电了,而vg由A存储和B存储通过lvm镜像组成,B机无法正确识别B存储的磁盘,引起HA在接管资源时有了上述的报错。
仔细想想,vg是lvm镜像的,理论上讲,采用force的方式是能够varyon的,只要其中有一个存储是可以正常工作,依旧可以提供读写服务,lvm镜像本来就要达到这样的效果啊,是不是HA不支持这种情况啊?一台主机和一个存储不能同时坏?
答案是否定的,HA其实也考虑到了这一点,在Change/Show Resources and Attributes for a Resource Group中对于vg,有这么一个选项“Use forced varyon of volume group,if necessary”,使用了该选项,HA是可以强制将vg varyon的,只不过这个选项很少引起大家的注意。
本博客不再更新,如有需求请关注微信公众号:bankit2014