LVM在线扩容分区空间
LVM一般用于linux/unix系统在线扩容磁盘空间,典型的场景比如说根分区(已是LVM)磁盘快满了,文件又不能删,这时候LVM就上场了。
LVM扩容其实一共有4步操作:
1、将新盘或新分区创建为PV
2、将此PV加入已有的VG
3、扩容LV(在此VG上)
4、系统识别(生效操作)
比如我现在要扩容根分区:
操作前的确认事项
1、df -Th查看当前根分区的文件系统
[root@node1 ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 1.7G 0 1.7G 0% /dev
tmpfs tmpfs 1.7G 0 1.7G 0% /dev/shm
tmpfs tmpfs 1.7G 8.6M 1.7G 1% /run
tmpfs tmpfs 1.7G 0 1.7G 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 15G 3.0G 12G 21% /
/dev/sda1 xfs 1014M 176M 839M 18% /boot
tmpfs tmpfs 346M 0 346M 0% /run/user/0
可知根分区的文件系统为/dev/mapper/centos-root,类型是xfs,但是不是用了LVM呢,可通过fdisk命令查看
[root@node1 ~]# fdisk -l
Disk /dev/sda: 8589 MB, 8589934592 bytes, 16777216 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: 0x000cd4ab
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 16777215 7339008 8e Linux LVM
Disk /dev/mapper/centos-root: 15.2 GB, 15237906432 bytes, 29761536 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
不难看出,/dev/sda1被分挂到了/boot分区,没有使用LVM,/dev/sda2便是根分区,使用了LVM,对应着/dev/mapper/centos-root
2、使用pvdisplay命令找到/dev/sda2所属的PV
[root@node1 ~]# pvdisplay
--- Physical volume ---
PV Name /dev/sda2
VG Name centos
PV Size <7.00 GiB / not usable 3.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 1791
Free PE 0
Allocated PE 1791
PV UUID ZsFJj8-cCqI-tSxM-tb82-a8Jy-r8D0-VOgzIW
由上可知所属的VG为centos(下面要用到)
3、再通过lvdisplay命令找到centos下的LV Path
[root@node1 ~]# lvdisplay
--- Logical volume ---
LV Path /dev/centos/root
LV Name root
VG Name centos
LV UUID ydD4o3-qnXq-xTxa-2i49-BUTe-NsgX-p2AsSj
LV Write Access read/write
LV Creation host, time localhost, 2020-01-13 10:00:19 +0800
LV Status available
# open 1
LV Size 14.19 GiB
Current LE 3633
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
确认LV path为/dev/centos/root,LV name为root
知道这VG name和LV的信息,就可以走上面的4步操作了
新增硬盘/dev/sdc
1、 pvcreate /dev/sdc
2、 vgextend centos /dev/sdc #centos为扩容的VG name
3、lvextend -L +95G /dev/centos/root #大写的-L参数后面加具体的扩容空间
3、lvextend -l +100%FREE /dev/centos/root #小写的-l参数后面加百名比,此处表示使用所有的空闲空间
4、resize2fs /dev/centos/root #resize2fs用于ext2/3/4文件系统
4、xfs_growfs /dev/mapper/root #xfs_growfs 用户xfs文件系统
注意事项
新硬盘可以不创建文件系统,也可以创建文件系统后创建PV,注意文件系统类型
/dev/centos/root、/dev/mapper/root、root这三个都是当做LV的名字,命令中使用哪个都行
生产环境变更前一定要在测试环境测试,并且操作完后重启机器观察是否正常
更详细的介绍见下面地址: https://wiki.gentoo.org/wiki/LVM/zh-cn#Extend_LV