이 조사서는 LVM(Logical Volume Manager)의 lvcreate
명령어 및 관련 옵션들에 대해 실제 사용 사례를 중심으로 설명합니다.
1. alloc
옵션
기능 설명: alloc
옵션은 논리 볼륨의 물리적 공간 할당 방식을 결정합니다.
- type
옵션 | 설명 |
---|---|
anywhere | 논리 볼륨의 공간을 물리적 볼륨의 어느 위치에나 할당할 수 있도록 허용 |
contiguous | 논리 볼륨의 공간을 물리적 볼륨의 연속적인 영역에 할당하도록 지정 |
inherit | 부모 논리 볼륨의 할당 방식을 상속받아 사용 |
normal | 기본 할당 방식 |
cling | 논리 볼륨의 공간을 현재 할당된 물리적 볼륨의 공간에 우선적으로 할당 |
cling_by_tags | 물리적 볼륨의 특정 태그를 기준으로 공간을 할당 |
2. cache
옵션
기능 설명: cache
옵션은 캐시 논리 볼륨을 설정하는 데 사용됩니다.
사용사례:
# 캐시 풀 생성
lvcreate --name cache-pool --size 50G --type cache-pool myvg
# 캐시 볼륨 생성
lvcreate --name myvolume --size 100G --type cache --cachevol myvg/cache-pool myvg
- 캐시 볼륨만 사용하는 경우는 캐시 기능을 제공하지만, 성능 향상이 제한적일 수 있습니다.
- 캐시 풀을 사용하는 경우는 캐시의 성능을 극대화할 수 있으며, 전체 시스템 성능을 크게 개선할 수 있습니다. 캐시 풀을 사용하여 자주 액세스되는 데이터를 빠르게 처리하고, 기본 저장소의 부하를 줄이는 것이 주요 장점입니다.
3. chunksize
옵션
기능 설명: chunksize
옵션은 캐시의 청크 크기를 설정합니다.
사용사례:
- 예제:
lvcreate --type cache --name cachevol --chunksize 512K --size 10G myvg
--chunksize 512K
는 캐시 청크의 크기를 512KB로 설정합니다.- 사례: 다양한 I/O 패턴에 최적화된 청크 크기를 설정하여, 웹 서버에서 작은 파일 접근 성능을 개선할 수 있습니다.
4. compression
및 deduplication
과 VDO와의 연관
기능 설명:
compression
: 데이터를 압축하여 저장 공간을 절약합니다.deduplication
: 중복된 데이터를 제거하여 저장 공간을 절약합니다.- VDO(Virtual Data Optimizer): 이러한 기술을 지원하여 저장 공간을 효율적으로 사용합니다.
사용사례:
- 압축 사용:
lvcreate --name myvolume --size 10G --compression myvg
- 사례: 파일 서버에서 저장 공간 절약을 위해 사용합니다.
- 중복 제거 사용:
lvcreate --name myvolume --size 10G --deduplication myvg
- 사례: 여러 가지 버전의 동일한 데이터 파일이 존재할 때 중복 제거로 공간을 절약합니다.
- VDO와의 사용:
- 사례: VDO는
compression
과deduplication
기능을 내장하고 있어, 데이터 백업 및 아카이빙 시스템에서 매우 효과적입니다.
- 사례: VDO는
5. lockopt
옵션
기능 설명: lockopt
는 논리 볼륨의 잠금 옵션을 설정합니다. 클러스터 환경에서 잠금 매커니즘을 변경하여 성능을 향상시킬 수 있습니다.
- type
타입 | 설명 |
---|---|
none | 기본 잠금 관리자 |
dlm | 분산 잠금 관리자로 여러 노드에서 실행되는 클러스터 환경에서 논리 볼륨에 대한 잠금을 관리합니다. |
sanlock | SAN 환경에서의 잠금을 관리하기 위한 솔루션 |
6. readahead
Number
기능 설명: readahead
는 논리 볼륨의 읽기 성능을 개선하기 위해 설정하는 미리 읽기 블록 수입니다.
사용사례:
- 예제:
lvcreate --name myvolume --size 10G --readahead 64 myvg
--readahead 64
는 64 블록을 미리 읽도록 설정합니다.- 사례: 데이터베이스나 대용량 파일 서버에서 자주 액세스하는 파일의 성능을 향상시킬 수 있습니다.
7. -T
옵션에서 --type
의 종류에 따른 stripe
설정 유무
기능 설명: --type
옵션에 따라 stripe
설정이 필요할 수 있습니다.
사용사례:
- 예제:
lvcreate -T stripe --name stripedvol --stripes 2 --size 10G myvg
--type stripe
는 데이터를 여러 물리적 볼륨에 걸쳐 분산하여 성능을 개선합니다.- 사례: 고속 성능이 필요한 서버에서
stripe
를 사용하여 I/O 성능을 향상시킬 수 있습니다.
1. --alloc contiguous
설명: 논리 볼륨의 공간을 물리적 볼륨의 연속적인 영역에 할당합니다. 이는 I/O 성능을 향상시키기 위해 연속적인 블록을 사용하여 데이터의 연속성을 보장합니다.
사용사례:
- 예제:
lvcreate --name myvolume --size 10G --alloc contiguous myvg
- 사례: 고속 데이터베이스나 대용량 파일 시스템에서 성능을 최적화하기 위해 사용됩니다. 연속적인 블록 할당은 디스크 조각화로 인한 성능 저하를 방지합니다.
2. --alloc cling
설명: 논리 볼륨의 공간을 현재 할당된 물리적 볼륨의 공간에 우선적으로 할당합니다. 이 옵션은 공간이 할당된 물리적 볼륨에 “달라붙는” 방식으로 작동합니다.
사용사례:
- 예제:
lvcreate --name myvolume --size 10G --alloc cling myvg
- 사례: 이미 사용 중인 물리적 볼륨에 추가적인 공간을 할당할 때 유용합니다. 예를 들어, 특정 물리적 볼륨에 데이터를 집중시켜 I/O 성능을 최적화할 수 있습니다.
3. --alloc cling_by_tags
설명: cling
과 유사하지만, 이 옵션은 물리적 볼륨의 특정 태그를 기준으로 공간을 할당합니다. 물리적 볼륨에 설정된 태그에 따라 할당 우선 순위를 조정합니다.
사용사례:
- 예제:
lvcreate --name myvolume --size 10G --alloc cling_by_tags myvg
- 사례: 특정 태그가 설정된 물리적 볼륨에 공간을 집중적으로 할당하여, 태그가 관련된 특정 성능 요구 사항을 충족할 수 있습니다.
4. --alloc normal
설명: 기본 할당 방식으로, --alloc anywhere
와 유사하지만, 더 많은 기본 설정과 정책이 적용될 수 있습니다. 연속성이나 특정 할당 방식을 보장하지는 않습니다.
사용사례:
- 예제:
lvcreate --name myvolume --size 10G --alloc normal myvg
- 사례: 특정 성능 요구 사항이 없는 일반적인 경우에 사용됩니다. 일반적인 파일 서버나 데이터 저장소에서 공간을 유연하게 할당할 때 유용합니다.
5. --alloc anywhere
설명: 논리 볼륨의 공간을 물리적 볼륨의 어느 위치에나 할당할 수 있도록 허용합니다. 가장 유연한 할당 방식을 제공합니다.
사용사례:
- 예제:
lvcreate --name myvolume --size 10G --alloc anywhere myvg
- 사례: 공간이 제약된 환경에서 자주 사용됩니다. 예를 들어, 물리적 볼륨이 조각화된 경우에도 공간을 유연하게 활용할 수 있습니다.
6. --alloc inherit
설명: 부모 논리 볼륨의 할당 방식을 상속받아 자식 논리 볼륨의 공간을 할당합니다. 이는 부모와 동일한 할당 정책을 유지합니다.
사용사례:
- 예제:
lvcreate --name myvolume --size 10G --alloc inherit myvg
- 사례: 여러 논리 볼륨이 동일한 할당 방식이 필요한 경우에 사용됩니다. 예를 들어, 동일한 성능 요구 사항을 가진 여러 데이터베이스 논리 볼륨에서 상속을 통해 일관성을 유지할 수 있습니다.
참고
https://manpages.org/lvm/8
게이트웨이 On-promise 제품 팀에서 시스템 모니터링 및 관리를 쉽게 다가갈 수 있도록 하기 위한 업무를 하고 있습니다.
Contact: lhjnano@gmail.com