理论基础
Linux文件系统建立在逻辑卷上,逻辑卷建立在物理卷上。
物理卷处于LVM中的最底层,可以将其理解为物理硬盘、硬盘分区或者RAID磁盘阵列,这都可以。卷组建立在物理卷之上,一个卷组可以包含多个物理卷,而且在卷组创建之后也可以继续向其中添加新的物理卷。逻辑卷是用卷组中空闲的资源建立的,并且逻辑卷在建立后可以动态地扩展或缩小空间。
想要使用逻辑卷的话,需要理解分层的概念:分区(fdisk,形成/dev/sdb1等)-> 物理卷(pvcreate和pvs)-> 卷组(vgcreate和vgs)->逻辑卷(lvcreate和lvs)-> 文件格式化(mkfs.ext4、mkfs.xfs)->挂载
物理卷(pvcreate和pvs)-> 卷组(vgcreate和vgs),这三步实现了动态可扩展的功能。
文件格式化(mkfs.ext4、mkfs.xfs)实现以文件使用的方式。
挂载进行内存管理和文件映射。
进行分区
需要先添加硬盘,VMware添加硬盘参考《Linux学习之分区挂载》。
fdisk -l可以看一下各个磁盘的状态。

sudo fdisk /dev/sdb开始对/dev/sdc分区,按n、p、Enter、Enter、w。

sudo fdisk /dev/sdc开始对/dev/sdc分区,按n、p、Enter、Enter、Enter、w。

sudo fdisk /dev/sdd开始对/dev/sdc分区,按n、p、Enter、Enter、w。

sudo fdisk -l /dev/sd[bcd]?看一下上边分区效果。

创建逻辑卷
sudo pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1创建三个物理卷,连续输入三个y是因为以前对这三个分区进行ext4格式化了。

pvs是Logical Volume Scan缩写,中文全称是逻辑卷扫描,可以查看一下物理卷信息。

| 名称 | 含义 |
|---|---|
| PV | 物理卷的设备路径,表示在哪个设备上 |
| VG | 卷组(Volume Group)的名称,表示这个物理卷所属的卷组 |
| Fmt | 物理卷的格式,这里显示为 “lvm2”,表示逻辑卷管理器的格式 |
| Attr | 物理卷的属性,包括 “a” 表示物理卷可用于分配,“-” 表示不可分配 |
| PSize | 物理卷的总大小 |
| PFree | 物理卷的可用空间大小 |
上图中信息解析如下:
/dev/sda2是一个物理卷,属于 centos 卷组。它的总大小为不到 19GB,可用空间为 0,因此可能已经被完全使用。
/dev/sdb1不属于任何卷组,没有分配给卷组,因此没有显示卷组名称,可用空间为 20GB,还有20G可用空间可以分配。
/dev/sdc1不属于任何卷组,没有分配给卷组,因此没有显示卷组名称,总大小和可用空间也是 20GB。
/dev/sdd1不属于任何卷组,没有分配给卷组,因此没有显示卷组名称。它的总大小为不到 20GB,可用空间为 20GB。
sudo vgcreate vgtest /dev/sdb1 /dev/sdc1把 /dev/sdb1和/dev/sdc1加入到卷组vgtest里边。

pvs再次查看卷的信息。

vgs看一下卷组的信息。

| 名称 | 含义 |
|---|---|
| VG | 卷组的名称 |
| #PV | 卷组中的物理卷(Physical Volume)数量 |
| #LV | 卷组中的逻辑卷(Logical Volume)数量 |
| #SN | 卷组中的快照(Snapshot)数量 |
| Attr | 卷组的属性 |
| VSize | 卷组的总大小 |
| VFree | 卷组的可用空间大小 |
上图中的信息表明:
centos 卷组中有 1 个物理卷,2 个逻辑卷,没有快照。卷组的总大小为不到 19GB,可用空间为 0,因此可能已经被完全使用。
vgtest 卷组中有 2 个物理卷,没有逻辑卷和快照。卷组的总大小为 39.99GB,可用空间也为 39.99GB,卷组中没有分配的逻辑卷。
lvcreate -L 100M -n lv1 vgtest从卷组vgtest创建出一个100M的lv1逻辑卷。

lvs可以查看一下逻辑卷的信息。

| 名称 | 含义 |
|---|---|
| LV | 逻辑卷的名称 |
| VG | 卷组的名称 |
| Attr | 逻辑卷的属性 |
| LSize | 逻辑卷的大小 |
| Pool | 逻辑卷所属的存储池 |
| Origin | 逻辑卷的来源 |
| Data% | 数据占用百分比 |
| Meta% | 元数据占用百分比 |
| Move | 逻辑卷的迁移状态 |
| Log | 逻辑卷的日志设备 |
| Cpy%Sync | 复制/同步占用百分比 |
| Convert | 逻辑卷的转换状态 |
mkdir /mnt/logicvolumntest创建一个目录。

mkfs.xfs /dev/vgtest/lv1进行xfs格式化。

mount /dev/vgtest/lv1 /mnt/logicvolumntest/就可以把/dev/vgtest/lv1挂载到/dev/vgtest/lv1上。

拓展根目录
lvs和mount | grep root都可以看到根目录是在卷组centos逻辑组root上边。

vgextend centos /dev/sdd1把/dev/sdd1扩充到卷组centos里边,vgs可以看到卷组centos总大小和剩余可用空间都变大了。

lvextend -L +19.99G /dev/centos/root把centos卷组中root逻辑卷扩充19.9G大小。

xfs_growfs /dev/centos/root将文件系统也进行扩容。

此文章为8月Day 31学习笔记,内容来源于极客时间《Linux 实战技能 100 讲》。



















