AIX系统在逻辑卷级提供了磁盘镜像功能,以增加数据的可用性和可靠性,镜像一旦出现异常,如当其中一块硬盘损坏时,就可能造成数据丢失从而引发严重后果,所以我们在日常维护中都会经常对镜像状态进行检查。下面给大家介绍一个典型的AIX系统故障案例。
安图特工程师在一次客户例行巡检时,发现某台IBM小型机rootvg卷组中有一个lv镜像出现了问题,立即采取措施及时处理,解决了这个安全隐患。
1、lsvg -l rootvg  看到itsmfslv的镜像状态不正常:

通常rootvg做了镜像,正常状态下应该是LPs:PPs = 1:2。因此,itsmfslv这个lv的镜像状态明显异常,可能是某种异常原因导致的。
2、进一步检查,lslv -m itsmfslv
[****:root:/]lslv -m itsmfslv
itsmfslv:/itsm
LP   PP1  PV1  PP2  PV2  PP3  PV3
0001  0206 hdisk1            0214 hdisk0
0002  0207 hdisk1            0215 hdisk0
0003  0208 hdisk1
0004  0209 hdisk1
可以看出pv2(hdisk0)上面分布的pp只有2个,正常应该有4个pp。
3、排查故障后开始尝试恢复工作:
a.使用rmlvcopy去除lv的镜像,再重新mklvcopy做镜像,但效果依旧。
b.同步逻辑卷
[****:root:/]synclvodm -v rootvg
synclvodm: Physical volume data updated.
synclvodm: Logical volume hd5 updated.
synclvodm: Logical volume hd6 updated.
synclvodm: Logical volume hd8 updated.
synclvodm: Logical volume hd4 updated.
synclvodm: Logical volume hd2 updated.
synclvodm: Logical volume hd9var updated.
synclvodm: Logical volume hd3 updated.
synclvodm: Logical volume hd1 updated.
synclvodm: Logical volume hd10opt updated.
synclvodm: Logical volume fwdump updated.
synclvodm: Logical volume lg_dumplv updated.
synclvodm: Logical volume loglv00 updated.
synclvodm: Logical volume stagelv updated.
synclvodm: Logical volume oraclelv updated.
synclvodm: Logical volume itsmfslv updated.
synclvodm: Logical volume fslv00 updated.
3、通过查找相关文档,可以通过手工改LPs:PPs的map表,来修复此故障。可以在线进行操作。
[****:root:/]lslv -m itsmfslv
itsmfslv:/itsm
LP    PP1  PV1               PP2  PV2               PP3  PV3
0001  0206 hdisk1            0214 hdisk0
0002  0207 hdisk1            0215 hdisk0
0003  0208 hdisk1
0004  0209 hdisk1
查看lvid:
[****:root:/]getlvcb -AT itsmfslv
         AIX LVCB
         intrapolicy = m
         copies = 2
         interpolicy = m
         lvid = 00cd091c00004c000000010ee17ecf54.15
         lvname = itsmfslv
         label = /itsm
         machine id = D091C4C00
         number lps = 8
         relocatable = y
         strict = y
         stripe width = 0
         stripe size in exponent = 0
         type = jfs2
         upperbound = 32
         fs = vfs=jfs2:log=/dev/hd8:mount=true:options=rw:account=false
         time created  = Thu Jun 14 08:35:47 2007
         time modified = Thu Jan 10 13:08:19 2013
查看pp对应的pvid及pp位置:
[****:root:/]lquerylv -L  00cd091c00004c000000010ee17ecf54.15 -r
00cd091c895191da 206  1
00cd091ce17eb6a2 214  1
00cd091c895191da 207  2
00cd091ce17eb6a2 215  2
00cd091c895191da 208  3
00cd091c895191da 209  4
 
[****:root:/]lspv
hdisk0          00cd091ce17eb6a2                   rootvg          active
hdisk1          00cd091c895191da                    rootvg          active
编辑mapping文件删除hidsk0上的pp信息:
[****:root:/]vi /tmp/mapping  (map文件里面是要删除的PP信息)
00cd091ce17eb6a2 214 1
00cd091ce17eb6a2 215 2
 
[****:root:/]lreducelv -l  00cd091c00004c000000010ee17ecf54.15 -s 2 /tmp/mapping  (s 后面的数字和map表中的条目一致)
lsvg –l rootvg查看,itsmfslv的异常镜像已经去掉了。

[****:root:/]使用mklvcopy对itsmfslv重做镜像。
4、完成之后itsmfslv镜像状态恢复正常:

如欲了解更多,请登录安图特官方网站:www.antute.com.cn