5.2. 缓存逻辑卷


您可以使用 dm-cachedm-writecache 目标缓存逻辑卷。

DM-cache 使用更快的存储设备(SSD)作为较慢的存储设备(HDD)的缓存。它缓存读取和写入数据,从而优化频繁使用的数据的访问时间。在混合工作负载环境中,增强读写操作可带来显著的性能改进。

DM-writecache 使用更快的存储介质(SSD)来临时保存写入数据来优化写操作,然后再将其提交到主存储设备(HDD)。对于写入性能可能会减慢数据传输过程的写密集型应用程序来说,这非常有用。

5.2.1. 使用 dm-cache 缓存逻辑卷

当使用 dm-cache 缓存 LV 时,会创建一个缓存池。缓存池是组合了缓存数据的 LV,它存储了实际缓存的内容,以及缓存元数据,跟踪缓存中存储的内容。然后,这个池与特定 LV 关联,以缓存其数据。

DM-cache 以两种块类型为目标:经常访问(热)块移动到缓存中,而不太频繁访问(折叠)块保留在较慢的设备上。

先决条件

  • 管理访问权限.

流程

  1. 显示您要缓存的 LV 及其卷组:

    # lvs -o lv_name,vg_name
      LV                   VG
      LogicalVolumeName    VolumeGroupName
  2. 创建缓存池:

    # lvcreate --type cache-pool --name CachePoolName --size Size VolumeGroupName /FastDevicePath

    CachePoolName 替换为缓存池的名称。使用缓存池的大小替换 Size。将 VolumeGroupName 替换为卷组的名称。将 /FastDevicePath 替换为快速设备的路径,如 SSD 或 NVME。

  3. 将缓存池附加到 LV:

    # lvconvert --type cache --cachepool VolumeGroupName/CachePoolName VolumeGroupName/LogicalVolumeName

验证

  • 验证 LV 现在是否已缓存:

    # lvs -o lv_name,pool_lv
    
      LV                   Pool
      LogicalVolumeName    [CachePoolName_cpool]

其他资源

  • lvcreate (8), lvconvert (8), lvs (8) man pages

5.2.2. 使用 dm-writecache 缓存逻辑卷

当使用 dm-writecache 缓存 LV 时,逻辑卷和物理存储设备之间的缓存层会被创建。dm-writecache 通过将写入操作临时存储在更快速的存储介质中(如 SSD),然后再最终将其写回主存储设备,从而优化写入密集型工作负载。

先决条件

  • 管理访问权限.

流程

  1. 显示您要缓存的逻辑卷及其卷组:

    # lvs -o lv_name,vg_name
      LV                   VG
      LogicalVolumeName    VolumeGroupName
  2. 创建缓存卷:

    # lvcreate --name CacheVolumeName --size Size VolumeGroupName /FastDevicePath

    CacheVolumeName 替换为缓存卷的名称。使用缓存池的大小替换 Size。将 VolumeGroupName 替换为卷组的名称。将 /FastDevicePath 替换为快速设备的路径,如 SSD 或 NVME。

  3. 将缓存卷附加到 LV:

    # lvconvert --type writecache --cachevol CacheVolumeName VolumeGroupName/LogicalVolumeName

    CacheVolumeName 替换为缓存卷的名称。将 VolumeGroupName 替换为卷组的名称。使用逻辑卷的名称替换 LogicalVolumeName

验证

  • 验证 LV 现在是否已缓存:

    # lvs -o lv_name,pool_lv
    
      LV                   Pool
      LogicalVolumeName    [CacheVolumeName_cvol]

其他资源

  • lvcreate (8), lvconvert (8), lvs (8) man pages

5.2.3. 取消缓存逻辑卷

使用两种主要方法从 LV 中删除缓存。

分割
您可以从 LV 中分离缓存,但保留缓存卷本身。在这种情况下,LV 将不再受益于缓存机制,但缓存卷及其数据将保持不变。虽然缓存卷被保留,但缓存中的数据无法被重复使用,并将在下次在缓存设置中使用时擦除。
取消缓存
您可以从 LV 中分离缓存,并完全删除缓存卷。此操作有效销毁缓存,从而释放空间。

先决条件

  • 管理访问权限.

流程

  1. 显示缓存的 LV:

    # lvs -o lv_name,pool_lv,vg_name
    
      LV                   Pool                   VG
      LogicalVolumeName    [CacheVolumeName_cvol] VolumeGroupName
  2. 分离或删除缓存的卷:

    • 要分离缓存的卷,请使用:

      # lvconvert --splitcache VolumeGroupName/LogicalVolumeName
    • 要分离和删除缓存的卷,请使用:

      # lvconvert --uncache VolumeGroupName/LogicalVolumeName

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

验证

  • 验证 LV 是否没有缓存:

    # lvs -o lv_name,pool_lv

其他资源

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

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.