不關機調整 VM 磁碟空間

在一些時候我們會遇到 VM 磁碟空間不足,又因為一些原因不方便將 VM 關機進行調整的窘境,其實只要透過下面的方法就可以達到不用關機調整磁碟空間:

注意事項

  • 需使用可調整 Raw Disk 磁碟大小的 VM 軟體如 VMWare, VirtualBox, Proxmox 等
  • VM 虛擬的磁碟控制器必須是 SCSI 介面

操作步驟

  1. 擴充 Raw Disk 磁碟大小
  2. 在 Guest Linux 中找到磁碟所在的 SCSI 匯流排位置 (找到如下面的 2:0:0:0)
1
2
3
4
# dmesg | grep sda
[ 4.312047] sd 2:0:0:0: [sda] 41943040 512-byte logical blocks: (21.5 GB/20.0 GiB)
[ 4.313812] sd 2:0:0:0: [sda] Write Protect is off
[ 4.313817] sd 2:0:0:0: [sda] Mode Sense: 00 3a 00 00
  1. 對該 SCSI 位置做 rescan
1
echo 1 > /sys/class/scsi_device/2\:0\:0\:0/device/rescan
  1. 進行新磁區的分割, 如 fdisk 或 LVM 的 pv, vg, lv 系列指令

使用 LVM 管理磁碟的話應該不會有太大問題,但若是採用調大 fdisk 中分割區大小的方式,編輯完儲存後還要記得執行 partprobe && resize2fs /dev/sdaX 才會見效。

References