固定IOPSプロファイルに対する自動キャパシティ丸めを有効にする
IBM VPC ファイル CSI ドライバーの容量丸め機能を使用すると、要求された永続ボリュームクレーム(PVC)の容量が、選択した固定 IOPS プロファイルの最小サポート容量を下回る場合、ドライバーが自動的にその容量を調整できるようになります。 これにより、ファイル共有をプロビジョニングする前に、最小容量値を手動で計算する必要がなくなります。
キャパシティの丸め処理の仕組み
ドライバーの起動時、 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 の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を作成してください。 以下の例は、2つの主なプロビジョニングのシナリオを示しています。
シナリオ 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