问题

重新启动后,系统将不会启动或者激活 LVM 卷组之一。
尝试手动激活组会产生以下消息:

Couldn't find device with uuid '[UUID]'
系统重启后报错:Couldn't find device with uuid
之路 on it Road.com

解决方案

元数据位置的字符串 LABELONE 将设备标记为 LVM 设备的一部分。
如果没有此字符串,lvm3 将不会尝试将该设备用作物理卷。
由于系统错误或者故意的手动操作,物理设备元数据可能会被覆盖。

对于 Linux 版本 4 或者 5,默认元数据区域为 192Kb。
对于 Linux 版本 6,默认元数据为 1Mb。
在尝试任何恢复或者修复活动之前,强烈建议我们制作此区域的备份副本:

# /bin/dd if=/dev/xvdd of=/root/xvdd.metadata bs=1K count=[192_or_1024]

要检查 LVM 签名,请执行以下操作:

# /bin/strings /root/xvdd.metadata | /bin/fgrep LABELONE

如果未产生任何输出,则元数据已损坏。

查看以下信息的变化:

/etc/lvm/backup
/etc/lvm/archives

如果这些已更改或者不一致,则还原活动可能会损坏整个卷数据。
验证物理设备或者 LUN 是否仍然可用,或者仍然提供给此服务器。

勤于对所有 LVM 卷进行定期备份。
虽然它们可能是可恢复的,但错误配置也有可能完全破坏整个数据集。

  1. 请注意,仅当系统上还有任何多路径设备时,此项才重要。
    如果我们不在同一台服务器上使用 LVM 和多路径,我们可以安全地跳过此项。

在系统启动过程中,每次有块设备(例如磁盘驱动器或者LUN)时都会通知LVM 子系统,以便可以使用该设备构建LVM 卷。
这是一个异步过程;无法保证每次系统启动时都会以相同的顺序发现设备。
这意味着多路径设备的物理路径很可能在复合逻辑设备完成之前被发现,从而导致 LVM 子系统在多路径子系统被提供给设备之前声明物理路径。
这种情况有两个不良结果:

a)
LVM 仅利用和声明多路径设备的单一路径,使系统容易受到单点故障的影响,从而导致与存储的连接性灾难性丢失。

b) 由于 LVM 获得了物理路径的独占所有权,因此多路径层将设备报告为忙碌并且无法构建多路径设备。
这使得存储受到单点故障的影响,无法访问存储。

解决方案是强制 LVM 只考虑那些实际持有 LVM 卷一部分的块设备。
这样做的方法是查看 /etc/lvm/lvm.conf 文件:

# /bin/fgrep -n -e 's/#.*//' -e '/filter/p' /etc/lvm/lvm.conf
filter = [ "a/.*/" ]

如果输出如上所示,则我们有一个 LVM 配置问题,如果我们在系统上使用它们,可能会破坏任何多路径设备。
更改此参数超出了本说明的范围。
我们将继续假设我们已更正此值。

  1. 有时保存LVM数据的存储识别速度慢,系统稳定后访问可能挂载成功。
    首先,我们将清点可用的块设备并确定 UUID:
# /sbin/vgscan
Reading all physical volumes.  This may take a while...
Couldn't fine device with uuid  70FBaa-3QKh-HTAF-gUzZ-u3mu-2RRs-hI3BIt.
Found volume group "data_vg" using metadata type lvm2

现在我们有了导致问题的 UUID,我们必须找到关联的设备:

# /sbin/pvs -o +uuid
Couldn't find device with uuid 70FBaa-3QKh-HTAF-gUzZ-u3mu-2RRs-hI3BIt.
  PV             VG      Fmt  Attr PSize   PFree   PV UUID
  /dev/xvdc      data_vg lvm2 a--  996.00M      0  VrVT1L-CTcT-9Nn9-oIAx-BnEA-X7sv-vJO6RE
  /dev/xvde      data_vg lvm2 a--  996.00M 428.00M tGIqvd-lsYv-7JmV-1bfD-t7BL-HaGi-rmIYW0
  unknown device data_vg lvm2 a-m  996.00M      0  70FBaa-3QKh-HTAF-gUzZ-u3mu-2RRs-hI3BIt
  1. 我们可以这样查看逻辑卷在物理设备上的分布情况:
# /sbin/lvs -o +devices
Couldn't find device with uuid 70FBaa-3QKh-HTAF-gUzZ-u3mu-2RRs-hI3BIt.
  LV         VG      Attr   LSize Oroirn Snap%  Move Log Copy%  Convert Devices
  data_vg_lv data_vg -wi-a- 2.50G                                       /dev/xvdc(0)
  data_vg_lv data_vg -wi-a- 2.50G                                       unknown device(0)
  data_vg_lv data_vg -wi-a- 2.50G                                       /dev/xvde(0) =
  1. 尝试激活卷组:
# /sbin/vgchange -a y data_vg
  Couldn't find device with uuid 70FBaa-3QKh-HTAF-gUzZ-u3mu-2RRs-hI3BIt.
  Refusing activation of partial LV data_vg_lv. Use --partial to override.
  1 logical volume(s) in volume group "data_vg" now active
  1. 尝试缩小卷组并移除丢失的设备:
# /sbin/vgreduce --removemissing data_vg
  Couldn't find device with uuid 70FBaa-3QKh-HTAF-gUzZ-u3mu-2RRs-hI3BIt.
  WARNING: Partial LV data_vg_lv needs to be repaired or removed.
  WARNING: There are still partial LVs in VG data_vg.
  To remove them unconditionally use: vgreduce --removemissing --force.
  Proceeding to remove empty missing PVs.
# /sbin/vgreduce --removemissing data_vg --force
  Couldn't find device with uuid 70FBaa-3QKh-HTAF-gUzZ-u3mu-2RRs-hI3BIt.
  Removing partial LV data_vg_lv.
  Logical volume "data_vg_lv" successfully removed
  Wrote out consistent volume group data_vg
  1. 从组中删除丢失的设备后,LVM 设备应激活:
# /sbin/pvs
  PV         VG      Fmt  Attr PSize   PFree
  /dev/xvdc  data_vg lvm2 a--  996.00M 996.00M
  /dev/xvde  data_vg lvm2 a--  996.00M 996.00M
# /sbin/lvs -o +devices
#
# /sbin/vgscan
  Reading all physical volumes.  This may take a while...
  Found volume group "data_vg" using metadata type lvm2
# /sbin/vgdisplay
  --- Volume group --
  VG Name               data_vg
  System ID
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  5
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               1.95 GB
  PE Size               4.00 MB
  Total PE              498
  Alloc PE / Size       0 / 0
  Free  PE / Size       498 / 1.95 GB
  VG UUID               yTOvvd-ZjUe-gXP0-41BT-qUIk-8uPR-lpr9Pw
  1. 我们可以尝试使用 /etc/lvm/archive/ 目录中存储的信息来恢复卷组:
# /sbin/vgcfgrestore -f data_vg_00003-1023778751.vg data_vg
  Couldn't find device with uuid 70FBaa-3QKh-HTAF-gUzZ-u3mu-2RRs-hI3BIt.
  Cannot restore Volume Group data_vg with 1 PVs marked as missing.
  Restore failed.
  1. 尝试根据从卷组信息派生的 UUID 设置覆盖或者重新分配设备信息:
# /sbin/pvcreate --restorefile /etc/lvm/archive/data_vg_00003-1023778751.vg --uuid 70FBaa-3QKh-HTAF-gUzZ-u3mu-2RRs-hI3BIt /dev/xvdd
  Couldn't find device with uuid 70FBaa-3QKh-HTAF-gUzZ-u3mu-2RRs-hI3BIt.
  Writing physical volume data to disk "/dev/xvdd"
  Physical volume "/dev/xvdd" successfully created
  1. 使用文本编辑器打开卷组信息,例如 /etc/lvm/archive/data_vg_00003-1023778751.vg 并从标志条目中删除“MISSING”字符串,如下所示:
flags = [ ]
  1. 使用修改后的条目恢复 LVM:
# /sbin/ vgcfgrestore -f /etc/lvm/archive/data_vg_00003-1023778751.vg data_vg
  Restored volume group data_vg
  1. 验证环境:
# /sbin/vgscan
  Reading all physical volumes.  This may take a while...
  Found volume group "data_vg" using metadata type lvm2
# /sbin/ pvs -o +uuid
  PV         VG      Fmt  Attr PSize   PFree   PV UUID
  /dev/xvdc  data_vg lvm2 a--  996.00M      0  VrVT1L-CTcT-9Nn9-oIAx-BnEA-X7sv-vJO6RE
  /dev/xvdd  data_vg lvm2 a--  996.00M      0  70FBaa-3QKh-HTAF-gUzZ-u3mu-2RRs-hI3BIt
  /dev/xvde  data_vg lvm2 a--  996.00M 428.00M tGIqvd-lsYv-7JmV-1bfD-t7BL-HaGi-rmIYW0
  1. 验证 LVM 可用性:
# /sbin/lvs -o +devices
  LV         VG      Attr   LSize Oroirn Snap%  Move Log Copy%  Convert Devices
  data_vg_lv data_vg -wi--- 2.50G                                       /dev/xvdc(0)
  data_vg_lv data_vg -wi--- 2.50G                                       /dev/xvdd(0)
  data_vg_lv data_vg -wi--- 2.50G                                       /dev/xvde(0)
日期:2020-09-17 00:12:58 来源:oir作者:oir