在Linux如何扩增卷组、逻辑卷以及缩减逻辑卷LVM的过程
前置需求使用lvm创建弹性磁盘存储——第一部分
什么时候我们需要缩减卷?
或许我们需要创建一个独立的分区用于其它用途,或者我们需要扩展任何空间低的分区。遇到这种情况时,使用 lvm我们可以很容易地缩减大尺寸的分区,以及扩展空间低的分区,只要按下面几个简易的步骤来即可。
我的服务器设置 —— 需求操作系统 – 安装有lvm的centos 6.5服务器ip – 192.168.0.200
如何扩展卷组以及缩减逻辑卷
扩展逻辑卷
目前,我们已经有一个pv,vg和2个lv。让我们用下面的命令来列出它们。
# pvs# vgs# lvs
逻辑卷扩展
在物理卷和卷组中没有空闲空间可用了,所以,现在我们不能扩展逻辑卷的大小。要扩展,我们需要添加一个物理卷(pv),然后通过扩展vg来扩展卷组,这样我们就会得到足够大的空间来扩展逻辑卷大小了。所以,首先我们应该去添加一个物理卷。
要添加一个新pv,我们必须使用fdisk来创建一个lvm分区。
# fdisk -cu /dev/sda选择n来创建新分区。选择p来创建主分区。选择我们需要创建的分区号。如果有其它可用磁盘,请按1。使用t来修改分区类型。输入8e来将分区类型修改为linux lvm。使用p来打印创建的分区(这里我们没有使用该选项)。按w写入修改。
完成后重启系统。
创建lvm分区
使用fdisk列出并检查我们创建的分区。
# fdisk -l /dev/sda
验证lvm分区
接下来,使用下列命令来创建新pv(物理卷)。
# pvcreate /dev/sda1
使用下面的命令来验证pv。
# pvs
创建物理卷
扩展卷组
添加该pv到vg_tecmint卷组来扩展卷组的大小,以获取更多空间来扩展lv。
# vgextend vg_tecmint /dev/sda1
让我们检查现在正在使用的卷组的大小。
# vgs
扩展卷组
我们甚至可以看到哪个pv用于创建使用中的特定卷组。
# pvscan
检查卷组
这里,我们可以看到卷组所处的物理卷。我们已经添加了一个pv,而且它完全空着。在扩展逻辑卷之前,让我们先看看我们所拥有的各个卷组的大小。
检查所有逻辑卷
logvol00用于swap。logvol01用于/。现在我们有16.50gb大小的空间用于/(root)。当前有4226物理扩展(pe)可用。现在,我们打算去扩展/分区logvol01。在扩展后,我们可以像上面那样列出它的大小以确认。我们能可以使用gb或pe来扩展,这一点我已经在lvm第一部分解释过了,这里我使用pe来扩展。
要获取可用的物理扩展大小,运行以下命令。
# vgdisplay
检查可用的物理扩展
总共有4607空闲pe可用,亦即有18gb空间空间可用。因此,我们可以将我们的逻辑卷扩展到18gb这么大。让我们使用pe大小来扩展。
# lvextend -l +4607 /dev/vg_tecmint/logvol01
使用+来添加更多空间。在扩展后,我们需要改变文件系统大小,使用以下命令。
# resize2fs /dev/vg_tecmint/logvol01
扩展逻辑卷
用来使用物理扩展扩展逻辑卷的命令。这里我们可以看到它从16.51gb扩展到了34gb。如果文件系统已被挂载并处于使用中,改变文件系统大小。要扩展逻辑卷,我们不需要卸载文件系统现在,让我们看看当前使用的改变大小后的逻辑卷。
# lvdisplay
改变逻辑卷大小
logvol01用于扩展的卷 /。扩展后,从16.50gb上升到了34.50gb。c当前扩展,在扩展前有4226,我们已经添加了4607个扩展,因此现在有8833。现在,如果我们检查可用的vg的话,空闲pe将会是0。
# vgdisplay
查看扩展的结果。
# pvs# vgs# lvs
验证分区大小改变
添加的新物理卷。卷组vg_tecmint从17.51gb扩展到了35.50gb。逻辑卷logvol01从16.51gb扩展到了34.50gb。这里,我们已经完成扩展卷组和逻辑卷的过程。让我们一起迈向逻辑卷管理中一些有趣的部分。
)这里,我们将了解如何缩减逻辑卷。人人都说它很危险,在缩减lvm的时候可能会导致灾难。缩减lvm在逻辑卷管理中比其它部分要来得确实有趣得多。
在开始之前,备份好数据总是对的,这样如果出错,就不会头痛了。要缩减逻辑卷,需要小心翼翼地完成5个步骤。在扩展一个卷的时候,我们可以在该卷挂载时扩展它(在线),但对于缩减,我们必须在缩减前卸载文件系统。让我们来了解一下下面这5个步骤。
卸载文件系统以便缩减。在卸载后检查文件系统。缩减文件系统。5减少当前逻辑卷大小。再检查文件系统以防出错。将文件系统再次挂载回去。为了演示,我已经创建了独立的卷组和逻辑卷。这里,我将缩减逻辑卷tecmintreducetest。现在它有18gb大小,我们需要将它缩减到10gb而不丢失数据。也就是说,我们需要从18gb中减少8gb。卷中已经有4gb被使用。
18gb ---> 10gb
在缩减大小的时候,我们只需要缩减8gb,所以在缩减后它总计会有10gb。
# lvs
缩减逻辑卷
这里,我们可以看到文件系统信息。
# df -h
检查文件系统大小
卷大小是18gb。它已经使用了3.9gb。可用空间是13gb。首先,卸载挂载点。
# umount -v /mnt/tecmint_reduce_test/
卸载分区
然后,使用以下命令来检查文件系统错误。
# e2fsck -ff /dev/vg_tecmint_extra/tecmint_reduce_test
扫描分区错误
注意:必须通过所有文件系统检查的5个步骤,若未完全通过,则你的文件系统可能存在问题。
接下来,缩减文件系统。
# resize2fs /dev/vg_tecmint_extra/tecmint_reduce_test 8gb
缩减文件系统
使用gb来缩减逻辑卷。
# lvreduce -l -8g /dev/vg_tecmint_extra/tecmint_reduce_test
缩减逻辑分区
要使用pe来缩减逻辑卷,我们需要知道默认pe大小和卷组的总pe大小,以进行一次小小的计算来得出准确的缩减大小。
# lvdisplay vg_tecmint_extra
这里,我们需要使用bc命令来做一些小计算来获得10gb的pe大小。
1024mb x 10gb = 10240mb or 10gb10240mb / 4pe = 2048pe
按ctrl+d来退出bc。
计算pe大小
使用pe来缩减大小。
# lvreduce -l -2048 /dev/vg_tecmint_extra/tecmint_reduce_test
使用pe来缩减大小
将文件系统大小调整回去。在这一步中,如果发生任何错误,这就意味着我们已经将文件系统搞乱了。
# resize2fs /dev/vg_tecmint_extra/tecmint_reduce_test
将文件系统挂载回同样的挂载点。
# mount /dev/vg_tecmint_extra/tecmint_reduce_test /mnt/tecmint_reduce_test/
挂载文件系统
检查分区和文件的大小。
# lvdisplay vg_tecmint_extra
这里,我们可以看到最后的结果,逻辑已经被缩减到10gb。
在本文中,我们已经了解了如何来扩增卷组、逻辑卷以及缩减逻辑卷。在下一部分(第三部分)中,我们将了解如何为逻辑卷做快照并将它恢复到更早的状态。谢谢阅读,希望能帮到大家,请继续关注,我们会努力分享更多优秀的文章。