LVM逻辑卷管理器

LVM(Logical Volume Manager),逻辑卷管理器,能够非常方便的管理文件系统的容量。它能够将多个硬盘整合起来,使其成为一个逻辑上的物理磁盘。我们也可以在往后往其中添加和删除磁盘分区。

1. PV (Physical Volume),物理卷

在逻辑管理器中,每一个物理卷都会映射到硬盘上特定的物理分区。也就是说,整块硬盘可以成为物理卷,硬盘的一部分分区也可以成为物理卷,而且整个RAID也可以成为物理卷。

2. VG (Volume Group),卷组

所谓的卷组,就是我们将多个物理卷组合起来,形成的逻辑的大磁盘。在逻辑卷管理器中,会将卷组视为一个硬盘。

3. LV (Logical Volume),逻辑卷

Linux中,会将逻辑卷视为一个物理分区,这样我们就可以在上面建立我们自己的文件系统了。


逻辑卷创建示例:

现在我们有四块硬盘sdb,sdc,sdd,sde,sdb和sdc组成了raid盘md0。现在我们要将md0,sdd的分区sdd1,sde整合起来,组成逻辑卷。

LVM逻辑卷管理器



首先创建物理卷

pvcreate /dev/md0 /dev/sdd1 /dev/sde

使用pvs命令可以查看创建的物理卷的信息,pvdisplay可以查看更详细的信息。

此时的VG还没创建,所以VG那一列显示为空。

LVM逻辑卷管理器



接着创建卷组

vgcreate vg_test /dev/md0 /dev/sdd1 /dev/sde

vgs显示卷组的简略信息,vgdisplay查看卷组的详细信息。

我们在这里创建了卷组vg_test,并将/md0 sdd1 sde的空间都给了他。

由于md0是raid1,所以其空间大小为10G,最后的vg_test的空间大小为25G

LVM逻辑卷管理器



这时使用pvs查看

可以看到,我们将所有的物理卷都给了vg_test

LVM逻辑卷管理器



然后开始创建lv逻辑卷

lvcreate -L 2G -n lv_test vg_test

lvcreate -L 15G -n lv_add vg_test

使用lsblk查看分区情况

在这里我们在卷组 vg_test 上先后创建了逻辑卷 lv_test 2G空间大小和 lv_add 15G空间大小

LVM逻辑卷管理器



格式化分区,并挂载

mkfs.ext4 /dev/vg_test/lv_test

mkfs.xfs /dev/vg_test/lv_add

mount /dev/vg_test/lv_test /mnt/lvm1/

mount /dev/vg_test/lv_add /mnt/lvm2/

在这里我们分别将lv_test和lv_add格式化为ext4 xfs文件系统

并分别挂载在/mnt下的lvm1和lvm2下

LVM逻辑卷管理器



在线扩展逻辑卷

如果卷组空间不够用,我们可以先将新硬盘加入卷组。

pvcreate /dev/sdf

将新硬盘sdf映射为物理卷

LVM逻辑卷管理器


扩展卷组vg_test

vgextend vg_test /dev/sdf

LVM逻辑卷管理器



扩展逻辑卷

    分别为 lv_test lv_add增加10G空间 (lv_test的文件系统为ext4  lv_add的文件系统为xfs)

    方法一:lvextend -L +10G  /dev/vg_test/lv_test

                此时逻辑卷lv_test新增加的10G空间还未生效

                resize2fs /dev/vg_test/lv_test 来使其生效 (用于ext4文件系统)

                

                lvextend -L +10G  /dev/vg_test/lv_add 

                xfs_growfs /dev/vg_test/lv_add               (用于xfs文件系统)


    方法二:lvextend -L +10G -r /dev/vg_test/lv_test

                lvextend -L +10G -r /dev/vg_test/lv_add

                通过添加 -r 参数,使其立刻生效

可以看到,lv_test的大小由原来的2G变为12G,lv_add的大小由原来的15G变为20G

LVM逻辑卷管理器



逻辑卷减小空间

将lv_test的空间大小减小到2G

    首先卸载 lv_test

        umount /mnt/lvm1/

    扫描逻辑卷 lv_test

        e2fsck -f /dev/vg_test/lv_test

    减小文件系统的大小

        resize2fs /dev/vg_test/lv_test 2G

    减小逻辑卷的大小

        lvreduce -L 2G /dev/vg_test/lv_test 

注意上面的减小的空间是减小到多少,而不是减少了多少

重新挂载后,可以看到 lv_test的大小变为2G

LVM逻辑卷管理器



lvm命令:

    

PV阶段
  pvcreate 将物理分区新建成PV
  pvscan 参看系统中任何具有PV的磁盘
  pvs 显示系统中的PV的简略信息
  pvdisplay 显示系统中PV的详细信息。
  pvremove 将PV属性删除,使该磁盘不再具有PV属性
   
VG阶段  
  vgcreate 新建卷组
  -s 指定PE的大小,单位可以是mMgGtT,PE默认大小为4M
  cgscan
  vgs 显示卷组的简略信息
  vgdisplay 显示卷组的详细信息
  vgextend 在卷组中增加新的PV
  vgreduce 减少卷组中的PV
  vgchange 设置卷组是否启用
  vgremove 删除一个VG
   
LV阶段  
  lvcreate 新建LV
  -c 指定快照逻辑卷的单位的大小
  -C 设置或重置连续分配策略
  -i 指定条带数
  -I 指定每个条带的大小
  -l 指定分配给新逻辑卷的逻辑区段数,或者要用的逻辑区段的百分比
  -L 指定分配给新逻辑卷的硬盘大小
  -m 创建逻辑卷镜像
  -M 让次设备号一直有效
  -n 指定新逻辑卷的名称
  -p 为逻辑卷设置读写权限
  -r 设置预读扇区数
  -R 指定将镜像分成多大的区
  -s 创建快照逻辑卷
  -Z 将新逻辑卷的前1KB数据设置为0
  lvscan 查询系统上的LV
  lvs 查看LV的简略信息
  lvdisplay 查看LV的详细信息
  lvextend 增加LV的容量
  lvreduce 减小LV的容量
  lvrenove 删除一个LV
  lvresize 对LV进行容量大小的调整