如何确定KVM guest虚拟机正在使用哪个磁盘文件?

我有一个在KVM下运行的Ubuntu客户机,它具有几个相同大小的分区,每个分区在主机上使用不同的virtio RAW磁盘文件。

如何判断客户机上的哪个分区正在使用主机上的哪个文件?

每个磁盘在guest lsblk中显示为一个设备,在guest lsblk中显示为lsblk 。 这应该给你一个概述哪些分区是哪个设备的一部分。

如果您使用的是virtio,那么您可以通过列出它们来确定哪个virtio设备被哪个分区使用:

 ls -l /sys/class/block/{*vda,*vdb,*vdc,*vdd} 

(在客人身上)

例如,如果来宾上的df显示:

 Filesystem Size Used Avail Use% Mounted on udev 3.9G 4.0K 3.9G 1% /dev tmpfs 754M 1.5M 752M 1% /run /dev/vda1 2.0G 1.3G 556M 71% / none 4.0K 0 4.0K 0% /sys/fs/cgroup none 5.0M 4.0K 5.0M 1% /run/lock none 203M 0 203M 0% /run/shm none 100M 0 100M 0% /run/user /dev/vdb1 2.0G 687M 1.2G 37% /var /dev/vdd1 20G 15G 3.8G 80% /home/mail /dev/vdc1 20G 9.5G 8.8G 52% /var/mail 

块设备将显示如下:

 lrwxrwxrwx 1 root root 0 Mar 1 23:58 /sys/class/block/vda -> ../../devices/pci0000:00/0000:00:0a.0/virtio1/block/vda lrwxrwxrwx 1 root root 0 Mar 1 23:58 /sys/class/block/vdb -> ../../devices/pci0000:00/0000:00:0b.0/virtio2/block/vdb lrwxrwxrwx 1 root root 0 Mar 1 23:58 /sys/class/block/vdc -> ../../devices/pci0000:00/0000:00:0d.0/virtio3/block/vdc lrwxrwxrwx 1 root root 0 Mar 2 00:00 /sys/class/block/vdd -> ../../devices/pci0000:00/0000:00:0e.0/virtio4/block/vdd 

因此您可以看到/ dev / vda1正在使用标识为“virtio1”的VM主机文件

其他磁盘types(qcow2,vmdk等)也应该遵循类似的过程,从guest虚拟机向VM主机标识自己。

libguestfs有许多用于查看主机磁盘映像的工具。 特别是virt-filesystems