Linux
如何讓 Linux 核心重新掃描 virtio 磁碟?
我有一個掛載到 KVM 來賓的 virtio 磁碟,由 LVM 邏輯卷支持。
lvresize
我在 KVM 主機上增加了邏輯卷的大小。然後我不得不發出
virsh pool-refresh
讓 KVM 主機知道卷大小變化的問題。現在,如果我檢查卷virt-manager
,我會看到正確的磁碟大小。但是無論如何,來賓作業系統仍然可以看到磁碟的舊大小。如何強制 Linux 核心重新掃描 virtio 磁碟而不重新啟動來賓?
我發現的其他解決方案並非特定於 virtio,而且它們不起作用。Like
echo "- - -" > /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 掃描腳本。