问题描述: 本文介绍了一种解决部分镜像问题的方法.
解答:
系统中有时会出现部分镜像的问题,当我们用类似"lsvg -l VGNAME"命令去查看lv信息时,
会收到如下的报错信息:
0516-1147 : Warning - logical volume LVNAME may be partially mirrored.
下面介绍一个修复的方法,由于涉及到LVM的操作,请务必谨慎.
1. 首先,一定做好LV的数据备份,备份好后再做下面的操作.
2. 下面我们以testlv为例,情况现在如下:
# lslv -m testlv
testlv:N/A
LP PP1 PV1 PP2 PV2 PP3 PV3
0001 0542 hdisk0 0542 hdisk1
0002 0543 hdisk0
# lspv
hdisk0 0051657f2a797fea rootvg active
hdisk1 0051657f2a798446 rootvg active
3. 创建map文件,包含要删除的pp:
(1) # lquerylv -L `getlvodm -l testlv` -r > /tmp/mapfile
注意: 命令中的符号不是单引号,是与波浪线同一个键的顿号.
(2) # vi /tmp/mapfile
0051657f2a797fea 542 1
0051657f2a798446 542 1
0051657f2a797fea 543 2
保留所有想删掉的pp. 例如testlv中想删掉hdisk1上的pp542,那么map文件应该修改成:
0051657f2a798446 542 1
4. 删除pp:
(1) # wc -l /tmp/mapfile
1
(2) # lreducelv -l `getlvodm -l testlv` -s 1 /tmp/mapfile
注意: 命令中数字1来自wc命令的输出结果, 另外上面命令中仍然是顿号.
5. 上面的命令执行完毕,ODM和LVCB中都应该显示只有一份copy,请用如下命令检查:
# lslv testlv => copies should be 1 in the ODM
# getlvcb -AT testlv => copies should be 1 in the LVCB
如果copy仍然为2,那么请用下面命令更新:
for LVCB, # putlvcb -c 1 testlv
for ODM, # synclvodm -v VGNAME testlv (注:VGNAME为lv所在的VG)
6. 执行同步:
# savebase
7. 上面的步骤都执行成功的话, testlv恢复到没有镜像的状态, 可以用mklvcopy重新做镜像.
如果它在rootvg上,镜像完毕后,请使用bosboot, 例如:
# mklvcopy testlv 2 hdisk1
# syncvg -l testlv
# bosboot -ad /dev/hdisk0
# bosboot -ad /dev/hdisk1
8. 最后强调一下,请务必先做好数据备份,再做上面的操作.
阅读(1124) | 评论(0) | 转发(0) |