LVM存在的意义及名词解释

1、LVM存在的意义:

查看LVS进程状态 linux 查看lvm_生命周期


2、LVM的图解

查看LVS进程状态 linux 查看lvm_生命周期_02


3、名词解释

查看LVS进程状态 linux 查看lvm_数据_03

LVM的建立

1、查看LVM的信息

pvs     #查看pv的信息 
vgs     #查看vg的信息 
lvs     #查看lvm的信息

2、步骤
在创建过程中我们可以用以下命令监控,可以更好的看到创建效果

watch -n 1 "pvs;echo ======;vgs;echo ======;lvs;echo ======;df -h /weixindata"

step1
划分lvm所用到的设备(划分物理分区),这些设备的功能id必须是linux LVM,指定ID为8e

fdisk /dev/vdb/

查看LVS进程状态 linux 查看lvm_查看LVS进程状态_04


step2

建立pv

pvcreate /dev/vdb1			#建立pv

查看LVS进程状态 linux 查看lvm_文件系统_05


step3

建立vg

vgcreate vg0 /dev/vdb1			#以/dev/vdb1建立名为vg0的vg

查看LVS进程状态 linux 查看lvm_生命周期_06


step4

建立lvm

lvcreate -L 100M -n lv0 vg0			##在vg0这个组中建立出lv0设备 -L 指定设备大小 -n 指定设备名字

查看LVS进程状态 linux 查看lvm_生命周期_07


step5

lvm进行格式化

mkfs.xfs /dev/vg0/lv0					##格式化

查看LVS进程状态 linux 查看lvm_查看LVS进程状态_08


step6

挂载lvm

mount /dev/vg0/lv0 /weixindata##挂载到/weixindata

查看LVS进程状态 linux 查看lvm_生命周期_09

LVM设备的拉伸与缩减

(1)LVM设备的拉伸(xfs文件系统)
1、拉伸lvm( 当lvm 的大小小于 vg 的大小时)

lvextend -L 300M /dev/vg0/lv0			##加参数 -l 20M 表示拉伸了20M,-L表示拉伸到300M
xfs_growfs /dev/vg0/lv0					##扩大xfs文件系统到设备大小

查看LVS进程状态 linux 查看lvm_生命周期_10


查看LVS进程状态 linux 查看lvm_数据_11


查看LVS进程状态 linux 查看lvm_生命周期_12


2、拉伸vg

当拉伸 lvm 的大小大于 vg 的大小时,需要先对 vg 进行拉伸,首先需要建立物理分区(/dev/vdb2,ID为8e),之后进行如下操作:

pvcreate /dev/vdb2
 vgextend vg0 /dev/vdb2
 lvextend -L 800M /dev/vg0/lv0 
 xfs_growfs /dev/vg0/lv0

查看LVS进程状态 linux 查看lvm_查看LVS进程状态_13


(2)LVM设备的拉伸(ext4)

由于我们系统中目前的文件系统是xfs系统,我们先通过以下方法把它转化成ext系统

umount /weixindata						##卸载(进行文件系统转换时要先卸载)
mkfs.ext4 /dev/vg0/lv0					##格式化成ext文件系统
mount /dev/vg0/lv0 /weixindata

vg扩大:(和xfs系统相同)

pvcreate /dev/vdb3          		    ##在pv中增加一块设备/dev/vdb3
vgextend vg0 /dev/vdb3					##把新建立的/dev/vdb3添加到vg0中

lvm扩大:

lvextend -L 900M /dev/vg0/lv0				##扩大lvm设备到900M
resize2fs /dev/vg0/lv0					##设定文件系统大小和设备同步

查看LVS进程状态 linux 查看lvm_生命周期_14


(3)LVM设备的缩减(ext4)

注意:xfs文件系统不能缩减,只有ext文件系统可以缩减

lvm缩减:

umount /dev/vg0/lv0					##卸载设备,因为文件系统缩减不支持在线操作
e2fsck -f /dev/vg0/lv0				##检测文件系统,确定文件系统中已有数据大小防止过度缩减
resize2fs  /dev/vg0/lv0  300M		##把文件系统缩减到300M
lvreduce  -L 300M /dev/vg0/lv0 		##设备缩减到300M

vg缩减:
注意:在vg缩减时只能缩减没有被占用的设备

pvmove	/dev/vdb2 /dev/vdb1			##把设备2上的所有数据移动到设备1上
vgreduce vg0 /dev/vdb2				##把vg0中的/dev/vdb2删除
pvremove /dev/vdb2					##把/dev/vdb2上的lvm管理信息删除

查看LVS进程状态 linux 查看lvm_生命周期_15


查看LVS进程状态 linux 查看lvm_数据_16


查看LVS进程状态 linux 查看lvm_生命周期_17

LVM快照

1 、创建快照

lvcreate -L 20M -n lv0backup -s /dev/vg0/lv0 ##-L后为快照大小,-n后为快照名称,-s后为需要创建快照的设备
 mount /dev/vg0/lv0backup /weixindata/        ## 挂载设备

注意:

1.当快照设备里的数据被更改,如果想还原,删除快照设备,再重新建立快照即可

2.创建快照时要预估好快照大小,如果在使用时截取一个比快照大的文件,快照会被撑坏

查看LVS进程状态 linux 查看lvm_数据_18


查看LVS进程状态 linux 查看lvm_数据_19


2 、快照的生命周期

改变的数据的大小大于快照的总容量时,快照的生命周期将结束

lvdisplay   ##查看lvm的状态

查看LVS进程状态 linux 查看lvm_文件系统_20


截取50M的文件到设备:

dd if=/dev/zero of=/weixindata/file bs=1M count=50

之后再查看设备状态:

查看LVS进程状态 linux 查看lvm_数据_21

LVM的删除

1 、卸载设备

umount /weixindata/

2 、删除lvm

lvremove /dev/vg0/lv0

3 、解决未知设备的vg

当使用fdisk命令删除含有vg的分区后,将会出现位置设备的vg:

查看LVS进程状态 linux 查看lvm_数据_22


可以使用以下命令删除这个vg设备:

vgreduce --removemissing vg0

查看LVS进程状态 linux 查看lvm_数据_23


4 、正常情况删除vg

vgremove vg0

查看LVS进程状态 linux 查看lvm_文件系统_24


5、 删除pv

pvremove /dev/vdb2
 pvremove /dev/vdb2 --force
 pvremove /dev/vdb2 --force --force

查看LVS进程状态 linux 查看lvm_数据_25