Linux上对LVM磁盘进行在线扩容磁盘
1、先要保证要扩容的磁盘是LVM管理的磁盘。
# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/cl-root 15G 3.4G 12G 23% /
devtmpfs 910M 0 910M 0% /dev
tmpfs 920M 0 920M 0% /dev/shm
tmpfs 920M 8.4M 912M 1% /run
tmpfs 920M 0 920M 0% /sys/fs/cgroup
/dev/sda1 497M 132M 366M 27% /boot
/dev/mapper/vg01-lv00 8.0G 33M 8.0G 1% /mnt

2、可以看到,有两个LVM管理的磁盘分区,根分区/(/dev/mapper/cl-root)和/mnt分区(/dev/mapper/vg01-lv00)。
现在添加进一个新磁盘,对/mnt分区进行扩容。
3、添加进磁盘后,先进行扫描
# echo '- - -' > /sys/class/scsi_host/host0/scan
# echo '- - -' > /sys/class/scsi_host/host1/scan
# echo '- - -' > /sys/class/scsi_host/host2/scan
# echo '- - -' > /sys/class/scsi_host/host3/scan
4、扫描完,查看磁盘信息
# fdisk -l

5、可以看到,新增了一个8G的磁盘/dev/sdc。
我们把它加入到vg01这个VG组中,对/mnt这个挂载的分区进行扩容。
6、可以对/dev/sdc先进行分区再添加,也可以直接把它添加进VG组。
使用vgextend命令来进行扩展。
// vgextend 要扩展的VG名称 要添加的磁盘路径
# vgextend vg01 /dev/sdc
Physical volume "/dev/sdc" successfully created.
Volume group "vg01" successfully extended
7、扩展完成后,需要把组中新扩展的空间添加给LV分区才行。
先使用vgdisplay命令查看一下vg01组的信息(主要是看剩余空间的信息)
# vgdisplay vg01

8、主要是看 Free PE / Size 这行,表示这个VG组还剩多少空间可以用来分配。
这里可以看出,还有2047个PE,也就是8G可以用来分配。
使用lvextend扩展LV分区。
// lvextend -l +要增加的PE数 LV分区路径
# lvextend -l +2047 /dev/vg01/lv00
Size of logical volume vg01/lv00 changed from 8.00 GiB (2047 extents) to 15.99 GiB (4094 extents).
Logical volume vg01/lv00 successfully resized.

9、到这里还没有完成,还需要让系统重新识别到这个LV分区的大小才行。
注意,这里CentOS6跟CentOS7系统要执行的命令是不一样的。严格来说,是使用的分区格式不一样,造成要使用的命令不一样。一般CentOS6默认是使用的ext4分区格式,而CentOS7默认是使用的xfs分区格式。
CentOS6(ext4):
# resize2fs /dev/vg01/lv00
CentOS7(xfs):
# xfs_growfs /dev/vg01/lv00
10、执行完上面的命令,整个扩容步骤就算真正完成了。