실행
태스크 #12951
여러 볼륨 그룹을 사용하는 경우 csi-driver-lvm 시나리오 검증
발견 버전:
반영 버전:
난이도:
쉬움
중요도:
중
조력자:
회사:
연락처:
점수:
0.00
설명
목표¶
- 현재 csi-driver-lvm 은 단일 볼륨을 제어하는 방식으로 가이드하고 있다
- 여러 볼륨 그룹을 사용하는 경우 storageclass 와 csi-driver-lvm 을 어떤 식으로 구성해야 가능한지 가이드를 만들고, 그에 따른 테스트를 진행하여 검증한다.
다중 csi-driver-lvm 설치¶
다중 설치 가능성¶
csi-driver-lvm을 여러 개 설치하여 VG를 나누는 방향으로 운영 가능합니다.
설치 방법 (namespace별)¶
# Namespace 1 설치
kubectl create namespace storage-1
helm install csi-driver-lvm-1 \
--namespace storage-1 \
--set lvm.storageVG='VG1' \
--set lvm.storageVIP='10.0.24.70' \
--set lvm.driverName='lvm.csi.gms.io1' \
--set lvm.storageClassStub='csi-driver-lvm-1' \
./charts/csi-driver-lvm
# Namespace 2 설치
kubectl create namespace storage-2
helm install csi-driver-lvm-2 \
--namespace storage-2 \
--set lvm.storageVG='VG2' \
--set lvm.storageVIP='10.0.24.71' \
--set lvm.driverName='lvm.csi.gms.io2' \
--set lvm.storageClassStub='csi-driver-lvm-2' \
./charts/csi-driver-lvm
9.3 생성되는 StorageClass¶
| 항목 | csi-driver-lvm-1 | csi-driver-lvm-2 |
|---|---|---|
| StorageClass 이름 | csi-driver-lvm-1-thin |
csi-driver-lvm-2-thin |
| provisioner | lvm.csi.gms.io1 |
lvm.csi.gms.io2 |
| 연결된 driver | csi-driver-lvm-1 | csi-driver-lvm-2 |
| VG | VG1 | VG2 |
| VIP | 10.0.24.70 | 10.0.24.71 |
9.4 장점¶
| 장점 | 설명 |
|---|---|
| 용량 분산 | VG별로 별도의 thinpool 관리 가능 |
| 장애 격리 | 한 VG에 장애 발생 시 다른 VG에 영향 없음 |
| 성능 분산 | 여러 AnyStor-E 노드에 부하 분산 |
| 애플리케이션 분리 | 앱/환경별로 별도 스토리지 할당 가능 |
9.5 제약사항¶
| 제약사항 | 내용 |
|---|---|
| 동일 StorageClass 공유 불가 | 다른 driver가 같은 StorageClass 이름을 사용할 수 없음 |
| 앱별 명확한 지정 | 앱이 사용할 StorageClass를 명확히 지정해야 함 |
| Migration 불가 | 한 VG에서 다른 VG로 마이그레이션 불가 |
| driverName 충돌 방지 | 각 csi-driver-lvm은 고유한 driverName 사용 필수 |
| Kasten 백업 | 각 StorageClass별로 백업 정책 설정 필요 |
주의사항¶
| 항목 | 내용 |
|---|---|
| Pod와 PVC 동일 namespace | PVC가 생성된 namespace의 csi-driver-lvm만 사용 가능 |
| Cross namespace 사용 불가 | Namespace A에서 생성된 PVC는 Namespace A의 csi-driver-lvm만 접근 가 능 |
| StorageClass 지정 | 각 앱은 사용할 VG에 맞는 StorageClass를 명확히 지정해야 함 |
| 초기 단순화 | 초기에는 단일 csi-driver-lvm으로 시작하고 필요에 따라 확장 권장 |
실행