고정 IOPS 프로필에 대한 자동 용량 반올림 활성화
IBM VPC 파일 CSI 드라이버의 용량 반올림 기능을 사용하면, 요청된 영구 볼륨 클레임(PVC) 용량이 선택한 고정 IOPS 프로필의 최소 지원 용량보다 낮을 때 드라이버가 해당 용량을 자동으로 조정하도록 할 수 있습니다. 이를 통해 파일 공유를 프로비저닝하기 전에 최소 용량 값을 수동으로 계산할 필요가 없어집니다.
용량 반올림 방식의 작동 원리
드라이버가 시작될 때, ‘ IBM ’ VPC 파일 CSI 드라이버는 IBM 글로벌 카탈로그에서 지원되는 용량-IOPS 변환 카탈로그를 가져옵니다. 카탈로그는 메모리에 캐시되어 이후의 모든 프로비저닝 요청에 사용됩니다. 다음 표는 PVC 프로비저닝 과정에서 드라이버의 동작을 설명합니다.
| 시나리오 | Driver Behavior |
|---|---|
| 요청된 IOPS는 지원되며, 요청된 용량은 최소 용량 미만입니다 | 드라이버는 용량을 지원되는 최소값으로 반올림한 후 PVC를 할당합니다. |
| 요청된 IOPS가 지원되며, 요청된 용량이 최소 요건을 충족합니다 | 요청된 용량의 PVC를 공급합니다. |
| 요청된 IOPS는 지원되지 않습니다 | 유효성 검사 오류로 인해 프로비저닝이 실패했습니다. 이 오류를 해결하는 방법에 대한 도움말은 ‘용량 반올림 문제 해결’을 참조하십시오. |
드라이버 시작 시 글로벌 카탈로그에 연결할 수 없는 경우, 경고가 로그에 기록되며 용량 반올림 기능을 사용할 수 없습니다. 그 외의 모든 프로비저닝 동작은 예상대로 계속됩니다.
전제조건
용량 반올림 기능을 활성화하기 전에, 드라이버가 IBM 글로벌 카탈로그에 접속할 수 있어야 합니다. 액세스를 허용하려면 VPC에서 가상 사설 엔드포인트 게이트웨이(VPEG)를 구성하십시오.
-
VPC 내에서 Global Resources Catalog 서비스를 위한 가상 사설 엔드포인트 게이트웨이를 생성하십시오.
VPEG를 생성할 때 다음 설정을 구성하십시오:
- '클라우드 서비스 '에서 '글로벌 리소스 카탈로그'를 선택합니다.
- “사용 가능한 엔드포인트” 에서 엔드포인트 유형이 “
api”인 엔드포인트 중 URL,private.globalcatalog.cloud.ibm.com또는*.private.globalcatalog.cloud.ibm.com을 선택하십시오.
IBM Cloud UI에 표시된 것과 정확히 동일한 서비스 이름과 URL을 사용하십시오.
-
클러스터 노드가 글로벌 카탈로그의 비공개 엔드포인트에 연결할 수 있는지 확인하십시오. 네트워크 연결이 없는 경우, 드라이버는 시작 시 경고 메시지를 표시하며 용량 반올림 기능을 사용할 수 없습니다. 그 외의 모든 프로비저닝 동작은 예상대로 계속됩니다.
용량 반올림이 활성화된 StorageClass 생성하기
용량 반올림은 기본적으로 비활성화된 선택적 기능이며, StorageClass 에 따라 수동으로 활성화해야 합니다. 기존의 StorageClasses 파일은 영향을 받지 않습니다.
이 기능은 고정 IOPS 프로비저닝을 사용하는 ‘ dp2 ’ 프로필 StorageClasses 에만 적용됩니다. 이는 rfs 프로파일 클래스에는 적용되지 않습니다.
-
parameters섹션에서allowCapacityRoundoffForIops: "true"을 설정하는StorageClass구성 파일을 생성합니다.다음 예제는 유효한 IOPS 값을 사용하고 용량 반올림이 활성화된 StorageClass 를 생성합니다:
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: ibmc-vpc-file-dp2-roundoff labels: app.kubernetes.io/name: ibm-vpc-file-csi-driver provisioner: vpc.file.csi.ibm.io allowVolumeExpansion: true reclaimPolicy: Delete mountOptions: - hard - nfsvers=4.1 - sec=sys parameters: allowCapacityRoundoffForIops: "true" billingType: hourly classVersion: "1" encrypted: "false" encryptionKey: "" gid: "0" iops: "4700" isENIEnabled: "true" primaryIPAddress: "" primaryIPID: "" profile: dp2 region: "" resourceGroup: "" securityGroupIDs: "" subnetID: "" tags: "" uid: "0" zone: "" volumeBindingMode: Immediate -
StorageClass 를 클러스터에 적용하십시오.
oc apply -f ibmc-vpc-file-dp2-roundoff.yaml -
클러스터에서
StorageClass가 사용 가능한지 확인하십시오. 출력 결과에서 지정한 이름을 찾아보세요.oc get sc
용량 반올림 기능이 있는 PVC 제공
StorageClass, 를 생성한 후, 이를 참조하는 PVC를 생성하십시오. 다음 예시는 두 가지 주요 프로비저닝 시나리오를 보여줍니다.
시나리오 1: 용량이 최소값보다 작을 경우, 위로 반올림된다
이 예시에서 PVC는 80 Gi의 저장 용량을 요청합니다. 80 Gi는 4700 IOPS에 대해 지원되는 최소 용량보다 작기 때문에, 드라이버는 파일 공유를 지원되는 최소 용량(이 경우 100 Gi)으로 자동으로 할당합니다.
-
PVC 구성 파일을 생성합니다.
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: my-roundoff-pvc namespace: default spec: accessModes: - ReadWriteMany resources: requests: storage: 80Gi storageClassName: ibmc-vpc-file-dp2-roundoff -
PVC를 도포하십시오.
oc apply -f my-roundoff-pvc.yaml -
PVC가 바인딩되었는지 확인하고, 출력에서 ‘
CAPACITY’ 필드를 확인하십시오. 용량은 요청된 80 Gi가 아니라 반올림한 값을 반영해야 합니다.oc get pvc my-roundoff-pvc출력 예:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE my-roundoff-pvc Bound pvc-91ff9a52-5004-4441-9611-be5410edbfe4 100Gi RWX ibmc-vpc-file-dp2-roundoff 30s80Gi가 요청되었음에도 불구하고, ‘CAPACITY’ 값은100Gi로 표시되는데, 이는 드라이버가 지원되는 최소 용량으로 올림 처리했음을 확인해 줍니다.
시나리오 2: 용량이 최소 요건을 충족하며 요청된 사항이 반영됨
이 예시에서 PVC는 200 Gi를 요청하며, 이는 이미 4700 IOPS에 대한 최소 지원 용량을 충족합니다. 드라이버는 별도의 조정 없이 요청된 용량대로 파일 공유를 제공합니다.
-
PVC 구성 파일을 생성합니다.
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: my-exact-pvc namespace: default spec: accessModes: - ReadWriteMany resources: requests: storage: 200Gi storageClassName: ibmc-vpc-file-dp2-roundoff -
PVC를 도포하십시오.
oc apply -f my-exact-pvc.yaml -
PVC가 제대로 고정되어 있는지 확인하십시오.
CAPACITY필드에는200Gi이 표시되어야 하며, 이는 조정이 이루어지지 않았음을 확인시켜 줍니다.oc get pvc my-exact-pvc출력 예:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE my-exact-pvc Bound pvc-3528044b-b004-4077-b09f-c6cdf7000180 200Gi RWX ibmc-vpc-file-dp2-roundoff 24m