1.LVM基本介绍
2.PV、VG、LV关系详解(PV/VG/LV的创建、扩展逻辑卷大小、减小(减小操作很少用,仅作学习))
3.快照的概念以及基本用法(特殊的逻辑卷)
4.总结LVM基本介绍
LVM:Logical Volume Manager,逻辑卷管理,是Linux下对磁盘分区进行管理的一种机制
传统硬盘管理机制:1. 文件系统是基于分区的
2. 不同分区之间相对独立无法互联
3. 空间难以平衡利用,且当一个分区/文件系统已满时无法扩充,只能重分区/重建文件系统,若涉及到数据,则只能备份——> 重分区/重建文件系统——> 恢复数据
LVM(逻辑卷管理):1. 硬盘的多个分区由LVM统一管理
2. 可以方便的扩大和减小(Attention),充分利用磁盘空间
3. 文件系统建立在逻辑卷上,而逻辑卷可以根据需求随时改变大小这是LVM最值钱/最帅的功能
4. 在大型企业中,使用LVM可以在不停止服务的情况下,实现把用户数据从个旧硬盘转移到新硬盘中
【Attention : 实际生产环境中,减小磁盘容量的操作十分危险,很容易危及已存在的数据,比起数据的价值,磁盘的价值简直如同草芥,所以几乎不会执行减小操作(仅供学习之用)】
2. PV、VG、LV关系详解
PV(Physical Volume): 物理卷设备,基于Block Device(磁盘块设备)创建
VG(Volume Group):卷组,基于已存在的PV(物理卷设备)创建
LV(Logical Volume):逻辑卷,基于已存在的VG(卷组)创建
PE(Physical Extent):物理区域,是物理卷中可用于分配的最小存储单元,可自定义,但确定之后不能更改
*最下面的三个空白格比作磁盘块设备(Block Device)
2.1 PV :LVM系统中最底层的设备
基本管理命令:pvscan/pvs/pvdisplay/pvcreate/pvremove
1.pvscan:在系统中搜索已存在的物理卷(不存在PV设备时)
(存在PV设备时)
2.pvs: 类似于pvscan
3.pvdisplay :物理卷全路径民称,用于显示指定物理卷的属性信息(命令后面不加指定物理卷,默认显示所有物理卷)
4.pvcreate :创建物理卷设备(参数位可以跟多个块设备路径,可同时创建多个PV)
5.pvremvoe:删除物理卷 若此物理卷存在于卷组(PV)和逻辑卷(LV)中,需要先移除LV,再移除VG,最后移除PV
2.2 VG:卷组
基本管理命令:vgscan/vgs/vgdisplay/vgcreate/vgpremove/vgrename/
1.vgscan,vgs:都是查看当前已存在的卷组,执行对比如下
2.vgdisplay :查看卷组信息(默认所有卷组信息)
3.vgcreate :创建卷组
4. vgremove : 删除卷组 若此卷组存在于逻辑卷(LV)中,则需要先移除LV,再移除VG
5. vgrename:更改卷组名称
2.3 LV:逻辑卷
基本管理命令:lvscan/lvs/lvdisplay/lvcreate/lvrename/lvremove
1. lvscan,lvs:显示基本的逻辑卷信息
2. lvdisplay :显示逻辑卷详细信息(默认所有逻辑卷,也可指定逻辑卷)
3.lvcreate:创建逻辑卷(需指定大小(-L),名称(-n))
*若不指定逻辑卷名称,则系统默认定义名称,如上所示“lvo10”
4.lvrename :修改逻辑卷名称(需要提供完整路径,不能像VG修改一样只提供旧卷组名称和新卷组名称即可)
5.lvremove :移除逻辑卷
2.4 在逻辑卷上创建文件系统
当PV/VG/LV都创建完成之后,就可以在LV上创建文件系统,就可以挂载使用了,当然,这个创建的过程再赘述一下:这个过程可以理解为有三块豆腐,你想把这三块豆腐分成2块,传统的办法就是把一块切成两半,然后每一半分给余下的两块,LVM则是把三块豆拼成一大块豆腐,然后切成两半,比起之前的两块豆腐,显然更完整,
好了,现在都创建好了,可以创建文件系统了,创建那几步都明白了,后面就简单了,跟之前格式化磁盘创建文件系统、挂载使用就没什么区别了
创建文件系统(格式化LVM),当然了,具体的需要什么文件系统,则自行决定,以ext4为例:
挂载文件系统
当然了,挂载成功,就可以开始使用了,到此,LVM系统创建成功并且可以正常使用了。
BUT不过 ……,空间不够用了怎么办?就需要扩展,下面再来看扩展的具体步骤吧
首先,再看一遍这张图:
这个图示顺序很清晰,所以很容易理解:需要扩展LV,就需要扩展VG,需要扩展VG就需要扩展PV,那就需要在创建新的PV,再往下就是加一块或若干块物理块设备,
2.5 扩展整个系统的步骤概括如下:创建新PV——>扩展VG——>扩展LV
PV涉及不到扩展或者缩小,因为是LVM系统中最小组成单位,所以只需要在创建即可
VG扩展:vgextend(若原有的文件系统正在使用则需要先卸载,再执行扩展操作)
LV扩展:lvextend
扩展完成了,看一下扩展之前的LV和扩展之后的LV对比:
基本上LVM以上的基本操作在生产环境中的使用时足够了,再强调一下,诸如lvreduce/vgreduce等等减小磁盘空间的命令,稍有不慎,极易损坏数据,而且无论是出于成本还是实用性都几乎不会用到的操作,对于一个对数据安全性要求很高的时候,可以认为禁止这么做的,切记啊
3. 快照的概念(特殊的逻辑卷)
快照的概念:LVM中快照创建的时候,仅拷贝原始卷里数据的元数据;创建的时候,并不会有数据的物理拷贝,因此快照的创建几乎是瞬间完成的,当原始卷上有写操作执行时,快照跟踪原始卷块的改变,这个时候原始卷上将要改变的数据在改变之前被拷贝到快照预留的空间
为现有逻辑卷创建快照:
为了验证快照的功能,在/app目录下创建了两个文件,其中一个是在创建快照之前创建,一个是在创建快照之后创建,若执行恢复快照功能成功,则在创建快照之后的创建的文件就不会存在
创建的两个文件如图所示:
在这个过程中,源LV一直处于挂载状态,所以先卸载源:
卸载源之后,执行恢复快照功能:
再重新挂载源:
切换到/app目录下查看文件:名为create_after.txt的文件不见了
到此,快照恢复成功,并且快照自动删除,lvs查看逻辑卷列表里面没有了快照,只有源逻辑卷
快照梗概如下图所示:
4.总结
实际生产环境中,为了保证数据安全都一定会用RAID(磁盘冗余阵列)来保证,但同时,由于传统磁盘管理机制的局限性,扩展设备容量极其的麻烦,所以又会使用LVM来管理/扩容磁盘,达到扩容的目的,单纯的使用LVM来划分磁盘也可以用,但是一旦物理层设备损坏,则LVM也会全盘毁掉, 所以会用RAID来保证数据的安全,以上就是LVM基本的使用,如有疏漏和错误还望指正