LVM
LVM(Logical Volume Manager)是 Linux 下的一种磁盘管理工具,可以对磁盘进行分区、扩展、缩减等操作。通过 LVM,用户可以更灵活地管理磁盘空间,提高存储利用率。
lvm 示意图

依次为:disk -> partition -> PV -> VG -> LV -> fs,也即磁盘->分区->物理卷->卷组->逻辑卷->文件系统。
LVM 主要构成
物理存储介质 (PM, physical media):LVM 存储介质可以是分区、磁盘、RAID 阵列或 SAN 磁盘。
物理卷 (PV, physical volume):物理卷是 LVM 的基本存储逻辑块,但与基本的物理存储介质(如分区、 磁盘等)比较,却包含有与 LVM 相关的管理参数,创建物理卷可以用磁盘分区,也可以用磁盘本身。磁盘设备必须初始化为 LVM 物理卷,才能与 LVM 结合使用。
卷组 (VG, Volume Group):LVM 卷组由一个或多个物理卷组成。
逻辑卷 (LV, logical volume):LV 建立在 VG 之上,可以在 LV 之上建立文件系统。
物理范围 (PE, physical extents):PV 物理卷中可以分配的最小存储单元,PE 的大小是可以指定的,默认为 4MB。
逻辑范围 (LE, logical extents):LV 逻辑卷中可以分配的最小存储单元,在同一个卷组中,LE 的大小与 PE 是相同的, 并且一一对应。
使用 LVM 的基本步骤
物理磁盘被格式化为 PV,即空间被划分为一个个的 PE。PV 包含多个 PE。
不同的 PV 加入到同一个 VG 中,即不同 PV 的 PE 全部进入到 VG 的 PE 池内。VG 包含多个 PV。
在 VG 中创建 LV 逻辑卷,这个创建过程基于 PE,所以组成 LV 的 PE 可能来自不同的物理磁盘。LV 基于 PE 创建。
LV 直接可以格式化后挂载使用。
LV 的扩缩实际上就是增加或减少组成该 LV 的 PE 数量,其过程不会丢失原始数据。
格式化 LV,并挂载使用。
LV 扩容
首先,确定是否有可用的扩容空间,因为空间是从 VG 里面创建的,并且 LV 不能跨 VG 扩容。若 VG 没有了容量,需要先扩 VG。步骤如下:
$ vgs
VG #PV #LV #SN Attr VSize VFree
vg-sdb1 1 8 1 wz--n- <16.00g <5.39g
$ lvextend -L +100M -r /dev/vg-sdb1/lv-sdb1 #将 /dev/vg-sdb1/lv-sdb 扩容 100M
扩容完 lv 之后,还需要拉伸文件系统:
df -T # 查看文件系统类型
# 拉伸文件系统,
# xfs文件系统
xfs_growfs /dev/mapper/cl_fedora-home
# 普通文件系统
resize2fs /dev/mapper/cl_fedora-home
# 最后验证
VG 扩容
如果 VG 卷组中的空间不够了,需要添加新的磁盘,依次运行以下命令:
# 创建物理卷
pvcreate /dev/sdc
# 查看卷组
vgs
#或者
pvs
# 将sdc添加到 vg-sdb1 卷组
vgextend vg-sdb1 /dev/sdb3
# 然后再执行扩容步骤
新建 LVM
# 创建磁盘分区
# 针对大容量磁盘需要进行分区,不然创建物理卷会报错
fdisk /dev/sdb
# 创建物理卷
pvcreate /dev/sdb1
# 查看物理卷信息
pvs
# 创建VG卷组
vgcreate oraclevg /dev/sdb1
# 查看卷组信息
vgs
# 创建LV
# 代码:lvcreate -n 指定新逻辑卷的名称 -L 指定LV大小的SIZE(M,G) (-l:小l指定LE的数量)vgname
lvcreate -n lvoracle -L 2G oraclevg
# 查看逻辑卷信息
lvs
# 文件系统格式与挂载
# 这里格式化的是 lvm 逻辑卷
mkfs.xfs /dev/oraclevg/lvoracle
mount /dev/oraclevg/lvoracle /oracle/