Linux

在 Linux 上,是否可以在不重新掃描磁碟的情況下知道磁碟大小是否已更改?

  • August 10, 2022

在 VMware 中更改磁碟大小(例如再增加 10 GB)後,下一步是在 Linux 中重新掃描它,以便核心辨識此大小更改。

為此,我們使用以下命令:

echo 1>/sys/class/block/sda/device/rescan

在我們的腳本中,我們每隔幾分鐘從一個cron作業重新掃描一次,以驗證我們是否需要調整相關磁碟的大小。

我想知道是否有某種方法可以辨識磁碟大小是否已更改,而無需重新掃描,如果磁碟大小確實已更改,則只有重新掃描。

到目前為止,我們還沒有找到一種方法來驗證是否在不重新掃描的情況下更改了磁碟大小,但我們希望我們能在這裡得到答案。

我提出問題的原因是我們對每隔幾分鐘重新掃描一次感到不舒服,即使這項活動沒有風險。

參考:https ://kerneltalks.com/disk-management/how-to-rescan-disk-in-linux-after-extending-vmware-disk/

辨識塊設備已調整大小的方法是重新掃描它。而已。無需尋找另一種重新掃描塊設備的方法來決定是否重新掃描它。

在虛擬化環境中,每兩分鐘執行一次應該是安全的;每當執行重新掃描時,性能都會受到非常輕微的影響,因為重新掃描會獲取中斷鎖,但重新掃描虛擬塊設備非常快。如果您對每兩分鐘重新掃描一次感到不舒服,您可以降低頻率——您真的需要在兩分鐘內對磁碟大小調整做出反應嗎?

(請注意,一些半虛擬化儲存驅動程序會自動更新來賓看到的大小,因此不需要重新掃描;VMware 顯然不是這種情況。)

您可能想查看open-vm-tools哪個據稱允許從主機在來賓內部觸發工作負載:這樣,您可以在外部調整磁碟大小,並在來賓內部觸發作業以重新掃描和調整捲的大小。我從來沒有這樣做過,所以我不知道它是否真的可能。

引用自:https://unix.stackexchange.com/questions/713167