在新的 rocky9 vm 中,LVM2 在 LUKS 下看不到新附加的 PV

在新的 rocky9 vm 中,LVM2 在 LUKS 下看不到新附加的 PV

在新的 rocky9 vm 中,LVM2 看不到 LUKS 下新连接的 PV。

===

最终目标是将一个简单的“repo”服务器(包含 iso 文件)从 centos8 迁移到 rocky9。

我有一个新安装的 rocky9 linux vm。它启动正常,并且具有 LUKS 和 LVM。

当新旧虚拟机停止时,我已将 <disk>...</disk>数据磁盘的部分添加到新的中/etc/libvirt/qemu/repo9.xml,并且我做了/usr/bin/systemctl reload libvirtd。它可以看到磁盘。

我还从中获取了条目/etc/crypttab并将它们迁移到新的 repo9 主机。

全新重启后,它会要求输入 luks PW,我只需提供一次(所有设备都使用相同的密码)。

# /bin/cat /etc/redhat-release
Rocky Linux 版本 9.0(Blue Onyx)

是的,blkid 看到了它们。

# /usr/sbin/blkid | grep -i luks

/dev/mapper/luks-2f5518cd-8453-4660-abe0-b2550b30ba10: UUID="52oE6g-azSo-95kU-3NGu-Hyfq-tcN6-XKcQe5" TYPE="LVM2_member"
/dev/sda2: UUID="2f5518cd-8453-4660-abe0-b2550b30ba10" TYPE="crypto_LUKS" PARTUUID="42a79f19-02"
/dev/vda1: UUID="5c44226e-3bc5-4b04-b369-beea69f6ca8c" TYPE="crypto_LUKS" PARTUUID="82535424-01"
/dev/vdb1: UUID="a50cd287-d4d2-4301-bd44-d3937e4d9df3" TYPE="crypto_LUKS" PARTUUID="9f2b9d8e-01"
/dev/vdc1: UUID="b893a690-a1a0-4021-b078-1d971fe156d2" TYPE="crypto_LUKS" PARTUUID="abbfb472-01"
/dev/vdd1: UUID="7e42260f-9739-4d8a-8e07-5cc19590d460" TYPE="crypto_LUKS" PARTUUID="40333c29-01"
/dev/mapper/luks-b893a690-a1a0-4021-b078-1d971fe156d2: UUID="tqgPNb-Jbos-IlCG-nWD9-8yMP-5ZII-jyvZb0" TYPE="LVM2_member"
/dev/mapper/luks-5c44226e-3bc5-4b04-b369-beea69f6ca8c: UUID="mnraHG-RX5m-eEmV-uYhr-UEng-x8JT-5YKZ3P" TYPE="LVM2_member"
/dev/mapper/luks-7e42260f-9739-4d8a-8e07-5cc19590d460: UUID="pSuS4s-e5vc-r3wV-PhBq-d7Nt-Myjf-RxZ5t0" TYPE="LVM2_member"
/dev/mapper/luks-a50cd287-d4d2-4301-bd44-d3937e4d9df3: UUID="odlXGf-Hzzd-C30f-cNML-wEFb-UVEA-IZYdzf" TYPE="LVM2_member"

lsblk 可以看到它们。

# /usr/bin/lsblk

NAME                                          MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINTS
sda                                             8:0    0   14G  0 disk  
├─sda1                                          8:1    0  900M  0 part  /boot
└─sda2                                          8:2    0 11.7G  0 part  
  └─luks-2f5518cd-8453-4660-abe0-b2550b30ba10 253:0    0 11.7G  0 crypt 
    ├─vg00-slash                              253:1    0 9000M  0 lvm   /
vda                                           252:0    0    8G  0 disk  
└─vda1                                        252:1    0    8G  0 part  
  └─luks-5c44226e-3bc5-4b04-b369-beea69f6ca8c 253:4    0    8G  0 crypt 
vdb                                           252:16   0    7G  0 disk  
└─vdb1                                        252:17   0    7G  0 part  
  └─luks-a50cd287-d4d2-4301-bd44-d3937e4d9df3 253:5    0    7G  0 crypt 
vdc                                           252:32   0   15G  0 disk  
└─vdc1                                        252:33   0   15G  0 part  
  └─luks-b893a690-a1a0-4021-b078-1d971fe156d2 253:6    0   15G  0 crypt 
vdd                                           252:48   0   90G  0 disk  
└─vdd1                                        252:49   0   90G  0 part  
  └─luks-7e42260f-9739-4d8a-8e07-5cc19590d460 253:9    0   90G  0 crypt 

上面的输出很糟糕,因为它只到达 luks 条目(对于非 vg00)。正确的输出应该在 luks 下有 LV,例如:

vdd                                           252:48   0   90G  0 disk  
└─vdd1                                        252:49   0   90G  0 part  
  └─luks-7e42260f-9739-4d8a-8e07-5cc19590d460 253:9    0   90G  0 crypt 
    ├─vg01-opt                                253:7    0  500M  0 lvm   /opt
    ...

这是文件命令的输出,它表明 luks-* 指向 dm-,以及 dm-属于 LUKS 类型。

# /usr/bin/file -s /dev/mapper/luks-*

/dev/mapper/luks-2f5518cd-8453-4660-abe0-b2550b30ba10: symbolic link to ../dm-0
/dev/mapper/luks-5c44226e-3bc5-4b04-b369-beea69f6ca8c: symbolic link to ../dm-4
/dev/mapper/luks-7e42260f-9739-4d8a-8e07-5cc19590d460: symbolic link to ../dm-9
/dev/mapper/luks-a50cd287-d4d2-4301-bd44-d3937e4d9df3: symbolic link to ../dm-5
/dev/mapper/luks-b893a690-a1a0-4021-b078-1d971fe156d2: symbolic link to ../dm-6

# /usr/bin/file -s /dev/dm-[04956]

/dev/dm-0: LVM2 PV (Linux Logical Volume Manager), UUID: 52oE6g-azSo-95kU-3NGu-Hyfq-tcN6-XKcQe5, size: 12566134784
/dev/dm-4: LVM2 PV (Linux Logical Volume Manager), UUID: mnraHG-RX5m-eEmV-uYhr-UEng-x8JT-5YKZ3P, size: 8586788864
/dev/dm-5: LVM2 PV (Linux Logical Volume Manager), UUID: odlXGf-Hzzd-C30f-cNML-wEFb-UVEA-IZYdzf, size: 7513047040
/dev/dm-6: LVM2 PV (Linux Logical Volume Manager), UUID: tqgPNb-Jbos-IlCG-nWD9-8yMP-5ZII-jyvZb0, size: 16102981632
/dev/dm-9: LVM2 PV (Linux Logical Volume Manager), UUID: pSuS4s-e5vc-r3wV-PhBq-d7Nt-Myjf-RxZ5t0, size: 96618938368

因此我尝试手动步骤来查看 PV。

# /usr/sbin/pvscan #(only finds the pv for vg00)
PV /dev/mapper/luks-2f5518cd-8453-4660-abe0-b2550b30ba10 VG vg00 lvm2 [<11.70 GiB / 980.00 MiB 可用] 总计:1 [<11.70 GiB] / 使用中:1 [<11.70 GiB] / 无 VG:0 [0 ]

# /usr/sbin/pvs #(only finds the pv for vg00)
PV VG Fmt Attr PSize PFree
/dev/mapper/luks-2f5518cd-8453-4660-abe0-b2550b30ba10 vg00 lvm2 a-- <11.70g 980.00m

这是 lvm2 版本:

# /usr/bin/rpm -q lvm2
lvm2-2.03.14-4.el9.x86_64

并且配置都是默认的,没有不良拒绝过滤器,全部接受。

# /usr/bin/rpm -qV lvm2
(无输出)

# /usr/sbin/lvm dumpconfig
配置 { } 本地 { } dmeventd { } 激活 { } 全局 { } shell { } 备份 { } 日志 { } 配置 { } 设备 { }

# /bin/cat /etc/crypttab
luks-2f5518cd-8453-4660-abe0-b2550b30ba10 UUID=2f5518cd-8453-4660-abe0-b2550b30ba10 无 丢弃
luks-5c44226e-3bc5-4b04-b369-beea69f6ca8c UUID=5c44226e-3bc5-4b04-b369-beea69f6ca8c 无 丢弃
luks-a50cd287-d4d2-4301-bd44-d3937e4d9df3 UUID=a50cd287-d4d2-4301-bd44-d3937e4d9df3 无 丢弃
luks-b893a690-a1a0-4021-b078-1d971fe156d2 UUID=b893a690-a1a0-4021-b078-1d971fe156d2 无 丢弃
luks-7e42260f-9739-4d8a-8e07-5cc19590d460 UUID=7e42260f-9739-4d8a-8e07-5cc19590d460 无 丢弃

我尝试明确提及内联配置来过滤->接受相关项目,但没有成功:

# /usr/sbin/pvscan  --config 'devices { filter = [ "a|.*|" ] } '
/usr/sbin/pvscan  --config 'devices { filter = [ "a|.*|" , "a|/dev/mapper/luks-*|" , "a|/dev/dm-*|" ] } '

PV /dev/mapper/luks-2f5518cd-8453-4660-abe0-b2550b30ba10 VG vg00 lvm2 [<11.70 GiB / 980.00 MiB 可用] 总计:1 [<11.70 GiB] / 使用中:1 [<11.70 GiB] / 无 VG:0 [0 ]

但这仍有一线希望。

我唯一能让 LVM PV 可见的技巧是,如果我在之后指定它们- 设备

# /usr/bin/pvs --devices $(echo /dev/mapper/luks-* | tr ' ' ',' )

  PV                                                    VG   Fmt  Attr PSize   PFree  
  /dev/mapper/luks-2f5518cd-8453-4660-abe0-b2550b30ba10 vg00 lvm2 a--  <11.70g 980.00m
  /dev/mapper/luks-5c44226e-3bc5-4b04-b369-beea69f6ca8c vg01 lvm2 a--   <8.00g      0 
  /dev/mapper/luks-7e42260f-9739-4d8a-8e07-5cc19590d460 vg01 lvm2 a--   89.98g      0 
  /dev/mapper/luks-a50cd287-d4d2-4301-bd44-d3937e4d9df3 vg01 lvm2 a--   <7.00g      0 
  /dev/mapper/luks-b893a690-a1a0-4021-b078-1d971fe156d2 vg01 lvm2 a--  <15.00g   5.13g

但是如果我不使用--devices来运行它,它又会恢复为看不到PV。

# /usr/sbin/pvs

  PV                                                    VG   Fmt  Attr PSize   PFree  
  /dev/mapper/luks-2f5518cd-8453-4660-abe0-b2550b30ba10 vg00 lvm2 a--  <11.70g 980.00m

我尝试了 yum 更新,但补丁并不多,只有 kernel* 和 binutils,但这些没有帮助。

为什么我的 LVM2 在 LUKS 下看不到大多数 PV?

任何想法都将不胜感激!!

谢谢。

答案1

答案:

/usr/sbin/vgimportdevices --all 
  Added 5 devices to devices file.

==

我的误解是,当您运行命令时,LVM 会动态地查看所有可能的设备,至少是扫描命令,我是这么认为的。

相反,Linux LVM 实现有一个文件/etc/lvm/devices/system.devices用于跟踪它可能使用的内容,并针对某些操作(如导入)进行更新。

因此,当我将磁盘(在 kvm/qemu 中)迁移到新主机时,它不会查看它们。必须将它们导入。

现在它们出现在我期望的任何地方,例如 /usr/sbin/pvs 等。

谢谢。

相关内容