linux逻辑卷扩容

前言:

  存储备份的服务器空间不足了,需要给服务器硬盘加空间,好在操作系统安装时分区是基于lvm逻辑卷的,可以直接将空间加到逻辑卷上,流程如下:

先df -Th查看下文件系统格式,并确认下逻辑卷名称,确认是否为lvm逻辑卷的安装方式

 如图所示,/dev/mapper/centos-root,表示逻辑卷,xfs表示使用了xfs的文件系统格式,挂载在/目录下

使用fdisk命令查看当前硬盘的分区情况:

 20G的系统盘,centos-root用了5G,交换分区用了1G,还有很大的空间没有分配。

将剩余的空间分区:

 查看系统当前的pv,vg:

 重新读取分区表并将新建的/dev/sda3分区划分为pv卷,添加到centos的vg卷组中:

 添加后:

 比较重要的是上图中Free PE参数,它表示以4.00MB为大小的未分配PE还有3532个,将未分配的PE分配有两种方式,分别为按个数和按大小:

lvextend -l 21759 /dev/mapper/centos-root

lvextend -L +84G /dev/mapper/centos-root

lvextend -l +100%FREE /dev/mapper/centos-root    直接将所有空余PE分配给centos-root逻辑卷

这里我选择的是按个数,直接分配所有:

 最后,使用命令来针对对应的文件格式来进行加载空间,就可以完成了,根据xfs还是ext4选择不同的命令:

xfs_growfs /dev/mapper/centos-root        xfs文件格式

resize2fs /dev/mapper/centos-root            ext4文件格式

 可以看到,就完成了根分区的扩容。

梳理逻辑:

  可以看到基本的逻辑就是,将磁盘未分配空间或新磁盘空间分区 >> 将新分区创建为pv >> 将pv添加到vg卷组中 >>  将vg卷组的PE划分到逻辑卷中 >> 逻辑卷加载新PE,这样,就完成了分区的扩充。需要注意的是,lv即lvm是基于vg创建的,也就是说,我们要为哪个lvm扩容,就要将新的pv加入到对应的vg中,而后,才能将新的空间分配给lv

补充部分未用到的命令:

针对LVM底层PV的一些基本操作 
对于底层的PV而言,操作的命令如下表所示:

命令          解释
pvchange    控制指定PV是否可以分派新空间的权限
pvck    检查PV的LVM元数据的一致性
pvcreate    将指定磁盘或分区转化为PV
pvdisplay    详细地查看系统当前的PV情况
pvmove    在同一VG卷组里面移动一个PV的数据到另一个PV里面
pvremove    删除PV标签,即移除PV
pvs    简略地查看系统当前的PV情况
pvresize    当PV对应的设备分区(如md软raid)扩容之后,利用该命令可以扩容PV
pvscan    扫描所有打着PV标签的设备文件
针对LVM中层VG的一些基本操作 
对于中层的VG而言,操作的命令如下表所示

命令                            命令解释
vgcfgbackup    备份VG描述文件(默认/etc/lvm/backup,亦可自由指定)
vgcfgrestore    从备份的VG描述文件对VG元数据进行恢复
vgck    检查VG
vgchange    修改特定VG的属性,包括是否激活,uuid号,……
vgconvert    修改VG元数据格式,例如从LVM1改为LVM2
vgcreate    创建VG卷组
vgs    简略地查看系统VG卷组情况
vgdisplay    详细地查看系统VG卷组的使用情况
vgexport    将特定VG变为未知状态,用于迁移卷组到别的系统上面
vgimport    将未知状态的特定VG卷组变为正常状态,用于迁移卷组到别的系统上面
vgextend    将PV添加到特定VG中
vgimportclone    用于导入重复的卷组(例如某卷组的快照),并修改其UUID
vgmerge    在满足特定条件下,对多个卷组进行归并
vgmknodes    重新创建卷组设备目录以及逻辑卷特殊文件
vgreduce    将未使用的PV从特定VG中移除
vgremove    移除特定VG
vgrename    重命名指定VG的名称
vgsplit    将指定的PV从一个VG里面挪动到另一个VG里面
vgscan    扫描系统的VG                
针对LVM上层LV的一些基本操作 
对于上层的LV而言,操作命令如下表所示:

命令                   命令解释
lvchange    修改指定LV的一些属性,包括是否是激活状态、是否只读……
lvconvert    转换指定LV的属性,从线性转化为镜像或者快照
lvcreate    创建LV
lvs    简略地查看系统内的LV情况
lvdisplay    详细地查看系统内的LV情况
lvextend    扩展指定LV的容量大小
lvm    管理LVM的一个shell工具
lvmconf    LVM配置修改器
lvmconfig    查看LVM配置的工具
lvmdiskscan    扫描所有LVM2可见的设备
lvmdump    创建LVM的dump文件,用于诊断
lvmetad    缓存LVM元数据的守护程序
lvmpolld    LVM操作命令的轮询守护程序
lvreduce    缩容指定的LV
lvremove    删除指定的LV
lvrename    重命名指定的LV
lvresize    调整指定LV的大小,即可以扩容也可以缩容
lvscan    扫描系统的LV
原文地址:https://www.cnblogs.com/xiaoyuxixi/p/13646235.html