lvm命令

LVM 命令 #

逻辑卷管理器(Logical Volume Manager,LVM)是一种在 Linux 系统上管理磁盘驱动器和类似存储设备的设备映射器框架。LVM 提供了一组命令,用于创建和管理逻辑卷,使存储管理更加灵活。

LVM 概念 #

  • 物理卷(Physical Volume,PV):实际的存储设备或分区
  • 卷组(Volume Group,VG):由一个或多个物理卷组成的存储池
  • 逻辑卷(Logical Volume,LV):从卷组中分配的虚拟分区,可以格式化并挂载

常用 LVM 命令 #

物理卷管理 #

1. 创建物理卷 #

pvcreate /dev/sdb1 /dev/sdc1

2. 显示物理卷信息 #

pvdisplay

或简洁格式:

pvs

3. 扫描物理卷 #

pvscan

卷组管理 #

1. 创建卷组 #

vgcreate vg_name /dev/sdb1 /dev/sdc1

2. 显示卷组信息 #

vgdisplay

或简洁格式:

vgs

3. 扩展卷组 #

vgextend vg_name /dev/sdd1

4. 减少卷组 #

vgreduce vg_name /dev/sdd1

5. 删除卷组 #

vgremove vg_name

逻辑卷管理 #

1. 创建逻辑卷 #

lvcreate -L 10G -n lv_name vg_name

或使用百分比:

lvcreate -l 100%FREE -n lv_name vg_name

2. 显示逻辑卷信息 #

lvdisplay

或简洁格式:

lvs

3. 扩展逻辑卷 #

lvextend -L +5G /dev/vg_name/lv_name

或扩展到特定大小:

lvextend -L 15G /dev/vg_name/lv_name

4. 减少逻辑卷(需谨慎) #

lvreduce -L -5G /dev/vg_name/lv_name

5. 删除逻辑卷 #

lvremove /dev/vg_name/lv_name

文件系统调整 #

扩展逻辑卷后,需要调整文件系统大小:

对于 ext4 文件系统 #

resize2fs /dev/vg_name/lv_name

对于 XFS 文件系统 #

xfs_growfs /mount_point

常见用法示例 #

1. 创建 LVM 存储 #

# 创建物理卷
pvcreate /dev/sdb1

# 创建卷组
vgcreate data_vg /dev/sdb1

# 创建逻辑卷
lvcreate -L 50G -n data_lv data_vg

# 格式化逻辑卷
mkfs.ext4 /dev/data_vg/data_lv

# 挂载逻辑卷
mkdir -p /data
mount /dev/data_vg/data_lv /data

2. 扩展现有逻辑卷 #

# 添加新的物理卷
pvcreate /dev/sdc1

# 扩展卷组
vgextend data_vg /dev/sdc1

# 扩展逻辑卷
lvextend -L +20G /dev/data_vg/data_lv

# 调整文件系统大小
resize2fs /dev/data_vg/data_lv

3. 创建快照 #

# 创建逻辑卷的快照
lvcreate -L 5G -s -n data_lv_snapshot /dev/data_vg/data_lv

# 挂载快照进行访问
mkdir -p /mnt/snapshot
mount /dev/data_vg/data_lv_snapshot /mnt/snapshot

注意事项 #

  • 在减少逻辑卷大小前,必须先缩小文件系统,否则可能导致数据丢失
  • XFS 文件系统只能增大,不能缩小
  • 创建快照时,需要确保卷组中有足够的空闲空间
  • LVM 操作通常需要 root 权限
  • 在生产环境中执行 LVM 操作前,建议先备份重要数据