在新的 rocky9 vm 中,LVM2 看不到 LUKS 下新附加的 PV。
===
最终目标是将一个简单的“repo”服务器(保存 iso 文件)从 centos8 迁移到 rocky9。
我有一个新安装的rocky9 linux vm。它可以正常启动并具有 LUKS 和 LVM。
在停止新旧虚拟机的同时,我
<disk>...</disk>
将数据磁盘部分取出并将它们添加到 new-ish/etc/libvirt/qemu/repo9.xml
中,然后我做了一个/usr/bin/systemctl reload libvirtd
. 它会看到磁盘。
我还从新的 repo9 主机中获取了条目/etc/crypttab
并将它们迁移到了新的 repo9 主机。
重新启动后,它会询问 luks PW,我提供一次(所有设备的密码相同)。
# /bin/cat /etc/redhat-release
Rocky Linux 9.0 版(蓝玛瑙)
是的,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 free] 总计: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 none discard
luks-5c44226e-3bc5-4b04-b369-beea69f6ca8c UUID=5c44226e-3bc5-4b04-b369-beea69f6ca8c none discard
luks- a50cd287-d4d2-4301-bd44-d3937e4d9df3 UUID=a50cd287-d4d2-4301-bd44-d3937e4d9df3 none discard
luks-b893a690-a1a0-4021-b078-1d971fe156d2 UUID=b893a690-a1a0-4021-b078-1d971fe156d2 none discard 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 free] 总计:1 [<11.70 GiB] / 使用中:1 [<11.70 GiB] / 没有VG: 0 [0 ]
但这里有一线希望。
使 LVM PV 可见的唯一技巧是,如果我在--devices之后指定它们:
# /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?
任何想法将不胜感激!
谢谢你。
答案:
==
我的误解是,当您运行命令时,LVM 会动态查看所有可能的设备,至少是扫描命令,我想。
相反,Linux LVM 实现有一个文件
/etc/lvm/devices/system.devices
用于跟踪它可能使用的内容,并为某些操作(如导入)进行更新。因此,当我将磁盘(在 kvm/qemu 中)迁移到新主机时,它不会查看它们。他们必须进口。
现在它们出现在我期望的任何地方,例如 /usr/sbin/pvs 等。
谢谢。