67.10. 캐시를 활성화하여 논리 볼륨 성능을 개선


LVM 논리 볼륨에 캐싱을 추가하여 성능을 향상시킬 수 있습니다. 그런 다음 LVM은 SSD와 같은 빠른 장치를 사용하여 I/O 작업을 논리 볼륨에 캐시합니다.

다음 절차에서는 빠른 장치에서 특수 LV를 생성하고 이 특수 LV를 원래 LV에 연결하여 성능을 향상시킵니다.

67.10.1. LVM의 캐싱 방법

LVM은 다음과 같은 종류의 캐싱을 제공합니다. 각각 논리 볼륨의 다양한 종류의 I/O 패턴에 적합합니다.

dm-cache

이 방법은 더 빠른 볼륨에 캐싱하여 자주 사용하는 데이터에 대한 액세스를 가속화합니다. 메서드는 읽기 및 쓰기 작업을 모두 캐시합니다.

dm- cache 메서드는 유형 캐시의 논리 볼륨을 생성합니다.

dm-writecache

이 방법은 쓰기 작업만 캐시합니다. 더 빠른 볼륨은 쓰기 작업을 저장한 다음 백그라운드에서 느린 디스크로 마이그레이션합니다. 더 빠른 볼륨은 일반적으로 SSD 또는 PMEM(영구 메모리) 디스크입니다.

dm-writecache 메서드는 writecache 유형의 논리 볼륨을 생성합니다.

추가 리소스

  • 시스템의 lvmcache(7) 도움말 페이지

67.10.2. LVM 캐싱 구성 요소

LVM은 LVM 논리 볼륨에 캐시를 추가할 수 있도록 지원합니다. LVM 캐싱은 다음 LVM 논리 볼륨 유형을 사용합니다.

Main LV
큰, 느린, 원래 볼륨입니다.
캐시 풀 LV
기본 LV에서 데이터를 캐싱하는 데 사용할 수 있는 복합 LV입니다. 두 개의 하위 LV가 있습니다. 캐시 데이터를 관리하기 위한 데이터와 캐시 데이터를 관리하기 위한 데이터입니다. 데이터 및 메타데이터에 대해 특정 디스크를 구성할 수 있습니다. 캐시 풀은 dm-cache 에서만 사용할 수 있습니다.
Cachevol LV
기본 LV에서 데이터를 캐싱하는 데 사용할 수 있는 선형 LV입니다. 데이터 및 메타데이터에 대해 별도의 디스크를 구성할 수 없습니다. cachevoldm-cache 또는 dm-writecache 에서만 사용할 수 있습니다.

연결된 모든 LV는 동일한 볼륨 그룹에 있어야 합니다.

일반적으로 캐시된 데이터를 보유하는 더 빠르고 작은 LV와 기본 논리 볼륨(LV)을 결합할 수 있습니다. 빠른 LV는 SSD 드라이브와 같은 빠른 블록 장치에서 생성됩니다. 논리 볼륨에 대한 캐싱을 활성화하면 LVM에서 원래 볼륨의 이름을 바꾸고 숨기고 원래 논리 볼륨으로 구성된 새 논리 볼륨을 제공합니다. 새 논리 볼륨의 구성은 캐싱 방법 및 cachevol 또는 cachepool 옵션을 사용하는지에 따라 다릅니다.

cachevolcachepool 옵션은 캐싱 구성 요소의 배치에 대해 다양한 수준의 제어 권한을 노출합니다.

  • cachevol 옵션을 사용하면 더 빠른 장치는 캐시된 데이터 블록 복사본과 캐시 관리를 위한 메타데이터를 모두 저장합니다.
  • cachepool 옵션을 사용하면 별도의 장치가 데이터 블록의 캐시된 복사본과 캐시를 관리하기 위한 메타데이터를 저장할 수 있습니다.

    dm-writecache 방법은 cachepool 과 호환되지 않습니다.

모든 구성에서 LVM은 모든 캐싱 구성 요소를 그룹화하는 단일 결과 장치를 노출합니다. 결과 장치의 이름은 원본 느린 논리 볼륨과 동일합니다.

추가 리소스

67.10.3. 논리 볼륨의 dm-cache 캐싱 활성화

이 절차에서는 dm-cache 방법을 사용하여 논리 볼륨에서 일반적으로 사용되는 데이터의 캐싱을 활성화합니다.

사전 요구 사항

  • dm-cache 를 사용하여 속도를 높이려는 느린 논리 볼륨이 시스템에 존재합니다.
  • 느린 논리 볼륨이 포함된 볼륨 그룹에는 빠른 블록 장치에 사용되지 않은 물리 볼륨도 포함되어 있습니다.

절차

  1. 빠른 장치에 cachevol 볼륨을 생성합니다.

    # lvcreate --size cachevol-size --name <fastvol> <vg> </dev/fast-pv>

    다음 값을 바꿉니다.

    cachevol-size
    cachevol 볼륨의 크기(예: 5G)
    fastvol
    cachevol 볼륨의 이름
    vg
    볼륨 그룹 이름
    /dev/fast-pv

    빠른 블록 장치의 경로(예: /dev/sdf)

    예 67.3. cachevol 볼륨 생성

    # lvcreate --size 5G --name fastvol vg /dev/sdf
    Logical volume "fastvol" created.
  2. cachevol 볼륨을 기본 논리 볼륨에 연결하여 캐싱을 시작합니다.

    # lvconvert --type cache --cachevol <fastvol> <vg/main-lv>

    다음 값을 바꿉니다.

    fastvol
    cachevol 볼륨의 이름
    vg
    볼륨 그룹 이름
    main-lv

    느린 논리 볼륨의 이름

    예 67.4. 기본 LV에 cachevol 볼륨 연결

    # lvconvert --type cache --cachevol fastvol vg/main-lv
    Erase all existing data on vg/fastvol? [y/n]: y
    Logical volume vg/main-lv is now cached.

검증

  • 새로 생성된 논리 볼륨에 dm-cache 가 활성화되어 있는지 확인합니다.

    # lvs --all --options +devices <vg>
    
    LV              Pool           Type   Devices
    main-lv         [fastvol_cvol] cache  main-lv_corig(0)
    [fastvol_cvol]                 linear /dev/fast-pv
    [main-lv_corig]                linear /dev/slow-pv

추가 리소스

  • 시스템의 lvmcache(7) 도움말 페이지

67.10.4. 논리 볼륨의 cachepool을 사용하여 dm-cache 캐싱 활성화

이 절차를 통해 캐시 데이터와 캐시 메타데이터 논리 볼륨을 개별적으로 생성한 다음 볼륨을 캐시 풀로 결합할 수 있습니다.

사전 요구 사항

  • dm-cache 를 사용하여 속도를 높이려는 느린 논리 볼륨이 시스템에 존재합니다.
  • 느린 논리 볼륨이 포함된 볼륨 그룹에는 빠른 블록 장치에 사용되지 않은 물리 볼륨도 포함되어 있습니다.

절차

  1. 빠른 장치에 cachepool 볼륨을 생성합니다.

    # lvcreate --type cache-pool --size <cachepool-size> --name <fastpool> <vg /dev/fast>

    다음 값을 바꿉니다.

    cachepool-size
    캐시 풀 의 크기(예: 5G)
    fastpool
    cachepool 볼륨의 이름
    vg
    볼륨 그룹 이름
    /dev/fast

    빠른 블록 장치의 경로(예: /dev/sdf1)

    참고

    cache-pool을 생성할 때 --poolmetadata 옵션을 사용하여 풀 메타데이터의 위치를 지정할 수 있습니다.

    예 67.5. cachepool 볼륨 생성

    # lvcreate --type cache-pool --size 5G --name fastpool vg /dev/sde
    Logical volume "fastpool" created.
  2. 캐시 풀 을 기본 논리 볼륨에 연결하여 캐싱을 시작합니다.

    # lvconvert --type cache --cachepool <fastpool> <vg/main>

    다음 값을 바꿉니다.

    fastpool
    cachepool 볼륨의 이름
    vg
    볼륨 그룹 이름
    main

    느린 논리 볼륨의 이름

    예 67.6. 기본 LV에 cachepool 연결

    # lvconvert --type cache --cachepool fastpool vg/main
    Do you want wipe existing metadata of cache pool vg/fastpool? [y/n]: y
    Logical volume vg/main is now cached.

검증

  • cache-pool 유형을 사용하여 새로 생성된 devicevolume을 검사합니다.

    # lvs --all --options +devices <vg>
    
    LV                      Pool               Type        Devices
    [fastpool_cpool]                           cache-pool  fastpool_pool_cdata(0)
    [fastpool_cpool_cdata]                     linear      /dev/sdf1(4)
    [fastpool_cpool_cmeta]                     linear      /dev/sdf1(2)
    [lvol0_pmspare]                            linear      /dev/sdf1(0)
    main                    [fastpoool_cpool]  cache       main_corig(0)
    [main_corig]                               linear      /dev/sdf1(O)

추가 리소스

  • 시스템의 lvcreate(8), lvmcache(7)lvconvert(8) 도움말 페이지

67.10.5. 논리 볼륨의 dm-writecache 캐싱 활성화

이 절차에서는 dm-writecache 방법을 사용하여 논리 볼륨에 쓰기 I/O 작업을 캐시할 수 있습니다.

사전 요구 사항

  • dm-writecache 를 사용하여 속도를 높이려는 느린 논리 볼륨이 시스템에 존재합니다.
  • 느린 논리 볼륨이 포함된 볼륨 그룹에는 빠른 블록 장치에 사용되지 않은 물리 볼륨도 포함되어 있습니다.
  • 느린 논리 볼륨이 활성 상태인 경우 비활성화합니다.

프로세스

  1. 느린 논리 볼륨이 활성 상태인 경우 비활성화합니다.

    # lvchange --activate n <vg>/<main-lv>

    다음 값을 바꿉니다.

    vg
    볼륨 그룹 이름
    main-lv
    느린 논리 볼륨의 이름
  2. 빠른 장치에 비활성화된 cachevol 볼륨을 생성합니다.

    # lvcreate --activate n --size <cachevol-size> --name <fastvol> <vg> </dev/fast-pv>

    다음 값을 바꿉니다.

    cachevol-size
    cachevol 볼륨의 크기(예: 5G)
    fastvol
    cachevol 볼륨의 이름
    vg
    볼륨 그룹 이름
    /dev/fast-pv

    빠른 블록 장치의 경로(예: /dev/sdf)

    예 67.7. 비활성화된 cachevol 볼륨 생성

    # lvcreate --activate n --size 5G --name fastvol vg /dev/sdf
    WARNING: Logical volume vg/fastvol not zeroed.
    Logical volume "fastvol" created.
  3. cachevol 볼륨을 기본 논리 볼륨에 연결하여 캐싱을 시작합니다.

    # lvconvert --type writecache --cachevol <fastvol> <vg/main-lv>

    다음 값을 바꿉니다.

    fastvol
    cachevol 볼륨의 이름
    vg
    볼륨 그룹 이름
    main-lv

    느린 논리 볼륨의 이름

    예 67.8. 기본 LV에 cachevol 볼륨 연결

    # lvconvert --type writecache --cachevol fastvol vg/main-lv
    Erase all existing data on vg/fastvol? [y/n]?: y
    Using writecache block size 4096 for unknown file system block size, logical block size 512, physical block size 512.
    WARNING: unable to detect a file system block size on vg/main-lv
    WARNING: using a writecache block size larger than the file system block size may corrupt the file system.
    Use writecache block size 4096? [y/n]: y
    Logical volume vg/main-lv now has writecache.
  4. 결과 논리 볼륨을 활성화합니다.

    # lvchange --activate y <vg/main-lv>

    다음 값을 바꿉니다.

    vg
    볼륨 그룹 이름
    main-lv
    느린 논리 볼륨의 이름

검증

  • 새로 생성된 장치를 확인합니다.

    # lvs --all --options +devices vg
    
    LV                VG Attr       LSize   Pool           Origin           Data%  Meta%  Move Log Cpy%Sync Convert Devices
     main-lv          vg Cwi-a-C--- 500.00m [fastvol_cvol] [main-lv_wcorig] 0.00                                    main-lv_wcorig(0)
     [fastvol_cvol]   vg Cwi-aoC--- 252.00m                                                                         /dev/sdc1(0)
     [main-lv_wcorig] vg owi-aoC--- 500.00m                                                                         /dev/sdb1(0)

추가 리소스

  • 시스템의 lvmcache(7) 도움말 페이지

67.10.6. 논리 볼륨의 캐싱 비활성화

이 절차에서는 현재 논리 볼륨에서 활성화된 dm-cache 또는 dm-writecache 캐싱을 비활성화합니다.

사전 요구 사항

  • 논리 볼륨에서 캐싱이 활성화됩니다.

프로세스

  1. 논리 볼륨을 비활성화합니다.

    # lvchange --activate n <vg>/<main-lv>

    Cryo stat 를 볼륨 그룹 이름으로 바꾸고 main-lv 를 캐싱이 활성화된 논리 볼륨의 이름으로 바꿉니다.

  2. cachevol 또는 cachepool 볼륨을 분리합니다.

    # lvconvert --splitcache <vg>/<main-lv>

    다음 값을 바꿉니다.

    Cryo stat 를 볼륨 그룹 이름으로 바꾸고 main-lv 를 캐싱이 활성화된 논리 볼륨의 이름으로 바꿉니다.

    예 67.9. cachevol 또는 cachepool 볼륨 분리

    # lvconvert --splitcache vg/main-lv
    Detaching writecache already clean.
    Logical volume vg/main-lv writecache has been detached.

검증

  • 논리 볼륨이 더 이상 연결되어 있지 않은지 확인합니다.

    # lvs --all --options +devices <vg>
    
    LV      Attr       Type   Devices
    fastvol -wi------- linear /dev/fast-pv
    main-lv -wi------- linear /dev/slow-pv

추가 리소스

  • 시스템의 lvmcache(7) 도움말 페이지
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.