GKE の Hyperdisk について


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 を使用すると、デプロイするステートフル ワークロードでより予測可能なパフォーマンスを得ることができます。
  • 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 ボリュームは、特定のインスタンス タイプにのみ接続できます。読み取り専用アタッチメントはサポートされていません。
  • 詳細については、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 のシェアに比例します。

次のステップ