調整 xen 虛擬磁碟的大小
我的 XEN 主機上執行了一個虛擬機,但磁碟空間不足。它安裝了
/dev/xvda2
使用 ext4 文件系統格式化的捲。這是我的虛擬機 xen 配置:
# /etc/xen/vm04.experimental.cfg kernel = '/boot/vmlinuz-4.9.0-11-amd64' extra = 'elevator=noop' ramdisk = '/boot/initrd.img-4.9.0-11-amd64' root = '/dev/xvda2 ro' disk = [ 'phy:/dev/vg0/vm04.experimental-disk,xvda2,w', 'phy:/dev/vg0/vm04.experimental-swap,xvda1,w', ] ... # lvdisplay /dev/vg0/vm04.experimental-disk --- Logical volume --- LV Path /dev/vg0/vm04.experimental-disk LV Name vm04.experimental-disk VG Name vg0 LV Status available # open 1 LV Size 60,00 GiB Current LE 15360 Segments 5 Allocation inherit ...
我的捲組上還有 44GB 空間
vg0
:# vgdisplay --- Volume group --- VG Name vg0 System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 36766 VG Access read/write VG Status resizable MAX LV 0 Cur LV 27 Open LV 22 Max PV 0 Cur PV 2 Act PV 2 VG Size 1,07 TiB PE Size 4,00 MiB Total PE 281534 Alloc PE / Size 270080 / 1,03 TiB Free PE / Size 11454 / 44,74 GiB
如何將剩餘空間分配給我的 vm04?
- 使用以下命令關閉音量:
xen shutdown vm04.experimental
- 刪除卷的所有快照:
lvchange -an /dev/vg0/snap-tmp-vm04.experimental-disk lvremove /dev/vg0/snap-tmp-vm04.experimental-disk
- 調整捲的大小,例如擴展 40GB:
lvextend -L +40G /dev/vg0/vm04.experimental-disk
現在 VM 分配了更大的 100GB 大小,但在內部它仍然只有 60GB 磁碟 4. 調整文件系統的大小
resize2fs /dev/vg0/vm04.experimental-disk
請參閱為什麼我需要在 lvextend 之後執行 resize2fs?
(最終你必須
e2fsck -f /dev/vg0/vm04.experimental-disk
事先打電話) 5. 再次啟動虛擬機:xen create /etc/xen/vm04.experimental.cfg
的正確格式
lvextend
是:lvextend -L +40G /dev/vg0/vm04.experimental-disk
有關如何在 VM 本身中擴展分區的說明,請使用本手冊。
必須首先調整分區的大小。如果您使用的是 LVM,這很容易,並且您大概知道如何進行。如果您使用的是經典分區,它會稍微複雜一些,並且可能需要重新啟動(儘管您不必啟動另一個系統或 live CD)。
我是這樣做的:使用 fdisk 首先刪除分區(想法是保留磁碟上的數據),然後在同一位置小心地重新創建更大的分區。
同樣,新分區與舊分區在同一塊開始是至關重要的。Id 也應該匹配(Linux 系統為 83)。準備好在最輕微的錯字中失去所有數據。
為了安全起見,您還可以通過按 a 來恢復引導標誌(根據 Wikipedia,某些電腦仍需要該標誌)。
如果您的交換分區妨礙您,請參閱評論部分。
現在應該很清楚為什麼人們推薦使用 Live CD。;-) 正如 fdisk 提醒您的那樣,您必須在繼續之前重新載入分區表。最安全的方法是簡單地重新啟動;但您也可以使用 partprobe 或 kpartx(更多資訊)。
調整分區大小並重新載入分區表後,只需在文件系統上執行 resize2fs 即可,即使它作為根分區掛載,您也可以執行此操作。
$ sudo resize2fs /dev/sda1