一. LVM作用

LVM作用主要是在实现一个可以弹性调整容量的文件系统上,而不是在新建一个性能为主的磁盘上


二. 实现流程

wKioL1fD0fbQ9sJeAAEfJbU_C4I942.png 


三.LVM的实现

1.PV的创建阶段

pvcreate: 将物理分区创建成为pv

pvscan: 查询目前系统里面任何具有PV的磁盘

pvdisplay: 显示目前系统上面的PV状态

pvremove: 将PV属性删除,让该分区不具备PV属性


创建步骤:

(1)先准备块设备,利用fdisk调整分区id为8e

(2)然后创建pv:pvcreate [-f] /dev/sd{d,f,g,h}

(3)查看pv信息:pvdisplay /dev/sda{d,f,g,h}


2.VG的创建阶段

vgcreate: 新建VG

vgcreate [-s N[MGT]] VG名称 PV名称

-s:后面接PE的大小,单位可以是M,G,T

vgscan: 查找系统上是否有VG存在

vgdisplay: 显示系统目前的VG状态 

vgextend: 在VG内增加额外的PV

vgreduce: 在VG内删除PV

vgchange: 设置VG是否启动

vgremove: 删除一个VG


创建步骤:

(1)vgcreate -s 16M VGzhang /dev/sd{d,e,f,g}1创建一个VG名为VGzhang,PE大小为16M

(2)vgscan 搜寻系统上是否存在VG

 wKioL1fD0jviF_X1AAAdm-wKoR8407.png

(3)pvscan 查看具有PV的磁盘

 wKioL1fD0oWj9cMNAAATdtddlFQ341.png

...

(4)vgreduce VGzhang /dev/sdg1  把VGzhang中的一个PV删除

(5)vgertend VGzhang /dev/sdg1  增加VGzhang的容量

3.lv的创建阶段

lvcreate: 新建LV

lvcreate [-L N[M,G,T]] [-n LV名称] VG名称

lvcreate [-l N] [-n LV名称] VG名称

-L: 后面接容量,容量单位为M,G,T 最小单位为PE

-l: 后面跟PE的"个数",而不是数量.

-n: 后面接LV的名称

lvscan: 查询系统上的LV

lvdisplay: 显示系统上的LV状态

lvextend: 在LV上新增加容量

lvreduce: 在LV上减少容量

lvremove: 删除一个LV

lvresize: 对LV进行容量大小的调整


创建步骤:

(1)lvcreate -l 256 -n LVzhang VGzhang 创建LV PE块个数为256

 wKiom1fD0rrD0xSyAAAUs4fkcyk919.png

(2)ll /dev/VGzhang/LVzhang查看LVzhang

(3)lvdisplay 显示系统的LV状态

注意:LV分区准备好后,是对LV的处理,VG的名称为VGzhang, LV的名称就要使用/dev/VGzhang/LVzhang


4.文件系统阶段

创建步骤:

(1)mkfs -t ext3 /dev/VGzhang/LVzhang

(2)mkdir /mnt/lvm

(3)mount /dev/VGzhang/LVzhang /mnt/lvm

四. lV的扩容和缩小

扩容步骤:

(1)用fdisk配置新的具有8e system ID的分区

(2)利用pvcreate创建PV

(3)利用vgextend将PV加入VGzhang

vgextend VGzhang /dev/sdd2

(4)利用lvresize将新加入的PV内的PE加入LVzhang中

lvresize -l +64 /dev/VGzhang/LVzhang (通过vgdisplay查看新增加的PE个数)

注意:运行上面的命令后,LV确没有相应的增加,要运行下面的命令

(5)利用resize2fs将文件系统的容量确实添加

resize2fs /dev/VGzhang/LVzhang 

注意:在上面的操作中数据是不会丢失的


下面了解下resize2fs

resize2fs [-f] [device] [size]

-f: 强制进行resize的操作

[device]: 设备的文件名

[size]: 可以加也可以不加,如果加上size的话,那么必须给一个单位如M,G等,如果没有加,默认为表示整个分区的容量来处理


缩小步骤:

(1)先卸载已经挂载的lv

(2)强制进行磁盘检测

e2fsck -f /dev/VGzhang/LVzhang

(3)处理要缩小的容量

resize2fs /dev/VGzhang/LVzhang 1G

(4)减小要缩小的容量

lvreduce -L 1G /dev/VGzhang/LVzhang 

(5)重新挂载

mount /dev/VGzhang/LVzhang /mnt/lvm/

(6)确定/dev/sdd2中的PE是否都删除了,若有没有删除的要把PE转移到其他分区

pvremove /dev/sdd2 /dev/sdd1

(7)把/dev/sdd2移出组卷

vgreduce VGzhang /dev/sdd2

(8)把pv删除

pvremove /dev/sdd2


五. 创建快照

(1)lvcreate -L 1G -s -n ss123 /dev/VGzhanf/LVzhang 创建快照wKiom1fD0vzyNwqJAAA3YM_Zr58081.png

(2)vldisplay 显示信息

(3)mkdir /mnt/snapshot 创建快照目录

(4)mount /dev/VGzhang/LV123 /mnt/snapshot 挂载

六. 利用快照恢复数据

(1)快照挂载 mount /dev/VGzhang/ss123 /mnt/snapshot

注意:快照挂载后才能查看里面的数据

(2)压缩快照的数据至文件夹backup

tar -jcvf /root/backup/lvm.tar.bz2 /mnt/snapshot/*

(3)卸载/mnt/lvm 

umount /mnt/lvm

(4)格式化逻辑卷

mkfs.ext3 /dev/VGzhang/LVzhang

(5)挂载逻辑卷

mount /dev/VGzhang/LVzhang /mnt/lvm

(6)把backup的压缩备份恢复到逻辑卷中3

tar -jxvf /root/backuo/lv.tar.bz2 -C /mnt/lvm