為固定 IOPS 配置啟用自動容量四捨五入功能

透過 IBM VPC 檔案 CSI 驅動程式的容量四捨五入功能,您可以讓驅動程式在請求的持久性卷宗聲明 (PVC) 容量低於所選固定 IOPS 配置檔的最低支援容量時,自動調整該 PVC 的容量。 如此一來,便無需在配置檔案共用之前手動計算最小容量值。

容量舍入的運作原理

在驅動程式啟動期間,IBM VPC 檔案 CSI 驅動程式會從 IBM 全球目錄中擷取受支援的容量至 IOPS 目錄。 目錄會被快取在記憶體中,並用於所有後續的配置請求。 下表說明了在 PVC 配置過程中驅動程式的運作行為。

容量四捨五入的資源配置行為
情境 Driver Behavior
支援所要求的 IOPS,且所要求的容量低於最低要求 驅動程式會將容量向上取整至最低支援值,並配置 PVC。
支援所要求的 IOPS,且所要求的容量符合最低要求 PVC 能滿足所要求的產能。
不支援所要求的 IOPS 因驗證錯誤導致配置失敗。 如需解決此錯誤的協助,請參閱「容量四捨五入的疑難排解」。

若在驅動程式啟動時無法連線至全域目錄,系統會記錄一則警告,且無法進行容量四捨五入。 所有其他配置行為均如預期般運作。

必要條件

在啟用容量四捨五入功能之前,驅動程式必須能夠連線至 IBM 全球目錄。 若要允許存取,請在您的 VPC 中設定一個虛擬私有端點閘道 (VPEG)。

  1. 在您的 VPC 中為「全球資源目錄」服務 建立一個虛擬私有端點閘道

    建立 VPEG 時,請進行以下設定:

    • 在「雲端服務」下,選取「全球資源目錄」。
    • 在「可用端點」下,請選取端點類型為 api 且網址為 URL、private.globalcatalog.cloud.ibm.com*.private.globalcatalog.cloud.ibm.com 的端點。

    請使用與 IBM Cloud 使用者介面中顯示完全相同的服务名稱和網址。

  2. 請確認您的叢集節點能否連通「全域目錄」的私有端點。 若無法連線,系統會在啟動時記錄一則警告,且無法進行容量四捨五入。 所有其他配置行為均如預期般運作。

建立一個已啟用容量舍入功能的 StorageClass

容量四捨五入是一項可選功能,預設為停用狀態,必須依照 StorageClass 的說明進行啟用。 現有的 StorageClasses 不受影響。

此功能僅適用於採用固定 IOPS 配置的 dp2 配置檔 StorageClasses。 此規則不適用於 rfs 中的設定檔類別。

  1. 建立一個 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
    
  2. 將 StorageClass 套用至您的叢集。

    oc apply -f ibmc-vpc-file-dp2-roundoff.yaml
    
  3. 請確認您的叢集中是否已啟用 StorageClass。 請在輸出結果中尋找您指定的名稱。

    oc get sc
    

為 PVC 提供容量四捨五入功能

建立 StorageClass, 後,請建立一個引用該服務的 PVC。 以下範例展示了兩種主要的配置情境。

情境 1:容量低於最低值,並被向上取整

在此範例中,該 PVC 申請了 80 Gi 的儲存空間。 由於 80 Gi 低於 4700 IOPS 的最低支援容量,驅動程式會自動將檔案共用空間配置為最低支援容量(本例中為 100 Gi)。

  1. 建立一個 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
    
  2. 塗上 PVC。

    oc apply -f my-roundoff-pvc.yaml
    
  3. 請確認 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 的最低支援容量。 驅動程式會依照請求的容量提供檔案共用,無需進行任何調整。

  1. 建立一個 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
    
  2. 塗上 PVC。

    oc apply -f my-exact-pvc.yaml
    
  3. 請確認 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
    

下一步