搜索

第 5 章 高级逻辑卷管理

download PDF

LVM 包括如下高级功能:

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

5.1. 管理逻辑卷快照

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

5.1.1. 了解逻辑卷快照

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

警告

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

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

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

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

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

在 thick 和 thin 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 快照。

先决条件

流程

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

    # lvs -o vg_name,lv_name,lv_size
    
      VG              LV                LSize
      VolumeGroupName LogicalVolumeName 10.00g

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

  2. 创建厚 LV 快照:

    # lvcreate --snapshot --size SnapshotSize --name SnapshotName VolumeGroupName/LogicalVolumeName

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

验证

  • 验证快照是否已创建:

    # lvs -o lv_name,origin
    
      LV                  Origin
      LogicalVolumeName
      SnapshotName        LogicalVolumeName

其他资源

  • lvcreate (8)lvs (8) 手册页

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
  2. 扩展 thick-provisioned 快照:

    # lvextend --size +AdditionalSize VolumeGroupName/SnapshotName

    使用添加到快照中的空间(如 +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

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

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

先决条件

  • 管理访问权限.

流程

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

    snapshot_autoextend_threshold = 70
    snapshot_autoextend_percent = 20

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

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

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

    # systemctl restart lvm2-monitor

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
  2. 检查挂载 LV 的位置:

    # findmnt -o SOURCE,TARGET /dev/VolumeGroupName/LogicalVolumeName
    # findmnt -o SOURCE,TARGET /dev/VolumeGroupName/SnapshotName

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

  3. 卸载 LV:

    # umount /LogicalVolume/MountPoint
    # umount /Snapshot/MountPoint

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

  4. 取消激活 LV:

    # lvchange --activate n VolumeGroupName/LogicalVolumeName
    # lvchange --activate n VolumeGroupName/SnapshotName

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

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

    # lvconvert --merge SnapshotName

    使用快照的名称替换 SnapshotName

  6. 激活 LV:

    # lvchange --activate y VolumeGroupName/LogicalVolumeName

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

  7. 挂载 LV:

    # umount /LogicalVolume/MountPoint

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

验证

  • 验证快照是否已删除:

    # lvs -o lv_name

其他资源

  • lvconvert (8), lvs (8) 手册页

5.1.3. 管理精简逻辑卷快照

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

5.1.3.1. 创建精简逻辑卷快照

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

先决条件

流程

  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
  2. 创建 thin LV 快照:

    # lvcreate --snapshot --name SnapshotName VolumeGroupName/ThinVolumeName

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

验证

  • 验证快照是否已创建:

    # lvs -o lv_name,origin
    
      LV                Origin
      PoolName
      SnapshotName      ThinVolumeName
      ThinVolumeName

其他资源

  • lvcreate (8)lvs (8) 手册页

5.1.3.2. 合并精简逻辑卷快照

您可以将 thin 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
  2. 检查原始 LV 挂载的位置:

    # findmnt -o SOURCE,TARGET /dev/VolumeGroupName/ThinVolumeName

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

  3. 卸载 LV:

    # umount /ThinLogicalVolume/MountPoint

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

  4. 取消激活 LV:

    # lvchange --activate n VolumeGroupName/ThinLogicalVolumeName

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

  5. 将 thin LV 快照合并到源中:

    # lvconvert --mergethin VolumeGroupName/ThinSnapshotName

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

  6. 挂载 LV:

    # umount /ThinLogicalVolume/MountPoint

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

验证

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

    # lvs -o lv_name

其他资源

  • lvremove (8), lvs (8) 手册页
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.