LVM
Linux LVM是linux逻辑卷管理(Logical Volume Manager)的缩写。他的功能是将固定的物理盘的功能能提供给用户一个动态的功能。意思就是说以前我们用盘的话,比如这个盘只有300G,那么建立在这个300G上面的文件系统最多只能用到300G,但是有了LVM这个功能后,我们建立文件系统的盘就不是建立在物理盘上,而是建立在一个叫LV逻辑卷上面,这个卷是一个逻辑概念不是物理盘,空间可能大于一个物理盘,也可能小于一个物理盘。而且这个LV逻辑卷的空间可以扩展和缩小,这样就给上层的文件系统提供了更好的支持。一个实际的列子来说明LVM的使用场景。LVM有几个概念需要理解一下。
一个是PV:就是物理空间的意思,其实就是指一个分区,比如/dev/sdb1 也可以是一个盘/dev/sdb。只有将一个物理空间添加到一个VG(可以理解这个是多个PV组成的Pool)。
一个是VG:就是一个Pool,有多个PV组成,可以动态向VG中添加PV,使整个VG空间增大,也可以缩小这个VG。
一个是LV:就是linux用来建立一个文件系统的空间,这个空间来源于VG,大小随意,可以扩展。比如/dev/mapper/rhel-root这个目录其实是一个文件系统挂载点,这个点就是承载在一个LV上,这个文件系统的大小就是这个LV的大小。
好了理解了这些概念后,就可以来一个实际的场景了。比如我们系统中挂在在某个目录的空间(LV)由于之前规划的小,导致不能再往器里面拷贝数据了,那么我们就要扩展这个LV对吧,那么此时我们就要差一个新盘到系统中,比如此时系统识别这个新盘为/dev/sbd.用fdisk –l可以查看这个硬盘的大小为:2000GB.此时需要用fisk工具将这个盘分成多个区,比如先分一个去/sdb1(256G)出来,目的是扩展到开始说的/dev/mapper/rhel-root承载的LV空间上。
分区该盘:fdisk /dev/sdb,分区,主分区,选择1,分区大小 +256G。 t修改为8e LVM卷类型,w 保存
最终显示如下。
这样就得到了一个分区空间/dev/sdb1,然后将这个空间首先制作成一个PV
1、 pvcreate /dev/sdb1
2、 vgextend rhel /dev/sdb1
3、 lvresize -L +255G /dev/rhel/root
4、 resize2fs –f /dev/mapper/rhel-root(可能失败)那么换用:
5、 xfs_growfs /dev/mapper/rhel-root
再来看LV的信息 lvdisplay,增大到了305GB,开始只是分配了50G,这里增加了255G,所以最终成了305GB。
这个就是一个典型的LVM应用实例。理解起来也容易