Atlantis
GitHub Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

3.2 扩容根分区

在安装 PVE 系统到硬盘上时,默认创建两个大分区,一个用于挂载 /boot/efi,另一个用于创建名为 pve 的 VG,并在下面划分出 3 个 LV:

  1. pve-swap:交换分区
  2. pve-root:挂载根分区,对应 local 存储
  3. 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,内容中添加磁盘映像与容器: