LVM
LVM 概述
LVM (Logical Volume Manager) 是 Linux 系统中的一个逻辑卷管理器,它提供了在物理存储设备上创建和管理逻辑卷的功能。LVM 的主要优势包括:
- 灵活性:可以动态调整卷大小
- 可扩展性:支持在线扩容
- 快照:支持创建数据快照
- 条带化:支持跨多个磁盘的条带化
- 镜像:支持数据镜像以提高可用性
LVM 安装
安装 LVM 工具包
LVM 工具包通常包含在 lvm2
包中,不同发行版的安装命令如下:
Ubuntu/Debian
sudo apt update
sudo apt install lvm2
CentOS/RHEL/Rocky Linux
sudo yum install lvm2
# 或者使用 dnf (新版本)
sudo dnf install lvm2
Alpine Linux
apk add lvm2
验证安装
安装完成后,验证 LVM 工具是否可用:
# 检查 LVM 版本
lvm version
# 检查主要命令是否可用
which pvcreate
which vgcreate
which lvcreate
启动 LVM 服务
某些发行版需要启动 LVM 服务:
# Ubuntu/Debian
sudo systemctl enable lvm2-lvmetad
sudo systemctl start lvm2-lvmetad
# CentOS/RHEL
sudo systemctl enable lvm2-lvmetad
sudo systemctl start lvm2-lvmetad
LVM 核心概念
物理卷 (Physical Volume, PV)
- 物理卷是 LVM 的基本存储单元
- 可以是整个磁盘、分区或 RAID 设备
- 通过
pvcreate
命令创建
卷组 (Volume Group, VG)
- 卷组是物理卷的集合
- 为逻辑卷提供存储池
- 可以动态添加或删除物理卷
逻辑卷 (Logical Volume, LV)
- 逻辑卷是从卷组中分配的逻辑存储单元
- 可以像普通分区一样使用
- 支持动态调整大小
物理扩展 (Physical Extent, PE)
- 物理扩展是卷组中的最小分配单元
- 默认大小为 4MB,可自定义
逻辑扩展 (Logical Extent, LE)
- 逻辑扩展是逻辑卷中的最小分配单元
- 与物理扩展一一对应
LVM 架构图
LVM 组件关系
常用 LVM 命令
物理卷管理
# 创建物理卷
pvcreate /dev/sdb /dev/sdc
# 查看物理卷信息
pvdisplay
pvscan
# 删除物理卷
pvremove /dev/sdb
卷组管理
# 创建卷组
vgcreate vg0 /dev/sdb /dev/sdc
# 查看卷组信息
vgdisplay vg0
vgscan
# 扩展卷组
vgextend vg0 /dev/sdd
# 删除卷组
vgremove vg0
逻辑卷管理
# 创建逻辑卷
lvcreate -L 10G -n lv0 vg0
# 查看逻辑 卷信息
lvdisplay /dev/vg0/lv0
lvscan
# 扩展逻辑卷
lvextend -L +5G /dev/vg0/lv0
# 删除逻辑卷
lvremove /dev/vg0/lv0
文件系统管理
# 格 式化逻辑卷
mkfs.ext4 /dev/vg0/lv0
# 挂载逻辑卷
mount /dev/vg0/lv0 /data1
# 扩展文件系统(在线扩容)
resize2fs /dev/vg0/lv0
LVM 操作示例
完整 LVM 创建流程
# 1. 创建物理卷
pvcreate /dev/sdb /dev/sdc
# 2. 创建卷组
vgcreate -s 64M vg0 /dev/sdb /dev/sdc
# 3. 创建逻辑卷
lvcreate -L 20G -n lv0 vg0
# 4. 格式化文件系统
mkfs.ext4 /dev/vg0/lv0
# 5. 创建挂载点并挂载
mkdir -p /data1
mount /dev/vg0/lv0 /data1
# 6. 添加到 /etc/fstab
echo "/dev/vg0/lv0 /data1 ext4 defaults 0 0" >> /etc/fstab