当初为了方便,在Linux系统上使用LVM来管理空间,然后明明是3.5T的SSD,我手残设置了3T的逻辑卷(logical volume),后来发现空间不够用,想扩容又怕操作不当影响到硬盘上的数据。
(图源 :pixabay)
今天下定决心,撸起袖子直接干啦,不行动起来怎么知道会不会把系统干坏呢!(不过操作之前,我还是先备份了一下逻辑卷上的数据哦)。
在操作之前,我来回顾一下LVM涉及的几个概念,分别是PV(物理卷/Physical Volume)、PE(物理分区/Physical Extents)、VG(卷组/Volume Group)、LV(逻辑卷/Logical Volume)。
正常情况下的扩容,应该是在系统上加入新的物理设备(亦即新的磁盘),然后将磁盘初始化为PV,再将PV加入VG,然后再扩展LV的尺寸,但是我不计划追加投资买新设备并且VG还有未使用的空间(PE),所以就可以省却前边的步骤了。
首先用sudo pvdisplay
来看一下我的PV情况:
从上图划线部分不难看出,我还有大致1/7的PE没有使用,真是浪费啊。当然了,我也可以使用这些未使用的PE来创建新的逻辑卷,不过一则逻辑卷太多会导致管理混乱,二则有时候会遇到一个逻辑卷需要超大空间,所以我还是直接扩容成一个大的逻辑卷吧。
用sudo vgdisplay
查看一下VG的情况:
再来用sudo lvdisplay
看一下LV的情况:
其实上述命令都只是为了了解我系统上PV、VG、LV当前的情况,了解上述情况直接,直接扩容LV就可以啦。
使用lvextend我们可以指定LV的大小,也可以指定增量的大小,当然最方便的方式还是把所有可用的空间(PE都用上):
sudo lvextend -l +100%FREE /dev/vg_storage/lv_main
执行上述命令后,我们会得到如下提示:
再来用sudo lvdisplay
看一下LV的情况,我们会发现LE和PV的总PE值一样啦,也就是说PE都用上啦:
做完上述步骤后,如果我们使用df等命令查看文件系统,会发现LV对应的文件系统尺寸并没有改变,所以还需要调整一下文件系统的大小:
sudo resize2fs /dev/vg_storage/lv_main
执行上述命令后提示信息如下:
再用df
查看文件系统信息,发现LV对应的文件系统尺寸已经变成3.5T啦,再看一眼这个分区上正在跑着的程序,一切正常呢。
所以,一切都非常顺利,原本担忧的操作出错数据损坏等情况并没有发生,LVM真的是超级强大啊。还有就是做事不要瞻前顾后,干就是了!