Google Cloud Hyperdisk は、GKE が提供するネットワーク ブロック ストレージ オプションです。他の Compute Engine Persistent Disk ボリュームと同様の方法で、このストレージ オプションを GKE クラスタで使用できます。これにより、ワークロードのパフォーマンスを柔軟に調整できます。Persistent Disk ストレージと比較した場合、Hyperdisk は 1 秒あたりの最大入出力オペレーション(IOPS)とスループットを大幅に向上できます。ノードにアタッチされているすべてのボリューム間でパフォーマンスが共有される Persistent Disk ボリュームとは異なり、Hyperdisk を使用すると、Hyperdisk ボリュームごとにパフォーマンス レベルを指定して調整できます。
GKE では、次の Hyperdisk オプションから選択できます。
ストレージ オプション | GKE 運用モード | 説明 |
---|---|---|
Hyperdisk Balanced | Autopilot Standard |
ほとんどのワークロードに最適です。これは、ほとんどのエンタープライズ アプリや基幹業務アプリ、データベース、ウェブサーバーのデプロイに適しています。 |
Hyperdisk Throughput | Autopilot Standard |
費用対効果に優れた高スループット向けに最適化されています。これは、スケールアウト分析(Hadoop や Kafka など)やスループット指向の費用が重視されるワークロードを対象とするユースケースに適しています。 |
Hyperdisk Extreme | Autopilot Standard |
IOPS パフォーマンス向けに最適化されています。これは、データベース管理システムなどの高パフォーマンス ワークロードをデプロイする場合に適しています。 |
Hyperdisk ML | Autopilot Standard |
モデルの重みをすばやく読み込む必要がある AI / ML トレーニング ワークロードと推論ワークロード用に最適化されています。ピーク読み取りスループットの要件が高い AI / ML ワークロードには、このオプションを使用します。これは、データを読み込むときに GPU / TPU リソースのアイドル状態を減らす最適なオプションです。 |
メリット
- Hyperdisk を使用すると、デプロイするステートフル ワークロードでより予測可能なパフォーマンスを得ることができます。
- Hyperdisk を使用すると、オンプレミスのストレージ エリア ネットワーク(SAN)を管理するコストや複雑さを伴わずに、GKE 上のステートフル ワークロードのプロビジョニング、管理、スケーリングを行うことができます。
- Hyperdisk のストレージ容量はパーティション分割されており、GKE ノードで個別のボリュームとして利用できます。Hyperdisk ボリュームはノードから切り離されており、ノード間でボリュームのアタッチ、切断、移動を行うことができます。Hyperdisk のボリュームに保存されているデータは、ノードの再起動や削除後も保持されます。複数の Hyperdisk ボリュームを単一の GKE ノードに追加することもできます。
料金
Hyperdisk ボリュームを削除するまで、プロビジョニングされた合計容量に対して課金されます。月ごと、GiB ごとに課金されます。さらに、以下の課金が行われます。
- Hyperdisk Balanced では、プロビジョニングされた IOPS とプロビジョニングされたスループット(MiBps)に対して、ベースライン値 3,000 IOPS と 140 MiBps のスループットを超えると、月額料金が課金されます。
- Hyperdisk Extreme では、プロビジョニングされた IOPS に基づいて月額料金が課金されます。
- Hyperdisk Throughput では、プロビジョニングされたスループット(MiBps)に基づいて月額料金が課金されます。
料金情報については、Compute Engine のドキュメントのディスクの料金体系をご覧ください。
制限事項
- ボリュームの作成後に変更できるのは次の設定のみです(この変更は Compute Engine API を介して行う必要があります)。
- スループット: Hyperdisk Throughput と Hyperdisk Balanced ボリューム
- IOPS: Hyperdisk Extreme と Hyperdisk Balanced ボリューム
- Hyperdisk ボリュームは、特定のインスタンス タイプにのみ接続できます。読み取り専用アタッチメントはサポートされていません。
- Hyperdisk ML 固有の制限事項:
- Hyperdisk ML は、ブートディスクとして使用できません。
- Hyperdisk ML をマルチライター モードで使用することはできません。
- Hyperdisk ML はストレージ プールをサポートしていません。
- 詳細については、Compute Engine のドキュメントの制限事項をご覧ください。
Hyperdisk と Autopilot コンピューティング クラス
コンピューティング クラスを使用する Autopilot クラスタで Hyperdisk を使用する場合は、ノードのマシンタイプが Hyperdisk と コンピューティング クラスの両方でサポートされていることを確認してください。
次の例は、Hyperdisk Balanced を使用する場合に、Performance コンピューティング クラスの Autopilot クラスタで nodeSelector
プロパティを指定して Pod のスケジューリングを制御する方法を示しています。
cloud.google.com/compute-class: "Performance"
cloud.google.com/machine-famility: "c3"
詳細については、Autopilot Pod のコンピューティング クラスを選択するをご覧ください。
Hyperdisk ボリュームのパフォーマンス レベルを計画する
次の点を考慮して、Hyperdisk ボリュームの適切なパフォーマンス レベルを計画してください。
Hyperdisk Balanced
Hyperdisk Balanced を使用すると、スループットや IOPS とは別に容量をプロビジョニングできます。スループットまたは IOPS をプロビジョニングするには、特定のボリュームのレベルを選択します。個々のボリュームには完全なスループット分離があります。各ボリュームは、そのボリュームに指定されたすべてのスループットまたは IOPS 容量を使用できます。ただし、最終的には、ボリュームがアタッチされている VM インスタンスのインスタンスあたりの上限によってスループットまたは IOPS が制限されます。これらの上限の詳細については、Compute Engine ドキュメントの Google Cloud Hyperdisk についてをご覧ください。
読み取りオペレーションと書き込みオペレーションはどちらも、Hyperdisk Balanced ボリュームにプロビジョニングされたスループットと IOPS の上限に対してカウントされます。プロビジョニングされたスループットまたは IOPS と上限は、読み取りと書き込みのオペレーションの合計に適用されます。
1 つ以上の Hyperdisk ボリュームにプロビジョニングされたスループットまたは IOPS の合計が、VM インスタンス レベルで使用可能なスループットまたは IOPS の合計を超えると、パフォーマンスはインスタンスのパフォーマンス レベルに制限されます。
Hyperdisk Throughput
Hyperdisk Throughput を使用すると、スループットとは別に容量をプロビジョニングできます。スループットをプロビジョニングするには、特定のボリュームに目的のレベルを選択します。個々のボリュームには完全なスループット分離があります。各ボリュームには、スループットがプロビジョニングされます。ただし、最終的には、ボリュームがアタッチされている VM インスタンスのインスタンスあたりの上限によってスループットが制限されます。これらの上限の詳細については、Compute Engine ドキュメントの Google Cloud Hyperdisk についてをご覧ください。
読み取りオペレーションと書き込みオペレーションはどちらも、Hyperdisk Throughput ボリュームにプロビジョニングされたスループット上限にカウントされます。プロビジョニングされたスループットと上限は、読み取りと書き込みのスループットの合計に適用されます。
StorageClass を定義する場合、Hyperdisk Throughput ボリュームにプロビジョニングされるスループットは、次のルールに従う必要があります。
- マシンタイプに応じて、容量 1 TiB あたり少なくとも 10 MiBps、容量 1 TiB あたり 90 MiBps 以下。
- マシンタイプに応じて、ボリュームあたり最大 600 MiBps。
1 つ以上の Hyperdisk Throughput ボリュームにプロビジョニングされた合計スループットが、VM インスタンス レベルで使用可能な合計スループットを超えると、スループットはインスタンスのスループット レベルに制限されます。
Hyperdisk Extreme
Hyperdisk Extreme を使用すると、IOPS レベルとは別に容量をプロビジョニングできます。IOPS レベルをプロビジョニングするには、特定のボリュームに IOPS 上限を指定します。個々のボリュームには IOPS レベルの完全な隔離があります。各レベルには、プロビジョニングされた IOPS レベルが与えられます。ただし、最終的には、ボリュームがアタッチされている VM インスタンスのインスタンスあたりの上限によって IOPS が制限されます。これらの上限の詳細については、Compute Engine ドキュメントの Google Cloud Hyperdisk についてをご覧ください。
読み取りオペレーションと書き込みオペレーションはどちらも、Hyperdisk Extreme ボリュームにプロビジョニングされた IOPS 上限に対してカウントされます。プロビジョニングされた IOPS とこのドキュメントに記載されている上限は、読み取り IOPS と書き込み IOPS の合計に適用されます。
StorageClass を定義する際に、Hyperdisk Extreme ボリュームにプロビジョニングされる IOPS は、マシンタイプに応じて 350,000 IOPS 以下にする必要があります。
1 つ以上の Hyperdisk Extreme ボリュームにプロビジョニングされた合計 IOPS が、VM インスタンス レベルで使用可能な合計 IOPS を超えると、パフォーマンスはインスタンスの IOPS レベルに制限されます。同時に IOPS をリクエストしている同じ VM に複数の Hyperdisk ボリュームと Persistent Disk ボリュームがアタッチされていて、VM の上限に達すると、各ボリュームの IOPS レベルは接続されているすべての Hyperdisk Extreme ボリュームにプロビジョニングされた合計 IOPS のシェアに比例します。
Hyperdisk ML
Hyperdisk ML を使用すると、パフォーマンスとは別に容量をプロビジョニングできます。パフォーマンスをプロビジョニングするには、特定のボリュームに対してスループット レベルを選択します。個々のボリュームでパフォーマンスが完全に分離されます。つまり、それぞれにプロビジョニングされたパフォーマンスが適用されます。
1 つのボリュームが複数のインスタンスに接続されている場合、プロビジョニングされたスループットはインスタンス間で動的に分散されます。ただし、最終的には、ボリュームがアタッチされている VM インスタンスのインスタンスあたりの上限によってスループットが制限されます。
読み取りオペレーションと書き込みオペレーションはどちらも、READ-WRITE-SINGLE
モードの Hyperdisk ML ボリュームにプロビジョニングされたスループット上限に対してカウントされます。プロビジョニングされたスループットと上限は、読み取りと書き込みのスループットの合計に適用されます。
Hyperdisk ML ボリュームにプロビジョニングされるスループットは、次のルールに従う必要があります。
- 最小: GiB 単位での(0.12 Mbps * ディスクサイズ)または 400 MBps のいずれか大きい方
- 最大: GiB 単位での(1,600 Mbps × ディスクサイズ)。ただし、1.2 TBps 以下。
- ボリュームが
READ-ONLY-MANY
モードで 20 を超えるインスタンスにアタッチされている場合、スループット値は 100 MBps × アタッチされたインスタンス数以上でなければなりません。
1 つ以上の Hyperdisk ML ボリュームにプロビジョニングされた合計スループットが、インスタンス レベルで使用可能な合計スループットを超えると、パフォーマンスはインスタンス レベルのパフォーマンスに制限されます。
次のステップ
- Hyperdisk Balanced、Throughput、Extreme のストレージ クラスを作成する。
- Hyperdisk ML のストレージ クラスを作成する。
- Persistent Disk ボリュームを Hyperdisk に移行する方法を学習する。
- GKE で Hyperdisk を使用してストレージのパフォーマンスをスケールする。
- Hyperdisk ストレージ プールを使用してストレージのパフォーマンスとコストを最適化する