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입니다. 데이터 및 메타데이터에 대해 별도의 디스크를 구성할 수 없습니다.
cachevol
은dm-cache
또는dm-writecache
에서만 사용할 수 있습니다.
연결된 모든 LV는 동일한 볼륨 그룹에 있어야 합니다.
일반적으로 캐시된 데이터를 보유하는 더 빠르고 작은 LV와 기본 논리 볼륨(LV)을 결합할 수 있습니다. 빠른 LV는 SSD 드라이브와 같은 빠른 블록 장치에서 생성됩니다. 논리 볼륨에 대한 캐싱을 활성화하면 LVM에서 원래 볼륨의 이름을 바꾸고 숨기고 원래 논리 볼륨으로 구성된 새 논리 볼륨을 제공합니다. 새 논리 볼륨의 구성은 캐싱 방법 및 cachevol
또는 cachepool
옵션을 사용하는지에 따라 다릅니다.
cachevol
및 cachepool
옵션은 캐싱 구성 요소의 배치에 대해 다양한 수준의 제어 권한을 노출합니다.
-
cachevol
옵션을 사용하면 더 빠른 장치는 캐시된 데이터 블록 복사본과 캐시 관리를 위한 메타데이터를 모두 저장합니다. cachepool
옵션을 사용하면 별도의 장치가 데이터 블록의 캐시된 복사본과 캐시를 관리하기 위한 메타데이터를 저장할 수 있습니다.dm-writecache
방법은cachepool
과 호환되지 않습니다.
모든 구성에서 LVM은 모든 캐싱 구성 요소를 그룹화하는 단일 결과 장치를 노출합니다. 결과 장치의 이름은 원본 느린 논리 볼륨과 동일합니다.
추가 리소스
-
시스템의
lvmcache(7)
도움말 페이지 - 씬 프로비저닝된 볼륨 생성 및 관리(볼륨)
67.10.3. 논리 볼륨의 dm-cache 캐싱 활성화
이 절차에서는 dm-cache
방법을 사용하여 논리 볼륨에서 일반적으로 사용되는 데이터의 캐싱을 활성화합니다.
사전 요구 사항
-
dm-cache
를 사용하여 속도를 높이려는 느린 논리 볼륨이 시스템에 존재합니다. - 느린 논리 볼륨이 포함된 볼륨 그룹에는 빠른 블록 장치에 사용되지 않은 물리 볼륨도 포함되어 있습니다.
절차
빠른 장치에
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.
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
를 사용하여 속도를 높이려는 느린 논리 볼륨이 시스템에 존재합니다. - 느린 논리 볼륨이 포함된 볼륨 그룹에는 빠른 블록 장치에 사용되지 않은 물리 볼륨도 포함되어 있습니다.
절차
빠른 장치에
cachepool
볼륨을 생성합니다.# lvcreate --type cache-pool --size <cachepool-size> --name <fastpool> <vg /dev/fast>
다음 값을 바꿉니다.
cachepool-size
-
캐시 풀
의 크기(예:5G
) fastpool
-
cachepool
볼륨의 이름 vg
- 볼륨 그룹 이름
/dev/fast
빠른 블록 장치의 경로(예:
/dev/sdf
1)참고cache-pool을 생성할 때
--poolmetadata
옵션을 사용하여 풀 메타데이터의 위치를 지정할 수 있습니다.예 67.5.
cachepool
볼륨 생성# lvcreate --type cache-pool --size 5G --name fastpool vg /dev/sde Logical volume "fastpool" created.
캐시 풀
을 기본 논리 볼륨에 연결하여 캐싱을 시작합니다.# 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
를 사용하여 속도를 높이려는 느린 논리 볼륨이 시스템에 존재합니다. - 느린 논리 볼륨이 포함된 볼륨 그룹에는 빠른 블록 장치에 사용되지 않은 물리 볼륨도 포함되어 있습니다.
- 느린 논리 볼륨이 활성 상태인 경우 비활성화합니다.
프로세스
느린 논리 볼륨이 활성 상태인 경우 비활성화합니다.
# lvchange --activate n <vg>/<main-lv>
다음 값을 바꿉니다.
vg
- 볼륨 그룹 이름
main-lv
- 느린 논리 볼륨의 이름
빠른 장치에 비활성화된
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.
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.
결과 논리 볼륨을 활성화합니다.
# 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
캐싱을 비활성화합니다.
사전 요구 사항
- 논리 볼륨에서 캐싱이 활성화됩니다.
프로세스
논리 볼륨을 비활성화합니다.
# lvchange --activate n <vg>/<main-lv>
Cryo stat 를 볼륨 그룹 이름으로 바꾸고 main-lv 를 캐싱이 활성화된 논리 볼륨의 이름으로 바꿉니다.
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)
도움말 페이지