第 5 章 高级逻辑卷管理


LVM 包括如下高级功能:

  • 快照,它们是逻辑卷(LV)的时间点副本
  • 缓存,有了它您可以使用更快的存储作为较慢存储的缓存
  • 创建自定义精简池
  • 创建自定义 VDO LV

5.1. 管理逻辑卷快照

快照是一个在特定时间点镜像另一个 LV 的内容的逻辑卷(LV)。

5.1.1. 了解逻辑卷快照

当您创建快照时,您在创建一个作为另一个 LV 的时间点副本的新 LV。最初,快照 LV 不包含实际数据。而它会在创建快照时引用原始 LV 的数据块。

警告

定期监控快照的存储使用情况非常重要。如果快照达到其分配空间的 100%,则它将无效。

必须在完全填满快照之前扩展快照。这可以通过使用 lvextend 命令手动完成,或者通过 /etc/lvm/lvm.conf 文件自动完成。

厚 LV 快照
当原始 LV 上的数据发生变化时,写时复制(CoW)系统会在更改之前将原始数据,未更改的数据复制到快照。这样,快照的大小仅在更改发生时增长,在创建快照时存储原始卷的状态。后快照是一种 LV,其需要您预先分配一些存储空间。这个数量以后可以进行扩展或减少,但您应该考虑您要对原始 LV 进行何种类型的更改。这帮助您避免由于分配太多空间而浪费资源,或者由于分配的太少而频繁增加快照大小。
精简 LV 快照

精简快照是从现有精简置备 LV 创建的一种 LV 。精简快照不需要预先分配额外的空间。最初,原始 LV 及其快照共享同样的数据块。当对原始 LV 进行更改时,它会将新数据写到不同的块,而快照继续引用原始块,并在创建快照时保留 LV 数据的时间点视图。

精简配置是一种通过按需分配磁盘空间来优化和高效管理存储的方法。这意味着您可以创建多个 LV,而无需为每个 LV 预先分配大量存储。存储在精简池中的所有 LV 中共享,使精简池更有效地使用资源。精简池按需为其 LV 分配空间。

在厚和精简 LV 快照之间进行选择
厚或精简 LV 快照之间的选择直接由您在执行的快照的 LV 的类型决定。如果您的原始 LV 是厚 LV,则您的快照将是厚的。如果您的原始 LV 是精简的,则您的快照将是精简的。

5.1.2. 管理厚逻辑卷快照

当您创建厚 LV 快照时,务必要考虑存储要求和快照的预期寿命。您需要根据原始卷的预期变化来为其分配足够的存储。在其预期的寿命内,快照必须有足够的大小来捕获更改,但它不能超过原始 LV 的大小。如果您预期更改率较低,则 10%-15% 的快照大小可能就足够了。对于高更改率的 LV,您可能需要分配 30% 或更多的空间。

重要

必须在完全填满快照之前扩展快照。如果快照达到其分配空间的 100%,则其变为无效。您可以使用 lvs -o lv_name,data_percent,origin 命令监控快照容量。

5.1.2.1. 创建厚逻辑卷快照

您可以使用 lvcreate 命令创建厚 LV 快照。

先决条件

  • 管理访问权限.
  • 您已创建了一个物理卷。如需更多信息,请参阅 创建 LVM 物理卷
  • 您已创建了一个卷组。如需更多信息,请参阅 创建 LVM 卷组
  • 您已创建了一个逻辑卷。如需更多信息,请参阅 创建逻辑卷

流程

  1. 确定您要创建快照的 LV:

    # lvs -o vg_name,lv_name,lv_size
    
      VG              LV                LSize
      VolumeGroupName LogicalVolumeName 10.00g
    Copy to Clipboard Toggle word wrap

    快照的大小不能超过 LV 的大小。

  2. 创建厚 LV 快照:

    # lvcreate --snapshot --size SnapshotSize --name SnapshotName VolumeGroupName/LogicalVolumeName
    Copy to Clipboard Toggle word wrap

    使用您要为快照分配的大小(如 10G)替换 SnapshotSize。使用您要给快照逻辑卷取的名称替换 SnapshotName。使用包含原始逻辑卷的卷组的名称替换 VolumeGroupName。使用您要为其创建快照的逻辑卷的名称替换 LogicalVolumeName

验证

  • 验证快照是否已创建:

    # lvs -o lv_name,origin
    
      LV                  Origin
      LogicalVolumeName
      SnapshotName        LogicalVolumeName
    Copy to Clipboard Toggle word wrap

5.1.2.2. 手动扩展逻辑卷快照

如果快照达到其分配空间的 100%,则其变为无效。必须在完全填满快照之前扩展快照。这可以通过使用 lvextend 命令手动完成此操作。

先决条件

  • 管理访问权限.

流程

  1. 列出快照的卷组、逻辑卷、源卷、它们的使用率百分比和大小:

    # lvs -o vg_name,lv_name,origin,data_percent,lv_size
      VG              LV                Origin            Data%  LSize
      VolumeGroupName LogicalVolumeName                          10.00g
      VolumeGroupName SnapshotName      LogicalVolumeName 82.00   5.00g
    Copy to Clipboard Toggle word wrap
  2. 扩展厚配置快照:

    # lvextend --size +AdditionalSize VolumeGroupName/SnapshotName
    Copy to Clipboard Toggle word wrap

    使用要添加到快照中的空间(如 +1G)替换 AdditionalSize。将 VolumeGroupName 替换为卷组的名称。使用快照的名称替换 SnapshotName

验证

  • 验证 LV 是否已扩展:

    # lvs -o vg_name,lv_name,origin,data_percent,lv_size
      VG              LV                Origin            Data%  LSize
      VolumeGroupName LogicalVolumeName                          10.00g
      VolumeGroupName SnapshotName      LogicalVolumeName 68.33   6.00g
    Copy to Clipboard Toggle word wrap

5.1.2.3. 自动扩展厚逻辑卷快照

如果快照达到其分配空间的 100%,则其变为无效。必须在完全填满快照之前扩展快照。这可以自动完成。

先决条件

  • 管理访问权限.

流程

  1. 在您选择的编辑器中打开 /etc/lvm/lvm.conf 文件。
  2. 取消 snapshot_autoextend_thresholdsnapshot_autoextend_percent 行的注释,并将每个参数设置为所需的值:

    snapshot_autoextend_threshold = 70
    snapshot_autoextend_percent = 20
    Copy to Clipboard Toggle word wrap

    snapshot_autoextend_threshold 决定 LVM 开始自动扩展快照的百分比。例如,将参数设置为 70 表示 LVM 将在达到 70% 容量时尝试扩展快照。

    snapshot_autoextend_percent 指定快照在达到阈值时应扩展的百分比。例如,将参数设置为 20 表示快照将增加其当前大小的 20%。

  3. 保存更改并退出编辑器。
  4. 重启 lvm2-monitor

    # systemctl restart lvm2-monitor
    Copy to Clipboard Toggle word wrap

5.1.2.4. 合并厚逻辑卷快照

您可以将厚 LV 快照合并到创建快照的原始逻辑卷中。合并过程意味着原始 LV 恢复回创建快照时所处的状态。合并完成后,快照被删除。

注意

如果原始 LV 和快照 LV 中的任何一个处于活动状态,则它们之间的合并会被推迟。只有在 LV 被重新激活且没有使用时,才会继续。

先决条件

  • 管理访问权限.

流程

  1. 列出 LV、其卷组及其路径:

    # lvs -o lv_name,vg_name,lv_path
    
      LV                   VG              Path
      LogicalVolumeName    VolumeGroupName /dev/VolumeGroupName/LogicalVolumeName
      SnapshotName         VolumeGroupName /dev/VolumeGroupName/SnapshotName
    Copy to Clipboard Toggle word wrap
  2. 检查挂载 LV 的位置:

    # findmnt -o SOURCE,TARGET /dev/VolumeGroupName/LogicalVolumeName
    # findmnt -o SOURCE,TARGET /dev/VolumeGroupName/SnapshotName
    Copy to Clipboard Toggle word wrap

    /dev/VolumeGroupName/LogicalVolumeName 替换为逻辑卷的路径。将 /dev/VolumeGroupName/SnapshotName 替换为快照的路径。

  3. 卸载 LV:

    # umount /LogicalVolume/MountPoint
    # umount /Snapshot/MountPoint
    Copy to Clipboard Toggle word wrap

    /LogicalVolume/MountPoint 替换为逻辑卷的挂载点。将 /Snapshot/MountPoint 替换为您的快照的挂载点。

  4. 停用 LV:

    # lvchange --activate n VolumeGroupName/LogicalVolumeName
    # lvchange --activate n VolumeGroupName/SnapshotName
    Copy to Clipboard Toggle word wrap

    VolumeGroupName 替换为卷组的名称。使用逻辑卷的名称替换 LogicalVolumeName。将 SnapshotName 替换为您的快照的名称。

  5. 将厚 LV 快照合并到原始卷中:

    # lvconvert --merge VolumeGroupName/SnapshotName
    Copy to Clipboard Toggle word wrap

    VolumeGroupName 替换为卷组的名称。使用快照的名称替换 SnapshotName

  6. 激活 LV:

    # lvchange --activate y VolumeGroupName/LogicalVolumeName
    Copy to Clipboard Toggle word wrap

    VolumeGroupName 替换为卷组的名称。使用逻辑卷的名称替换 LogicalVolumeName

  7. 挂载 LV:

    # mount /dev/VolumeGroupName/LogicalVolumeName /LogicalVolume/MountPoint
    Copy to Clipboard Toggle word wrap

    /dev/VolumeGroupName/LogicalVolumeName 替换为逻辑卷的路径。将 /LogicalVolume/MountPoint 替换为逻辑卷的挂载点。

验证

  • 验证快照是否已删除:

    # lvs -o lv_name
    Copy to Clipboard Toggle word wrap

5.1.3. 管理精简逻辑卷快照

当存储效率是优先考虑因素时,精简置备是合适的。存储空间动态分配减少了初始存储成本,并最大限度地利用了可用的存储资源。在具有动态工作负载或存储随时间而增长的环境中,精简配置允许灵活性。它使存储系统能够适应变化的需求,而无需预先分配大量的存储空间。使用动态分配时,有可能会过度置备,其中所有 LV 的总大小可能会超过精简池的物理大小,假设所有空间不会被同时使用。

5.1.3.1. 创建精简逻辑卷快照

您可以使用 lvcreate 命令创建精简 LV 快照。在创建精简 LV 快照时,避免指定快照大小。包含 size 参数会导致创建厚快照。

先决条件

  • 管理访问权限.
  • 您已创建了一个物理卷。如需更多信息,请参阅 创建 LVM 物理卷
  • 您已创建了一个卷组。如需更多信息,请参阅 创建 LVM 卷组
  • 您已创建了一个逻辑卷。如需更多信息,请参阅 创建逻辑卷

流程

  1. 确定您要创建快照的 LV:

    # lvs -o lv_name,vg_name,pool_lv,lv_size
    
      LV                VG              Pool       LSize
      PoolName          VolumeGroupName            152.00m
      ThinVolumeName    VolumeGroupName PoolName   100.00m
    Copy to Clipboard Toggle word wrap
  2. 创建精简 LV 快照:

    # lvcreate --snapshot --name ThinSnapshotName VolumeGroupName/ThinVolumeName
    Copy to Clipboard Toggle word wrap

    使用您要提供给快照逻辑卷的名称替换 ThinSnapshotName。使用包含原始逻辑卷的卷组的名称替换 VolumeGroupName。使用您要为其创建快照的精简逻辑卷的名称替换 ThinVolumeName

验证

  • 验证快照是否已创建:

    # lvs -o lv_name,origin
    
      LV                Origin
      PoolName
      ThinSnapshotName  ThinVolumeName
      ThinVolumeName
    Copy to Clipboard Toggle word wrap

5.1.3.2. 合并精简逻辑卷快照

您可以将精简 LV 快照合并到创建快照的原始逻辑卷中。合并过程意味着原始 LV 恢复回创建快照时所处的状态。合并完成后,快照被删除。

先决条件

  • 管理访问权限.

流程

  1. 列出 LV、其卷组及其路径:

    # lvs -o lv_name,vg_name,lv_path
    
      LV                VG              Path
      ThinPoolName      VolumeGroupName
      ThinSnapshotName  VolumeGroupName /dev/VolumeGroupName/ThinSnapshotName
      ThinVolumeName    VolumeGroupName /dev/VolumeGroupName/ThinVolumeName
    Copy to Clipboard Toggle word wrap
  2. 检查原始 LV 挂载的位置:

    # findmnt -o SOURCE,TARGET /dev/VolumeGroupName/ThinVolumeName
    Copy to Clipboard Toggle word wrap

    VolumeGroupName/ThinVolumeName 替换为逻辑卷的路径。

  3. 卸载 LV:

    # umount /ThinVolumeName/MountPoint
    Copy to Clipboard Toggle word wrap

    /ThinVolumeName/MountPoint 替换为您逻辑卷的挂载点。将 /ThinSnapshot/MountPoint 替换为您的快照的挂载点。

  4. 停用 LV:

    # lvchange --activate n VolumeGroupName/ThinVolumeName
    Copy to Clipboard Toggle word wrap

    VolumeGroupName 替换为卷组的名称。将 ThinVolumeName 替换为逻辑卷的名称。

  5. 将精简 LV 快照合并到原始逻辑卷中:

    # lvconvert --mergethin VolumeGroupName/ThinSnapshotName
    Copy to Clipboard Toggle word wrap

    VolumeGroupName 替换为卷组的名称。将 ThinSnapshotName 替换为快照的名称。

  6. 挂载 LV:

    # mount /ThinVolumeName/MountPoint
    Copy to Clipboard Toggle word wrap

    /ThinVolumeName/MountPoint 替换为您逻辑卷的挂载点。

验证

  • 验证原始 LV 是否已合并:

    # lvs -o lv_name
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat