今天给伙伴们分享一下Linux 磁盘管理-LVM逻辑卷管理器,希望看了有所收获。
我是公众号「想吃西红柿」「云原生运维实战派」作者,对云原生运维感兴趣,也保持时刻学习,后续会分享工作中用到的运维技术,在运维的路上得到支持和共同进步!
如果伙伴们看了文档觉得有用,欢迎大家关注我的公众号,获取相关文档。爱运维,爱生活。
1、LVM 介绍
基础以raid 10 两组 满足高可用要求,高性能 做成lvm 灵活性 分区 写入验证
LVM(Logical Volume Manager,逻辑卷管理器)的部署、扩容、缩小、快照以及卸载删除的相关知识。相信读者在学完本章内容后,可以在企业级生产环境中灵活运用RAID和LVM来满足对存储资源的高级管理需求。
动态的扩容,在线扩容,缩容下线存储后才可以操作
1、基本概念
1、 物理卷-----PV(Physical Volume)
物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘。
2、 卷组--------VG(Volumne Group)
卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工
程中可以只有一个卷组,也可以拥有多个卷组。
3、 逻辑卷-----LV(Logical Volume)
逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个
逻辑卷要以属于同一个卷组,也可以属于不同的多个卷组。
4、 物理区域–PE(Physical Extent) 一个pv里面有至少一个以上pe
物理区域是物理卷中可用于分配的最小存储单元,物理区域的大小可根据实际情况在建立物理卷时指定。物理区域大小一旦确定将
不能更改,同一卷组中的所有物理卷的物理区域大小需要一致。
5、 逻辑区域―LE(Logical Extent) 一个lv 里面至少一个以上的le
逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小。
6、 卷组描述区域-----(Volume Group Descriptor Area)
卷组描述区域存在于每个物理卷中pv,用于描述物理卷本身、物理卷所属卷组、卷组中的逻辑卷及逻辑卷中物理区域的分配等所有信息,卷组描述区域是在使用pvcreate建立物理卷时建立的。
-
硬盘设备管理技术虽然能够有效地提高硬盘设备的读写速度以及数据的安全性,但是在硬盘分好区或者部署为RAID磁盘阵列之后,再想修改硬盘分区大小就不容易了。
-
当用户想要随着实际需求的变化调整硬盘分区的大小时,会受到硬盘“灵活性”的限制。这时就需要用到另外一项非常普及的硬盘设备资源管理技术了—逻辑卷管理器(Logical Volume Manager,LVM)。LVM允许用户对硬盘资源进行动态调整。
-
LVM是Linux系统用于对硬盘分区进行管理的一种机制,理论性较强,其创建初衷是为了解决硬盘设备在创建分区后不易修改分区大小的缺陷。尽管对传统的硬盘分区进行强制扩容或缩容从理论上来讲是可行的,但是却可能造成数据的丢失。而LVM技术是在硬盘分区和文件系统之间添加了一个逻辑层,它提供了一个抽象的卷组,可以把多块硬盘进行卷组合并。这样一来,用户不必关心物理硬盘设备的底层架构和布局,就可以实现对硬盘分区的动态调整。LVM的技术架构如图7-8所示。
-
为了帮助大家理解,我们来看一个吃货的例子。比如小明家里想吃馒头,但是面粉不够了,于是妈妈从隔壁老王家、老李家、老张家分别借来一些面粉,准备蒸馒头吃。首先需要把这些面粉(物理卷[Physical Volume,PV])揉成一个大面团(卷组[Volume Group],VG),然后再把这个大面团分割成一个个小馒头(逻辑卷[Logical Volume,LV]),而且每个小馒头的重量必须是每勺面粉(基本单元[Physical Extent,PE])的倍数。
-
在日常的使用中,如果卷组(VG)的剩余容量不足,可以随时将新的物理卷(PV)加入到里面,进行不断地扩容。逻辑卷管理器的使用流程示意图,如图7-9所示。
图7-8 逻辑卷管理器的技术结构
图7-9 逻辑卷管理器使用流程图
- 物理卷处于LVM中的最底层,可以将其理解为物理硬盘、硬盘分区或者RAID磁盘阵列。
- 卷组建立在物理卷之上,一个卷组能够包含多个物理卷,而且在卷组创建之后也可以继续向其中添加新的物理卷。
- 逻辑卷是用卷组中空闲的资源建立的,并且逻辑卷在建立后可以动态地扩展或缩小空间。这就是LVM的核心理念。
2、LVM 的优势
1、小系统使用LVM的益处:
-
传统的文件系统是基于分区的,一个文件系统对应一个分区。这种方式比较直观,但不易改变:
-
不同的分区相对独立,无相互联系,各分区空间很易利用不平衡,空间不能充分利用;
-
当一个文件系统/分区已满时,无法对其扩充,只能采用重新分区/建立文件系统,非常麻烦;或把分区中的数据移到另一个更
大的分区中;或采用符号连接的方式使用其它分区的空间。
-
如果要把硬盘上的多个分区合并在一起使用,只能采用再分区的方式,这个过程需要数据的备份与恢复。
2、当采用LVM时,情况有所不同
-
硬盘的多个分区由LVM统一为卷组管理,可以方便的加入或移走分区以扩大或减小卷组的可用容量,充分利用硬盘空间;
-
文件系统建立在逻辑卷上,而逻辑卷可根据需要改变大小(在卷组容量范围内)以满足要求;
-
文件系统建立在LVM上,可以跨分区,方便使用;
3、大系统使用LVM的益处
-
在使用很多硬盘的大系统中,使用LVM主要是方便管理、增加了系统的扩展性。
-
在一个有很多不同容量硬盘的大型系统中,对不同的用户的空间分配是一个技巧性的工作,要在用户需求与实际可用空间中寻求平衡。
-
用户/用户组的空间建立在LVM上,可以随时按要求增大,或根据使用情况对各逻辑卷进行调整。当系统空间不足而加入新的硬盘时,不必把用户的数据从原硬盘迁移到新硬盘,而只须把新的分区加入卷组并扩充逻辑卷即可。同样,使用LVM可以在不停服务的情况下。把用户数据从旧硬盘转移到新硬盘空间中去。
2、部署逻辑卷
-
生产环境中无法在最初时就精确地评估每个硬盘分区在日后的使用情况,因此会导致原先分配的硬盘分区不够用。比如,伴随着业务量的增加,用于存放交易记录的数据库目录的体积也随之增加;因为分析并记录用户的行为从而导致日志目录的体积不断变大,这些都会导致原有的硬盘分区在使用上捉襟见肘。而且,还存在对较大的硬盘分区进行精简缩容的情况。
-
可以通过部署LVM来解决上述问题。部署时,需要逐个配置物理卷、卷组和逻辑卷,常用的部署命令如表7-3所示。
表7-3 常用的LVM部署命令
功能/命令 | 物理卷管理 | 卷组管理 | 逻辑卷管理 |
---|---|---|---|
扫描 | pvscan | vgscan | lvscan |
建立 | pvcreate | vgcreate | lvcreate |
显示 | pvdisplay | vgdisplay | lvdisplay |
删除 | pvremove | vgremove | lvremove |
扩展 | vgextend | lvextend | |
缩小 | vgreduce | lvreduce |
- 为了避免多个实验之间相互发生冲突,请大家自行将虚拟机还原到初始状态,并重新添加两块新硬盘设备,如图7-10所示。
图7-10 在虚拟机中添加两块新的硬盘设备
- 在虚拟机中添加两块新硬盘设备的目的,是为了更好地演示LVM理念中用户无须关心底层物理硬盘设备的特性。
- 对这两块新硬盘进行创建物理卷的操作,可以将该操作简单理解成让硬盘设备支持LVM技术,或者理解成是把硬盘设备加入到LVM技术可用的硬件资源池中,
- 然后对这两块硬盘进行卷组合并,卷组的名称允许由用户自定义。
- 根据需求把合并后的卷组切割出一个约为150MB的逻辑卷设备,最后把这个逻辑卷设备格式化成Ext4文件系统后挂载使用。
下文将对每一个步骤做一些简单的描述。
第1步:让新添加的两块硬盘设备支持LVM技术。
[[email protected] ~]# pvcreate /dev/sdb /dev/sdc
Physical volume "/dev/sdb" successfully created.
Physical volume "/dev/sdc" successfully created.
注意
[[email protected] ~]# pvcreate /dev/sdb /dev/sdc
Device /dev/sdb excluded by a filter.
Device /dev/sdc excluded by a filter.
导致问题的原因是添加的磁盘是在另一个虚拟机中新建的,已经有了分区表,现在的虚拟机并不能识别磁盘的分区表,运行parted命令重做分区表,中途需要输入三次命令。
[[email protected] ~]# parted /dev/sdb
GNU Parted 3.2
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel msdos
Warning: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No? yes
(parted) quit
Information: You may need to update /etc/fstab.
再次运行pvcreate,问是否擦除dos签名,输入y,就可以将磁盘创建为PV了。
[[email protected] ~]# pvcreate /dev/sdb /dev/sdc
WARNING: dos signature detected on /dev/sdb at offset 510. Wipe it? [y/n]: y
Wiping dos signature on /dev/sdb.
WARNING: dos signature detected on /dev/sdc at offset 510. Wipe it? [y/n]: y
Wiping dos signature on /dev/sdc.
Physical volume "/dev/sdb" successfully created.
Physical volume "/dev/sdc" successfully created.
第2步:把两块硬盘设备加入到storage卷组中,然后查看卷组的状态。