LVM逻辑分区的优缺点与步骤
⼀、LVM简介
1. 什么是LVM?
LVM是 Logical Volume Manager(逻辑卷管理)的简写
2. 为什么使⽤LVM?
LVM通常⽤于装备⼤量磁盘的系统,但它同样适于仅有⼀、两块硬盘的⼩系统。
-----⼩系统使⽤LVM的益处:传统的⽂件系统:⼀个⽂件系统对应⼀个分区,直观,但不易改变,不同的分区相对独⽴,⽆相互联系,各分区空间常常利⽤不平衡,空间不能充分利⽤。当⼀个⽂件系统/分区已满时,⽆法对其扩充,只能采⽤重新分区/建⽴⽂件系统,⾮常⿇烦,或把分区中的数据移到另⼀个更⼤的分区中;或采⽤符号连接的⽅式使⽤其它分区的空间。如果要把硬盘上的多个分区合并在⼀起使⽤,只能采⽤再分区的⽅式,这个过程需要数据的备份与恢复。采⽤LVM:硬盘的多个分区由LVM统⼀为卷组管理,可以⽅便的加⼊或移⾛分区以扩⼤或减⼩卷组的可⽤容量,充分利⽤硬盘空间;⽂件系统建⽴在逻辑卷上,⽽逻辑卷可根据需要改变⼤⼩(在卷组容量范围内)以满⾜要求,可以跨分区。
-
---⼤系统使⽤LVM的益处:在使⽤很多硬盘的⼤系统中,使⽤LVM主要是⽅便管理、增加了系统的扩展性。⽤户/⽤户组的空间建⽴在LVM上,可以随时按要求增⼤,或根据使⽤情况对各逻辑卷进⾏调整。当系统空间不⾜⽽加⼊新的硬盘时,不必把⽤户的数据从原硬盘迁移到新硬盘,⽽只须把新的分区加⼊卷组并扩充逻辑卷即可。同样,使⽤LVM可以在不停服务的情况下。把⽤户数据从旧硬盘转移到新硬盘空间中去。
3 优点:可随时按需求改变逻辑卷⼤⼩,充分利⽤硬盘空间。
⼆、LVM原理
传统⽂件系统,⽐如这个盘只有300G,那么建⽴在这个300G上⾯的⽂件系统最多只能⽤到300G,但是有了LVM这个功能后,我们建⽴⽂件系统的盘就不是建⽴在物理盘上,⽽是建⽴在⼀个叫LV逻辑卷上⾯,这个卷是⼀个逻辑概念不是物理盘,空间可能⼤于⼀个物理盘,也可能⼩于⼀个物理盘。⽽且这个LV逻辑卷的空间可以扩展和缩⼩,这样就给上层的⽂件系统提供了更好的⽀持。
需要理解的⼏个概念:
PV(Physical Volume):物理空间的意思,其实就是指⼀个分区(如/dev/sdb1 )或者是⼀个盘(如/dev/sdb)
VG(Volume Group):相当于⼀个Pool,由多个PV组成的pool
LV(Logical Volume):⽤来建⽴⼀个⽂件系统的空间,这个空间来源于VG,⼤⼩随意,可以扩展。(⽐如/dev/mapper/rhel-root这个⽬录其实是⼀个⽂件系统挂载点,这个点就是承载在⼀个LV上,这个⽂件系统的⼤⼩就是这个LV的⼤⼩。 )
原理图:
三、LVM实验
1)创建PV,VG,LV的指令
创建物理卷
pvcreate /dev/vdb1            ##创建物理卷/dev/vdb1
创建物理卷组
vgcreate vg0 /dev/vdb1        ##创建物理卷组vg0
创建逻辑卷
lvcreate -L 300M -n lv0 vg0  ##在vg0卷组上创建名为lv0,⼤⼩为300M的逻辑卷
(-L指定创建的LV⼤⼩,-l指定创建的LV的PE数量,-n是LV的名字)
2)创建⼀个逻辑卷(操作展⽰)
[root@localhost ~]# fdisk /dev/vda
将分区类型改为LVM:
创建步骤:
[root@localhost ~]# pvcreate /dev/vdb1 ##创建物理卷
[root@localhost ~]# vgcreate vgbox /dev/vdb1
[root@localhost ~]# lvcreate -L 499G -n lgbox vgbox  ##在卷组vgbox上创建名为lgbox,⼤⼩为499G的逻辑卷
[root@localhost ~]# 4 /dev/vgbox/lgbox ##格式化逻辑卷并改系统格式为ext4
[root@localhost ~]# mount  /dev/vgbox/lgbox /data      ##挂载【linux下的⽂件系统需要被挂载后才能使⽤】
[root@localhost ~]# vim  /etc/fstab    #添加对应的挂载信息
/dev/vgbox/lgbox  /data  ext4 defaults 0 0
[root@localhost ~]#  mount  -a    #加载挂载点,然后df  -h即可看到挂载信息了
[root@localhost ~]# df -h
监控命令: watch -n 1 ‘pvs;echo ===;vgs;echo ===;lvs;echo ===;df -h /data/’
3)扩容
a)xfs系统中的扩容:
情况⼀:vg⾜够扩展
[root@localhost ~]# lvextend -L 500M /dev/vg0/lv0  ##扩展逻辑卷空间到500M
[root@localhost ~]# xfs_growfs /dev/vg0/lv0 ##扩展⽂件系统
resized
1
2
情况⼆:vg不够拉伸,得先扩⼤设备再扩⼤系统
扩⼤设备:
[root@localhost ~]# pvcreate /dev/vdb2 ##创建物理卷/dev/vdb2
[root@localhost ~]# vgextend vg0 /dev/vdb2 ##将新的物理卷vdb2添加到现有的卷组vg0
扩展逻辑卷
[root@localhost ~]# lvextend -L 1500M /dev/vg0/lv0 ##增加逻辑卷空间到1500M
[root@localhost ~]# xfs_growfs /dev/vg0/lv0
b)ext4系统的扩容
[root@localhost ~]# umount /mnt ##先卸载
[root@localhost ~]# 4 /dev/vg0/lv0 ##格式化逻辑卷,并改系统为ext4
[root@localhost ~]# mount /dev/vg0/lv0 /mnt/ ##挂载
[root@localhost ~]# lvextend -L 1800M /dev/vg0/lv0 ##增加逻辑卷空间
Extending logical volume lv0 to 1.76 GiB Logical volume lv0 successfully resized
[root@localhost ~]# resize2fs /dev/vg0/lv0 ##更新逻辑卷信息
4)缩减逻辑卷空间
[root@localhost ~]# umount /mnt ##先卸载
[root@localhost ~]# e2fsck -f /dev/vg0/lv0 ##扫描逻辑卷上的空余空间
[root@localhost ~]# resize2fs /dev/vg0/lv0 1000M ##设备⽂件减少到1000M
[root@localhost ~]# lvreduce -L 1000M /dev/vg0/lv0 ##将逻辑卷减少到1000M
[root@localhost ~]# mount /dev/vg0/lv0 /mnt ##挂载
5)缩减vg:(迁移到闲置设备)
[root@localhost ~]# pvmove /dev/vdb1 /dev/vdb2 ##将vdb1的空间数据转移到vdb2
/dev/vdb1: Moved: 88.0%
/dev/vdb1: Moved: 100.0% ##转移数据成功
[root@localhost ~]# vgreduce vg0 /dev/vdb1 ##将/dev/vdb1分区从vg0卷组中移除
Removed "/dev/vdb1" from volume group "vg0"
[root@localhost ~]# pvremove /dev/vdb1 ##把/dev/vdb1分区从系统中删除
Labels on physical volume "/dev/vdb1" successfully wiped
注意:将vdb1的空间数据转移到vdb2时,要确保vdb2的⾜够的空间能将vdb1的数据转移,否则需要先将vdb1缩减。6)LVM快照创建
[root@localhost ~]# touch /mnt/file{1..5}
[root@localhost ~]# lvcreate -L 50M -n lv0backup -s /dev/vg0/lv0 ##建⽴⼀个50M的快照
[root@localhost ~]# mount /dev/vg0/lv0backup /mnt ##挂载快照
[root@localhost ~]# cd /mnt
[root@localhost mnt]# ls
[root@localhost mnt]# rm -fr * ##删除所有⽂件
[root@localhost mnt]# cd
[root@localhost ~]# umount /mnt
[root@localhost ~]# lvremove /dev/vg0/lv0backup ##删除快照
[root@localhost ~]# lvcreate -L 50M -n lv0backup -s /dev/vg0/lv0 ##重建快照
[root@localhost ~]# mount /dev/vg0/lv0backup /mnt ##挂载快照
[root@localhost ~]# ls /mnt ##⼜可以看到之前建⽴的⽂件
结论: LVM的快照可以将某⼀时刻的信息记录到快照区中,因此,可以利⽤这⼀特点对数据做完全备份。
7)删除设备
[root@localhost ~]# umount /mnt ##卸载
[root@localhost ~]# df
[root@localhost ~]# lvremove /dev/vg0/lv0backup ##删除快照
[root@localhost ~]# lvremove /dev/vg0/lv0 ##删除逻辑卷
[root@localhost ~]# vgremove vg0 ##删除物理卷组
[root@localhost ~]# pvremove /dev/vdb{1..2} ##删除物理卷
总结
LVM虽然很好⽤,但是因为在硬件上使⽤纯软件⽅式进⾏管理,所以误删除数据恢复更加困难,LVM缩减分区⼤⼩风险较⼤,并不推荐使⽤LVM对磁盘分区进⾏管理。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。