一.LVM知识点
1.dm:将一个或多个底层块设备组织成一个使用
2.思维导图:
如图,我们可以看到整个LVM是由PV(物理卷),VG(卷组)以及LVM(逻辑卷)构成的。以上显示的PV,VG以及LV个数仅供参考
LVM(Logical Volume Manager),是逻辑卷管理器,是一个软件,可以实现磁盘的高效管理,如磁盘扩展和缩减等。它包括物理卷(Phycial Volume),简称pv、卷组(Volume Group),简称vg、逻辑卷(Logical Volume),简称lv。一个vg至少包括一个物理卷,它相当于一个扩展的分区,可以扩展和缩减。卷组vg的大小是由物理卷决定的,它的扩展不会影响到卷组中的数据的,但是缩减卷组就要慎重了,不然会破坏物理卷中的数据。可以为逻辑卷创建快照,来实现对数据的备份。
3.诞生的先后顺序:PV—VG—LV
4.删除的先后顺序:LV—VG—PV
5.逻辑卷的分区类型:8e
二.相关命令
<1>pv命令
[1] pvs
# 简要显示pv的情况
[2] pvdisplay
# 显示pv的情况
[3] pvcreate /dev/DEVICE
# 创建pv
[4] pvremove /dev/DEVICE
#删除pv
<2>vg命令
[1] vgs #简要显示vg的情况
[2] vgdisplay #显示vg的情况
[3] vgcreate -s
#创建vg -s 指明PV大小,或者单个PE的大小
vgcreate [vgname] /dev/DEVICE -s 2G vg的大小为从分区PV中取出2G大小
[4] vgcreate [vgname] /dev/DEVICE -s 16M
#vg大小为分区大小,每个PE的单位大小为16M
[5] vgremove vgname #删除vg
[6] vgextend #扩展卷组大小
vgextend [vgname] /dev/DEVICE 将/dev/DEVICE扩展进卷组中11
vgextend -t myvg /dev/sdb3 将/dev/sdb3扩展进myvg
注:-t选项的意思是测试vg能否扩展,会有提示信息出现
[7] vgreduce #缩减卷组大小
#vgreduce -t [vgname] /dev/DEVICE
-t选项测试vg能否被缩减
如:#vgreduce myvg /dev/sdb4 将/dev/sdb4从myvg中缩减
注:为了在缩减卷组的时候不丢失数据,可以在缩减卷组之前使用
pvmove #将物理卷中的数据转移,然后再缩减卷组。
pvmove /dev/sdb4 /dev/sdb5 #先将/dev/sdb4中的数据移 到/dev/sdb5中
vgreduce -t myvg /dev/sdb4 #测试能否缩减
vgreduce myvg /dev/sdb4 #在上个命令提示可以缩减成功后,再缩减。
<3>lv命令
[1] lvs #简要显示lv的情况
[2] lvdisplay #显示lv的情况
[3] lvcreate #创建逻辑卷
-L SIZE {k|m|g|t} 指定逻辑卷的大小
-n logicalname 指定逻辑卷的名字
-p mode{r|rw} 制定权限
lvcreate -L [+|-]#[mMgGtT] -n lv_name vg _name
lvcreate -L 2G -n mylv myvg # 创建一个逻辑卷
mke2fs -t ext4 -L MYLV /dev/myvg/mylv #设置文件系统
#注意:扩展物理空间大小后,文件系统层面上并没有扩大,因此需要
resize2fs /dev/VG_NAME/LV_NAME #只对ext系列文件系统有效!
[4]lvreduce 增减逻辑卷
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
mount 重新挂载上去
例:我们将/dev/myvg/mylv缩减至1G,并挂载到/backup目录
umount /dev/myvg/mylv
e2fsck -f /dev/myvg/mylv
resize2fs /dev/myvg/mylv 1G #将文件系统缩减至1G
lvreduce -L 1G /dev/myvg/mylv #物理层面缩减
mount /dev/myvg/mylv /backup #挂载
三.Snap shot(快照)
1.概念:快照通过快照卷实现,也是一个逻辑卷,这个卷刚刚创建时没有任何数据,相当于有了一个监视器监控元数据,快照卷大小取决取决于你想让它存放时间。
2.如何创建快照卷
lvcreate -s -L #[mMgGtT] -n snap_lv_name original_lv_name
-s 创建快照
-p 指明读写 r w
例:我们创建一个名叫mylv-map的快照,并只读
lvcreate -s -L 512M -n mylv-map -p r /dev/myvg/mylv
mount /dev/myvg/mylv-map /mnt
cd /mnt # 进入查看mnt目录里面的数据
cd /backup # /dev/myvg/mylv挂载目录的数据
umount /mnt # 卸载快照卷
lvremove /dev/myvg/mylv-map #删除逻辑卷
四.实验
1.创建一个至少有两个PV组成大小为8G的名为testvg的VG,要求PE大小为16MB而后卷组中创建大小为5G的逻辑卷testlv,挂载至/users目录
那我们先创建两个分区类型都为8e,然后按照题目要求操作
2.新建用户archlinux,要求其家目录为/users/archlinux,而后su切换至archlinux用户复制/etc/pam.d目录至自己家目录
3.扩展testlv至7G,要求archlinux用户文件不能丢失
4.收缩testlv至3G,要求archlinux用户文件不能丢失
5.对testlv创建快照,并尝试基于快照备份数据,验证快照功能
创建好快照并设置好大小再挂载到/mnt目录,进入/mnt目录查看文件
发现和逻辑卷/dev/testvg/testlv所挂载目录里面/user里面内容一样,说明备份成功!