如何判断 KVM 客户机正在使用哪些磁盘文件?

如何判断 KVM 客户机正在使用哪些磁盘文件?

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

我如何知道客户机上的哪个分区正在使用主机上的哪个文件?

答案1

每个磁盘在客户机和客户机中都显示为一个设备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 主机文件

其他磁盘类型(qcow2、vmdk 等)也应遵循类似的从客户机到 VM 主机的自我识别过程。

答案2

libguestfs 有许多实用程序可用于查看主机的磁盘映像。特别是虚拟文件系统

相关内容