3.2 扩容根分区
在安装 PVE 系统到硬盘上时,默认创建两个大分区,一个用于挂载 /boot/efi,另一个用于创建名为 pve 的 VG,并在下面划分出 3 个 LV:
- pve-swap:交换分区
- pve-root:挂载根分区,对应 local 存储
- pve-data:对应 local-vm 存储
local-vm 可用于存储虚拟机/容器,不过它使用块存储的方式分配磁盘空间,如果磁盘空间不足,遇到需要使用大容量数据盘的虚拟机/容器需要备份还原时,可能得来回倒腾数据,比较折磨人。
因此对于存储空间较小的机器,建议移除 local-lvm,合并磁盘空间到 local,然后在给 local 存储的内容添加磁盘映像与容器,这样就可以使用 RAW 和 QCOW2 格式保存容器和虚拟机,按需分配存储空间。
我目前就是如此操作,使用了一个 128G 的 NVME SSD 安装系统,主要用于保存 dump 文件、ISO 镜像与容器模板,另一个 SSD 用于存储虚拟机和容器。
扩容根分区的操作很简单,首先清理 local-lvm 上的容器和虚拟机,可以先迁移到 local 或者外置存储上,然后从 数据中心 -> 存储 移除 local-lvm,最后登录宿主机,执行以下命令:
# 删除 pve-data 逻辑卷
lvremove /dev/pve/data
# 扩容 pve-root 逻辑卷
lvresize -l +100%FREE /dev/pve/root
# 调整根分区文件系统大小,ext4 文件系统使用 resize2fs,xfs 文件系统使用 xfs_growfs
resize2fs /dev/mapper/pve-root
根分区的扩容流程总是固定的,删除无用分区、扩容目标分区、调整文件系统。如果未使用 LVM 管理分区,那么 fdisk 删除分区后新建分区再调整文件系统即可。
操作完成后根分区就完成了扩容:
➜ ~ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
nvme0n1 259:0 0 476.9G 0 disk
└─nvme0n1p1 259:2 0 476.9G 0 part /mnt/intel
nvme1n1 259:1 0 119.2G 0 disk
├─nvme1n1p1 259:3 0 1007K 0 part
├─nvme1n1p2 259:4 0 1G 0 part /boot/efi
└─nvme1n1p3 259:5 0 118.2G 0 part
├─pve-swap 252:0 0 8G 0 lvm [SWAP]
└─pve-root 252:1 0 110.2G 0 lvm /
➜ ~ df -Th /
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/pve-root ext4 109G 47G 57G 46% /
最后注意在 数据中心 -> 存储 调整 local,内容中添加磁盘映像与容器: