分类:
2006-05-14 15:59:57
第一、 问题引出:
今天打开机器发现个很奇怪的问题,估计是上次关机器之前误操作造成的。现象如下:
# lspv
hdisk0 0007f82fbf333702 rootvg
hdisk1 0007f82ff27eac8e None
#lsvg rootvg
VG PERMISSION: read/write TOTAL PPs: 1088 (17408 megabytes)
MAX LVs: 256 FREE PPs: 809 (12944 megabytes)
LVs: 7 USED PPs: 279 (4464 megabytes)
OPEN LVs: 7 QUORUM: 2
TOTAL PVs: 2 //rootvg有2个pv VG DESCRIPTORS: 3
STALE PVs: 0 STALE PPs: 0
ACTIVE PVs: 2 AUTO ON: yes
MAX PPs per PV: 1016 MAX PVs: 32
问题在那里?可以看到显示pv不属于任何vg,但是显示rootvg的时候发现这个hdisk1还属于rootvg啊。这样会导致在hdisk1上无法mkvg,尝试做如下操作,皆失败。运行diag分析也提示无法找到信息。这一刻我坚持认为hdisk1应该是坏了。 或者接触不良,开机箱插拔一次数据线也没有任何的改变,在判了这个硬盘死刑之后有一个疑问,怎么运行cfgmgr可以给这个硬盘分配到pvid呢?cfgmgr不是做一次硬盘的识别吗?既然能分配pvid,应该可以说明这个硬盘系统是能够识别的。
#exportvg //成功
#extendvg rootvg hdisk1 //失败
#mkvg datavg hdisk1 //失败
# lspv -p hdisk1
0516-320 : Physical volume 0007f82ff27eac8e is not assigned to
a volume group. //失败
第二、 柳暗花明
这个问题摸不找头脑,无意中运行这个:
# lsvg -p rootvg
rootvg:
PV_NAME PV STATE TOTAL PPs FREE PPs FREE DISTRIBUTION
hdisk0 active 542 273 109..00..00..55..109
hdisk1 active 546 536 110..109..99..109..109
发现hdisk1这个pv的state竟然是active。然后无意再输入这个
# lsvg -l rootvg
rootvg:
LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT
hd3 jfs 1 1 1 open/syncd /tmp
hd1 jfs 10 20 2 open/syncd /home
运行这个命令之后发现hd1有2个拷贝,才想起前天给hd1这个lv使用mklvcopy命令给这个lv添加了copy的,好了,既然如此就尝试先删除备份把。
# rmlvcopy hd1 1 hdisk1 成功,然后尝试把这个pv加入这个vg
# extendvg rootvg hdisk1 //成功
# lsvg rootvg //确认一下,的确已经添加成功:TOTAL PVs: 2
VOLUME GROUP: rootvg VG IDENTIFIER: 0007f82fbf333b3f
VG STATE: active PP SIZE: 16 megabyte(s)
VG PERMISSION: read/write TOTAL PPs: 1088 (17408 megabytes)
MAX LVs: 256 FREE PPs: 819 (13104 megabytes)
LVs: 7 USED PPs: 269 (4304 megabytes)
OPEN LVs: 7 QUORUM: 2
TOTAL PVs: 2 VG DESCRIPTORS: 3
STALE PVs: 0 STALE PPs: 0
ACTIVE PVs: 2 AUTO ON: yes
MAX PPs per PV: 1016 MAX PVs: 32
# lspv -p hdisk1 //显示hdisk1的结构,成功。
hdisk1:
PP RANGE STATE REGION LV ID TYPE MOUNT POINT
1-110 free outer edge
111-219 free outer middle
220-328 free center
329-437 free inner middle
438-546 free inner edge
至此,我认为这个问题已经解决。
第三、 总结
这个问题可以说是解决,但是原因目前我无法解释,并且这次使用的是有损数据的方法来解决问题,在生产的机器上肯定不能做这样的操作的。希望以后可以解释。