场景:使用 VMware 搭建的 Centos 7.6 系统,使用过程中发现磁盘容量不够,通过 VMware 的图形界面进行扩容成功后,但是执行系统的 df -h 指令后并未显示已扩容的空间。

当前磁盘组为 centos_master,需要新增一个 sd3

新增分区

新添加的容量需要通过新增的分区分配到系统中

1
2
3
4
5
6
7
8
9
10
# 查看待扩展的磁盘总空间:
lsblk
# 查看磁盘的详细信息:
fdisk -l

# 对新增加的硬盘进行分区:执行:m->n->p->输入分区号(一般都是最新加入的盘,3或者4)->回车->回车->w
fdisk /dev/sda

fdisk -l
# 发现/dev/sda2的Id是83,需要改成8e,保持和/dev/sda2是一样的。
image-20250718225436566

修改分区

1
2
3
4
5
6
7
8
# 将system类型改成Linux LVM类型,执行命令:
fdisk /dev/sda
# 参数如下图所示

# 修改后查看:
fdisk -l
# 重启系统 :
shutdown -r now
image-20250718225713990

磁盘格式化

1
2
3
4
5
6
7
8
# 对新增加的硬盘格式化:如下图
mkfs.ext3 /dev/sda3

# 添加新LVM到已有的LVM组,实现扩容:
pvcreate /dev/sda3

# 查看是否创建成功:
pvdisplay
image-20250718230053864 image-20250718230437266

扩展磁盘

1
2
3
4
5
6
7
8
9
10
11
12
13
# 扩展 centos_master
vgextend centos_master /dev/sda3

# 查看是否修改成功:
pvdisplay

# 执行扩容:每个 PE 占了 4.00MiB,所以不足30g
lvextend -L +29.99G /dev/mapper/centos_master-root

# 查看是否扩容成功:
lvs
# 查看磁盘空间采用的文件系统:
df -T
image-20250718231108241

刷新磁盘

1
2
3
4
5
# 执行命令:
xfs_growfs /dev/mapper/centos_master-root
# 查看结果
df -T
df -h
image-20250718231500513

修复 PV

执行两次 pvcreate 后,会出现 unknown 的 Physical volume(之前的会变成 unknown ),如下图:

1
2
3
4
5
6
7
# pvdisplay 查看pv 发现有一个unknown pv
# 去除未知或已丢失的VG
vgreduce --removemissing /dev/centos_master
# 查看
pvdisplay
pvs
vgs
image-20250718232007920

使用 pvs 查看有 unknown 名称的 PV

image-20250718232301393