问题: 我们阿里云服务器有一个磁盘容量为 1T ,但是最近由于业务的扩增,磁盘容量已经不够了,需要增大磁盘的容量。磁盘挂载在 /home,使用的是 LVM。我们现在需要对磁盘进行扩容。

通过增加新的磁盘,然后将磁盘添加到卷组(VG),然后再将逻辑卷(LV)扩容。
扩容原有的磁盘。然后再将逻辑卷(LV)扩容。

1.1、方式一(增加新的磁盘)
增加新的磁盘和 原有硬盘做了分区基本一致。

实际操作
我们增加了一块硬盘,/dev/vdc
创建分区
[root@djx ~]# fdisk /dev/vdc
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xd9ed71fb.

Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-1824522239, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-1824522239, default 1824522239):
Using default value 1824522239
Partition 1 of type Linux and of size 870 GiB is set

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
//将磁盘加入到 VG卷组。
[root@djx ~]# vgextend sdr_vg /dev/vdc1
//扩容逻辑卷 /dev/sdr_vg/lv_data,-l 指定的是PE数量 -L +800GB

[root@djx ~]# lvextend -l +100%FREE /dev/sdr_vg/lv_data

//修改文件系统的大小,xfs 文件系统使用xfs_growfs。

[root@djx ~]# xfs_growfs /dev/sdr_vg/lv_data

//查看磁盘是否扩容了。
[root@djx ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 40G 5.6G 32G 15% /
devtmpfs 16G 0 16G 0% /dev
tmpfs 16G 12K 16G 1% /dev/shm
tmpfs 16G 540K 16G 1% /run
tmpfs 16G 0 16G 0% /sys/fs/cgroup
/dev/mapper/sdr_vg-lv_data 1.9T 965G 929G 51% /home
tmpfs 3.2G 0 3.2G 0% /run/user/1007

1.2、方式二(扩容原有的磁盘)
原有硬盘做了分区
假设原有的磁盘为 /dev/xdc ,已有分区 /dev/xdc1,我们对磁盘 /dev/xdc 扩容了。

fdisk /dev/xdc 依次输入 n --》 p --> 默认 --》 默认 --》 w 这样就将新加的磁盘空间到一个新的分区/dev/xdc2,
//我们将该分区加入到卷组。

vgextend 卷组的名称 /dev/xdc2

vgdisplay //查看卷组的空闲空间。

//将扩容的空间添加到逻辑卷
lvextend -l +100%FREE /dev/vg_test/lv_test # -l 指定的是PE数,我们可以使用 -L 来指定实际容量。 lvextend -L +9.99G /dev/vg_test/lv_test

//修改文件系统的大小
//ext* 使用的命令

resize2fs /dev/vg_test/lv_test
//xfs 使用的命令
xfs_growfs /dev/vg_test/lv_test

原有硬盘未做分区
我们在阿里云选择磁盘扩容,并选择在线扩容(限制条件见阿里云官网文档)。扩容好了,我们可以在服务端进行使用 fidisk -l 查看,我们可以发现磁盘已经变大了。但是我们的物理卷没有变化。

//pv 物理卷扩容后重新识别大小。
pvresize /dev/xdb
pvdisplay # 在 Free PE 就可以查看到我们的新增加的空间大小

//将扩容的空间添加到逻辑卷

lvextend -l +100%FREE /dev/vg_test/lv_test # -l 指定的是PE数,我们可以使用 -L 来指定实际容量。 lvextend -L +9.99G /dev/vg_test/lv_test

//修改文件系统的大小
// ext* 使用的命令

resize2fs /dev/vg_test/lv_test
//xfs 使用的命令
xfs_growfs /dev/vg_test/lv_test

提示 device not found.
解决方式
yum -y install cloud-utils-growpart # growpart
fdisk -l /dev/vda
growpart /dev/vda (如果是磁盘下分区需要扩容,比如:扩容第一个分区,growpart /dev/vda 1)

对pv卷组内的磁盘进行刷新,重新读取(重点)
pvresize /dev/vda
vgs

将新加空间添加到逻辑卷及xfs文件系统中
lvextend -l +100%FREE /dev/centos/root
xfs_growfs /dev/centos/root

我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=2i6iybwt9iiok