67.10. 캐시를 활성화하여 논리 볼륨 성능을 개선
LVM 논리 볼륨에 캐싱을 추가하여 성능을 향상시킬 수 있습니다. 그런 다음 LVM은 SSD와 같은 빠른 장치를 사용하여 I/O 작업을 논리 볼륨에 캐시합니다.
다음 절차에서는 빠른 장치에서 특수 LV를 생성하고 이 특수 LV를 원래 LV에 연결하여 성능을 향상시킵니다.
67.10.1. LVM의 캐싱 방법 링크 복사링크가 클립보드에 복사되었습니다!
LVM은 다음과 같은 종류의 캐싱을 제공합니다. 각각 논리 볼륨의 다양한 종류의 I/O 패턴에 적합합니다.
dm-cache이 방법은 더 빠른 볼륨에 캐싱하여 자주 사용하는 데이터에 대한 액세스를 가속화합니다. 메서드는 읽기 및 쓰기 작업을 모두 캐시합니다.
dm-메서드는 유형 캐시의 논리 볼륨을 생성합니다.cachedm-writecache이 방법은 쓰기 작업만 캐시합니다. 더 빠른 볼륨은 쓰기 작업을 저장한 다음 백그라운드에서 느린 디스크로 마이그레이션합니다. 더 빠른 볼륨은 일반적으로 SSD 또는 PMEM(영구 메모리) 디스크입니다.
dm-writecache메서드는writecache유형의 논리 볼륨을 생성합니다.
67.10.2. LVM 캐싱 구성 요소 링크 복사링크가 클립보드에 복사되었습니다!
LVM은 LVM 논리 볼륨에 캐시를 추가할 수 있도록 지원합니다. LVM 캐싱은 다음 LVM 논리 볼륨 유형을 사용합니다.
- Main LV
- 큰, 느린, 원래 볼륨입니다.
- 캐시 풀 LV
-
기본 LV에서 데이터를 캐싱하는 데 사용할 수 있는 복합 LV입니다. 두 개의 하위 LV가 있습니다. 캐시 데이터를 관리하기 위한 데이터와 캐시 데이터를 관리하기 위한 데이터입니다. 데이터 및 메타데이터에 대해 특정 디스크를 구성할 수 있습니다. 캐시 풀은
dm-cache에서만 사용할 수 있습니다. - Cachevol LV
-
기본 LV에서 데이터를 캐싱하는 데 사용할 수 있는 선형 LV입니다. 데이터 및 메타데이터에 대해 별도의 디스크를 구성할 수 없습니다.
cachevol은dm-cache또는dm-writecache에서만 사용할 수 있습니다.
연결된 모든 LV는 동일한 볼륨 그룹에 있어야 합니다.
일반적으로 캐시된 데이터를 보유하는 더 빠르고 작은 LV와 기본 논리 볼륨(LV)을 결합할 수 있습니다. 빠른 LV는 SSD 드라이브와 같은 빠른 블록 장치에서 생성됩니다. 논리 볼륨에 대한 캐싱을 활성화하면 LVM에서 원래 볼륨의 이름을 바꾸고 숨기고 원래 논리 볼륨으로 구성된 새 논리 볼륨을 제공합니다. 새 논리 볼륨의 구성은 캐싱 방법 및 cachevol 또는 cachepool 옵션을 사용하는지에 따라 다릅니다.
cachevol 및 cachepool 옵션은 캐싱 구성 요소의 배치에 대해 다양한 수준의 제어 권한을 노출합니다.
-
cachevol옵션을 사용하면 더 빠른 장치는 캐시된 데이터 블록 복사본과 캐시 관리를 위한 메타데이터를 모두 저장합니다. cachepool옵션을 사용하면 별도의 장치가 데이터 블록의 캐시된 복사본과 캐시를 관리하기 위한 메타데이터를 저장할 수 있습니다.dm-writecache방법은cachepool과 호환되지 않습니다.
모든 구성에서 LVM은 모든 캐싱 구성 요소를 그룹화하는 단일 결과 장치를 노출합니다. 결과 장치의 이름은 원본 느린 논리 볼륨과 동일합니다.
67.10.3. 논리 볼륨의 dm-cache 캐싱 활성화 링크 복사링크가 클립보드에 복사되었습니다!
이 절차에서는 dm-cache 방법을 사용하여 논리 볼륨에서 일반적으로 사용되는 데이터의 캐싱을 활성화합니다.
사전 요구 사항
-
dm-cache를 사용하여 속도를 높이려는 느린 논리 볼륨이 시스템에 존재합니다. - 느린 논리 볼륨이 포함된 볼륨 그룹에는 빠른 블록 장치에 사용되지 않은 물리 볼륨도 포함되어 있습니다.
절차
빠른 장치에
cachevol볼륨을 생성합니다.lvcreate --size cachevol-size --name <fastvol> <vg> </dev/fast-pv>
# lvcreate --size cachevol-size --name <fastvol> <vg> </dev/fast-pv>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 값을 바꿉니다.
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.
# lvcreate --size 5G --name fastvol vg /dev/sdf Logical volume "fastvol" created.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
cachevol볼륨을 기본 논리 볼륨에 연결하여 캐싱을 시작합니다.lvconvert --type cache --cachevol <fastvol> <vg/main-lv>
# lvconvert --type cache --cachevol <fastvol> <vg/main-lv>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 값을 바꿉니다.
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.
# 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.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
새로 생성된 논리 볼륨에
dm-cache가 활성화되어 있는지 확인합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
67.10.4. 논리 볼륨의 cachepool을 사용하여 dm-cache 캐싱 활성화 링크 복사링크가 클립보드에 복사되었습니다!
이 절차를 통해 캐시 데이터와 캐시 메타데이터 논리 볼륨을 개별적으로 생성한 다음 볼륨을 캐시 풀로 결합할 수 있습니다.
사전 요구 사항
-
dm-cache를 사용하여 속도를 높이려는 느린 논리 볼륨이 시스템에 존재합니다. - 느린 논리 볼륨이 포함된 볼륨 그룹에는 빠른 블록 장치에 사용되지 않은 물리 볼륨도 포함되어 있습니다.
절차
빠른 장치에
cachepool볼륨을 생성합니다.lvcreate --type cache-pool --size <cachepool-size> --name <fastpool> <vg /dev/fast>
# lvcreate --type cache-pool --size <cachepool-size> --name <fastpool> <vg /dev/fast>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 값을 바꿉니다.
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.
# lvcreate --type cache-pool --size 5G --name fastpool vg /dev/sde Logical volume "fastpool" created.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
캐시 풀을 기본 논리 볼륨에 연결하여 캐싱을 시작합니다.lvconvert --type cache --cachepool <fastpool> <vg/main>
# lvconvert --type cache --cachepool <fastpool> <vg/main>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 값을 바꿉니다.
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.
# 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.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
cache-pool유형을 사용하여 새로 생성된 devicevolume을 검사합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
67.10.5. 논리 볼륨의 dm-writecache 캐싱 활성화 링크 복사링크가 클립보드에 복사되었습니다!
이 절차에서는 dm-writecache 방법을 사용하여 논리 볼륨에 쓰기 I/O 작업을 캐시할 수 있습니다.
사전 요구 사항
-
dm-writecache를 사용하여 속도를 높이려는 느린 논리 볼륨이 시스템에 존재합니다. - 느린 논리 볼륨이 포함된 볼륨 그룹에는 빠른 블록 장치에 사용되지 않은 물리 볼륨도 포함되어 있습니다.
- 느린 논리 볼륨이 활성 상태인 경우 비활성화합니다.
프로세스
느린 논리 볼륨이 활성 상태인 경우 비활성화합니다.
lvchange --activate n <vg>/<main-lv>
# lvchange --activate n <vg>/<main-lv>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 값을 바꿉니다.
vg- 볼륨 그룹 이름
main-lv- 느린 논리 볼륨의 이름
빠른 장치에 비활성화된
cachevol볼륨을 생성합니다.lvcreate --activate n --size <cachevol-size> --name <fastvol> <vg> </dev/fast-pv>
# lvcreate --activate n --size <cachevol-size> --name <fastvol> <vg> </dev/fast-pv>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 값을 바꿉니다.
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.
# lvcreate --activate n --size 5G --name fastvol vg /dev/sdf WARNING: Logical volume vg/fastvol not zeroed. Logical volume "fastvol" created.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
cachevol볼륨을 기본 논리 볼륨에 연결하여 캐싱을 시작합니다.lvconvert --type writecache --cachevol <fastvol> <vg/main-lv>
# lvconvert --type writecache --cachevol <fastvol> <vg/main-lv>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 값을 바꿉니다.
fastvol-
cachevol볼륨의 이름 vg- 볼륨 그룹 이름
main-lv느린 논리 볼륨의 이름
예 67.8. 기본 LV에
cachevol볼륨 연결Copy to Clipboard Copied! Toggle word wrap Toggle overflow
결과 논리 볼륨을 활성화합니다.
lvchange --activate y <vg/main-lv>
# lvchange --activate y <vg/main-lv>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 값을 바꿉니다.
vg- 볼륨 그룹 이름
main-lv- 느린 논리 볼륨의 이름
검증
새로 생성된 장치를 확인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
67.10.6. 논리 볼륨의 캐싱 비활성화 링크 복사링크가 클립보드에 복사되었습니다!
이 절차에서는 현재 논리 볼륨에서 활성화된 dm-cache 또는 dm-writecache 캐싱을 비활성화합니다.
사전 요구 사항
- 논리 볼륨에서 캐싱이 활성화됩니다.
프로세스
논리 볼륨을 비활성화합니다.
lvchange --activate n <vg>/<main-lv>
# lvchange --activate n <vg>/<main-lv>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cryo stat 를 볼륨 그룹 이름으로 바꾸고 main-lv 를 캐싱이 활성화된 논리 볼륨의 이름으로 바꿉니다.
cachevol또는cachepool볼륨을 분리합니다.lvconvert --splitcache <vg>/<main-lv>
# lvconvert --splitcache <vg>/<main-lv>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 값을 바꿉니다.
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.
# lvconvert --splitcache vg/main-lv Detaching writecache already clean. Logical volume vg/main-lv writecache has been detached.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
논리 볼륨이 더 이상 연결되어 있지 않은지 확인합니다.
lvs --all --options +devices <vg> LV Attr Type Devices fastvol -wi------- linear /dev/fast-pv main-lv -wi------- linear /dev/slow-pv
# lvs --all --options +devices <vg> LV Attr Type Devices fastvol -wi------- linear /dev/fast-pv main-lv -wi------- linear /dev/slow-pvCopy to Clipboard Copied! Toggle word wrap Toggle overflow