无法从 LVM2 raid1 镜像中删除故障设备

sto*_*qlt 6 hardware linux lvm raid1 ubuntu-14.04

我的 LVM raid1 逻辑卷中的三个磁盘之一出现故障。(实际上这是一个糟糕的实验)。该卷是纯 LVM 卷raid1(不,不是 LVM mirror),没有任何 mdadm / fakeraid。

问题仅在重新启动时才意识到,设备完全丢失。由于我还有两个健康的磁盘,我想暂时将该卷用作双向 raid1,稍后再更换坏磁盘。但是,我无法从卷中删除丢失的设备。

这是有关拓扑的基本信息。卷组是vgQ3,而逻辑卷是lvRAID1

    #lvm pvs | grep vgQ3
      Couldn't find device with uuid vG3BbG-ap9H-iYGg-qfE2-R13Z-rLJI-AJcAv0.
      /dev/sdb2      vgQ3   lvm2 a--   79.31g 17.91g  
      /dev/sdc2      vgQ3   lvm2 a--   79.31g 17.91g  
      unknown device vgQ3   lvm2 a-m   79.31g 17.91g

    # lvm lvs -a -o +devices | grep vgQ3
      Couldn't find device with uuid vG3BbG-ap9H-iYGg-qfE2-R13Z-rLJI-AJcAv0.
      lvRAID1            vgQ3   rwi---r-p  61.39g   lvRAID1_rimage_0(0),lvRAID1_rimage_1(0),lvRAID1_rimage_2(0)
      [lvRAID1_rimage_0] vgQ3   Iwi---r--  61.39g   /dev/sdc2(1)                                               
      [lvRAID1_rimage_1] vgQ3   Iwi---r--  61.39g   /dev/sdb2(1)                                               
      [lvRAID1_rimage_2] vgQ3   Iwi---r-p  61.39g   unknown device(1)                                          
      [lvRAID1_rmeta_0]  vgQ3   ewi---r--  4.00m    /dev/sdc2(0)                                               
      [lvRAID1_rmeta_1]  vgQ3   ewi---r--  4.00m    /dev/sdb2(0)                                               
      [lvRAID1_rmeta_2]  vgQ3   ewi---r-p  4.00m    unknown device(0)                                          
Run Code Online (Sandbox Code Playgroud)

首先我尝试减少卷组,但没有成功:

    # vgreduce --removemissing vgQ3
      Couldn't find device with uuid vG3BbG-ap9H-iYGg-qfE2-R13Z-rLJI-AJcAv0.
      WARNING: Partial LV lvRAID1 needs to be repaired or removed. 
      WARNING: Partial LV lvRAID1_rmeta_2 needs to be repaired or removed. 
      WARNING: Partial LV lvRAID1_rimage_2 needs to be repaired or removed. 
      There are still partial LVs in VG vgQ3.
      To remove them unconditionally use: vgreduce --removemissing --force.

    # vgreduce --removemissing --force vgQ3
      Couldn't find device with uuid vG3BbG-ap9H-iYGg-qfE2-R13Z-rLJI-AJcAv0.
      Persistent log is not supported on segment-by-segment mirroring
Run Code Online (Sandbox Code Playgroud)

依此类推......然后我尝试将三向raid1设备减少为双向(试图将其减少为单向线性卷导致相同的错误消息):

    # lvconvert -m1 vgQ3/lvRAID1
      Couldn't find device with uuid vG3BbG-ap9H-iYGg-qfE2-R13Z-rLJI-AJcAv0.
      Cannot change VG vgQ3 while PVs are missing.
      Consider vgreduce --removemissing.
Run Code Online (Sandbox Code Playgroud)

好吧,我已经用完了我可以尝试的想法,除了破坏卷并重建它,这比简单地将其减少为双向突袭1要痛苦得多。

(为了使故事完整,通过执行:

    # vgchange -a y -P vgQ3
Run Code Online (Sandbox Code Playgroud)

我可以在部分模式下创建和挂载 raid1 卷 (/dev/vgQ3/..),这样我就可以保存内容。但是,下次重新启动会使设备消失,因此故事一次又一次地继续)。

有没有办法解决这些问题?

小智 3

我有完全相同的错误。我通过将lvm版本更新为lvm2-2.02.111-2.el6_6.1解决了这个问题。更新lvm后,您应该能够运行vgreduce --removemissing --force vgQ3 http://rpmfind.net/linux/RPM/centos/updates/6.6/x86_64/Packages/lvm2-2.02.111-2.el6_6.1.x86_64.html