LVM逻辑卷管理是Logical Volume Manager简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。
物理硬盘:底层的存储设备,linux中的/dev/sda,/dev/sdb等;
PE:物理块,默认为4MB;
物理卷(physical volume,PV):对应于非LVM中的分区,在LVM中,带有LVM的相关信息;
卷组(volume group,VG):有一个或多个物理卷组成为一个PE池;
逻辑卷(logical volume,LV):由卷组中产生,可以由一个或多个PE组成一个逻辑卷,并且多个PE可来自不同的物理卷中;
1、多个物理磁盘被格式化为多个PV,每个PV中有多个PE组成;
2、多个PV组成一个VG,多个PV中的PE都在VG中,生成一个PE池;
3、一个LV可由多个PE组成,其中的PE课来自不同的物理硬盘;
4、LV通过格式化并挂载后即可直接使用;
总结:多个磁盘/分区/raid–>多个物理卷PV–>合成卷组VG–>从VG划分出逻辑卷LV–>格式化LV,挂载使用。
描述 | 功能 | PV管理 | VG管理 | LV管理 |
---|---|---|---|---|
扫描 | scan | pvscan | vgsan | lvsan |
创建 | create | pvcreate | vgcrate | lvcreate |
显示 | display | pvdisplay | vgdisplay | lvdisplay |
显示 | s | pvs | vgs | lvs |
移除 | remove | pvremove | vgremove | lvremoce |
扩展 | extend | vgextend | lvextend | |
减少 | reduce | vgreduce | lvreduce |
注意:scan、display和s(pvs、vgs、lvs)都是查看命令,s是简单查看对应卷信息,display是详细查看对应卷信息。而scan是扫描所有的相关的对应卷。
操作系统为Centos 7,系统中包含3块盘,/dev/sda,/dev/sdb,/dev/sdc,目前只使用了sda一部分存储,sdb,sdc均为使用,本文将利用该环境进行示例演示操作。
利用系统中国sdb和sdc创建物理卷,命令如下:
pvcreate /dev/sdb --创建pv
pvcreate /dev/sdc --创建pv
pvs --查看创建情况
利用物理卷sdc创建一个新的卷组,命令如下:
vgcreate vg_sdc /dev/sdc --创建vg卷组,名称为vg_sdc
vgs --查看卷组
利用卷组vg_sdc创建一个大小为2G新的逻辑卷,命令如下:
lvcreate -n lv_sdc1 -L 2G vg_sdc --使用卷组vg_sdc创建逻辑卷lv_sdc1,大小为2G;
通过lvs可以看到新增了一个逻辑卷lv_sdc1,所属卷组vg_sdc,逻辑卷大小为2G;
通过vgs可以看到vg_sdc卷组总大小为5G,空间3G,其中2G被逻辑卷lv_sdc1使用;
lvdisplay lvdisplay lv_sdc1 --查看lv_sdc1详细信息
mkfs.ext4 /dev/vg_sdc/lv_sdc1 --将逻辑卷格式化为ext4格式
mount /dev/vg_sdc/lv_sdc1 /gangma2 --挂在逻辑卷到/gangma2下
(若使用xfs格式,用 mkfs.xfs /dev/vg_sdc/lv_sdc1进行格式化)
添加/etc/fstab文件中,开机自启。
vgextend vg_sdc /dev/sdb --将PV中/dev/sdb扩容到卷组vg_sdc
vgreduce vg_sdc /dev/sdb --将VG中sdb去除
对逻辑卷lv_sdc1增加2G存储,有两种方式:
lvextend -L +2G /dev/vg_sdc/lv_sdc1 --对逻辑卷lv_sdc1增加2G存储
lvextend -L 4G /dev/vg_sdc/lv_sdc1 --将lv_sdc1增加到4G
df查看,文件大小还是2G,我们还需要resize2fs /dev/vg_sdc/lv_sdc1对文件系统扩容。
ext4文件系统扩容使用"resize2fs [逻辑卷名称]",xfs文件系统扩容使用"xfs_growfs 挂载点"。
在VG充足的情况下,我们也可以对逻辑卷进行动态扩展,命令如下:
lvextend -L 200M -r /dev/vg_sdc/lv_sdc1 --自动扩容(Centos 7以上支持)
对逻辑卷lv_sdc1减少1G存储,命令如下:
(1)lvreduce -L 3G -r /dev/vg_sdc/lv_sdc1 --将逻辑卷减少到3G,即减少1G
(2)lvreduce -L -1G /dev/vg_sdc/lv_sdc1 --将逻辑卷减少到1G,这种方式挂载点要卸载重新挂载
resize2fs /dev/vg_sdc/lv_sdc1 –
删除逻辑卷/dev/vg_sdc/lv_sdc1
lvremove /dev/vg_sdc/lv_sdc1 --删除逻辑卷