最近用PVE和VM创建的虚拟机根目录总是不够用,但是我又不想一次性分多,现在导致根目录容量告急,这里记录一下稳妥的根目录扩容方案,应该也适用于别的目录
先判断你的 服务器/虚拟机 用的是什么结构
本教程暂时先记录LVM的流程
LVM
lsblk
sda
├─sda1 boot
├─sda2 LVM PV
├─pve-root
├─pve-swap
└─pve-data你会看到类似LVM的字眼,即是LVM
给虚拟机扩容
首先我们使用首先使用PVE/VM给虚拟机增加磁盘容量
增加容量前
sda 8:0 0 40G 0 disk
├─sda1 8:1 0 976M 0 part /boot
├─sda2 8:2 0 1K 0 part
└─sda5 8:5 0 39G 0 part
├─node01--vg-root 254:0 0 8.5G 0 lvm /
├─node01--vg-swap_1 254:1 0 2G 0 lvm [SWAP]
└─node01--vg-home 254:2 0 28.4G 0 lvm /home
sr0 11:0 1 754M 0 rom我们可以看到sda只有40G
增加容量后
sda 8:0 0 80G 0 disk
├─sda1 8:1 0 976M 0 part /boot
├─sda2 8:2 0 1K 0 part
└─sda5 8:5 0 39G 0 part
├─node01--vg-root 254:0 0 8.5G 0 lvm /
├─node01--vg-swap_1 254:1 0 2G 0 lvm [SWAP]
└─node01--vg-home 254:2 0 28.4G 0 lvm /home
sr0 11:0 1 754M 0 rom现在sda已经80G了,但是这80G还不能使用,我们需要分给根目录
分配空间给根目录
进入 parted
parted /dev/sdapartend未安装
apt install parted运行命令
我们在parted中依次输入
print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 85.9GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 1024MB 1023MB primary ext4 boot
2 1026MB 42.9GB 41.9GB extended lba
5 1026MB 42.9GB 41.9GB logical
resizepart 5 100%
quit注意
当我们输入 resizepart 5 100% 的时候,可能会提示如下
Error: Can't have overlapping partitions.为什么会提示
是 MBR + 扩展分区(extended)结构的限制,咱们现在的结构是这样的
sda1 primary /boot
sda2 extended ← 外壳
└─sda5 logical ← LVM 用的- sda5 是“逻辑分区”
- 它 必须完全位于 sda2(扩展分区)内部
- 你现在只尝试扩 sda5
- 但 sda2 本身没有扩到 100%
咱们不能让 sda5 超出 sda2 的范围(否则就“重叠”了)
正确顺序
先扩 sda2(extended)
→ 再扩 sda5(logical)
→ 再 pvresize
→ 再 lvextend所以如果提示这个错误,先退出parted, 然后重新 parted /dev/sda 进入,然后先执行
resizepart 2 100%如果提示分区正在使用:
Is this partition in use?
输入Yes即可
然后我们继续依次输入:
resizepart 5 100%
quit查看空间
sda 8:0 0 80G 0 disk
├─sda1 8:1 0 976M 0 part /boot
├─sda2 8:2 0 1K 0 part
└─sda5 8:5 0 79G 0 part
├─node01--vg-root 254:0 0 8.5G 0 lvm /
├─node01--vg-swap_1 254:1 0 2G 0 lvm [SWAP]
└─node01--vg-home 254:2 0 28.4G 0 lvm /home
sr0 11:0 1 754M 0 rom 现在我们sda5已经79G了,下一步继续把空间分给具体的跟目录(/)
分配容量到跟目录
让 LVM 认识新空间
pvresize /dev/sda5确认 VG 里有空闲空间(强烈建议看一眼)
vgdisplay node01-vg应该能看到类似:
Free PE / Size 40.00 GiB把空闲空间给根目录 /
全部给根目录
lvextend -l +100%FREE /dev/node01-vg/root只给一部分
lvextend -L +30G /dev/node01-vg/root扩展文件系统(ext4 必须做)
resize2fs /dev/node01-vg/root如果是 xfs(你大概率不是),那是 xfs_growfs /
最后验证
df -h /已经增加上了
Filesystem Size Used Avail Use% Mounted on
udev 7.8G 0 7.8G 0% /dev
tmpfs 1.6G 1.2M 1.6G 1% /run
/dev/mapper/node01--vg-root 48G 6.8G 39G 15% /
tmpfs 7.8G 0 7.8G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 1.0M 0 1.0M 0% /run/credentials/systemd-journald.service
tmpfs 7.8G 0 7.8G 0% /tmp
/dev/sda1 943M 111M 768M 13% /boot
/dev/mapper/node01--vg-home 28G 21G 5.9G 78% /home
overlay 48G 6.8G 39G 15% /var/lib/docker/rootfs/overlayfs/368311adf1778f75225d00392c20a82e0c8785b6bde1badc75844b8f6a556d38
tmpfs 1.0M 0 1.0M 0% /run/credentials/getty@tty1.service
tmpfs 1.6G 12K 1.6G 1% /run/user/0
root@node01:~#
评论 (0)