PowerEdge: RHEL에서 NVMe PCIe SSD 기반 dm-cache를 통해 블록 디바이스 성능 향상

Summary: dm-cache(Device Mapper cache)는 데이터를 더 빠른 디바이스로 동적으로 마이그레이션하여 블록 디바이스의 성능을 개선하는 데 사용할 수 있습니다.

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Instructions

NVMe 기반 PCIe SSD는 사용자 공간 툴 세트 LVM(Logical Volume Manager) 툴을 사용하여 dm-cache의 캐시 디바이스 역할을 할 수 있습니다.

dm-cache에 의해 생성된 가상 캐시는 3개의 물리적 디바이스로 구성됩니다. (그림 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. 하드 디스크[원본 디바이스]에 100GB 파티션 생성
    parted -a optimal /dev/sda mkpart primary 1 100G 
    참고: 이렇게 하면 /dev/sda1이 생성됩니다.
  2. NVMe PCIe SSD 디스크[캐시 디바이스]에 10GB 파티션 생성
    parted -a optimal /dev/nvme0n1 mkpart primary 1 10G 
  3. 원본 및 캐시 디바이스를 사용하여 볼륨 그룹(캐시) 생성
    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은 일반 드라이브(회전식 드라이브) 대비 dmcache 가 있을 때의 성능 차이와 개선 비율을 나타내는 FIO 툴 분석 결과입니다. 그림 2는 이에 해당하는 그래프 플롯을 보여줍니다.

1M 블록 크기를 사용하여 랜덤 읽기, 랜덤 쓰기, 랜덤 읽기-쓰기 혼합(50%) 작업을 dmcache 가 구성된 원본 하드 드라이브(sda) 및 구성이 있는 드라이브에서 테스트한 것입니다.
 

BS에서 FIO = 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는 레거시 스핀들 기반 하드 드라이브의 성능을 크게 개선합니다.

Affected Products

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

Products

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 ...
Article Properties
Article Number: 000148672
Article Type: How To
Last Modified: 08 Apr 2025
Version:  5
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.