介绍

本文以 CentOS 操作系统为例扩容虚拟机根分区,介绍 LVM(Logical Volume Manager 逻辑卷管理) 虚拟机硬盘扩容和 非 LVM 普通分区虚拟机硬盘扩容教程。

问:如何查看本地机器是否使用LVM管理?

答:执行下面命令,如果没有采用 LVM管理的话,是查看不到卷组,物理卷和逻辑卷的

1
2
3
pvdisplay #查看物理卷
vgdisplay #查看卷组
lvdisplay #查看逻辑卷

一、LVM 扩容

1、查看当前根分区大小

使用以下命令查看到当前根分区大小为 39G,本次操作给 LVM 根分区扩容10G。

1
df -h

image-20230526181709667

2、扩容

关闭虚拟机,查看到当前磁盘容量为 60G,我们给它更改为 70G(给根分区扩容10G)。

image-20230526175349452

3、查看容量

使用 df -h 命令查看根分区大小无变化,使用 lsblk 命令查看到总容量已经变为70G,磁盘名称为 sda

1
2
df -h
lsblk

image-20230526180758597

4、磁盘分区

使用以下命令进行磁盘分区,把剩余空间分给sda3 。

1
fdisk /dev/sda

image-20230526181634252

5、刷新分区,并创建物理卷

使用 partprobe 命令刷新分区,使用 pvcreate /dev/sda3 创建物理卷。

1
2
partprobe /dev/sda
pvcreate /dev/sda3

image-20230526181553353

6、查看卷组名称

使用 vgdisplay 查看卷组名称,由下图可以看出卷组名称为 centos

1
vgdisplay

image-20230526181803248

7、卷组扩容

使用 vgextend 命令将物理卷 /dev/sda3 扩充到卷组 centos 。

1
vgextend centos /dev/sda3

image-20230526181910670

8、查看逻辑卷的空间状态

使用 lvdisplay 命令查看所有逻辑卷的状态,已经待扩容的逻辑卷 /dev/centos/root

1
lvdisplay

image-20230526182047185

9、根扩容

使用 lvextend 命令将剩余空间扩展到根分区逻辑卷。

1
lvextend -l +100%FREE /dev/centos/root

image-20230526182129947

10、刷新根分区

使用 df -hT 确认文件系统。

image-20230608183422416

如果是 xfs 文件系统使用 xfs_growfs 命令刷新根分区。

如果是 ext2、ext3、ext4 文件系统使用 resize2fs 命令刷新根分区。

1
2
3
# 根据自己的文件系统选择刷新根分区的命令
xfs_growfs /dev/sda3
resize2fs /dev/sda3

image-20230526182235624

到此扩容到此结束,可使用 df -h 命令查看扩容是否成功。

image-20230526182310740

二、非 LVM 扩容

本章节用于给非 LVM 虚拟机根分区扩容10G。

1、查看当前根分区大小

使用 df -Th ,查看到当前根分区大小为 60G ,文件系统名称为 /dev/sda3 文件系统类型为 xfs 。

image-20230609093425632

2、扩容根分区

关闭虚拟机,扩容硬盘,容量由 60G 扩容到 70G。

2a2ee52d4b916053a6340498736ff4d

3、扩容后状态

通过以下命令查看到硬盘容量已经扩容到70G

1
2
df -Th
lsblk

image-20230609100053536

4、分区扩展

使用以下命令重建根分区,原理:删除根分区,再新建根分区,更新存储起始或结束ID,达到扩容的效果。

1
fdisk /dev/sda

image-20230609102338417

5、刷新分区

使用以下命令刷新分区。

1
partprobe /dev/sda

6、刷新根分区

使用 df -hT 确认文件系统。

image-20230609103222311

如果是 xfs 文件系统使用 xfs_growfs 命令刷新根分区。

如果是 ext2、ext3、ext4 文件系统使用 resize2fs 命令刷新根分区。

1
2
3
# 根据自己的文件系统选择刷新根分区的命令
xfs_growfs /dev/sda3
resize2fs /dev/sda3

image-20230609103408712

7、查看扩容后容量

使用以下命令查看扩容后根分区容量,由下入可知,容量已经扩容到 70G ,扩容成功。

1
df -Th

image-20230609103450238

参考文档

🚀感谢以下大佬文档支持!致敬!

Linux 扩容 / 根分区(LVM+非LVM) - 知乎 (zhihu.com)