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. 快照使用:不要长时间保留快照,以免影响性能。
相关推荐
林政硕(Cohen0415)5 分钟前
Linux驱动开发进阶(三)- 热插拔机制
linux·驱动开发·热插拔
热爱编程的小曾6 分钟前
sqli-labs靶场 less 8
前端·数据库·less
wangjun51598 分钟前
linux,物理机、虚拟机,同时内外网实现方案;物理机与虚拟机互通网络;
linux·服务器·网络
杰克崔12 分钟前
分析sys高问题的方法总结
linux·运维·服务器
WSSWWWSSW12 分钟前
安装nfs客户端(centos)
linux·运维·centos
深蓝易网14 分钟前
为什么制造企业需要用MES管理系统升级改造车间
大数据·运维·人工智能·制造·devops
THRUSTER1111115 分钟前
MySQL-- 函数(单行函数):数值函数, 字符串函数
数据库·mysql·函数·navicat·单行函数
橙序研工坊22 分钟前
MySQL的进阶语法7(索引-B+Tree 、Hash、聚集索引 、二级索引(回表查询)、索引的使用及设计原则
数据库·sql·mysql
Bruce-li__23 分钟前
深入理解Python asyncio:从入门到实战,掌握异步编程精髓
网络·数据库·python
小光学长1 小时前
基于vue框架的智能服务旅游管理系统54kd3(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库