2.3. LVM 논리 볼륨
LVM에서 볼륨 그룹은 논리 볼륨으로 나뉩니다. 다음 섹션에서는 다양한 유형의 논리 볼륨에 대해 설명합니다.
2.3.1. 선형 볼륨
선형 볼륨은 하나 이상의 물리 볼륨에서 하나의 논리 볼륨으로 공간을 집계합니다. 예를 들어, 두 개의 60GB 디스크가 있는 경우 120GB 논리 볼륨을 생성할 수 있습니다. 물리적 스토리지가 연결됩니다.
선형 볼륨을 만들면 물리 확장 영역의 범위를 순서대로 논리 볼륨 영역에 할당합니다. 예를 들어 그림 2.2. “범위 매핑” 논리 확장 영역 1에서 99에 표시된 것처럼 논리 확장 영역 100을 198에 매핑하면 두 번째 물리 볼륨에 매핑할 수 있습니다. 애플리케이션의 관점에서는 198개의 확장 영역 크기의 장치가 한 개 있습니다.
그림 2.2. 범위 매핑
[D]
논리 볼륨을 구성하는 물리 볼륨은 크기가 같을 필요가 없습니다. 그림 2.3. “Unequal 물리 볼륨이 있는 선형 볼륨” 는 물리 확장 영역 크기가 4MB인
VG1
볼륨 그룹을 표시합니다. 이 볼륨 그룹에는 PV1
및 PV2
라는 두 개의 물리 볼륨이 포함되어 있습니다. 물리 볼륨은 확장 크기이므로 4MB 단위로 나뉩니다. 이 예에서 PV1
은 200개의 확장 영역 크기(800MB)이고 PV2
는 크기가 100개(400MB)입니다. 1에서 300개의 확장 영역(MB에서 1200MB) 사이의 모든 크기를 만들 수 있습니다. 이 예에서 LV1
이라는 선형 볼륨은 크기가 300개입니다.
그림 2.3. Unequal 물리 볼륨이 있는 선형 볼륨
[D]
물리 확장 영역 풀에서 필요한 크기에 대해 두 개 이상의 선형 논리 볼륨을 구성할 수 있습니다. 그림 2.4. “다중 논리 볼륨” 는 그림 2.3. “Unequal 물리 볼륨이 있는 선형 볼륨” 와 동일한 볼륨 그룹을 표시하지만, 이 경우 두 개의 논리 볼륨이 볼륨 그룹에서 분리되었습니다.
LV1
은 크기(1000MB) 및 LV2
의 크기(200MB) 및 50개의 확장 영역입니다.
그림 2.4. 다중 논리 볼륨
[D]
2.3.2. 제거된 논리 볼륨
LVM 논리 볼륨에 데이터를 쓸 때 파일 시스템은 기본 물리 볼륨에 걸쳐 데이터를 배치합니다. 스트라이핑된 논리 볼륨을 생성하여 데이터를 물리 볼륨에 쓰는 방식을 제어할 수 있습니다. 대규모 순차적 읽기 및 쓰기의 경우 데이터 I/O의 효율성을 향상시킬 수 있습니다.
스트리핑은 라운드 로빈 방식으로 미리 정해진 수의 물리 볼륨에 데이터를 작성하여 성능을 향상시킵니다. 스트라이핑을 통해 I/O를 병렬로 수행할 수 있습니다. 경우에 따라 스트라이프의 추가 물리 볼륨에 대해 거의 선형 성능이 저하될 수 있습니다.
다음 그림에서는 세 개의 물리 볼륨에 걸쳐 있는 데이터를 보여줍니다. 이 그림에서 다음을 수행합니다.
- 데이터의 첫 번째 스트라이프는 첫 번째 물리 볼륨에 기록됩니다.
- 데이터의 두 번째 스트라이프는 두 번째 물리 볼륨에 기록됩니다.
- 세 번째 데이터 스트라이프는 세 번째 물리 볼륨에 기록됩니다.
- 데이터의 네 번째 스트라이프는 첫 번째 물리 볼륨에 기록됩니다.
스트라이핑된 논리 볼륨에서 스트라이프 크기는 확장 영역 크기를 초과할 수 없습니다.
그림 2.5. 세 개의 PV 간 데이터 제거
[D]
줄인 논리 볼륨은 다른 장치 집합을 첫 번째 세트의 끝에 연결하여 확장할 수 있습니다. 그러나 스트라이핑된 논리 볼륨을 확장하려면 스트라이프를 지원하기 위해 기본 물리 볼륨 세트에 충분한 여유 공간이 있어야 합니다. 예를 들어 전체 볼륨 그룹을 사용하는 양방향 스트라이프가 있는 경우 볼륨 그룹에 단일 물리 볼륨을 추가하면 스트라이프를 확장할 수 없습니다. 대신 볼륨 그룹에 두 개 이상의 물리 볼륨을 추가해야 합니다. 스트라이핑된 볼륨 확장에 대한 자세한 내용은 4.4.17절. “스트립 볼륨 확장” 을 참조하십시오.
2.3.3. RAID 논리 볼륨
LVM은 RAID0/1/4/5/6/10을 지원합니다. LVM RAID 볼륨에는 다음과 같은 특징이 있습니다.
- LVM을 통해 생성 및 관리하는 RAID 논리 볼륨은 MD 커널 드라이버를 활용합니다.
- RAID1 이미지는 일시적으로 배열에서 분할하고 나중에 다시 배열로 병합할 수 있습니다.
- LVM RAID 볼륨은 스냅샷을 지원합니다.
RAID 논리 볼륨 생성에 대한 자세한 내용은 4.4.3절. “RAID 논리 볼륨” 을 참조하십시오.
참고
RAID 논리 볼륨은 클러스터가 인식되지 않습니다. RAID 논리 볼륨은 한 컴퓨터에서만 생성하고 활성화할 수 있지만 두 개 이상의 컴퓨터에서 동시에 활성화할 수 없습니다.
2.3.4. 씬 프로비저닝된 논리 볼륨(Thin Volumes)
논리 볼륨은 씬 프로비저닝할 수 있습니다. 이를 통해 사용 가능한 확장 영역보다 큰 논리 볼륨을 만들 수 있습니다. 씬 프로비저닝을 사용하면 씬 풀이라는 여유 공간 스토리지 풀을 관리할 수 있으며, 애플리케이션에 필요할 때 임의의 수의 장치에 할당할 수 있습니다. 그런 다음 애플리케이션이 논리 볼륨에 실제로 쓸 때 나중에 할당하기 위해 씬 풀에 바인딩될 수 있는 장치를 생성할 수 있습니다. 스토리지 공간을 비용 효율적으로 할당하는 데 필요할 때 씬 풀을 동적으로 확장할 수 있습니다.
참고
클러스터의 노드에서는 씬 볼륨이 지원되지 않습니다. thin 풀과 모든 씬 볼륨은 하나의 클러스터 노드에서만 독점적으로 활성화되어야 합니다.
스토리지 관리자는 씬 프로비저닝을 사용하여 물리적 스토리지를 과다 할당할 수 있으므로 추가 스토리지를 구매할 필요가 없는 경우가 많습니다. 예를 들어, 10명의 사용자가 애플리케이션에 대해 100GB 파일 시스템을 요청하는 경우 스토리지 관리자는 각 사용자에 대해 100GB 파일 시스템으로 표시되는 항목을 생성할 수 있지만 필요한 경우에만 사용되는 실제 스토리지에서는 지원되지 않습니다.
참고
씬 프로비저닝을 사용할 때는 스토리지 관리자가 스토리지 풀을 모니터링하고 용량을 늘리기 시작하는 것이 중요합니다.
사용 가능한 모든 공간을 사용할 수 있도록 LVM에서 데이터 삭제 기능을 지원합니다. 이를 통해 삭제한 파일 또는 다른 블록 범위에서 이전에 사용한 공간을 다시 사용할 수 있습니다.
씬 볼륨 생성에 대한 자세한 내용은 4.4.5절. “씬 프로비저닝된 논리 볼륨 생성” 에서 참조하십시오.
씬 볼륨은 여러 가상 장치가 씬 풀에서 동일한 데이터를 공유할 수 있도록 새로운 COW(Copy-On-Write) 스냅샷 논리 볼륨을 구현할 수 있도록 지원합니다. 씬 스냅샷 볼륨에 대한 자세한 내용은 2.3.6절. “씬 프로비저닝된 스냅샷 볼륨” 에서 참조하십시오.
2.3.5. 스냅샷 볼륨
LVM 스냅샷 기능을 사용하면 서비스 중단 없이 특정 즉시 장치의 가상 이미지를 생성할 수 있습니다. 스냅샷을 만든 후 원래 장치(원본)를 변경하면 스냅샷 기능을 통해 장치의 상태를 재구성할 수 있도록 변경 전과 마찬가지로 변경된 데이터 영역을 복사합니다.
참고
LVM은 씬 프로비저닝된 스냅샷을 지원합니다. 씬 프로비저닝된 스냅샷 볼륨에 대한 자세한 내용은 2.3.6절. “씬 프로비저닝된 스냅샷 볼륨” 을 참조하십시오.
참고
LVM 스냅샷은 클러스터의 노드 전반에서 지원되지 않습니다. 클러스터형 볼륨 그룹에서 스냅샷 볼륨을 생성할 수 없습니다.
스냅샷은 스냅샷을 만든 후에 변경된 데이터 영역만 복사하므로 스냅샷 기능에는 최소한의 스토리지가 필요합니다. 예를 들어 거의 업데이트되지 않는 오리진을 사용하면 원본 용량의 3 ~ 3 %가 스냅샷을 유지하기에 충분합니다.
참고
파일 시스템의 스냅샷 복사본은 가상 복사본이며, 파일 시스템의 실제 미디어 백업이 아닙니다. 스냅샷은 백업 프로시저를 대체하는 기능을 제공하지 않습니다.
스냅샷의 크기는 원본 볼륨에 대한 변경 사항을 저장하기 위해 별도로 설정된 공간 크기를 제어합니다. 예를 들어 스냅샷을 만든 후 원본을 완전히 덮어쓰는 경우 스냅샷이 변경 사항을 유지하는 원본 볼륨만큼 커야 합니다. 예상되는 변경 수준에 따라 스냅샷의 차원이 필요합니다. 예를 들어
/usr
과 같은 읽기 볼륨 스냅샷의 수명이 짧은 스냅샷에는 /home
과 같이 더 많은 쓰기 수가 표시되는 볼륨의 긴 스냅샷보다 적은 공간이 필요합니다.
스냅샷이 완전히 실행되면 원본 볼륨에서 변경 사항을 더 이상 추적할 수 없으므로 스냅샷이 유효하지 않습니다. 스냅샷의 크기를 정기적으로 모니터링해야 합니다. 그러나 스냅샷은 완전히 재구성할 수 있으므로 스토리지 용량이 있으면 스냅샷 볼륨의 크기를 늘려 드롭되지 않도록 할 수 있습니다. 반대로 스냅샷 볼륨이 필요한 것보다 크면 볼륨의 크기를 줄여 다른 논리 볼륨에 필요한 공간을 확보할 수 있습니다.
스냅샷 파일 시스템을 생성하면 원본에 대한 전체 읽기 및 쓰기 액세스가 가능합니다. 스냅샷의 청크가 변경되면 해당 청크가 표시되고 원래 볼륨에서 복사되지 않습니다.
스냅샷 기능에는 다음과 같은 몇 가지 용도가 있습니다.
- 일반적으로 데이터를 지속적으로 업데이트하는 라이브 시스템을 중단하지 않고 논리 볼륨에서 백업을 수행해야 하는 경우 스냅샷이 수행됩니다.
- 스냅샷 파일 시스템에서 fsck 명령을 실행하여 파일 시스템의 무결성을 확인하고 원래 파일 시스템에 파일 시스템 복구가 필요한지 여부를 확인할 수 있습니다.
- 스냅샷은 읽기/쓰기이므로 스냅샷을 만들고 스냅샷에 대한 테스트를 실행하여 프로덕션 데이터에 대해 애플리케이션을 테스트하여 실제 데이터를 그대로 둘 수 있습니다.
- Red Hat Virtualization과 함께 사용할 LVM 볼륨을 생성할 수 있습니다. LVM 스냅샷을 사용하여 가상 게스트 이미지의 스냅샷을 생성할 수 있습니다. 이러한 스냅샷을 사용하면 기존 게스트를 쉽게 수정하거나 추가 스토리지를 최소화하여 새 게스트를 만들 수 있습니다. Red Hat Virtualization으로 LVM 기반 스토리지 풀 생성에 대한 자세한 내용은 가상화 관리 가이드 를 참조하십시오.
스냅샷 볼륨 생성에 대한 자세한 내용은 4.4.6절. “스냅샷 볼륨 생성” 을 참조하십시오.
lvconvert 명령의
--merge
옵션을 사용하여 스냅샷을 원본 볼륨에 병합할 수 있습니다. 데이터 또는 파일이 손실되었거나 시스템을 이전 상태로 복원해야 하는 경우 이 기능에 사용하는 기능 중 하나는 시스템 롤백을 수행하는 것입니다. 스냅샷 볼륨을 병합하면 결과 논리 볼륨의 이름, 마이너 번호, UUID가 제거되고 병합된 스냅샷이 제거됩니다. 이 옵션 사용에 대한 자세한 내용은 4.4.9절. “스냅샷 볼륨 병합” 을 참조하십시오.
2.3.6. 씬 프로비저닝된 스냅샷 볼륨
Red Hat Enterprise Linux는 씬 프로비저닝된 스냅샷 볼륨을 지원합니다. 씬 스냅샷 볼륨을 사용하면 여러 가상 장치를 동일한 데이터 볼륨에 저장할 수 있습니다. 이를 통해 관리를 단순화하고 스냅샷 볼륨 간에 데이터를 공유할 수 있습니다.
모든 LVM 스냅샷 볼륨 및 모든 씬 볼륨에 대해 씬 스냅샷 볼륨은 클러스터의 노드에서 지원되지 않습니다. 스냅샷 볼륨은 하나의 클러스터 노드에서만 독점적으로 활성화되어야 합니다.
씬 스냅샷 볼륨은 다음과 같은 이점을 제공합니다.
- 씬 스냅샷 볼륨은 동일한 원본 볼륨의 스냅샷이 여러 개인 경우 디스크 사용량을 줄일 수 있습니다.
- 동일한 원본의 스냅샷이 여러 개인 경우 원본에 쓰기를 수행하면 하나의 COW 작업이 데이터를 보존합니다. 원본의 스냅샷 수를 늘리면 큰 속도 저하가 발생하지 않습니다.
- 씬 스냅샷 볼륨은 다른 스냅샷의 논리 볼륨 원본으로 사용할 수 있습니다. 이를 통해 임의 수준의 재귀 스냅샷(스냅샷 스냅샷의 하위 집합)을 사용할 수 있습니다.
- 씬 논리 볼륨의 스냅샷도 씬 논리 볼륨을 생성합니다. 이 경우 COW 작업이 필요하거나 스냅샷 자체를 작성할 때까지 데이터 공간이 사용되지 않습니다.
- 씬 스냅샷 볼륨은 원본으로 활성화할 필요가 없으므로 사용자는 원본의 비활성 스냅샷 볼륨만 있는 동안만 사용할 수 있습니다.
- 씬 프로비저닝된 스냅샷 볼륨의 원본을 삭제하면 해당 원본 볼륨의 각 스냅샷이 씬 프로비저닝된 볼륨이 됩니다. 즉, 원본 볼륨과 스냅샷을 병합하는 대신 원본 볼륨을 삭제한 다음 해당 독립 볼륨을 새 스냅샷의 원본 볼륨으로 사용하여 씬 프로비저닝된 새 스냅샷을 만들 수 있습니다.
씬 스냅샷 볼륨을 사용하는 데는 많은 이점이 있지만 이전 LVM 스냅샷 볼륨 기능이 필요에 따라 더 적합할 수 있는 몇 가지 사용 사례가 있습니다.
- 씬 풀의 청크 크기를 변경할 수 없습니다. 씬 풀에 큰 청크 크기(예: 1MB)가 있고 큰 청크 크기가 효율적이지 않은 청크 크기가 필요한 경우 이전 스냅샷 기능을 사용하도록 선택할 수 있습니다.
- 씬 스냅샷 볼륨의 크기를 제한할 수 없습니다. 스냅샷에서는 필요한 경우 씬 풀의 모든 공간을 사용합니다. 이것은 귀하의 필요에 적합하지 않을 수 있습니다.
일반적으로 사용할 스냅샷 형식을 결정할 때 사이트의 특정 요구 사항을 고려해야 합니다.
참고
씬 프로비저닝을 사용할 때는 스토리지 관리자가 스토리지 풀을 모니터링하고 용량을 늘리기 시작하는 것이 중요합니다. 씬 프로비저닝된 스냅샷 볼륨에 대한 정보를 구성 및 표시하는 방법에 대한 자세한 내용은 4.4.7절. “씬 프로비저닝된 스냅샷 볼륨 생성” 을 참조하십시오.
2.3.7. 캐시 볼륨
Red Hat Enterprise Linux 7.1 릴리스에서 LVM은 빠른 블록 장치(예: SSD 드라이브)를 더 큰 느린 블록 장치에 대한 나중 쓰기 또는 쓰기 캐시로 사용할 수 있도록 지원합니다. 사용자는 캐시 논리 볼륨을 생성하여 기존 논리 볼륨의 성능을 개선하거나 크고 느린 장치와 결합된 작고 빠른 장치로 구성된 새 캐시 논리 볼륨을 생성할 수 있습니다.
LVM 캐시 볼륨 생성에 대한 자세한 내용은 4.4.8절. “LVM 캐시 논리 볼륨 생성” 을 참조하십시오.