PowerEdge:在 RHEL 上使用基于 NVMe PCIe SSD 的 dm-cache 提高块设备性能

摘要: 设备映射器高速缓存 (dm-cache) 可将数据动态迁移到更快的设备,以此来提高块设备的性能。

本文适用于 本文不适用于 本文并非针对某种特定的产品。 本文并非包含所有产品版本。

说明

基于 NVMe 的 PCIe SSD 可以使用用户空间工具集逻辑卷管理器 (LVM) 工具充当 dm-cache 的缓存设备。

dm-cache 创建的虚拟高速缓存由三个物理设备组成。(请参阅图 1。)原始设备是速度较慢的目标存储设备 (HDD)。高速缓存设备用于存储用户数据,元数据高速缓存存储元数据,如块放置、脏标记和其他内部数据。
在本例中,我们为数据块和元数据使用相同的设备 [高速缓存设备]。

LVM 卷中存储的 dmcache 的示意图
图 1:使用 LVM 工具设置和配置 dm-cache 的步骤。

 

硬件设置:

原始设备 [HDD]: /dev/sda1
高速缓存设备 [基于 NVMe 的 PCIe SSD](块/元数据): /dev/nvme0n1p1 

 

软件设置:

操作系统:RHEL 7
工具:用于 dm-cache 配置的 LVM2 用户空间工具

 

配置步骤:

以下是使用 LVM 配置虚拟设备 dm-cache 的步骤。

每个步骤的输出对应于图 1 中编号的块。

  1. 在硬盘 [原始设备] 上创建 100 GB 分区
    parted -a optimal /dev/sda mkpart primary 1 100G 
    提醒:这会创建 /dev/sda1
  2. 在 NVMe PCIe SSD 磁盘 [高速缓存设备] 上创建 10 GB 分区
    parted -a optimal /dev/nvme0n1 mkpart primary 1 10G 
  3. 使用原始设备和高速缓存设备创建卷组 (cache)
    vgcreate cache /dev/sda1  /dev/nvme0n1p1 
    1. 使用此命令检查“cache”卷组: vgdisplay
      [root@localhost ~]# vgdisplay
      
      --- Volume group ---
      VG Name               cache
      System ID
      Format                lvm2
      Metadata Areas        2
      Metadata Sequence No  7
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                2
      Open LV               0
      Max PV                0
      Cur PV                2
      Act PV                2
      VG Size               103.36 GiB
      PE Size               4.00 MiB
      Total PE              26461
      Alloc PE / Size       25399 / 99.21 GiB
      Free  PE / Size       1062 / 4.15 GiB
      VG UUID               Zd8dNe-6Kdt-7qgY-dmSN-8WHe-4wqQ-euM3Ql 
  4. 创建原始设备逻辑卷 (origin_device)
    lvcreate -l 90%FREE -n origin_device cache /dev/sda1 
  5. 创建高速缓存元数据逻辑卷 (cache_meta)
    lvcreate -l 5%FREE -n cache_meta cache /dev/nvme0n1p1 
  6. 创建高速缓存块数据逻辑卷 (cache_block)
    lvcreate -l 80%FREE -n cache_block cache /dev/nvme0n1p1 
  7. 通过组合高速缓存块和高速缓存元数据逻辑卷(组合步骤 5 和步骤 6)来创建高速缓存池逻辑卷
    lvconvert --type cache-pool --poolmetadata cache/cache_meta cache/cache_block 
    提醒:创建的高速缓存池与“cache_block”同名,即在步骤 6 中创建的高速缓存块数据逻辑卷的名称。
    1. 这是工具的行为。使用此命令检查“cache”卷组: lvdisplay

      root@localhost ~]# lvdisplay
      --- Logical volume ---
      LV Path                /dev/cache/cache_block
      LV Name                cache_block
      VG Name                cache
      LV UUID                kWYQxP-Jdlr-JdxE-aleB-JJpj-3rmw-Q0cojx
      LV Write Access        read/write
      LV Creation host, time localhost.localdomain, 2014-06-28 09:05:32 -0400
      LV Status              available
      # open                 0
      LV Size                5.07 GiB
      Current LE             1297
      Segments               1
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     256
      Block device           253:2 
  8. 通过连接高速缓存池(步骤 7)逻辑卷和 origin_device 逻辑卷(步骤 4)来创建高速缓存逻辑卷

    lvconvert --type cache --cachepool cache/cache_block cache/origin_device 
    1. 这将创建虚拟高速缓存设备 (dm-cache) orign_device ,即下面所示的 dm4
      [root@localhost ~]# ls -l /dev/cache/origin_device
      lrwxrwxrwx. 1 root root 7 Jun 28 09:13 /dev/cache/origin_device -> ../dm-4 
  9. 使用文件系统格式化虚拟高速缓存设备并使用它。

    mkfs.ext4 /dev/cache/origin_device 

 

 

 

性能数据:

使用 FIO 工具完成的性能测试显示,读取操作、写入操作和读写混合操作的性能大大提高。

表 1 显示了 FIO 工具的输出,其中展示了配置 dmcache 与使用正常驱动器(旋转驱动器)相比较的性能差异和改善程度(百分比),图 2 显示了对应的柱状图。

测试采用 1M 的块大小,在原始硬盘 (sda) 和配置了 dmcache 的驱动器上进行随机读取、随机写入和随机读写混合 (50%) 操作。
 

FIO at BS = 1M IOPS
设备 读取 写入 读写
驱动器配置了 dm-cache 197 798 159
sda [原始驱动器] 124 118 58
提升百分比 58.87% 576.20% 174.13%

表 1:性能提升,配置了 dm-cache


柱状图,显示了配置和未配置 dmcache 的磁盘之间的性能差异 
图 2:性能提升,配置了 dm-cache


结论:基于 NVMe PCIe SSD 的 dm-cache 大大提升了传统的主轴型硬盘的性能。

受影响的产品

Red Hat Enterprise Linux Version 7, Red Hat Enterprise Linux Version 9, Red Hat Enterprise Linux Version 8

产品

PowerEdge XR2, PowerEdge C6420, PowerEdge C6520, PowerEdge C6525, PowerEdge C6615, PowerEdge C6620, PowerEdge R350, PowerEdge R360, PowerEdge R440, PowerEdge R450, PowerEdge R540, PowerEdge R550, PowerEdge R640, PowerEdge R6415, PowerEdge R650 , PowerEdge R650xs, PowerEdge R6515, PowerEdge R6525, PowerEdge R660, PowerEdge R660xs, PowerEdge R6615, PowerEdge R6625, PowerEdge R740, PowerEdge R740XD, PowerEdge R740XD2, PowerEdge R7415, PowerEdge R7425, PowerEdge R750, PowerEdge R750XA, PowerEdge R750xs, PowerEdge R7515, PowerEdge R7525, PowerEdge R760, PowerEdge R760XA, PowerEdge R760xd2, PowerEdge R760xs, PowerEdge R7615, PowerEdge R7625, PowerEdge R840, PowerEdge R860, PowerEdge R940, PowerEdge R940xa, PowerEdge R960, PowerEdge T350, PowerEdge T360, PowerEdge T440, PowerEdge T550, PowerEdge T560, PowerEdge T640, PowerEdge XE2420, PowerEdge XE7420, PowerEdge XE7440, PowerEdge XE8545, PowerEdge XE8640, PowerEdge XE9640, PowerEdge XE9680, PowerEdge XR11, PowerEdge XR12, PowerEdge XR4510c, PowerEdge XR4520c, PowerEdge XR5610, PowerEdge XR7620, PowerEdge XR8610t, PowerEdge XR8620t ...
文章属性
文章编号: 000148672
文章类型: How To
上次修改时间: 08 4月 2025
版本:  5
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。