5.2. 논리 볼륨 캐싱
dm-cache
또는 dm-writecache
대상을 사용하여 논리 볼륨을 캐시할 수 있습니다.
DM-cache
는 속도가 느린 스토리지 장치(HDD)의 캐시로 더 빠른 SSD(스토리지 장치)를 사용합니다. 읽기 및 쓰기 데이터를 캐시하여 자주 사용하는 데이터에 대한 액세스 시간을 최적화합니다. 읽기 및 쓰기 작업을 강화하면 성능이 크게 향상될 수 있는 혼합 워크로드 환경에서 유용합니다.
DM-writecache
는 기본 스토리지 장치(HDD)에 커밋되기 전에 더 빠른 SSD(스토리지 미디어)를 사용하여 쓰기 데이터를 임시로 보관하여 쓰기 작업을 최적화합니다. 쓰기 성능이 데이터 전송 프로세스의 속도가 느려질 수 있는 쓰기 집약적인 애플리케이션에 유용합니다.
5.2.1. dm-cache를 사용하여 논리 볼륨 캐싱
dm-cache
를 사용하여 LV를 캐시하면 캐시 풀이 생성됩니다. 캐시 풀은 실제 캐시된 콘텐츠를 저장하는 캐시 데이터와 캐시에 저장된 콘텐츠를 추적하는 캐시 메타데이터를 결합하는 LV입니다. 그런 다음 이 풀은 특정 LV와 연결하여 해당 데이터를 캐시합니다.
DM -cache
는 두 가지 유형의 블록을 대상으로 합니다. 자주 액세스하는(hot) 블록은 캐시로 이동하고 덜 자주 액세스(cold) 블록은 느린 장치에 남아 있습니다.
사전 요구 사항
- 관리 액세스.
절차
캐시할 LV 및 해당 볼륨 그룹을 표시합니다.
# lvs -o lv_name,vg_name LV VG LogicalVolumeName VolumeGroupName
캐시 풀을 생성합니다.
# lvcreate --type cache-pool --name CachePoolName --size Size VolumeGroupName /FastDevicePath
CachePoolName 을 캐시 풀 이름으로 교체합니다. Size 를 캐시 풀의 크기로 바꿉니다. VolumeGroupName 을 볼륨 그룹의 이름으로 교체합니다. /FastDevicePath 를 빠른 장치의 경로(예: SSD 또는 NVME)로 바꿉니다.
캐시 풀을 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)
도움말 페이지
5.2.2. dm-writecache를 사용하여 논리 볼륨 캐싱
dm-writecache
를 사용하여 LV를 캐시할 때 논리 볼륨과 물리 스토리지 장치 간의 캐싱 계층이 생성됩니다. dm-writecache
는 결국 SSD와 같은 빠른 스토리지 매체에 쓰기 작업을 임시로 저장하여 기본 스토리지 장치에 다시 쓰기 작업을 작성하여 쓰기 집약적인 워크로드를 최적화함으로써 작동합니다.
사전 요구 사항
- 관리 액세스.
절차
캐시할 논리 볼륨 및 해당 볼륨 그룹을 표시합니다.
# lvs -o lv_name,vg_name LV VG LogicalVolumeName VolumeGroupName
캐시 볼륨을 생성합니다.
# lvcreate --name CacheVolumeName --size Size VolumeGroupName /FastDevicePath
CacheVolumeName 을 캐시 볼륨의 이름으로 교체합니다. Size 를 캐시 풀의 크기로 바꿉니다. VolumeGroupName 을 볼륨 그룹의 이름으로 교체합니다. /FastDevicePath 를 빠른 장치의 경로(예: SSD 또는 NVME)로 바꿉니다.
캐시 볼륨을 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)
도움말 페이지
5.2.3. 논리 볼륨 분리
두 가지 주요 방법을 사용하여 LV에서 캐싱을 제거합니다.
- 분할
- LV에서 캐시를 분리할 수 있지만 캐시 볼륨 자체를 유지할 수 있습니다. 이 경우 LV는 더 이상 캐싱 메커니즘의 이점을 받지 않지만 캐시 볼륨과 데이터는 그대로 유지됩니다. 캐시 볼륨은 보존되지만 캐시 내의 데이터를 재사용할 수 없으며 다음에 캐싱 설정에 사용될 때 삭제됩니다.
- Uncaching
- LV에서 캐시를 분리하고 캐시 볼륨을 완전히 제거할 수 있습니다. 이 작업은 캐시를 효과적으로 제거하여 공간을 확보합니다.
사전 요구 사항
- 관리 액세스.
절차
캐시된 LV를 표시합니다.
# lvs -o lv_name,pool_lv,vg_name LV Pool VG LogicalVolumeName [CacheVolumeName_cvol] VolumeGroupName
캐시된 볼륨을 분리하거나 제거합니다.
캐시된 볼륨을 분리하려면 다음을 사용합니다.
# lvconvert --splitcache VolumeGroupName/LogicalVolumeName
캐시된 볼륨을 분리 및 제거하려면 다음을 사용합니다.
# lvconvert --uncache VolumeGroupName/LogicalVolumeName
VolumeGroupName 을 볼륨 그룹의 이름으로 교체합니다. LogicalVolumeName 을 논리 볼륨의 이름으로 바꿉니다.
검증
LV가 캐시되지 않았는지 확인합니다.
# lvs -o lv_name,pool_lv
추가 리소스
-
lvconvert(8)
,lvs(8)
도움말 페이지