LVM
一.概念
LVM逻辑卷管理是Linux环境下对磁盘分区进行管理的一种机制,允许用户对硬盘资源进行动态调整。LVM是建立在硬盘或者分区之上的一个逻辑层,为文件系统屏蔽下层磁盘分区布局,从而提高磁盘分区管理的灵活性。
二.基本术语
1. 物理卷PV
物理卷在LVM系统中处于最底层,可以将其理解为物理硬盘、硬盘分区或者RAID磁盘阵列。卷组建立在物理卷之上,一个卷组可以包含多个物理卷,而且在卷组创建之后,也可以继续向其中添加新的物理卷。物理卷可以是整个硬盘、硬盘上的分区,或从逻辑上与磁盘分区具有同样功能的设备(如RAID)。物理卷是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
2. 卷组VG
卷组建立在物理卷之上,由一个或多个物理卷组成。卷组创建之后,可以动态地添加物理卷到卷组中,在卷组上可以创建一个或多个LVM分区(逻辑卷)。一个LVM系统中可以只有一个卷组,也可以包含多个卷组。LVM管理的卷组类似于非LVM系统中的物理硬盘。
3. 逻辑卷LV
逻辑卷建立在卷组之上,是从卷组中“切出”的一块空间。逻辑卷创建之后,其大小可以伸缩。LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上可以建立文件系统(如/home或者/usr等)。逻辑卷是用卷组中空闲的资源建立的,并且逻辑卷在建立后可以动态地扩展或缩小空间。
4. 物理区域PE
每一个物理卷被划分为基本单元(称为PE),具有唯一编号的PE,是可以被LVM寻址的最小存储单元。PE的大小可根据实际情况在创建物理卷时指定,默认为4 MB。PE的大小一旦确定将不能改变,同一个卷组中所有物理卷的PE大小一致。
5. 逻辑区域LE
逻辑区域也被划分为可被寻址的基本单位(称为LE)。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。和非LVM系统将包含分区信息的元数据(metadata)保存在位于分区起始位置的分区表中一样,逻辑卷以及卷组相关的元数据也是保存在位于物理卷起始处的卷组描述符区域VGDA中。VGDA 包括PV 描述符、VG 描述符、IV描述签和一些PF描述符。
三.原理
1)物理磁盘被格式化为PV,空间被划分为一个个的PE
2)不同的PV加入到同一个VG中,不同PV的PE全部进入到了VG的PE池内
3)LV基于PE创建,大小为PE的整倍数,组成LV的PE可能来自不同的物理磁盘
4)LV现在就直接可以格式化后挂载使用了
5)LV的扩充缩减实际上就是增加或减少组成该LV的PE数量,其过程不会丢失原始数据
四.流程
1)创建物理卷 在创建物理卷之前,对磁盘进行分区。使用fdisk对sdb进行分区操作
分完区,对这两个分区进行创建物理卷操作 pvcreate /dev/sdb1 /dev/sdb2
(Partprobe 用于重读分区表,当出现删除文件后,出现仍然占用空间。可以partprobe在不重启的情况下重读分区)
查看物理卷的简单信息和详细信息 pvs pvdisplay
2)创建卷组 vgcreate myvg /dev/sdb[1-2]
查看卷组信息 vgs
查看卷组详细信息 vgdisplay
删除卷组,重新创建卷组,并指定PE大小 vgremove myvg
vgcreate -s 16m myvg /dev/sdb[1-2]
vgdisplay
查看现在卷组的PE大小 lsblk
向卷组中添加一个物理卷,在/dev/sdb上再分一个分区,把该分区加到卷组里
将创建的分区添加到卷组,在添加过程,会自动将分区创建为物理卷 vgextend myvg /dev/sdb3
查看存在的组卷 vgs
查看已存在的信息 vgdisplay myvg
3)创建逻辑卷 lvcreate -L +5G -n mylv myvg
l -L:创建逻辑卷的大小large。
l -n:创建的逻辑卷名称name。
查看逻辑卷 lvs
扫描上一步创建的lv逻辑卷 lvscan
使用ext4文件系统格式化逻辑卷 mkfs.ext4 /dev/mapper/myvg-mylv
把逻辑卷挂在到/mnt下 mount /dev/mapper/myvg-mylv /mnt/
df -h
对创建的LVM卷扩容
lvm最大的优势就是其可伸缩性,而其伸缩性又更偏重于扩容,这时使用lvm的最大原因。扩容的实质是将vg中空闲的pe添加到lv中,所以只要vg中有空闲的pe,就可以进行扩容,即使没有空闲的pe,也可以添加pv,将pv加入到vg中增加空闲pe。
扩容的两个关键步骤如下:(1).使用lvextend或者lvresize添加更多的pe或容量到lv中 (2).使用resize2fs命令(xfs则使用xfs_growfs)将lv增加后的容量增加到对应的文件系统中(此过程是修改文件系统而非LVM内容)
lvextend -L +1G /dev/mapper/myvg-mylv
lvs
df -h
resize2fs /dev/mapper/myvg-mylv
df -h
缩小逻辑卷
顺序:缩小逻辑边界 --> 缩小物理边界
注意 1. 不能在线缩减,需要先卸载
- 确保缩减后的空间依然能够存下当前数据
- 在缩减之前应该先强行检查文件,确保文件系统处于一致性状态
lvreduce
五.操作