LVM架构
LVM(Logical Volume Manager)可以让分区变得弹性,可以随时随地的扩大和缩小分区大小,前提是该分区是LVM格式的。lvm需要使用的软件包为lvm2。它的架构
相关概念
- PV(Physical Volume)即物理卷
硬盘分区后(还未格式化为文件系统)使用pvcreate命令可以将分区创建为pv,要求分区的system ID为8e,即为LVM格式的系统标识符。 - VG(Volume Group)即卷组
将多个PV组合起来,使用vgcreate命令创建成卷组,这样卷组包含了多个PV就比较大了,相当于重新整合了多个分区后得到的磁盘。虽然VG是整合多个PV的,但是创建VG时会将VG所有的空间根据指定的PE大小划分为多个PE,在LVM模式下的存储都以PE为单元,类似于文件系统的Block。 - PE(Physical Extend)
PE是VG中的存储单元。实际存储的数据都是存储在这里面的。 - LV(Logical Volume)
VG相当于整合过的硬盘,那么LV就相当于分区,只不过该分区是通过VG来划分的。VG中有很多PE单元,可以指定将多少个PE划分给一个LV,也可以直接指定大小(如多少兆)来划分。划分为LV之后就相当于划分了分区,只需再对LV进行格式化即可变成普通的文件系统。
通俗地讲,非LVM管理的分区步骤是将硬盘分区,然后将分区格式化为文件系统。而使用LVM,则是在硬盘分区为特定的LVM标识符的分区后将其转变为LVM可管理的PV,其实PV仍然类似于分区,然后将几个PV整合为类似于磁盘的VG,最后划分VG为LV,此时LV就成了LVM可管理的分区,只需再对其格式化即可成为文件系统。
- LE(logical extent)
PE是物理存储单元,而LE则是逻辑存储单元,也即为lv中的逻辑存储单元,和pe的大小是一样的。从vg中划分lv,实际上是从vg中划分vg中的pe,只不过划分lv后它不再称为pe,而是成为le。
LVM之所以能够伸缩容量,其实现的方法就是将LV里空闲的PE移出,或向LV中添加空闲的PE。
LVM常用命令汇总
任务 | PV阶段 | VG阶段 | LV阶段 |
---|---|---|---|
查找(scan) | pvscan | vgscan | lvscan |
新建(create) | pvcreate | vgcreate | Lvcreate |
显示(display) | pvdisplay | vgdisplay | Lvdisplay |
增加(extend) | vgextend | lvextend(lvresize) | |
减少(reduce) | vgreduce | lvreduce(lvresize) | |
删除(remove) pvremove | vgremove | Lvremove | |
改变容量(resize) | Lvresize | ||
改变属性(attribute) | pvchange | vgchange | Lvchange |
物理磁盘相关操作
[root@localhost ~]# fdisk -l
[root@localhost ~]# fdisk /dev/sdb
先添加分区,再更换分区类型
命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”
[root@localhost ~]# fdisk -l /dev/sdb
[root@localhost ~]# cat /proc/partitions