LVM Mirrors 的创建及故障恢复(原创)


操作系统:CentOS 5.2
lvm>pvdisplay
  --- Physical volume ---
  PV Name               /dev/hda8
  VG Name               vg00
  PV Size               7.67 GB / not usable 4.05 MB
  Allocatable           yes (but full)
  PE Size (KByte)       4096
  Total PE              1962
  Free PE               1962
  Allocated PE          0
  PV UUID     sgwj7p-bvEE-WX5G-EFYH-01Yb-0BHN-CTYxR9
  
  --- Physical volume ---
  PV Name               /dev/hdc8
  VG Name               vg00
  PV Size               7.67 GB / not usable 4.05 MB
  Allocatable           yes (but full)
  PE Size (KByte)       4096
  Total PE              1962
  Free PE               1962
  Allocated PE          0
  PV UUID        oqWfok-Ktuj-zKAq-IdkH-kl3Y-wIbf-nApl2w
lvm>vgdisplay
  --- Volume group ---
  VG Name               vg00
  System ID            
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  61
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                3
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               15.33 GB
  PE Size               4.00 MB
  Total PE              3924
  Alloc PE / Size       0 / 0  
  Free  PE / Size       3924 / 15.33 GB
  VG UUID      fn8mmz-wNoY-Kurv-HtDq-3ghG-rCVI-zAyPQS

pv和vg的创建我就不多说了,请参考基础篇的操作,下面说说如何创建及故障恢复LVM Mirrors。
一、 没有创建过LV的情况下,创建Mirrors
lvm>lvcreate –m1 –corelog –l1962 –n lv00 vg00
两个主要参数:
-m1 创建一个镜像,如果要创建多个镜像,用mn,当然要有n个pv来支持
--corelog 将日志创建到内存中。如果没有这个参数,日志需要单独一个pv来创建(也就是说需要3个pv来创建镜像)。上面命令变为lvcreate –m1 –l1962 –n lv00 vg00 /dev/hda8 /dev/hdc8 /dev/hdd8(hdd8为假设新增的pv),镜像日志保存在hdd8上。

二、 已经创建过LV的情况下,改造成Mirrors
假设已经用下述命令创建了PV
lvm>lvcreate –l1962 –n lv00 vg00 /dev/hda8
该LV全部创建到hda8上了
下面将lv00转换成镜像模式
lvm>lvconvert –m1 –corelog vg00/lv00 /dev/hdc8

三、查看创建情况
lvm> lvs -a -o +devices
  LV    VG   Attr   LSize Origin Snap%  Move Log Copy%  Devices                         
  lv00   vg00 mwi-a- 7.66G                    3.11 lv00_mimage_0(0),lv00_mimage_1(0)
  [lv00_mimage_0] vg00 iwi-ao 7.66G                               /dev/hda8(0)                    
  [lv00_mimage_1] vg00 iwi-ao 7.66G                               /dev/hdc8(0)                                 
当copy%提示100%时候,镜像盘同步完毕。
然后就是创建文件系统、挂载使用了
四、 关机、让hdc硬盘离线,模拟硬件故障。
如果前面创建的LV是做到自加载的fstab文件里去的话,会导致系统无法正确引导,提示进入修复模式进行修复。现假设是手工加载方式,系统正常引导,但是LVM启动不起来。
lvm>pvdisplay
  Couldn't find device with uuid 'oqWfok-Ktuj-zKAq-IdkH-kl3Y-wIbf-nApl2w'.
  Couldn't find device with uuid 'oqWfok-Ktuj-zKAq-IdkH-kl3Y-wIbf-nApl2w'.
  Couldn't find device with uuid 'oqWfok-Ktuj-zKAq-IdkH-kl3Y-wIbf-nApl2w'.
  Couldn't find all physical volumes for volume group vg00.
  Couldn't find device with uuid 'oqWfok-Ktuj-zKAq-IdkH-kl3Y-wIbf-nApl2w'.
  Couldn't find all physical volumes for volume group vg00.
  Can't read vg00: skipping
  Couldn't find device with uuid 'oqWfok-Ktuj-zKAq-IdkH-kl3Y-wIbf-nApl2w'.
  Couldn't find all physical volumes for volume group vg00.
  Couldn't find device with uuid 'oqWfok-Ktuj-zKAq-IdkH-kl3Y-wIbf-nApl2w'.
  Couldn't find all physical volumes for volume group vg00.
  Can't read vg00: skipping
lvm>pvscan
  Couldn't find device with uuid 'oqWfok-Ktuj-zKAq-IdkH-kl3Y-wIbf-nApl2w'.
  Couldn't find device with uuid 'oqWfok-Ktuj-zKAq-IdkH-kl3Y-wIbf-nApl2w'.
  PV /dev/hda8        VG vg00   lvm2 [7.66 GB / 0    free]
  PV unknown device   VG vg00   lvm2 [7.66 GB / 0    free]
  Total: 2 [15.33 GB] / in use: 2 [15.33 GB] / in no VG: 0 [0   ]
上述提示找不到/dev/hdc8设备。
基于上述情况,做下列操作进行修复
lvm> vgreduce --mirrorsonly --removemissing vg00
  Couldn't find device with uuid 'oqWfok-Ktuj-zKAq-IdkH-kl3Y-wIbf-nApl2w'.
  Couldn't find all physical volumes for volume group vg00.
  Couldn't find device with uuid 'oqWfok-Ktuj-zKAq-IdkH-kl3Y-wIbf-nApl2w'.
  Couldn't find all physical volumes for volume group vg00.
  Couldn't find device with uuid 'oqWfok-Ktuj-zKAq-IdkH-kl3Y-wIbf-nApl2w'.
  Couldn't find device with uuid 'oqWfok-Ktuj-zKAq-IdkH-kl3Y-wIbf-nApl2w'.
  Couldn't find device with uuid 'oqWfok-Ktuj-zKAq-IdkH-kl3Y-wIbf-nApl2w'.
  Couldn't find device with uuid 'oqWfok-Ktuj-zKAq-IdkH-kl3Y-wIbf-nApl2w'.
  WARNING: Unable to determine mirror sync status of vg00/lv00.
  WARNING: Bad device removed from mirror volume, vg00/lv00
  WARNING: Mirror volume, vg00/lv00 converted to linear due to device failure.
  Wrote out consistent volume group vg00
lvm> pvdisplay
  --- Physical volume ---
  PV Name               /dev/hda8
  VG Name               vg00
  PV Size               7.67 GB / not usable 4.05 MB
  Allocatable           yes (but full)
  PE Size (KByte)       4096
  Total PE              1962
  Free PE               0
  Allocated PE          1962
  PV UUID  gwj7p-bvEE-WX5G-EFYH-01Yb-0BHN-CTYxR9

lvm> pvscan
  PV /dev/hda8   VG vg00   lvm2 [7.66 GB / 0    free]
  Total: 1 [7.66 GB] / in use: 1 [7.66 GB] / in no VG: 0 [0   ]
vgdisplay、lvdisplay显示都正常,LV从Mirrors模式转换成linear模式工作。更换完毕硬盘后,参照第二步,将LV转换成Mirrors方式。
故障修复后重启可能会遇到“Warning: Volume Group vg00 is not consistent”问题提示,
lvm>vgchange –ay vg00
  Volume group "vg00" inconsistent
  Inconsistent metadata copies found - updating to use version 89
  Volume group vg00 metadata is inconsistent
  Volume group for uuid not found: fn8mmzwNoYKurvHtDq3ghGrCVIzAyPQSAxOy1I19Tlsh5Ow67mVlEo2a2CwoSQi1
  1 logical volume(s) in volume group "vg00" now active
lvm>vgdisplay
  --- Volume group ---
  VG Name               vg00
  System ID            
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  95
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               7.66 GB
  PE Size               4.00 MB
  Total PE              1962
  Alloc PE / Size       1962 / 7.66 GB
  Free  PE / Size       0 / 0  
  VG UUID fn8mmz-wNoY-Kurv-HtDq-3ghG-rCVI-zAyPQS
lvm> lvdisplay
  --- Logical volume ---
  LV Name                /dev/vg00/lv00
  VG Name                vg00
  LV UUID   AxOy1I-19Tl-sh5O-w67m-VlEo-2a2C-woSQi1
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                7.66 GB
  Current LE             1962
  Segments               1
  Allocation             inherit
  Read ahead sectors     0
  Block device           253:0
同时导致LVM无法使用。对比vgchange和vgdisplay输出的uuid,发现两者不同(vgchange提示的uuid是vg uuid+lv uuid)。从网上查找若干资料,也没有找到解决方案。想删除vg重做,也提示失败。经过多次测试,发现创建一个新PV后,症状消失。分析应该是创建了一个新pv后,自动重置了vg的uuid,所以恢复正常了。通过检测对比,发现情况确实如此,具体原因不明。

标签: 原创 LVM mirror
评论: 0 | 引用: 0 | 阅读: 13828