本文首发于烂泥行天下

上一篇文章,我们学习了如何给LVM的逻辑卷及卷组扩容。这篇文章我们来学习,如何给LVM的逻辑卷及卷组缩小空间。

注意逻辑卷的缩小一定要离线操作,不能是在线操作,否则会造成逻辑卷损坏,以致造成数据的丢失。

缩小逻辑卷一定要按照如下步骤进行:

1、卸载已经挂载的逻辑卷

2、缩小文件系统,使用resize2fs命令

3、缩小逻辑卷

4、查看缩小后的逻辑卷

5、挂载逻辑卷

先来查看逻辑卷的空间大小,使用lvs或者lvdisplay命令,如下:

lip_image001

通过上图我们可以看到,目前逻辑卷/dev/vg1/data的空间大小为800M,而且已经挂载到/testlvm目录下,并且/testlvm目录下已经有一个文件test.txt。

先来卸载逻辑卷,如下:

umount /testlvm/

lip_image002

逻辑卷的挂载卸载完毕后,我们来缩小文件系统使用resize2fs命令。我们现在要把逻辑卷/dev/vg1/data由原来的800M缩小为300M,命令如下:

resize2fs /dev/vg1/data 300M

lip_image003

有关resize2fs命令的使用,可以查看resize2fs的帮助文档,如下:

lip_image004

接着系统会提示先先运行e2fsck命令,该命令是用来检查逻辑卷是否有问题的,参数-f是遇见错误直接修复不提示。如下:

e2fsck -f /dev/vg1/data

lip_image005

e2fsck运行完毕后,我们再来执行resize2fs /dev/vg1/data 300M,如下:

lip_image006

我们可以看到现在没有报错,现在文件系统的大小已经压缩为300M。

下面我们开始缩小逻辑卷LV,我们可以通过lvreduce命令来实现。如下:

lvreduce -L 300 /dev/vg1/data

lip_image007

有关lvreduce命令的使用,我们看帮助。如下:

lip_image008

逻辑卷空间缩小后,我们再次来使用lvs及lvdisplay命令进行查看,如下:

lip_image009

通过上图我们可以很明显的看到逻辑卷/dev/vg1/data的空间已经缩小至300M。那么我们现在挂载该逻辑卷到/testlvm目录下并查看该目录的内容是否和逻辑卷分区缩小前的一样,如下:

mount /dev/vg1/data /testlvm/

lip_image010

通过上图,我们可以很明显的看到/testlvm目录的大小,已经缩小为300M。而且/testlvm目录下的test.txt文件还是存在的,说明我们已经成功的为逻辑卷缩小空间。

以上有关逻辑卷的空间缩小,下面我们再来介绍有关卷组的空间缩小。

其实卷组的空间缩小就是把已经加入卷组的物理卷删除,先来查看卷组中目前有的物理卷,如下:

lip_image011

通过上图,我们可以很明显的看到目前系统中两个物理卷/dev/sda5/、/dev/sda6,而且这两个物理卷已经都加入到卷组vg1中。

这个我们是通过图中标记出来的***部分知道的,同时我们也知道这两个物理卷的大小都是1000M,卷组vg1的大小为2000M。

我们现在要把物理卷/dev/sda6删除,这个就相当于缩小了卷组vg1的大小。我们可以通过vgreduce命令来实现,如下:

vgreduce vg1 /dev/sda6

lip_image012

有关vgreduce的使用,可以查看帮助文档,如下:

lip_image013

现在我们再来查看卷组vg1的大小,如下:

lip_image014

通过上图,我们可以很明显的看到卷组vg1现在的大小已经是1000M。而且物理卷/dev/sda6目前不属于任何一个卷组。

注意:卷组缩小空间,一定要要卷组的空闲空间大小大于删除的物理卷的空间大小。

到此LVM逻辑卷及卷组的空间缩小到此结束,下篇文章我们将介绍有关如何删除逻辑卷及卷组。