lvm管理之--扩容和缩减

首先关于lvm的原理和创建此处不做过多的说明。

1. LVM 原理分析

    LVM 在每个物理卷(PV)头部都维护了一个MetaData,叫做卷组描述域(VGDA,Volume Group Description Area),每个VGDA中都包含了整个VG(Volume Group)的信息,包括每个VG的布局配置、PV 的编号、LV的编号,以及每个PE到LE的映射关系。同一个VG中的每个PV头部的信息是相同的,这样有利于发生故障时进行数据恢复。

    LVM 对上层文件系统提供 LV 层,隐藏了操作细节。对文件系统而言,对 LV 的操作与原先对 Partition 的操作没有差别。当对 LV 进行写入操作时,LVM 定位相应的 LE,通过 PV 头部的映射表,将数据写入到相应的 PE 上。

    LVM 实现的关键在于在PE 和LE间建立映射关系,不同的映射规则决定了不同的LVM存储模型。LVM 支持多个PV的Stripe和Mirror,这点和软RAID的实现十分相似。

    LVM 对上层文件系统提供抽象层,隐藏了操作细节,对文件系统而言,对LV的操作与原先对分区( Partition)的操作没有差别。当对LV进行写入操作时,LVM定位相应的LE,通过PV头部的映射表,将数据写入到相应的PE上。

最近公司新买的服务器已经装好了linux系统,但是根分区是在太小了,所以觉得需要扩容,由于我的磁盘都已经分好了区,没有任何free可用,觉得把/home目录的2.7T缩减,然后增大根分区的大小。

--1 ,使用df -hT查看当前的磁盘使用情况。

wKiom1UGpC-RCsRYAADyBR9u77c731.jpg

vgdisplay一下看看

wKiom1UGpJOgEp2oAAFsLayne2A033.jpg

可以看出我的VolGroup上还有空闲的1.74TB,直接扩容即可

-- 2,lvextend -L +1T /dev/mapper/VolGroup-lv_root【给根分区扩容1TB】

-- 3,resize2fs -f  /dev/mapper/VolGroup-lv_root【重新识别文件系统】

-- 4,此时再次执行df -hT命令,就会看到根分区已经成功扩容。

resize2fs针对ext2/ext3/ext4文件系统。可以man一下

wKiom1UGpveBWG1UAAC-UPrbyss452.jpg

【缩减lvm】

缩减lvm大概需要4步。

--1 ,卸载文件系统(umount)

wKiom1UGqGmAN8GlAAD-sm-leUg681.jpg

--2 ,检查文件系统(e2fsck/fsck.ext4)

wKioL1UGqnryCvQnAABclWvDIsA190.jpg

--3 ,缩小文件系统(resize2fs)

wKiom1UGqW2xGHA4AABrAPV8Pek797.jpg

--4 ,缩小LV大小(lvreduce)

wKioL1UGqriRtRuTAABrAPV8Pek193.jpg

--5 ,最后可以使用lvs命令查看一下

wKioL1UGqqaTf1WrAADZ8rR8b84323.jpg

--6 ,重新挂载文件系统,

wKioL1UGq1_QQKNbAABsLzcjSiE493.jpg

有关lvm的详细可以自行google。


你可能感兴趣的:(扩容,lvm,缩减)