LVMLogical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,它由Heinz MauelshagenLinux 2.4内核上实现,目前最新版本为:稳定版1.0.5,开发版 1.1.0-rc2,以及LVM2开发版。Linux用户安装Linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间。普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也不能跨越多个分区来存放,所以也不能同时放到别的磁盘上。而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具,但这只是暂时解决办法,没有从根本上解决问题。随着Linux的逻辑卷管理功能的出现,这些问题都迎刃而解,用户在无需停机的情况下可以方便地调整各个分区大小。

  逻辑的创建是由物理卷PV组合成卷组VG,然后再在卷组VG上划分PE,然后创建LV

pv管理工具:

      pvspv的简要信息显示

      pvdisplay:显示pv的详细信息

  pvmove  /dev/DEVICE:把当前pv上的数据移动到其他pv

      pvcreate /dev/DEVICE: 创建pv

  vg管理工具:

     vgs:vg的简要信息显示

     vgdisplay:显示vg的详细信息

    创建vg的语法格式:

    vgcreate  [-s #[kKmMgGtTpPeE]] VolumeGroupName  PhysicalDevicePath     [PhysicalDevicePath...] 

     vg的扩展,增加

         vgextend  VolumeGroupName  PhysicalDevicePath [PhysicalDevicePath...]

      vg的缩减

         vgreduce  VolumeGroupName  PhysicalDevicePath [PhysicalDevicePath...]

     要做vg缩减,就必须先把pv中的数据移到其他pv上,然后再做缩减,即先做pvmove 然后做      vgreduce

lv管理工具:

     lvslv的简要信息显示

     lvdisplay:显示lv的详细信息

  创建lv的语法格式:

lvcreate -L#[mMgGtT] -n NAME VolumeGroup 指定的空间大小,要不能大于vg的空间;还有你指定的空间大小不会完全匹配,这个取决于你指定的大小是否能被PE的空间大小整除

  移除lv

lvremove /dev/VG_NAME/LV_NAME

  扩展逻辑卷:

     #lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME

     #resize2fs /dev/VG_NAME/LV_NAME

  缩减逻辑卷:

     #umount /dev/VG_NAME/LV_NAME

     #e2fsck -f /dev/VG_NAME/LV_NAME

    #resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]

     #lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME

  ±5G是在原来的基础上加上或减去5G5G是设定现在的逻辑卷大小为5G

  lv的命名和调用时,使用的名称格式:

/dev/mapper/VG_NAME-LV_NAME

         /dev/mapper/vol0-root

    /dev/VG_NAME/LV_NAME

         /dev/vol0/root

    例:

                   lvm基本应用和lvm的扩展及缩减_lvm的创建

快照:snapshot,就是把所有的文件做一个快速备份,可以让你回到以前的某个特定时间,快照只能在同一个分区内创建。

  语法格式:

    lvcreate -L #[mMgGtT] -p r -s -nsnapshot_lv_name original_lv_name

下面以一个实例,做下实验

   创建一个5Gpv,然后把它加入VG中,再给VG中添加一个5Gpv,做缩减操作后再添加回来,然后创建lv,并进行扩展及缩减操作

1、  首先创建几个分区,然后把格式改为8e,加载到内核中(此步演示略,如有不会请看前面的博客)

2、  然后创建pv

lvm基本应用和lvm的扩展及缩减_扩展及缩减操作_02

重复几次,pv就算创建成功了,可以使用pvspvdisplay进行查看

lvm基本应用和lvm的扩展及缩减_扩展及缩减操作_03

因为没有创建和加载到vg中,所以 VG Name为空

3、  然后创建vg

lvm基本应用和lvm的扩展及缩减_操作系统_04

查看下

lvm基本应用和lvm的扩展及缩减_lvm管理工具_05

再次查看下pv

lvm基本应用和lvm的扩展及缩减_lvm的创建_06

然后为vg扩展,使用vgextend  ,并查看下vg

lvm基本应用和lvm的扩展及缩减_lvm的创建_07

vg的缩减,必须先使用pvmove,然后在vgreduce,并查看

lvm基本应用和lvm的扩展及缩减_lvm管理工具_08

重新把/dev/sda6加入

4、  根据需要再添加pvvg

创建lv,使用lvcreate  -L  SIZE  –n LV_NAME  VG_NAME;使用ls 查看下会发下多了一个myvg-mylv的路径,

lvm基本应用和lvm的扩展及缩减_lvm管理工具_09

对这个lv进行格式化

lvm基本应用和lvm的扩展及缩减_扩展及缩减操作_10

下面就可以挂载使用了

lvm基本应用和lvm的扩展及缩减_操作系统_11

这就是逻辑卷创建的整个过程

         下面做下逻辑卷的扩展和缩减

    以前的大小

    lvm基本应用和lvm的扩展及缩减_lvm的创建_12

扩展

lvm基本应用和lvm的扩展及缩减_操作系统_13

     lvm基本应用和lvm的扩展及缩减_lvm的创建_12


现在还是2G,这是因为你逻辑卷的边界虽然大了,但文件系统的大小没有变

需要使用resize2fs/dev/VG_NAME/LV_NAME 来扩展,这条命令只对ext系列的文件系统有效,不指定大小默认扩展到跟逻辑卷大小一样

lvm基本应用和lvm的扩展及缩减_操作系统_15

逻辑卷的缩减,必须先卸载文件系统,然后做文件系统的强制检测和修复,然后把文件系统大小缩减(逻辑边界缩小),最后缩减逻辑卷的大小(物理边界)

lvm基本应用和lvm的扩展及缩减_扩展及缩减操作_16

 

lvm基本应用和lvm的扩展及缩减_lvm管理工具_17

缩减完成,在挂载就可以使用了

lvm基本应用和lvm的扩展及缩减_lvm管理工具_18