CentOS LVM 扩容逻辑卷

本文基于云平台,例如腾讯云、阿里云、华为云,以腾讯云作为实例

在扩容云主机之前先安全关闭服务器

sudo shutdown -h now

查看 CentOS 版本的方法

cat /etc/os-release

不同 CentOS 版本的差异

版本类型 特点
CentOS 6/7/8 稳定的发行版,每版本支持 10 年,适合生产环境
CentOS Stream 滚动更新的开发版,介于 RHEL 开发版和正式版之间,适合尝鲜或测试

目前情况:根目录下有60G磁盘空间且全部被分配,云平台上将系统盘扩容到70G,需要将服务器根目录(逻辑卷)下扩容到70G

查看磁盘基本信息

[root@server ~]# fdisk -l

Disk /dev/vda: 75.2 GB, 75161927680 bytes, 146800640 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000a9eea

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048     2099199     1048576   83  Linux
/dev/vda2         2099200    14155775     6028288   8e  Linux LVM
/dev/vda3        14155776   125829086    55836655+  8e  Linux LVM

Disk /dev/mapper/centos-root: 63.3 GB, 63342379008 bytes, 123715584 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

[root@server ~]# df -TH
Filesystem              Type      Size  Used Avail Use% Mounted on
devtmpfs                devtmpfs  951M     0  951M   0% /dev
tmpfs                   tmpfs     964M   17k  964M   1% /dev/shm
tmpfs                   tmpfs     964M  9.2M  955M   1% /run
tmpfs                   tmpfs     964M     0  964M   0% /sys/fs/cgroup
/dev/mapper/centos-root ext4       63G   61G     0 100% /
/dev/vda1               xfs       1.1G  205M  859M  20% /boot
tmpfs                   tmpfs     193M     0  193M   0% /run/user/1002
overlay                 overlay    63G   61G     0 100% /var/lib/docker/overlay2                                                                                        /c1a518bc3283676d0ea23a3b48636cdd7ab23a69f43d240fe2864a3b840ca32e/merged
overlay                 overlay    63G   61G     0 100% /var/lib/docker/overlay2                                                                                        /125d43d2a9a5415749e2b6b4a99bee2ec21b912e912416144bad67d9d4e60176/merged
overlay                 overlay    63G   61G     0 100% /var/lib/docker/overlay2                                                                                        /0e47142c1a1370502b9e3436fa24679f9463395c4c912b47c43dae533711d1ee/merged
tmpfs                   tmpfs     193M     0  193M   0% /run/user/0

从你提供的信息来看,你已经将磁盘 /dev/vda 扩容到了 75.2GB,并创建了新的分区 /dev/vda3,但这个新分区的空间还没有被 LVM 使用,而根分区 /dev/mapper/centos-root 已经 100% 满了。

[root@server ~]# # 查看分区与LVM的关联关系
[root@server ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 19M 0 rom
vda 252:0 0 70G 0 disk
├─vda1 252:1 0 1G 0 part /boot
├─vda2 252:2 0 5.8G 0 part
│ └─centos-root 253:0 0 59G 0 lvm /
└─vda3 252:3 0 53.3G 0 part
└─centos-root 253:0 0 59G 0 lvm /

 

腾讯云系统盘扩容的特点分析

在腾讯云上扩容系统盘,通常的操作流程是:
  1. 在控制台扩容云硬盘的容量(从原来的较小容量到 70GB)
  2. 在操作系统内使用 fdisk 或 parted 创建新的分区 /dev/vda3
  3. 将新分区加入 LVM
因此,/dev/vda3 并不是一块新的物理硬盘,而是原有系统盘扩容后新增的分区/dev/vda 是一个整体的云硬盘设备,包含了 /dev/vda1/dev/vda2 和 /dev/vda3 三个分区。

完整扩容到 70GB 的操作步骤

1. 扩展 /dev/vda3 分区到磁盘末尾

这是最关键的一步,把 /dev/vda3 扩展到 /dev/vda 的最后一个扇区:
bash
运行
# 使用 growpart 工具扩展分区(注意空格:/dev/vda 是磁盘,3 是分区号)
sudo growpart /dev/vda 3

2. 刷新物理卷容量

让 LVM 识别到 /dev/vda3 分区的新大小:
bash
运行
sudo pvresize /dev/vda3

3. 扩展逻辑卷到最大可用空间

现在卷组中有了新的空闲空间,扩展逻辑卷:
bash
运行
sudo lvextend -l +100%FREE /dev/mapper/centos-root

4. 调整文件系统大小

最后让 ext4 文件系统识别新增空间:
bash
运行
sudo resize2fs /dev/mapper/centos-root

5. 验证最终结果

bash
运行
# 查看根目录最终容量(应该接近70GB)
df -TH /

# 查看分区和逻辑卷状态
lsblk

为什么之前没扩容到 70GB?

  • /dev/vda 总容量是 70GB,但 /dev/vda3 分区只创建到了 125829086 扇区(约 60GB),末尾还有约 10GB 未分配空间。
  • 第一步的 growpart /dev/vda 3 会直接把 /dev/vda3 拉到磁盘最后,这是利用全部空间的关键。

总结

  • 核心关键:必须先用 growpart 扩展 /dev/vda3 分区到磁盘末尾,才能释放剩余的 10GB 空间。
  • 完整流程:扩展分区 → 刷新 PV → 扩展 LV → 调整文件系统。
  • 最终目标:执行完后,df -TH / 会显示根目录容量接近 70GB,才算真正完成腾讯云系统盘的全部扩容。
执行这些步骤后,你的根分区就能真正达到 70GB 了!
命令截图:
[root@server ~]# # 使用 growpart 工具扩展分区(注意空格:/dev/vda 是磁盘,3 是分区号)
[root@server ~]# sudo growpart /dev/vda 3
CHANGED: partition=3 start=14155776 old: size=111673311 end=125829087 new: size=132644831 end=146800607
[root@server ~]# sudo pvresize /dev/vda3
  Physical volume "/dev/vda3" changed
  1 physical volume(s) resized or updated / 0 physical volume(s) not resized
[root@server ~]# sudo lvextend -l +100%FREE /dev/mapper/centos-root
  Size of logical volume centos/root changed from 58.99 GiB (15102 extents) to 68.99 GiB (17662 extents).
  Logical volume centos/root successfully resized.
[root@server ~]# sudo resize2fs /dev/mapper/centos-root
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/mapper/centos-root is mounted on /; on-line resizing required
old_desc_blocks = 8, new_desc_blocks = 9
The filesystem on /dev/mapper/centos-root is now 18085888 blocks long.

[root@server ~]# # 查看根目录最终容量(应该接近70GB)
[root@server ~]# df -TH /
Filesystem              Type  Size  Used Avail Use% Mounted on
/dev/mapper/centos-root ext4   73G   61G  9.0G  88% /
[root@server ~]#
[root@server ~]# # 查看分区和逻辑卷状态
[root@server ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0              11:0    1   19M  0 rom
vda             252:0    0   70G  0 disk
├─vda1          252:1    0    1G  0 part /boot
├─vda2          252:2    0  5.8G  0 part
│ └─centos-root 253:0    0   69G  0 lvm  /
└─vda3          252:3    0 63.3G  0 part
  └─centos-root 253:0    0   69G  0 lvm  /
[root@server ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 907M     0  907M   0% /dev
tmpfs                    919M   16K  919M   1% /dev/shm
tmpfs                    919M  8.8M  911M   1% /run
tmpfs                    919M     0  919M   0% /sys/fs/cgroup
/dev/mapper/centos-root   68G   57G  8.4G  88% /
/dev/vda1               1014M  195M  820M  20% /boot
tmpfs                    184M     0  184M   0% /run/user/1002
overlay                   68G   57G  8.4G  88% /var/lib/docker/overlay2/c1a518bc3283676d0ea23a3b48636cdd7ab23a69f43d240fe2864a3b840ca32e/merged
overlay                   68G   57G  8.4G  88% /var/lib/docker/overlay2/125d43d2a9a5415749e2b6b4a99bee2ec21b912e912416144bad67d9d4e60176/merged
overlay                   68G   57G  8.4G  88% /var/lib/docker/overlay2/0e47142c1a1370502b9e3436fa24679f9463395c4c912b47c43dae533711d1ee/merged
tmpfs                    184M     0  184M   0% /run/user/0
[root@server ~]# df -TH
Filesystem              Type      Size  Used Avail Use% Mounted on
devtmpfs                devtmpfs  951M     0  951M   0% /dev
tmpfs                   tmpfs     964M   17k  964M   1% /dev/shm
tmpfs                   tmpfs     964M  9.2M  955M   1% /run
tmpfs                   tmpfs     964M     0  964M   0% /sys/fs/cgroup
/dev/mapper/centos-root ext4       73G   61G  9.0G  88% /
/dev/vda1               xfs       1.1G  205M  859M  20% /boot
tmpfs                   tmpfs     193M     0  193M   0% /run/user/1002
overlay                 overlay    73G   61G  9.0G  88% /var/lib/docker/overlay2/c1a518bc3283676d0ea23a3b48636cdd7ab23a69f43d240fe2864a3b840ca32e/merged
overlay                 overlay    73G   61G  9.0G  88% /var/lib/docker/overlay2/125d43d2a9a5415749e2b6b4a99bee2ec21b912e912416144bad67d9d4e60176/merged
overlay                 overlay    73G   61G  9.0G  88% /var/lib/docker/overlay2/0e47142c1a1370502b9e3436fa24679f9463395c4c912b47c43dae533711d1ee/merged
tmpfs                   tmpfs     193M     0  193M   0% /run/user/0
[root@server ~]#

 

作者: 高志远

高志远,24岁,男生

发表评论

邮箱地址不会被公开。