一次AIX LVM PV重复PVID故障处理记录

 故障背景:客户需要把AIX 5.3.10上的一些VG做两台存储之间的LVM级别的Mirror,存储使用的是两台EMC DMX3,但是由于两套SAN存储之前是使用EMC的软件做存储级别的Mirror,所以就出现了一些匪夷所思的问题。

 

需要做LVM MirrorVG名叫vga,其所拥有的PVhdiskpower0hdiskpower1,新存储划分过来的两个新LUN系统识别为hdiskpower15hdiskpower16。现有的最新的生产数据是放在hdiskpower01里面,而hdiskpower1516对应的LUN是在2013年的时候就停止了存储层面镜像,所以生产数据是停留到2013年的。

 

存储Mapping了新LUN,系统做了cfgmgr之后,发现hdiskpower15hdiskpower0PVID完全一样,hdiskpower16hdiskpower1PVID完全一样,1516也属于vga,状态都为active

 

对于AIXLVM来讲,PVID一样意味着系统将会把它识别为同一块盘,但由于hdiskpower0/15以及1/16在此前是做了存储层面的镜像,所以会出现PVID一样的情况,但是实际上这种现象是不正常的,它会造成系统的ODM库对vga的信息识别混乱。

 

故障发生在重启LPAR分区之后,按照正常的起HA的流程,一切都正常。应用启动完之后,应用开发人员在检查应用的时候,发现vga里面的生产LV的文件系统里面的数据最新的只是到2013年,也就是说近三年的生产数据都不见了!

 

此时有怀疑过激活的vga使用的是hdiskpower1516(因为4PV的状态都是显示为active),使用lsvg –p vga命令查看vgaPV,结果显示为hdiskpower01。但是这个地方是不正常的,因为由于0/151/16之前是存储层面完全镜像,所以VGDA信息里面存的都是hdiskpower0/1,也就是说,即使系统激活vga使用的是hdiskpower15/16,它读到的VGDA里面也会认为hdiskpower15hdiskpower0hdiskpower16hdiskpower1,所以lsvg –p vga显示的也是0/1,但是由于生产数据时间对不上,很明显vga激活时使用的是旧的存储数据,但是系统会误认为激活的是hdiskpower0/1,因为ODM库里面根本就没有hdiskpower15/16的信息。

 

于是varyoffvg vga之后手工把hdiskpower15/16rmdev –dl操作,删除这两个PV以及对应的hdiskX路径盘,此时varyonvg vga,再挂载生产LV的文件系统,发现最新的数据是今天的了。

 

但新问题又出现了,lsvg –l vga查看LV的时候发现,有两个重要的生产LV的文件系统,类型显示为???,正常情况下类型应该显示的是jfs2。尝试手工mount那两个LV对应的文件系统,系统提示LV找不到。

 

由于怀疑到可能是VGODM信息混乱,在二线指导下,把vgaexportvg,再importvg回来,那两个LV的状态就变成jfs2的正常状态了。于是正常起HA,检查应用一切正常。

 

后面得知,那两个重要的生产LV的文件系统是在2013年之后才创建的,也就是说还是ODM信息混乱了,导致系统找不到那两个LVExportImport操作,是为了同步系统ODM库里面vga的信息。

 

最后,还是要把hdiskpower1516处理一下,因为现在vga是激活状态,1516影响不到生产数据,但是如果不把PVID干掉,下次重启系统自动激活vga的时候,还是会出现激活错误的PV这种情况。使用如下命令把1516PVID清掉:

chdev –l hdiskpower15 –a pv=clear

chdev –l hdiskpower16 –a pv=clear

 

苦逼的系统运维啊,各种锅各种背,唉。

还好生产数据没丢,要生产数据丢了就得死翘翘了。

posted @ 2016-08-07 17:23  Sunny_zhufeng  阅读(468)  评论(0编辑  收藏  举报