linux逻辑卷扩容
前言:
存储备份的服务器空间不足了,需要给服务器硬盘加空间,好在操作系统安装时分区是基于lvm逻辑卷的,可以直接将空间加到逻辑卷上,流程如下:
先df -Th查看下文件系统格式,并确认下逻辑卷名称,确认是否为lvm逻辑卷的安装方式
如图所示,/dev/mapper/centos-root,表示逻辑卷,centos-root中centos表示centos VG卷组,表示这个逻辑卷是建立在centos VG卷组上的,所以,需要扩分区的话,给centos卷组加pv就ok,xfs表示使用了xfs的文件系统格式,挂载在/目录下
使用fdisk命令查看当前硬盘的分区情况:
查看硬盘还有多少空间未分区可以参考sectors关键字前面的数据,如图中的41943040,表示盘中共有这些磁柱,而最后一个分区sda2的End,只分到了13010943,计算方式可以为
(41943040-13010943)/41943040*21.5GB,这样,就算出了磁盘中未分区的空间大小
图中20G的系统盘,centos-root用了6G,交换分区用了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