LVM的全称是:Logical Volume Manager(逻辑卷管理器),由内核中的DM模块提供此项功能,
LVM的组成结构,如下图所示
LV可以把一个或多个任意(包括RAID)的块设备做成物理卷(PV),将他们组合起来,并把一块或多块PV的存储能力抽象成一个一个的物理盘区(PE),这些PV的集合称为为一个卷组(VG)。其中PE的大小为2^n。PV的大小是块设备的大小,VG的大小是左右PV的大小之和,LV的大小最大可以达到VG的大小。并且可以对LV执行mke2fs命令对其创建文件系统并挂载至系统的某目录下使用。
在LVM上建的分区可以动态的增加或缩减,这对于硬盘使用空间无法确定的项目是非常方便的。而且可以利用LVM给分区做快照卷,利用此技术可以在不停机的情况下备份需要的数据,并且所备份的数据的时间都是同一时刻的。
LVM的相关命令:
pvcreate,pvs,pvdisplay,pvremove,pvmove,pvscan
vgcreate,vgs,vgdisplay,vgremove,vgreduce,vgextend,vgscan
lvcreate,lvs,lvdisplay,lvremove,lvreduce,lvextend,lvscan
下面给几个创建LVM的例子:
创建一个10G大小的LV(使用两个5G大小的PV),并对其创建ext4文件系统的步骤
先准备两个大小为5G的分区:sdb1、sdb2
1、创建pv:
pvcreate /dev/{sdb1,sdb2}
2、创建VG:
vgcreate -s 8M myvg /dev/sda5
-s #:指定卷组中的单个PE大小,
myvg:卷组名称
3、创建LV:
lvcreate -n mylv -L 10G myvg
-n NAME:指定创建的LV的名称
-L #:指定创建的LV的大小
myvg:卷组名称
4、创建ext4文件系统
mke2fs -t ext4 /dev/myvg/mylv
缩减上面创建的LV的大小至5G
缩减有风险,操作需谨慎(必须离线进行)
缩减顺序:先卸载LV,然后对LV执行e2fsck -f检测文件系统,检测无误后对文件系统的大小进行缩减,最后对LV的大小进行缩减。(操作顺序很重要,不能逆向操作)
步骤如下:
1、卸载LV:
umount /dev/myvg/mylv
2、检测文件系统:
e2fsck -f /dev/myvg/mylv
-f:强制对文件系统进行检测
3、缩减文件系统的大小:
resize2fs /dev/myvg/mylv 5G
4、缩减LV的大小:
lvreduce -L 5G /dev/myvg/mylv
-L #:指定缩减的大小,可以用“-”。表示相对原来的大小减少
增加上面的LV的大小至8G
增加大小可以在线操作,无需离线进行
增加顺序:先增加LV的大小,后增加文件系统的大小(操作顺序很重要,不能逆向操作)
步骤如下:
1、增加LV的大小
lvextend -L 8G /dev/myvg/mylv
-L #:指定缩减的大小,可以用“+”。表示相对原来的大小增加
2、增加文件系统的大小
resize2fs /dev/myvg/mylv 8G
给上面的LV创建一个大小为2G的快照卷
为了保证快照卷中的数据都是同一时刻的,防止在创建过程中进程修改LV中的数据,先要把快照卷挂载只读,然后创建快照卷,数据备份完毕后重新将LV挂载为读写
步骤如下:
1、挂载LV为只读
mount -o remount,ro /dev/myvg/mylv
2、创建快照卷
lvcreate -n kuaizhao-mylv -L 2G -s -p r /dev/myvg/mylv
-s:指定创建快照卷
-p r:指定创建的快照卷的权限为读权限
3、重新挂载LV为读写:
mount -o remount,rw /dev/myvg/mylv