Linux LVM 磁盘管理教程

Linux LVM 磁盘管理教程

LVM(Logical Volume Manager,逻辑卷管理器)是 Linux 系统中用于灵活管理磁盘存储的一种机制。它将物理存储设备抽象为逻辑卷,支持动态调整大小、快照等功能,特别适用于需要频繁调整磁盘分区的场景。


一、LVM 基本概念

在理解 LVM 管理之前,需要熟悉以下几个核心概念:

  1. Physical Volume (PV)

    • 实际的物理存储设备,例如硬盘或分区(如 /dev/sda1)。
    • 是 LVM 的基础存储单元,通过 pvcreate 初始化后可用于 LVM。
  2. Volume Group (VG)

    • 由一个或多个 PV 组成的存储池。
    • 提供逻辑卷的分配空间。
  3. Logical Volume (LV)

    • 从 VG 中分配出的逻辑存储单元。
    • 类似于传统分区,可格式化并挂载。
  4. Physical Extent (PE)

    • PV 划分的基本存储块。默认大小为 4MB,可以通过 vgcreate 设置。
    • VG 中的存储空间以 PE 为单位分配给 LV。

二、LVM 的优势

  1. 灵活性
    • 可在不影响现有数据的情况下动态调整卷大小。
  2. 快照
    • 可创建卷的快照,用于备份和数据恢复。
  3. 设备抽象
    • 将物理设备抽象为逻辑设备,简化管理。

三、LVM 配置步骤

以下是 LVM 配置的详细过程:


1. 准备物理设备

确保有未分区的磁盘或分区。例如,假设使用 /dev/sdb/dev/sdc

查看磁盘情况:
lsblk

2. 创建物理卷 (PV)

将设备初始化为物理卷:

sudo pvcreate /dev/sdb /dev/sdc

验证物理卷状态:

sudo pvs

示例输出

  PV         VG     Fmt  Attr PSize   PFree
  /dev/sdb          lvm2 ---  100.00g 100.00g
  /dev/sdc          lvm2 ---  200.00g 200.00g

3. 创建卷组 (VG)

创建一个包含以上 PV 的卷组:

sudo vgcreate my_vg /dev/sdb /dev/sdc

验证卷组状态:

sudo vgs

示例输出

  VG     #PV #LV #SN Attr   VSize   VFree
  my_vg    2   0   0 wz--n- 300.00g 300.00g

4. 创建逻辑卷 (LV)

从卷组中分配空间创建逻辑卷。例如,创建一个 100GB 的逻辑卷:

sudo lvcreate -L 100G -n my_lv my_vg

验证逻辑卷状态:

sudo lvs

示例输出

  LV     VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  my_lv  my_vg -wi-a----- 100.00g

5. 格式化逻辑卷

对逻辑卷进行格式化,例如使用 ext4 文件系统:

sudo mkfs.ext4 /dev/my_vg/my_lv

6. 挂载逻辑卷

创建挂载点并挂载逻辑卷:

sudo mkdir /mnt/mydata
sudo mount /dev/my_vg/my_lv /mnt/mydata

验证挂载:

df -h

将挂载写入 /etc/fstab,以便开机自动挂载:

echo '/dev/my_vg/my_lv /mnt/mydata ext4 defaults 0 0' | sudo tee -a /etc/fstab

四、LVM 管理操作

1. 扩展逻辑卷

假设需要扩展逻辑卷 my_lv 的大小:

  1. 确认 VG 的剩余空间:

    sudo vgs
    
  2. 扩展逻辑卷大小(增加 50GB):

    sudo lvextend -L +50G /dev/my_vg/my_lv
    
  3. 扩展文件系统:

    • ext4 文件系统

      sudo resize2fs /dev/my_vg/my_lv
      
    • xfs 文件系统

      sudo xfs_growfs /mnt/mydata
      

2. 缩减逻辑卷

  1. 先卸载逻辑卷:

    sudo umount /mnt/mydata
    
  2. 缩减文件系统:

    sudo e2fsck -f /dev/my_vg/my_lv
    sudo resize2fs /dev/my_vg/my_lv 80G
    
  3. 缩减逻辑卷:

    sudo lvreduce -L 80G /dev/my_vg/my_lv
    
  4. 重新挂载:

    sudo mount /dev/my_vg/my_lv /mnt/mydata
    

3. 添加新磁盘到卷组

  1. 添加新磁盘 /dev/sdd

    sudo pvcreate /dev/sdd
    sudo vgextend my_vg /dev/sdd
    
  2. 验证扩展:

    sudo vgs
    

4. 创建快照

创建逻辑卷的快照以便备份或回滚:

sudo lvcreate -L 10G -s -n my_lv_snapshot /dev/my_vg/my_lv

快照会出现在 lvs 输出中,可用于备份操作。


5. 删除逻辑卷、卷组、物理卷

  1. 卸载逻辑卷:

    sudo umount /mnt/mydata
    
  2. 删除逻辑卷:

    sudo lvremove /dev/my_vg/my_lv
    
  3. 删除卷组:

    sudo vgremove my_vg
    
  4. 删除物理卷:

    sudo pvremove /dev/sdb /dev/sdc
    

五、LVM 常用命令总结

功能 命令 示例
查看磁盘状态 lsblk lsblk
初始化 PV pvcreate pvcreate /dev/sdb
查看 PV 信息 pvs / pvdisplay pvs
创建 VG vgcreate vgcreate my_vg /dev/sdb /dev/sdc
查看 VG 信息 vgs / vgdisplay vgs
创建 LV lvcreate lvcreate -L 100G -n my_lv my_vg
查看 LV 信息 lvs / lvdisplay lvs
扩展 LV lvextend + resize2fs lvextend -L +50G /dev/my_vg/my_lv
删除 LV lvremove lvremove /dev/my_vg/my_lv

六、总结

通过以上步骤,您可以灵活地使用 LVM 管理磁盘存储。LVM 提供了强大的功能,包括动态调整分区大小、创建快照和扩展卷组容量等,是现代 Linux 系统中磁盘管理的核心工具之一。

注意事项

  1. 备份数据:任何涉及磁盘调整的操作都有潜在风险。
  2. 监控存储使用情况:确保 VG 和 LV 的空间分配合理。
  3. 快照使用:不要长时间保留快照,以免影响性能。
相关推荐
梦仔生信进阶17 分钟前
基于R计算皮尔逊相关系数
前端·数据库·r语言
dd要努力变优秀!18 分钟前
Nginx简述
运维·nginx
hhzz19 分钟前
nginx的可视化配置工具nginxWebUI的使用
运维·nginx
阿乾之铭1 小时前
Mysql数据库索引
数据库·mysql
孤寒者3 小时前
MYSQL8创建新用户报错:You have an error in your SQL syntax;check...
数据库·sql·mysql·创建新用户操作
c_weith3 小时前
自动生成数据:SQLark 让数据测试更高效
数据库·性能测试·数据生成·sqlark
隔壁老登3 小时前
sql报错非法的字符校对Illegal mix of collations
数据库·sql
非凡的世界3 小时前
PostgreSQL 超级管理员详解
数据库·postgresql
非凡的世界3 小时前
linux命令行连接Postgresql常用命令
linux·数据库·postgresql