跳转至

16- LVM 逻辑卷管理与快照 🗄️

前提条件 ✅

  • 已完成磁盘分区与文件系统创建(上一章添加的 /dev/sdb1 或新磁盘已格式化并挂载)
  • 以 ops 用户登录(具有 sudo 权限)
  • 系统运行在 Debian 12 Bookworm
  • VMware Workstation Pro 环境:建议至少 2 块虚拟磁盘(系统盘 + 数据盘 ≥40GB)

详细步骤 🛠️

  1. 安装 LVM 工具
    Debian 默认已包含,但确认安装:

    sudo apt update
    sudo apt install -y lvm2
    

  2. 查看当前 LVM 状态

    sudo pvdisplay          # 物理卷
    sudo vgdisplay          # 卷组
    sudo lvdisplay          # 逻辑卷
    sudo pvs                # 简洁版物理卷
    sudo vgs                # 简洁版卷组
    sudo lvs                # 简洁版逻辑卷
    

  3. 创建物理卷(PV)
    假设使用上一章的分区 /dev/sdb1(或整盘 /dev/sdb):

    sudo pvcreate /dev/sdb1
    sudo pvs
    

  4. 创建卷组(VG)

    sudo vgcreate vg_data /dev/sdb1
    # 或添加多个 PV
    # sudo vgcreate vg_data /dev/sdb1 /dev/sdc1
    sudo vgs
    

  5. 创建逻辑卷(LV)
    创建 20GB 逻辑卷用于 /data:

    sudo lvcreate -L 20G -n lv_data vg_data
    sudo lvs
    

  6. 格式化并挂载逻辑卷

    sudo mkfs.xfs -f -L data_lv /dev/vg_data/lv_data
    sudo mkdir /data
    sudo mount /dev/vg_data/lv_data /data
    df -h /data
    

永久挂载(fstab):

sudo blkid /dev/vg_data/lv_data   # 获取 UUID
sudo nano /etc/fstab

添加:

UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx   /data   xfs   defaults,noatime   0 2

测试:

sudo mount -a

  1. LVM 快照创建与恢复(核心生产功能)
    创建快照(假设 /data 上有测试数据):
    # 先创建一些测试数据
    sudo touch /data/testfile{1..5}.txt
    
    # 创建快照(预留 5GB 空间给 COW)
    sudo lvcreate -L 5G -s -n lv_data_snap /dev/vg_data/lv_data
    sudo lvs
    

模拟数据破坏:

sudo rm -f /data/testfile*.txt
ls /data

回滚快照:

sudo umount /data
sudo lvconvert --merge /dev/vg_data/lv_data_snap
# 确认合并(会提示重启或 umount)
sudo reboot   # 或 lvconvert 完成后重新 mount

重启后验证:

sudo mount /dev/vg_data/lv_data /data
ls /data   # testfile* 应该恢复

  1. 扩展逻辑卷(在线扩容,无需 downtime)
    扩展 LV 10GB:
    sudo lvextend -L +10G /dev/vg_data/lv_data
    sudo xfs_growfs /data
    df -h /data
    

实践任务 🎯

  1. 创建物理卷、卷组 vg_data、逻辑卷 lv_data(20GB),格式化为 xfs 并挂载到 /data
  2. 在 /data 上创建 5 个测试文件
  3. 创建 5GB 快照 lv_data_snap,删除 /data 中的测试文件,然后合并快照恢复数据
  4. 将 lv_data 扩展 10GB 并用 xfs_growfs 在线扩容,验证 df -h 显示正确大小

自测问题 ❓

  1. LVM 快照基于什么机制实现(COW),空间不足时会发生什么?
  2. 如何在线扩展 XFS 文件系统上的逻辑卷而不卸载?
  3. lvcreate -s 命令中的 -s 参数代表什么?
  4. 如果卷组 vg_data 空间不足,如何添加新物理卷?

总结 📌

LVM 是 Debian 生产环境中数据盘管理的事实标准,提供灵活的扩容、快照回滚、迁移能力。
快照功能特别适合数据库备份前一致性快照、测试环境回滚、误删恢复等场景。
后续章节的 NFS、备份、数据库数据目录都将优先使用 LVM 逻辑卷。