在我们实际的工作当中经常会出现这样的情况,我们在给磁盘分区的时候对未来使用磁盘的估计偏差,造成有些磁盘很快就满了,而有些磁盘还有很大的空间,这个时候我们很想让这两个磁盘的空间中和一下,把剩余空间比较多的那个磁盘缩小一下,而把那个快要塞满了的磁盘再给扩展一下,LVM就为我们提供了这个功能。
LVM(Logical Volume Manager,逻辑卷管理器)是一种可选的子系统,它可以实现将多个单独的硬盘组成卷组(volume),接着分配给逻辑卷(logical volume),之后就可以按照普通的块设备来访问了。LVM可以实现对逻辑卷的扩展,缩减和快照。但是如果要快照的话要在分配磁盘存储空间的时候给快照卷预留空间,另外快照卷要跟原逻辑卷在同一个卷组内。
卷组就相当于我们电脑上磁盘分区的一个扩展分区是不可以直接使用的,另外卷组是由多个物理磁盘连接起来组成的总大小,但是卷组的边界不能超出物理设备的总大小。在卷组之上才能创建逻辑卷,一个卷组可以有多个逻辑卷也可以只用一个逻辑卷,如果打算为逻辑卷‘快照’的话一定要给快照卷预留空间。当然了,无论是逻辑卷还是物理卷我们都可以进行增加和删除的,增加时还好一点,但是删除时一定要注意数据的保存!这里我们就不多做介绍了,我们只来简单介绍一下对逻辑卷的管理;
逻辑卷是在卷组上层的,逻辑卷的总大小是不能超过它所在卷组的大小的,换句话说就是我们对逻辑卷的任何操作都是被限制在卷组之内的,如果你想扩展到卷组之外,那么我可以很明确的告诉你,那是不可能的。
我们对逻辑卷的管理有一下几种:
1、扩展逻辑卷
2、缩减逻辑卷
3、快照卷
我们先来看一下1、扩展逻辑卷:
我们要想扩展逻辑卷首先要先扩展逻辑卷的物理边界,我们通常用lvextend命令:
lvextend -L [+]# /PATH/TO/LV:-L是选项用来指定大小的 [+]可用可不用 #代表的数字 后面跟的是路径
如果带上+就表示扩展多少,如果不用+就表示扩展为多少
然后再扩展逻辑边界,通常扩展之前我们要先检查一下文件系统
resize2fs:扩展逻辑边界(这里只针对的是ext2 的文件系统,其他的文件系统不一定适用)
resize2fs -P /PATH/TO/LV:表示的是有多大空间就扩展为多大
2、缩减逻辑卷
缩减逻辑卷我们有几点要注意的:一、不能在线缩减,必须先卸载再缩减
二、确保缩减后的空间大小依然能存储原有的所有数据
三、在缩减之前应该先强行检查文件,以确保文件系统处于一致性状态
在缩减之前我们要先查看一下已经用了多少空间,以便我们缩减后保留的空间能存储原来的所有数据,我们一般用df -lh命令来查看已用的空间
另外不能在线缩减,必须要先卸载我们用umount来卸载
强行对文件系统做一次检测用e2fsck -f
resize2fs /PATH/TO/PV 3G:此命令表示的是将/PATH/TO/PV缩减至3G,这里缩减的是逻辑边界,缩减跟扩展正好相反,要先缩减逻辑边界然后缩减物理边界
lvreduce -L [-]# /PATH/TO/LV:这里的[-]跟前面扩展逻辑卷代表的意思是一致的。
至此缩减完成,不过下面还有一步要做,别忘了前面你缩减的时候把它卸载了,所以接下来你还要把它挂载上,挂载成功那就完成了。
3、快照卷
快照卷就如同给这个逻辑卷备份了一次,大家知道我们的数据是在不断更新的,所以我们的快照卷不是一劳永逸的,它是有声明周期的,快照卷的生命周期为整个数据时长,也就是在这段时长内,数据的增长量是不能超出快照卷的大小的,否则快照卷就直接挂掉了,也就没有意义了,在我们创建快照卷的时候为其指定一个适当的大小是很有必要的;另外我们的快照卷是主要是用于备份的,所以,我们的快照卷应该是只读的,还有就是我们前面一再强调的,快照卷跟原卷要在同一个卷组内。
lvcreate -s:表示创建的为快照卷
-p r|w:为快照卷指定权限(通常为只读)
-L #:为快照卷指定大小
-n NAME:指定创建的快照卷的名称
lvcreate -L # -n SLV_NAME -s -p r /PATH/TO/LV:后面的路径这里指的是要为其创建快照卷的逻辑卷的路径,执行成功快照卷创建成功;
快照卷创建成功之后你也可以实验一下,看看改变原卷快照卷会不会改变。
快照卷创建成功,我们检测一下完整性,完整就备份,备份成功之后快照卷的生命周期也就到此结束了,它的存在也就没有意义了,接下来的操作就是卸载删除了……