我怎么能告诉Linux忽略它已经发现的磁盘分区?

我正在使用QEMU / KVM运行libvirt,并且在LVM逻辑卷中有虚拟机的磁盘映像。 当然,许多来宾虚拟机也使用LVM作为其磁盘。

我在pipe理程序上运行了partprobe ,它检测到所有VM guest虚拟机分区,所以现在LVM工具( pvsvgslvs等)列出了guest虚拟机的所有LVM实体。

有没有办法从主机的知识中删除所有这些LVM物理卷(当然,不影响客人)? 重新启动主机不是一个选项; 其中几个虚拟机需要保持运行。

如果有帮助,下面是LVM图层的样子:或多或less:

 /dev/sdb1 - host PV | vg_hostname_vms - host VG | +-lv_vm1 - host LV, used as a disk image for vm1 | +-part1 - vm1 boot partition | +-part2 - vm1 PV | | | vg_vm1 - vm1 VG | +-lv_root - vm1 LV - / | +-lv_swap - vm1 LV - swap | +-lv_vm2 - host LV, used as a disk image for vm2 +-part1 - vm1 boot partition +-part2 - vm2 PV | vg_vm2 +-lv_root - vm2 LV - / +-lv_swap - vm2 LV - swap +-lv_home - vm2 LV - /home 

现在,当我运行vgs ,我看到的是:

 VG #PV #LV #SN Attr VSize VFree vg_hostname_vms 1 2 0 wz--n- 10.91t 9.53t vg_vm1 1 2 0 wz--n- 9.76g 0 vg_vm2 1 3 0 wz--n- 97.16g 0 

我只想查看主机的卷组(只有物理卷和逻辑卷)。

我在Scientific Linux 6.5主机上运行所有这些。 客户操作系统有所不同。

您应该在主机上设置一个LVMfilter,以过滤掉检测到的不需要的LVM设备。 这是官方文档的链接:

http://www.centos.org/docs/5/html/Cluster_Logical_Volume_Manager/lvm_filters.html

filter = [ "r|/dev/VM_related_VG/*|" ] filter = [ "r|/dev/VM_related_VG/*|" ]应该工作

您可以使用低级别的dmsetup命令删除guest dmsetup PV。

要删除与vm1磁盘映像上的分区2关联的设备,请运行:

 dmsetup remove /dev/mapper/vg_hostname_vms-lv_vm1p2 

这会导致vm1的PV,VG和LV从主机的LVM工具中消失。