我有一个挂载到 KVM 来宾的 virtio 磁盘,由 LVM 逻辑卷支持。lvresize
我在 KVM 主机上增加了逻辑卷的大小。
然后我不得不发出virsh pool-refresh
让 KVM 主机知道卷大小变化的问题。现在,如果我检查卷virt-manager
,我会看到正确的磁盘大小。但是无论如何,来宾操作系统仍然可以看到磁盘的旧大小。
如何强制 Linux 内核重新扫描 virtio 磁盘而不重新启动来宾?
我发现的其他解决方案并非特定于 virtio,而且它们不起作用。Likeecho "- - -" > /sys/class/scsi_host/host0/scan
应该适用于 SCSI 磁盘,但不适用于 virtio。另一个提示echo 1 > /sys/block/vda/device/rescan
不起作用,因为该rescan
文件不存在。
那么,您是否知道重新扫描我的 virtio 磁盘的任何 virtio 特定提示?
除了在主机上调整 LV 的大小,告诉正在运行的来宾:
virsh blockresize <domain> vda
作为一个半虚拟化的驱动,virtio 不再伪装成 SCSI,重新扫描提示将不起作用。一旦客人知道它,音量就会变大。
rescan-scsi-bus.sh
虽然在这种情况下没有用,但sg3_utils
软件包中提供了一个更完整的 Linux SCSI 扫描脚本。