為固定 IOPS 配置啟用自動容量四捨五入功能
透過 IBM VPC 檔案 CSI 驅動程式的容量四捨五入功能,您可以讓驅動程式在請求的持久性卷宗聲明 (PVC) 容量低於所選固定 IOPS 配置檔的最低支援容量時,自動調整該 PVC 的容量。 如此一來,便無需在配置檔案共用之前手動計算最小容量值。
容量舍入的運作原理
在驅動程式啟動期間,IBM VPC 檔案 CSI 驅動程式會從 IBM 全球目錄中擷取受支援的容量至 IOPS 目錄。 目錄會被快取在記憶體中,並用於所有後續的配置請求。 下表說明了在 PVC 配置過程中驅動程式的運作行為。
| 情境 | Driver Behavior |
|---|---|
| 支援所要求的 IOPS,且所要求的容量低於最低要求 | 驅動程式會將容量向上取整至最低支援值,並配置 PVC。 |
| 支援所要求的 IOPS,且所要求的容量符合最低要求 | PVC 能滿足所要求的產能。 |
| 不支援所要求的 IOPS | 因驗證錯誤導致配置失敗。 如需解決此錯誤的協助,請參閱「容量四捨五入的疑難排解」。 |
若在驅動程式啟動時無法連線至全域目錄,系統會記錄一則警告,且無法進行容量四捨五入。 所有其他配置行為均如預期般運作。
必要條件
在啟用容量四捨五入功能之前,驅動程式必須能夠連線至 IBM 全球目錄。 若要允許存取,請在您的 VPC 中設定一個虛擬私有端點閘道 (VPEG)。
-
在您的 VPC 中為「全球資源目錄」服務 建立一個虛擬私有端點閘道。
建立 VPEG 時,請進行以下設定:
- 在「雲端服務」下,選取「全球資源目錄」。
- 在「可用端點」下,請選取端點類型為
api且網址為 URL、private.globalcatalog.cloud.ibm.com或*.private.globalcatalog.cloud.ibm.com的端點。
請使用與 IBM Cloud 使用者介面中顯示完全相同的服务名稱和網址。
-
請確認您的叢集節點能否連通「全域目錄」的私有端點。 若無法連線,系統會在啟動時記錄一則警告,且無法進行容量四捨五入。 所有其他配置行為均如預期般運作。
建立一個已啟用容量舍入功能的 StorageClass
容量四捨五入是一項可選功能,預設為停用狀態,必須依照 StorageClass 的說明進行啟用。 現有的 StorageClasses 不受影響。
此功能僅適用於採用固定 IOPS 配置的 dp2 配置檔 StorageClasses。 此規則不適用於 rfs 中的設定檔類別。
-
建立一個 StorageClass 設定檔,並在
parameters區段中設定allowCapacityRoundoffForIops: "true"。以下範例會建立一個具有有效 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 30s儘管請求的是
80Gi,但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