RWX NVMe サブシステムの制限について
ReadWriteMany (RWX)ボリュームのうち、NVMeプロトコルを使用するものは、ボリュームあたり64ノードという拡張性の制限があります。以下では、制限事項、関連するNVMeサブシステムアーキテクチャの説明、および必要な解決手順の概要を示します。
64ノード制限について理解する
NVMeプロトコルでReadWriteMany(RWX)ボリュームを使用する予定がある場合、Kubernetesクラスタでは、単一のRWX NVMeボリュームを64ノードを超えてマウントすることはできません。
同じRWX NVMe PersistentVolumeClaim をマウントするワークロードを64ノードを超えてスケジュールしないでください。
この制限は、NVMe プロトコルを使用する RWX ボリュームにのみ適用されます。
NVMeサブシステムモデルを理解する
ボリュームごとのサブシステムモデル(Trident 26.02より前のリリース)
Trident 26.02より前のリリースでは、RWX NVMeボリュームはボリュームごとのサブシステムモデルを使用してプロビジョニングされます。各RWX NVMeボリュームは、ONTAP上の専用のNVMeサブシステムにマッピングされます。
このモデルはシンプルですが、スケーラビリティの上限が低くなっています。大規模な Kubernetes クラスターでは、各 RWX ボリュームが専用のサブシステムを消費するため、サブシステムコントローラの制限にすぐに達してしまいます。
スーパーサブシステムモデル(Trident 26.02で導入)
Trident 26.02以降、RWX NVMeボリュームは共有スーパーサブシステムモデルを使用します。複数のRWX NVMeボリュームが同じNVMeサブシステムを共有します。
各スーパーサブシステムは、最大1024個のネームスペース(ボリューム)をサポートします。このモデルはRWXワークロードのスケーラビリティを大幅に向上させ、ONTAPサブシステムの制限に達する可能性を低減します。
各RWX NVMeボリュームは最大64ノードをサポートします。
エラーの兆候を特定する
RWX NVMe ボリュームを大規模に作成または接続すると、次のようなエラーが発生する可能性があります:
Maximum number of controllers reached. No more controllers can be created.
このエラーは、ONTAP NVMe サブシステムコントローラの制限に達したことを示しています。
サブシステム制限エラーを解決する
ボリュームごとのサブシステム制限を超えてスーパーサブシステムモデルを活用するには、Trident 26.02以降にアップグレードしてください。
スーパーサブシステムモデルを適用するために Trident をアップグレードする
RWX NVMe ボリュームにスーパーサブシステムモデルを適用するには:
-
Trident をバージョン 26.02 以降にアップグレードしてください。
-
RWX NVMeボリュームを使用するすべてのポッドのレプリカ数をゼロに縮小します。
-
ワークロードがRWX NVMeボリュームをアクティブに使用していないことを確認してください。
-
ポッドをスケールアップして元に戻します。
この再起動シーケンスにより、RWX NVMe ボリュームがスーパーサブシステムモデルを使用して接続されることが保証されます。
-
この制限は、NVMe プロトコルを使用する RWX ボリュームにのみ適用されます。
-
64ノードの制限は、RWX NVMe ボリュームごとに適用されます。
-
その他のアクセスモードおよびプロトコルには影響はありません。