固定IOPSプロファイルに対する自動キャパシティ丸めを有効にする

IBM VPC ファイル CSI ドライバーの容量丸め機能を使用すると、要求された永続ボリュームクレーム(PVC)の容量が、選択した固定 IOPS プロファイルの最小サポート容量を下回る場合、ドライバーが自動的にその容量を調整できるようになります。 これにより、ファイル共有をプロビジョニングする前に、最小容量値を手動で計算する必要がなくなります。

キャパシティの丸め処理の仕組み

ドライバーの起動時、 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 のUIに表示されている通りのサービス名とURLを正確に入力してください。

  2. クラスタの各ノードがグローバルカタログのプライベートエンドポイントにアクセスできることを確認してください。 接続がない場合、ドライバーは起動時に警告を記録し、容量の丸め処理は利用できません。 その他のプロビジョニング動作はすべて、想定どおりに継続します。

容量の丸めを有効にした StorageClass を作成する

キャパシティの丸め処理はオプション機能であり、デフォルトでは無効になっています。 StorageClass に従って有効にする必要があります。 既存の StorageClasses には影響はありません。

この機能は、固定IOPSプロビジョニングを使用する dp2 プロファイル( StorageClasses )にのみ適用されます。 rfs のプロファイルクラスには適用されません。

  1. 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
    
  2. StorageClass をクラスターに適用してください。

    oc apply -f ibmc-vpc-file-dp2-roundoff.yaml
    
  3. クラスタ内で StorageClass が利用可能であることを確認してください。 出力の中から、指定した名前を探してください。

    oc get sc
    

容量の丸め処理を伴うPVCの割り当て

StorageClass, を作成したら、それを参照するPVCを作成してください。 以下の例は、2つの主なプロビジョニングのシナリオを示しています。

シナリオ 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
    

次のステップ