理论基础
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 讲》。