加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

LVM逻辑分区的优缺点与步骤

发布时间:2020-12-13 23:47:58 所属栏目:Linux 来源:网络整理
导读:一、LVM简介 1. 什么是LVM? LVM是 Logical Volume Manager(逻辑卷管理)的简写 2. 为什么使用LVM? LVM通常用于装备大量磁盘的系统,但它同样适于仅有一、两块硬盘的小系统。 -----小系统使用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)创建一个逻辑卷(操作展示)

[[email?protected] ~]# fdisk /dev/vda

?


将分区类型改为LVM:

?

创建步骤:
[[email?protected] ~]# pvcreate /dev/vdb1 ##创建物理卷
[[email?protected] ~]#?vgcreate vgbox /dev/vdb1

[[email?protected] ~]#?lvcreate -L 499G -n lgbox vgbox? ?##在卷组vgbox上创建名为lgbox,大小为499G的逻辑卷

[[email?protected] ~]# mkfs.ext4 /dev/vgbox/lgbox ##格式化逻辑卷并改系统格式为ext4
[[email?protected] ~]# mount? /dev/vgbox/lgbox /data? ? ? ?##挂载【linux下的文件系统需要被挂载后才能使用】

[[email?protected] ~]#?vim? ?/etc/fstab? ? #添加对应的挂载信息

/dev/vgbox/lgbox? /data? ext4 defaults 0 0?

[[email?protected] ~]#? mount? -a? ? #加载挂载点,然后df? -h即可看到挂载信息了

[[email?protected] ~]# df -h

?

监控命令: watch -n 1 ‘pvs;echo ===;vgs;echo ===;lvs;echo ===;df -h /data/’

?

3)扩容

a)xfs系统中的扩容:
情况一:vg足够扩展

[[email?protected] ~]# lvextend -L 500M /dev/vg0/lv0 ? ##扩展逻辑卷空间到500M
[[email?protected] ~]# xfs_growfs /dev/vg0/lv0 ##扩展文件系统
1
2
情况二:vg不够拉伸,得先扩大设备再扩大系统

扩大设备:

[[email?protected] ~]# pvcreate /dev/vdb2 ##创建物理卷/dev/vdb2
[[email?protected] ~]# vgextend vg0 /dev/vdb2 ##将新的物理卷vdb2添加到现有的卷组vg0

扩展逻辑卷

[[email?protected] ~]# lvextend -L 1500M /dev/vg0/lv0 ##增加逻辑卷空间到1500M
[[email?protected] ~]# xfs_growfs /dev/vg0/lv0

b)ext4系统的扩容

[[email?protected] ~]# umount /mnt ##先卸载
[[email?protected] ~]# mkfs.ext4 /dev/vg0/lv0 ##格式化逻辑卷 ,并改系统为ext4
[[email?protected] ~]# mount /dev/vg0/lv0 /mnt/ ##挂载
[[email?protected] ~]# lvextend -L 1800M /dev/vg0/lv0 ##增加逻辑卷空间
Extending logical volume lv0 to 1.76 GiB Logical volume lv0 successfully resized
[[email?protected] ~]# resize2fs /dev/vg0/lv0 ##更新逻辑卷信息

4)缩减逻辑卷空间

[[email?protected] ~]# umount /mnt ##先卸载
[[email?protected] ~]# e2fsck -f /dev/vg0/lv0 ##扫描逻辑卷上的空余空间
[[email?protected] ~]# resize2fs /dev/vg0/lv0 1000M ##设备文件减少到1000M
[[email?protected] ~]# lvreduce -L 1000M /dev/vg0/lv0 ##将逻辑卷减少到1000M
[[email?protected] ~]# mount /dev/vg0/lv0 /mnt ##挂载

5)缩减vg:(迁移到闲置设备)

[[email?protected] ~]# pvmove /dev/vdb1 /dev/vdb2 ##将vdb1的空间数据转移到vdb2
/dev/vdb1: Moved: 88.0%
/dev/vdb1: Moved: 100.0% ##转移数据成功
[[email?protected] ~]# vgreduce vg0 /dev/vdb1 ##将/dev/vdb1分区从vg0卷组中移除
Removed "/dev/vdb1" from volume group "vg0"
[[email?protected] ~]# pvremove /dev/vdb1 ##把/dev/vdb1分区从系统中删除
Labels on physical volume "/dev/vdb1" successfully wiped

注意:将vdb1的空间数据转移到vdb2时,要确保vdb2的足够的空间能将vdb1的数据转移,否则需要先将vdb1缩减。
6)LVM快照创建

[[email?protected] ~]# touch /mnt/file{1..5}
[[email?protected] ~]# lvcreate -L 50M -n lv0backup -s /dev/vg0/lv0 ##建立一个50M的快照
[[email?protected] ~]# mount /dev/vg0/lv0backup /mnt ##挂载快照
[[email?protected] ~]# cd /mnt
[[email?protected] mnt]# ls
[[email?protected] mnt]# rm -fr * ##删除所有文件
[[email?protected] mnt]# cd
[[email?protected] ~]# umount /mnt
[[email?protected] ~]# lvremove /dev/vg0/lv0backup ##删除快照
[[email?protected] ~]# lvcreate -L 50M -n lv0backup -s /dev/vg0/lv0 ##重建快照
[[email?protected] ~]# mount /dev/vg0/lv0backup /mnt ##挂载快照
[[email?protected] ~]# ls /mnt ##又可以看到之前建立的文件

结论: LVM的快照可以将某一时刻的信息记录到快照区中,因此,可以利用这一特点对数据做完全备份。
7)删除设备

[[email?protected] ~]# umount /mnt ##卸载
[[email?protected] ~]# df
[[email?protected] ~]# lvremove /dev/vg0/lv0backup ##删除快照
[[email?protected] ~]# lvremove /dev/vg0/lv0 ##删除逻辑卷
[[email?protected] ~]# vgremove vg0 ##删除物理卷组
[[email?protected] ~]# pvremove /dev/vdb{1..2} ##删除物理卷

总结
LVM虽然很好用,但是因为在硬件上使用纯软件方式进行管理,所以误删除数据恢复更加困难,LVM缩减分区大小风险较大,并不推荐使用LVM对磁盘分区进行管理。

?

参考链接:https://blog.csdn.net/weixin_44297303/article/details/87065544?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读