操作系统版本:Rocky Linux release 9.4 (Blue Onyx)
一、编辑虚拟机设置,扩展磁盘至指定容量
本案例将磁盘容量从20G扩容至40G
二、查看磁盘情况
[root@Kind ~]# fdisk -l
Disk /dev/nvme0n1:40 GiB,42949672960 字节,83886080 个扇区
磁盘型号:VMware Virtual NVMe Disk
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x13bde900
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/nvme0n1p1 * 2048 2099199 2097152 1G 83 Linux
/dev/nvme0n1p2 2099200 41943039 39843840 19G 8e Linux LVM
Disk /dev/mapper/rl-root:17 GiB,18249416704 字节,35643392 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
Disk /dev/mapper/rl-swap:2 GiB,2147483648 字节,4194304 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
[root@Kind ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sr0 11:0 1 10.2G 0 rom
nvme0n1 259:0 0 40G 0 disk
├─nvme0n1p1 259:1 0 1G 0 part /boot
└─nvme0n1p2 259:2 0 19G 0 part
├─rl-root 253:0 0 17G 0 lvm /
└─rl-swap 253:1 0 2G 0 lvm [SWAP]
可见/dev/nvme0n1p2是根分区,需要临时删除/dev/nvme0n1的第2个分区,然后再创建新的/dev/nvme0n1的第2个分区。
三、扩容分区、LV和文件系统
3.0 提前安装扩容工具
yum install -y lvm2-9:2.03.23-2.el9.x86_64
#可用yum provides pvs获取lvm2的包名
3.1 扩容分区
[root@localhost ~]# fdisk /dev/nvme0n1
欢迎使用 fdisk (util-linux 2.37.4)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
This disk is currently in use - repartitioning is probably a bad idea.
It's recommended to umount all file systems, and swapoff all swap
partitions on this disk.
命令(输入 m 获取帮助):d
分区号 (1,2, 默认 2): 2
分区 2 已删除。
命令(输入 m 获取帮助):n
分区类型
p 主分区 (1 primary, 0 extended, 3 free)
e 扩展分区 (逻辑分区容器)
选择 (默认 p):p
分区号 (2-4, 默认 2): 2
第一个扇区 (2099200-83886079, 默认 2099200):
最后一个扇区,+/-sectors 或 +size{K,M,G,T,P} (2099200-83886079, 默认 83886079):
创建了一个新分区 2,类型为“Linux”,大小为 39 GiB。
分区 #2 包含一个 LVM2_member 签名。
您想移除该签名吗?是[Y]/否[N]:N
命令(输入 m 获取帮助):w
分区表已调整。
正在同步磁盘。
此处注意,LVM2_member 签名不能移除,里面存了分区的VG和LV信息。
3.2 扩容LV
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/nvme0n1p2 rl lvm2 a-- <39.00g 20.00g
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
rl 1 2 0 wz--n- <39.00g 20.00g
可见有空闲的空间没用
扩展LV
[root@localhost ~]# lvextend -l +100%FREE /dev/rl/root
Size of logical volume rl/root changed from <17.00 GiB (4351 extents) to <37.00 GiB (9471 extents).
Logical volume rl/root successfully resized.
[root@localhost ~]# fdisk -l
Disk /dev/nvme0n1:40 GiB,42949672960 字节,83886080 个扇区
磁盘型号:VMware Virtual NVMe Disk
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x13bde900
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/nvme0n1p1 * 2048 2099199 2097152 1G 83 Linux
/dev/nvme0n1p2 2099200 83886079 81786880 39G 83 Linux
Disk /dev/mapper/rl-root:37 GiB,39724253184 字节,77586432 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
Disk /dev/mapper/rl-swap:2 GiB,2147483648 字节,4194304 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sr0 11:0 1 10.2G 0 rom
nvme0n1 259:0 0 40G 0 disk
├─nvme0n1p1 259:1 0 1G 0 part /boot
└─nvme0n1p2 259:2 0 39G 0 part
├─rl-root 253:0 0 37G 0 lvm /
└─rl-swap 253:1 0 2G 0 lvm [SWAP]
[root@localhost ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs tmpfs 968M 0 968M 0% /dev/shm
tmpfs tmpfs 388M 5.6M 382M 2% /run
/dev/mapper/rl-root xfs 17G 1.7G 16G 10% /
/dev/nvme0n1p1 xfs 960M 194M 767M 21% /boot
tmpfs tmpfs 194M 0 194M 0% /run/user/0
可见LV:/dev/mapper/rl-root已扩展至40G,但是通过
df -Th
发现文件系统显示容量还是不变
3.3 扩容文件系统
[root@localhost ~]# xfs_growfs /dev/rl/root
meta-data=/dev/mapper/rl-root isize=512 agcount=4, agsize=1113856 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1 bigtime=1 inobtcount=1 nrext64=0
data = bsize=4096 blocks=4455424, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=16384, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 4455424 to 9698304
[root@localhost ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs tmpfs 968M 0 968M 0% /dev/shm
tmpfs tmpfs 388M 5.6M 382M 2% /run
/dev/mapper/rl-root xfs 37G 1.8G 36G 5% /
/dev/nvme0n1p1 xfs 960M 194M 767M 21% /boot
tmpfs tmpfs 194M 0 194M 0% /run/user/0
恭喜,已扩容成功!
关于PV、VG、LV的概念以及理解,可参考文章LVM磁盘扩容_lvm扩容-CSDN博客,大佬总结的很详细,很到位。