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. 快照使用:不要长时间保留快照,以免影响性能。
相关推荐
倔强的石头_7 小时前
《Kingbase护城河》——数据库存储空间全景探测与精细化瘦身实战
数据库
A小辣椒8 小时前
TShark:基础知识
linux
AlfredZhao10 小时前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
冬奇Lab20 小时前
每日一个开源项目(第134篇):Zvec - 阿里开源的嵌入式向量数据库,向量搜索界的 SQLite
数据库·人工智能·llm
AlfredZhao1 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
ClouGence1 天前
Oracle CDC 架构优化:从主库直连到 DataGuard 备库同步
数据库·后端·oracle
用户9718356334661 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪1 天前
linux 拷贝文件或目录到指定的位置
linux
无响应de神1 天前
三、用户与权限管理
数据库·mysql
大树882 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai