我有一个在 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 有许多实用程序可用于查看主机的磁盘映像。特别是虚拟文件系统