4.2. 논리 볼륨 생성
LVM은 물리적 계층을 필요에 따라 생성하고 조정할 수 있는 논리 볼륨으로 추상화하여 디스크 스토리지를 처리할 수 있는 유연한 접근 방식을 제공합니다.
4.2.1. 선형(thick) 논리 볼륨 생성
선형 논리 볼륨(LV)을 사용하면 여러 물리적 스토리지 단위를 하나의 가상 스토리지 공간에 병합할 수 있습니다. 선형 LV를 쉽게 확장하거나 줄여 데이터 요구 사항을 충족할 수 있습니다.
사전 요구 사항
- 관리 액세스.
-
lvm2
패키지가 설치되어 있습니다. - 볼륨 그룹이 생성됩니다. 자세한 내용은 LVM 볼륨 그룹 생성을 참조하십시오.
절차
볼륨 그룹의 이름과 크기를 나열합니다.
# vgs -o vg_name,vg_size VG VSize VolumeGroupName 30.75g
선형 LV를 만듭니다.
# lvcreate --name LogicalVolumeName --size VolumeSize VolumeGroupName
LogicalVolumeName 을 LV의 이름으로 바꿉니다. VolumeSize 를 LV의 크기로 바꿉니다. 크기 접미사가 제공되지 않은 경우 명령은 기본적으로 MB로 설정됩니다. VolumeGroupName 을 볼륨 그룹의 이름으로 교체합니다.
검증
선형 LV가 생성되었는지 확인합니다.
# lvs -o lv_name,seg_type LV Type LogicalVolumeName linear
추가 리소스
-
Cryo
stats(8)
,lvs(8)
,lvcreate(8)
도움말 페이지
4.2.2. 제거된 논리 볼륨 생성
제거된 논리 볼륨(LV)을 사용하면 여러 PV(물리 볼륨)에 데이터를 배포할 수 있으므로 여러 디스크의 대역폭을 동시에 사용하여 읽기 및 쓰기 속도를 높일 수 있습니다.
스트라이핑된 LV를 만들 때는 스트라이프 번호와 크기를 고려해야 합니다. 스트라이프 번호는 데이터가 배포되는 PV 수입니다. 스트라이프 번호를 늘리면 동시에 여러 디스크를 사용하여 성능을 향상시킬 수 있습니다. 스트라이프 크기는 다음 디스크로 이동하기 전에 설정된 스트라이프 세트의 각 디스크에 기록된 데이터 청크의 크기이며 킬로바이트(KB)로 지정됩니다. 최적의 스트라이프 크기는 워크로드 및 파일 시스템 블록 크기에 따라 다릅니다. 기본값은 64KB이며 조정할 수 있습니다.
사전 요구 사항
- 관리 액세스.
절차
볼륨 그룹의 이름과 크기를 나열합니다.
# vgs -o vg_name,vg_size VG VSize VolumeGroupName 30.75g
제거된 LV를 생성합니다.
# lvcreate --stripes NumberOfStripes --stripesize StripeSize --size LogicalVolumeSize --name LogicalVolumeName VolumeGroupName
NumberOfStripes 를 스트라이프 수로 바꿉니다. StripeSize 를 킬라이프 크기(KB)로 바꿉니다.
--stripesize
는 필수 옵션이 아닙니다. 스트라이프 크기를 지정하지 않으면 기본값은 64KB입니다. LogicalVolumeName 을 LV의 이름으로 바꿉니다. VolumeGroupName 을 볼륨 그룹의 이름으로 교체합니다.
검증
제거된 LV가 생성되었는지 확인합니다.
# lvs -o lv_name,seg_type LV Type LogicalVolumeName striped
추가 리소스
-
Cryo
stats(8)
lvs(8)
,lvcreate(8)
도움말 페이지
4.2.3. RAID 논리 볼륨 생성
RAID 논리 볼륨을 사용하면 중복 및 성능을 위해 여러 디스크를 사용할 수 있습니다. LVM은 RAID0, RAID1, RAID4, RAID5, RAID6, RAID10을 비롯한 다양한 RAID 수준을 지원합니다.
LVM을 사용하면 스트라이핑된 RAID(RAID0, RAID4, RAID5, RAID6), 미러링된 RAID(RAID1) 또는 둘 다의 조합을 생성할 수 있습니다.
RAID 4, RAID 5 및 RAID 6은 디스크 장애 발생 시 손실된 정보를 재구성하는 데 사용할 수 있는 패리티 데이터를 저장하여 내결함성을 제공합니다.
RAID LV를 생성할 때 각 스트라이프를 별도의 PV에 배치합니다. 볼륨 그룹(VG)에 있어야 하는 PV 수와 동일한 스트라이프 수입니다.
RAID 수준 | 유형 | 패리티 | 최소 장치 수 | 최소 스트라이프 번호 |
---|---|---|---|---|
RAID0 | 스트라이핑 | 없음 | 2 | 2 |
RAID1 | 미러링 | 없음 | 2 | - |
RAID4 | 스트라이핑 | 첫 번째 장치를 사용하여 패리티 저장 | 3 | 2 |
RAID5 | 스트라이핑 | 추가 장치를 사용하여 패리티 저장 | 3 | 2 |
RAID6 | 스트라이핑 | 두 개의 추가 장치를 사용하여 패리티 저장 | 5 | 3 |
RAID10 | 제거 및 미러링 | 없음 | 4 | 2 |
사전 요구 사항
- 관리 액세스.
절차
볼륨 그룹의 이름과 크기를 나열합니다.
# vgs -o vg_name,vg_size VG VSize VolumeGroupName 30.75g
RAID LV를 생성합니다.
제거된 raid를 생성하려면 다음을 사용합니다.
# lvcreate --type raidlevel --stripes NumberOfStripes --stripesize StripeSize --size Size --name LogicalVolumeName VolumeGroupName
수준을 RAID 수준 0, 4, 5 또는 6으로 바꿉니다. NumberOfStripes 를 스트라이프 수로 바꿉니다. StripeSize 를 킬라이프 크기(KB)로 바꿉니다. Size 를 LV의 크기로 바꿉니다. LogicalVolumeName 을 LV의 이름으로 바꿉니다.
미러링된 RAID를 생성하려면 다음을 사용합니다.
# lvcreate --type raid1 --mirrors MirrorsNumber --size Size --name LogicalVolumeName VolumeGroupName
MirrorsNumber 를 미러 수로 바꿉니다. Size 를 LV의 크기로 바꿉니다. LogicalVolumeName 을 LV의 이름으로 바꿉니다.
미러링 및 스트라이핑된 RAID를 생성하려면 다음을 사용합니다.
# lvcreate --type raid10 --mirrors MirrorsNumber --stripes NumberOfStripes --stripesize StripeSize --size Size --name LogicalVolumeName VolumeGroupName
MirrorsNumber 를 미러 수로 바꿉니다. NumberOfStripes 를 스트라이프 수로 바꿉니다. StripeSize 를 킬라이프 크기(KB)로 바꿉니다. Size 를 LV의 크기로 바꿉니다. LogicalVolumeName 을 LV의 이름으로 바꿉니다.
검증
RAID LV가 생성되었는지 확인합니다.
# lvs -o lv_name,seg_type LV Type LogicalVolumeName raid0
추가 리소스
-
lvmraid(7)
,Cryostats(8)
,lvs(8)
,lvcreate(8)
도움말 페이지
4.2.4. thin 논리 볼륨 생성
씬 프로비저닝에서는 볼륨 그룹(VG)의 물리 확장 영역(PE)이 할당되어 특정 물리 크기가 있는 씬 풀을 생성합니다. 그런 다음 LV(논리 볼륨)는 풀의 물리 용량에 국한되지 않고 가상 크기를 기반으로 이 씬 풀에서 할당됩니다. 이를 통해 씬 풀의 실제 크기를 초과하여 모든 씬 LV의 집합적인 가상 크기가 씬 풀의 물리적 용량을 초과하면 씬 풀의 실제 크기를 초과할 수 있습니다. 따라서 공간과 중단이 발생하지 않도록 논리 및 물리적 사용을 모두 모니터링하는 것이 중요합니다.
씬 프로비저닝은 공간을 할당하고 초기 비용을 낮추고 리소스 사용률을 개선하여 스토리지 효율성을 최적화합니다. 그러나 thin LV를 사용하는 경우 다음과 같은 단점이 있습니다.
- 부적절한 삭제 처리는 사용되지 않는 스토리지 공간의 릴리스를 차단하여 시간이 지남에 따라 공간을 완전히 할당할 수 있습니다.
- 쓰기(CoW) 작업의 복사는 스냅샷을 사용하여 파일 시스템에서 느려질 수 있습니다.
- 데이터 블록은 여러 파일 시스템 간에 혼합되어 임의 액세스 제한이 있을 수 있습니다.
사전 요구 사항
- 관리 액세스.
- 물리 볼륨이 생성되어 있습니다. 자세한 내용은 LVM 물리 볼륨 생성 을 참조하십시오.
- 볼륨 그룹을 생성했습니다. 자세한 내용은 LVM 볼륨 그룹 생성을 참조하십시오.
- 논리 볼륨을 생성했습니다. 자세한 내용은 논리 볼륨 생성 을 참조하십시오.
절차
볼륨 그룹의 이름과 크기를 나열합니다.
# vgs -o vg_name,vg_size VG VSize VolumeGroupName 30.75g
씬 풀을 생성합니다.
# lvcreate --type thin-pool --size PoolSize --name ThinPoolName VolumeGroupName
PoolSize 를 thin pool에서 사용할 수 있는 최대 디스크 공간으로 바꿉니다. ThinPoolName 을 thin 풀의 이름으로 바꿉니다. VolumeGroupName 을 볼륨 그룹의 이름으로 교체합니다.
thin LV를 만듭니다.
# lvcreate --type thin --virtualsize MaxVolumeSize --name ThinVolumeName --thinpool ThinPoolName VolumeGroupName
MaxVolumeSize 를 씬 풀 내에서 볼륨의 최대 크기로 바꿉니다. ThinPoolName 을 thin 풀의 이름으로 바꿉니다. VolumeGroupName 을 볼륨 그룹의 이름으로 교체합니다.
참고동일한 씬 풀 내에 다른 thin LV를 생성할 수 있습니다.
검증
thin LV가 생성되었는지 확인합니다.
# lvs -o lv_name,seg_type LV Type ThinPoolName thin-pool ThinVolumeName thin
추가 리소스
-
lvs(8)
,lvcreate(8)
도움말 페이지
4.2.5. VDO 논리 볼륨 생성
VDO 논리 볼륨(LV)은 VDO(Virtual Data Optimizer) 기술을 사용하여 스토리지 효율성을 향상시킵니다. VDO LVs에는 가상 크기와 물리적 크기가 모두 있습니다. 가상 크기는 사용자 및 애플리케이션에 제공되는 총 스토리지 양을 나타냅니다. 물리적 크기는 VG에서 할당되고 VDO 풀에서 사용하는 실제 스토리지의 실제 양입니다.
VDO LV의 가상 크기는 일반적으로 VDO 풀의 물리적 크기보다 크므로 과도하게 프로비저닝됩니다. VDO 풀의 물리적 공간을 과도하게 프로비저닝하므로 필요한 경우 적극적으로 모니터링 및 확장해야 합니다.
VDO LV 및 VDO 풀은 쌍으로 생성되며 항상 쌍으로 존재합니다.
사전 요구 사항
- 관리 액세스.
절차
볼륨 그룹의 이름과 크기를 나열합니다.
# vgs -o vg_name,vg_size VG VSize VolumeGroupName 30.75g
VDO LV를 생성합니다.
# lvcreate --type vdo --virtualsize VolumeSize --size PhysicalPoolSize --name VDOVolumeName --vdopool VDOPoolName VolumeGroupName
VolumeSize 를 볼륨의 크기로 바꿉니다. PhysicalPoolSize 를 풀의 크기로 바꿉니다. VDOVolumeName 을 VDO 볼륨의 이름으로 바꿉니다. VDOPoolName 을 VDO 풀의 이름으로 바꿉니다. VolumeGroupName 을 볼륨 그룹의 이름으로 교체합니다.
검증
VDO LV가 생성되었는지 확인합니다.
# lvs -o name,seg_type,size LV Type LSize VDOPoolName vdo-pool 5.00g VDOVolumeName vdo 5.00g
추가 리소스
-
Cryo
stats(8)
,lvs(8)
,lvcreate(8)
도움말 페이지