您的位置:首页 > 运维架构 > Linux

Linux之LVM逻辑卷管理

2018-01-25 11:42 267 查看
一、什么是Lvm

背景:就像是微信保存所有人的朋友圈,每个人一进去就可以看见,这需要存储空间,而且你不可能预知它有多大,不能直接给他固定的空间,所以我们需要LVM这种可以当空间不够使用的时候,可以继续将其它的硬盘的分区加入其中直接投入使用的方式。

1、lvm:是 Logical Volume Manager(逻辑卷管理)的简写,它由Heinz Mauelshagen在Linux 2.4内核上实现。LVM将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性。(把下面比喻成橘子榨汁)

2、pv:是物理卷(physical volume)的简写,就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。(相当于是橘子)

3、vg:是卷组(Volume
Group)的简写。LVM卷组类似于非LVM系统中的物理硬盘,其由物理卷组成。可以在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。(相当于是榨汁机)

4、pe:每一个物理卷被划分为称为PE(Physical
Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。(相当于是榨汁的果粒)

5、le:LE(logical
extent):逻辑卷也被划分为被称为LE(Logical Extents) 的可被寻址的基本单位。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。(相当于是到手的橘子汁)

总结:LVM存在的意义就是用软件实现设备可拉伸或缩减,而设备中存在的数据不变.


二、LVM的管理

1、LVM的建立

1)执行分区命令fdisk 
/dev/vdb

建立好一个分区后,改变他的类型为Linux
Lvm,如下图





2lvm的检测

可以用

的命令来检测,如下图,我们可以给一个监控命令,监视我们下来的操作





3、lvm的建立,在建好LVM分区的前提下


前三步建立好pv(物理卷),vg(物理卷组),lv(逻辑卷),第四部格式化设备,第五步将设备挂载在目录上看是否可以被系统使用





这样我们就完成LVM的建立

4、Lvm的拉伸


第一种方式:1)当vg中容量够用时,先对逻辑卷扩展



此时设备大小还是300,再同步设备,如下



2)当vg中的 剩余容量不够所要扩充的大小时,就需要先扩展vg,然后再扩充lv先建立新的普通分区,转化为lvm类型,方式如上,然后将其创建为新的pv,如下图



这时我就可以取1500M,原来不能取



第二种方式:xfs文件不可缩减 ,所以要把其换成ext4文件,mkfs.ext4+设备使可以缩减(改变类型先卸下挂载),ext4同样可以扩展,如下图,现将xfs文件转换成ext4文件







然后我们将其扩展,此时同步设备大小命令变为resize2fs+设备



5、LVM的缩减

先卸下挂载;在进行扫描操作e2fsck -f +设备;在将设备缩小到你要的(和扩展相反,缩减要先缩减设备,要不然会损坏里面容)


最后再将逻辑卷缩减,如下图



6、物理卷组的移除

在物理卷没有数据时,可以直接移除,当物理卷有数据要移除物理卷前,需要将其中的数据移动到其他pv中,否则不能被允许。

第一步:转移数据pvmove
/dev/vdb1 /dev/vdb2

第二步:把物理卷从物理卷组中移走:vgreduce
vg0 /dev/vdb1

第三步:移除设备pvremove
/dev/vdb1



7、LVM的快照(可以完成数据的恢复)

1)我们先在/mnt/下创建一些文件再将其卸下挂载,然后建立lv0的快照:lvcreate -L
20M -n lv0-backup -s /dev/vg0/lv0,建立好后将其挂载,如下图



挂载中下是的大小是原lv0大小,但实际上可以更改的只是backup中的20M内容



2)此时我们将/mnt/下的文件进行删除操作



3)这时候我们将backup移除,再重新建立一个快照,打开会发现/mnt/下的内容又恢复。如下图



这样我们的操作实际上是在快照中进行,但操作的内容是真实的lv0中的内容,如果操作失败,只需要删除快照并重新在建立快照,这样可以做到有效的保护数据

8、LVM的删除

建立时是从大到小,删除是从小到大。先卸下挂载,在删除逻辑卷,在删除物理卷组,最后删除物理卷。如果要删除的彻底,可以fdisk
到分区,删除LVM分区,如下图



但是有时候忘记了直接删除了分区,而LVM还在工作,再想移除时产生报错,如何处理,用vgreduce
--removemissing
去处理,如下图:为正常工作


此时忘记失误删除设备分区,报错:



我们用vgreduce
--removemissing +误删除的分区处理



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux