不停机扩容 PVE 的虚拟机硬盘空间
增加虚拟硬盘空间
如图所示
如果热操作不成功,或者操作后显示橙色的待生效内容,则需要关闭虚拟机。
扩容分区与文件系统
检查
(我是热操作的) 此时系统应该发现了硬盘空间的增加。
使用 fdisk -l
查看硬盘信息
root@Debian:~# fdisk -l
GPT PMBR size mismatch (6291455 != 33554431) will be corrected by write.
The backup GPT table is not on the end of the device.
Disk /dev/sda: 16 GiB, 17179869184 bytes, 33554432 sectors
Disk model: QEMU HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: EC86DE3B-DED1-6B4E-B075-C0EDF4BB8799
Device Start End Sectors Size Type
/dev/sda1 262144 6289407 6027264 2.9G Linux root (x86-64)
/dev/sda14 2048 8191 6144 3M BIOS boot
/dev/sda15 8192 262143 253952 124M EFI System
Partition table entries are not in disk order.
可以看到硬盘空间已经增加到了 16GB, /dev/sda1 分区大小还是原来的。
分区大小并不会自动调整,需要手动扩容。
扩容分区
通过上面的检查,可以确定 sda1 是最后一个有效分区。
2048 8192 262144 6289407 ... 扇区
| sda14 | sda15 | sda1 | 空闲空间 |
这样我们就可以直接扩展 sda1 分区,使其占用剩余的空间。
使用 growpart 扩容分区, growpart <硬盘> <分区>
。如果分区是 /dev/sdaX
, 那么命令就是 growpart /dev/sda X
root@Debian:~# growpart /dev/sda 1
CHANGED: partition=1 start=262144 old: size=6027264 end=6289407 new: size=33292255 end=33554398
root@Debian:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 16G 0 disk
├─sda1 8:1 0 15.9G 0 part /
├─sda14 8:14 0 3M 0 part
└─sda15 8:15 0 124M 0 part /boot/efi
sr0 11:0 1 4M 0 rom
sr1 11:1 1 1024M 0 rom
root@Debian:~# df -hl
Filesystem Size Used Avail Use% Mounted on
udev 3.9G 0 3.9G 0% /dev
tmpfs 795M 776K 794M 1% /run
/dev/sda1 2.8G 1.2G 1.5G 45% /
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/sda15 124M 12M 113M 10% /boot/efi
tmpfs 795M 0 795M 0% /run/user/1000
可以看到分区大小已经增大,但文件系统大小没有变化。
扩容文件系统
使用 resize2fs
可以调整 ext 文件系统的空间大小。
用法: resize2fs <分区>
, 例如 resize2fs /dev/sda1
root@Debian:~# resize2fs /dev/sda1
resize2fs 1.47.0 (5-Feb-2023)
[ 5641.586087] EXT4-fs (sda1): resizing filesystem from 753408 to 4161531 blocks
Filesystem at /dev/sda1 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
[ 5641.680310] EXT4-fs (sda1): resized filesystem to 4161531
The filesystem on /dev/sda1 is now 4161531 (4k) blocks long.
root@Debian:~# df -hl
Filesystem Size Used Avail Use% Mounted on
udev 3.9G 0 3.9G 0% /dev
tmpfs 795M 776K 794M 1% /run
/dev/sda1 16G 1.2G 14G 8% /
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/sda15 124M 12M 113M 10% /boot/efi
tmpfs 795M 0 795M 0% /run/user/1000
现在可以看到文件系统也成功调整大小,到这里不停机扩容就完成了。