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. 快照使用:不要长时间保留快照,以免影响性能。
相关推荐
Ha-gd12 分钟前
Linux基础开发工具一(yum/apt ,vim)
linux·服务器
qq_141826973236 分钟前
python通过curl访问deepseek的API调用案例
java·数据库·python
可喜~可乐1 小时前
C# SQLite高级功能示例
数据库·sql·sqlite·c#
charlie1145141911 小时前
内核深入学习3——分析ARM32和ARM64体系架构下的Linux内存区域示意图与页表的建立流程
linux·学习·架构·内存管理
Caron_xcb2 小时前
大数据——解决Matplotlib 字体不足问题(Linux\mac\windows)
大数据·linux·matplotlib
cooldream20092 小时前
深入理解主从数据库架构与主从复制
数据库·oracle·数据库架构·系统架构师
Eternity......2 小时前
spark MySQL数据库配置
数据库·mysql·spark
Freedom℡2 小时前
使用scp命令拷贝hadoop100中文件到其他虚拟机中
数据库·hadoop·spark
Qdgr_2 小时前
电厂除灰系统优化:时序数据库如何降低粉尘排放
数据库·时序数据库
水水沝淼㵘2 小时前
嵌入式开发学习日志(数据结构--顺序结构单链表)Day19
linux·服务器·c语言·数据结构·学习·算法·排序算法