如果分区没有使用lvm,那么这个分区在不重新分区的情况下,是无法在线动态的调整大小的。lvm的优势也就在这里,在不卸载分区的情况下,动态调整大小

    劣势:会部分影响速度

    通过LVM,可以将多个磁盘,或多个分区,组成一个逻辑的大磁盘

 

1、LVM概念

  • PV,物理卷,组成逻辑大磁盘的分区或磁盘,

  • VG,卷组,逻辑大磁盘

  • LV,逻辑卷,在VG中划分

  • PE,基本单位,相当于磁盘的block,把VG划分成很多个小的块;创建LV,就是把VG中的多少个PE分配给LV;实际这些PE都会散落到PV,一个VG里面的PE数量,是所属PV的PE数量之和

 

2、创建LVM

2.1、创建PV

  • 创建一个分区,需要改下标识,8e

  • 千万不要格式化该分区

 

#创建PV

pvcreate /dev/vdb{1,2}

 

2.2、查看PV

pvs

pvscan

 

#查看所有pv的详细信息

pvdisplay

 

#查看具体某个pv的详细信息

#注意:这里面有一个Allocatable,表示这个PV还能否被划分

pvdisplay /dev/sdb2

 

2.3、创建VG

#创建一个叫 vg1的VG,PE大小为4M,并且将vdb1,vdb2加入到该VG

vgcreate -s 4M vg1 /dev/vdb{1,2}

 

2.4、查看VG

vgs

vgscan

vgdisplay

 

2.5、创建LV

#从vg1中划分500M,创建一个叫lv1的LV

lvcreate -L 500M vg1 -n lv1

 

#从VG中划分100个PE,创建一个叫lv2的LV

lvcreate -l 100 vg1 -n lv2

 

2.6、查看LV

lvs

lvscan

lvdisplay

 

LV的路径有两个:

/dev/vg1/lv1

/dev/mapper/vg1-lv1

#这两个文件只是一个链接而已,用ll /dev/mapper/vg1-lv1查看

 

2.7、格式化,挂载

mkfs -t xfs /dev/vg1/lv1

mount /dev/vg1/lv1 /mnt/tt

vim /etc/fstab

 

注意:

当一个分区带有LVM属性的时候,这个属性是不能被新机所识别

当用UUID去挂载的时候,是用文件系统的UUID,不是LV的

 

3、在线扩充LV

如果VG还有剩余空间,就直接扩充LV,否则,需要先扩充VG

 

3.1、增加PV

pvcreate /dev/vdb3

 

3.2、扩充VG

#把vdb3扩充到vg1

vgextend vg1 /dev/vdb3

 

3.3、扩充LV

#为lv1增加2G空间

#如果不加+号,表示扩充后的大小

lvextend -L +2G /dev/vg1/lv1

 

3.4、扩充文件系统

xfs文件系统:

xfs_growfs /dev/vg1/lv1

 

ext*文件系统:

resize2fs /dev/vg1/lv1

 

4、缩小LV

xfs文件系统不支持缩小

ext*文件系统支持,但建议不要轻易使用缩小,丢数据风险很高

 

4.1、卸载文件系统

umount /mnt/tt

 

4.2、文件系统检查

让系统知道文件系统是否完整

e2fsck -f /dev/vg1/lv1

 

4.3、缩小文件系统

resize2fs /dev/vg1/lv1 2G

 

4.4、缩小lv

lvreduce -L 2G /dev/vg1/lv1

 

注意:

如果已经有文件 ,必须先缩小文件系统,再缩小lv,否则先缩小lv,会破坏文件系统。

缩小lv时,指定的缩小容量,不能低于一个PE的大小

缩小LV时,注意PE的概念,计算一下缩小后的实际大小,不能低于文件系统大小

 

5、缩小VG

缩小VG就是把一个空闲的PV移除

前提:VG剩余容量大于一个PV的容量

 

5.1、迁移数据

在要移除的PV上,把已经被分配的PE移到其它有空余空间的PV

 

#把vdb2这个PV里面已经分配的PE移到其它有空余空间的PV,不用指定具体哪个PV,系统会自动处理

pvmove /dev/vdb4

 

5.2、缩小VG

vgreduce vg1 /dev/sdb4

 

5.3、删除除PV

pvremove /dev/vdb4

 

6、快照

    LVM支持快照功能,通过COW(copy on write)机制,实现快照功能。

    当创建一个快照的时候,仅拷贝原始卷里数据的元数据到快照卷中,只有当原始卷上有写操作执行时,快照卷会跟踪原始卷块的改变,这个时候原始卷上将要改变的数据,在改变之前会被拷贝到快照卷里。

 

注意

在原始卷新创建的文件,在快照卷是看不见的。

 

6.1、创建快照

#对lv1创建快照,也就是创建一个新的卷,来作为快照卷

#注意,VG必须要有足够的空间

lvcreate -L 1G -s -p r -n snap01 /dev/vg1/lv1

-L,指定快照卷的大小

-s,表示创建快照

-p,指定快照卷的权限,r表示只读

-n,指定快照的名字

 

6.2、恢复快照

#卸载裁原卷

umount /dev/vg1/lv1

 

#恢复快照

lvconvert --merge /dev/vg1/snap01

 

注意:

合并快照后,快照卷会自动删除