コンテンツに移動
インフラ モダナイゼーション

Google Distributed Cloud Virtual を使用したポリシー管理によって簡素化されるストレージ

2024年1月9日
Google Cloud Japan Team

※この投稿は米国時間 2023 年 12 月 16 日に、Google Cloud blog に投稿されたものの抄訳です。

Google Distributed Cloud Virtual の vSphere 版(GDCV vSphere)を使用するお客様は、クラウドの Google Kubernetes Engine と同じ Kubernetes を独自のハードウェアとデータセンターにデプロイできます。そして、GKE Enterprise ツールを使用してエンタープライズ規模のクラスタ管理を行うことが可能です。GDCV(vSphere)を基盤として使用し、主要なビジネス アプリケーションをサポートすることで、スケーラビリティ、安全性、高可用性を備えたアーキテクチャが実現します。既存の VMware vSphere インフラストラクチャとの統合により、GDCV では、安全で一貫した Kubernetes をオンプレミスに簡単にデプロイできます。GDCV(vSphere)は、高可用性要件を満たすために VMware vSphere と統合されています。具体的には、HA 管理クラスタとユーザー クラスタ、自動スケーリング、ノード修復、そして現在では VMware の高度なストレージ フレームワークなどに対応しています。

問題

VMware のお客様の多くは、仮想ディスクのデプロイを自動化するために、データストア タクラスタなどの集約機能を使用しています。このとき、vSphere が仮想ディスクの保存場所(基本的には、特定の要件に最適な場所)を決定できるよう、多くのデータストアを 1 つのオブジェクトに結合します。

Kubernetes クラスタと vSphere 間のストレージのやり取りは、Container Storage Interface(CSI)ドライバ モジュールを介して実行されます。VMware は独自の CSI ドライバである vSphere CSI をリリースしています。この統合によって CSI の利用は始めやすくなるとはいえ、この VMware ドライバもデータストア クラスタをサポートしていないため、一定の制約のもとで利用することになります。そのため、VMware はストレージ ポリシー ベース管理(SPBM)を活用して、管理者がワークロード用にデータストア クラスタを宣言し、自動ストレージ プレースメントを確実に行うためのプレースメント ロジックを提供できるようにしています。今までは SBPM が GDCV でサポートされていなかったため、こうしたクラスタ上のストレージは扱いづらく直感的でないという短所があり、これは VM 向け SPBM の柔軟性に精通した VM 管理者にとっても同様でした。

ソリューション

バージョン 1.16 の GDCV(vSphere)では、SPBM がサポートされるようになったため、お客様は一貫した方法でデータストア クラスタを宣言し、ワークロードをデプロイできます。GDCV の SPBM 実装を通じて、GDCV と Kubernetes を直接操作することなく vSphere ストレージの維持と管理を行える柔軟性がもたらされます。このようにして、GDCV のライフサイクル管理では vSphere 環境での最先端のストレージ統合をフルに活用することで、復元力を高め、メンテナンスの時間枠を大幅に縮小できます。

ストレージ割り当てのこの新しいモデルの基盤となっているのは、VMware SPBM と GDCV の統合と、VMware CSI ドライバの高度な応用技術です。ストレージ ポリシー ベース管理(SPBM)は、広範なデータサービスとストレージ ソリューションに 1 つの統合コントロール プレーンを実装するストレージ フレームワークです。このフレームワークは、仮想マシンのアプリケーションの要求に合わせたストレージの調整に役立ちます。端的に言うと、SPBM ではストレージ ポリシー マッピングを作成して、VM またはアプリケーションとそれぞれのストレージ ニーズを結びつけることができます。

VMware の SBPM との統合により、GDCV でのクラスタの作成は、ストレージの観点から見ると、クラスタのインストール構成で特定のストレージ ポリシーを参照するだけで済むようになっています。

ストレージ ポリシーを使用すると、複数の単一データストアを結合して、データストア クラスタと同様に 1 つのまとまりであるかのように処理できます。ただし現在のポリシーでは、クエリを実行した際に、コンプライアンスを満たすすべてのデータストアの一覧が提供されますが、最良のプレースメントに適したものが提示されるわけではありません。GDCV ではこの点が改善されています。ある特定のポリシーに照らして、コンプライアンスを満たすすべてのデータストアを分析し、ディスク プレースメントに最適なデータストアを選択します。しかもその選択は、GDCV とともに SPBM を使用するそれぞれのストレージ プレースメントに応じて動的に行われます。

自動化の観点から見たその利点は、ストレージの容量やメンテナンスに関して何かが変更される際、その変更は必ずストレージの側から行われるということです。ストレージの容量を拡張するなどのオペレーションは、GDCV の構成ファイルを変更せずに行えるようになりました。

これにより、GDCV 内ではストレージ管理がかなり簡素化されます。

SBPM ポリシーの詳細

VMware 管理者は SBPM を使用することで、基盤となるストレージ アレイの能力に応じてさまざまなストレージ ポリシーを構築できます。1 つのポリシーに従って複数のデータストアを定義することも、複数のポリシーで 1 つのデータストアを定義することも、ポリシーとデータストア両方を複数運用することも可能です。その後に、そのストレージ要件を最も明確に定義するポリシーを VM に割り当てます。したがって実際には、ゴールドレベルのストレージ(本番環境専用の SSD など)が必要な場合、まずすべてのゴールドレベル ストレージを定義するポリシーを作成してから、そのポリシーに適合するすべてのデータストアを追加します。次に、そのポリシーを VM に割り当てます。ブロンズレベルのストレージなどの場合も同様です。ブロンズレベルのデータストア(開発環境専用の HDD など)用にブロンズ ストレージ ポリシーを 1 つ作成し、関連性のある VM に割り当てます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/1_S5OCK3z.max-2000x2000.jpg

GDCV での SPBM の仕組み

GDCV でストレージ ポリシー機能を使用するには、VMware 管理者が少なくとも 1 つのストレージ ポリシーを VMware で設定する必要があります。これは、GDCV クラスタからアクセスできる 1 つ以上のデータストアに適合するものでなければなりません。

GDCV は、データストアのタグベースのプレースメントをサポートしています。VMware 管理者は、使用可能なストレージに関連するほとんどの要素に基づいて、特定のカテゴリとタグを作成できます。たとえば、パフォーマンス レベル、クラスタ名、ディスクタイプなどです。

クラスタで重要となる次の 2 つのストレージ要件について見ていきましょう。一つは、ステートフルなアプリケーションに求められる VM ディスク プレースメントと永続ボリューム要求(PVC)、もう一つは、SBPM ポリシーを使用してこれらの要素を管理する方法です。

VM ディスクのプレースメント

先述のゴールドおよびブロンズの例に戻って考えてみましょう。GDCV ユーザー クラスタのストレージ要件を定義するとします。ユーザー クラスタ構成ファイル内の次の 2 つのストレージ ポリシーを参照する必要があります。

  1. クラスタ全体のストレージ ポリシー - これはクラスタのデフォルト ポリシーになります。この場合は、「ブロンズ ポリシー」です
  2. ユーザー クラスタ内の特定のノードプールのストレージ ポリシー - つまり「ゴールド ポリシー」です

まず、「ゴールド」タグと「ブロンズ」タグを、GDCV ノード VM で使用できるそれぞれのデータストアに割り当てます。この例では、「ゴールド」は SSD ディスクのみを参照し、「ブロンズ」は HDD ディスクのみを参照します。

タグの作成と割り当てについては、ドキュメントに従います。タグはデータストア クラスタ、またはクラスタ内のデータストアにも適用できることに留意してください。詳しくは、こちらをお読みください。

タグを作成した後は、公式のドキュメントに従ってストレージ ポリシーを定義します。

ストレージ ポリシーを作成したら、ポリシーに適合するデータストアを確認できます。以下の例を参照してください。

https://storage.googleapis.com/gweb-cloudblog-publish/images/2_YulWgFT.max-1500x1500.jpg

ここで、いくつかのストレージ ポリシーを、ユーザー クラスタ構成ファイルに適用しましょう。

クラスタ全体のポリシー(「ブロンズ」ポリシー)を定義する

読み込んでいます...

このユーザー クラスタ構成ファイルのスニペットでは、ストレージ ポリシー「ブロンズ」がクラスタレベルに設定されています。つまり、全ノードプールにあるすべてのプロビジョニング済み VM ではこのストレージ ポリシーを使用して、適合するデータストアを検索し、十分な容量があるデータストアを動的に選択します。

ノードプール ポリシー(「ゴールド」)を定義する

読み込んでいます...

このユーザー クラスタ構成ファイルのスニペットでは、ストレージ ポリシー「ゴールド」がノードプール レベルに設定されています。そのノードプール内の VM のプロビジョニングではこのポリシーが使用され、その他のすべてのストレージ プロビジョニングでは、クラスタ セクションで指定されたストレージ ポリシーが使用されます。

このようにストレージ ポリシーを使用することで、クラスタ管理者がストレージの詳細を逐一把握する必要がなくなります。また、ストレージに容量などの問題がある場合は、ストレージ ポリシー内で使用できるよう追加のデータストアにタグを付けることができます。通常、これは VMware 管理者が行います。GDCV クラスタ管理者は何も行う必要はありません。ポリシーを通じて使用可能になる追加の容量は、クラスタによってシームレスに組み込まれます。これにより、クラスタ管理者にとっての管理上の負担が軽くなると同時に、クラスタ ストレージ管理が自動化されます。

永続ボリュームの要求

ユーザー クラスタには、1 つ以上の StorageClass オブジェクトを設定できます。そのうちの 1 つはデフォルト StorageClass として指定されます。インストール ガイドのドキュメントに準じてクラスタを作成する場合、デフォルトのストレージ クラスはシステム側で作成されます。

デフォルトのクラスの代わりに、追加のストレージ クラスを作成して使用することもできます。vSphere CSI ドライバを使用すると、GDCV ユーザー クラスタが実行されている vCenter 内の既存のストレージ ポリシーを直接参照して、ストレージ クラスを作成できます。

つまり、クラスタ内の PVC によって作成されたボリュームが、ユーザー クラスタで定義されているストレージ ポリシーに適合するデータストア間で分散されます。このようなストレージ クラスは、vSphere 内の VMFS、NFS、vSAN ストレージ ポリシーにマッピングできます。

以下のファイルは、「cluster-sp-fast」というポリシーを参照する StorageClass を構成しています。

読み込んでいます...

次に、このストレージ クラスを永続ボリューム要求で以下のように参照できます。

読み込んでいます...

この関連付けられた要求でのボリュームは、「cluster-sp-fast」vSphere ストレージ ポリシーに含まれている最適なデータストアに配置されます。

まとめ

この投稿では、VMware の SPBM フレームワークとの GDCV 統合について紹介しました。この統合は GDCV 管理者にとって喜ばしいニュースです。なぜなら、特定のデータストア間のハードリンクから脱却して、VMware 側から管理する動的なストレージ割り当てへと移行することで、ストレージ管理の自動化を実現できるからです。その結果、オーバーヘッドが軽減され、GDCV クラスタのダウンタイムが短くなって、ストレージ管理の柔軟性が向上します。

Google Distributed Cloud は、エッジ、プライベート データセンター、エアギャップ、ハイブリッド クラウド デプロイから最新の AI を使用してデータの潜在力を引き出せるプロダクト ファミリーです。企業や公共機関向けに提供されており、デベロッパーは、お客様がどこにいても、必要な独立性と制御のもとに Google の最高水準の AI、セキュリティ、オープンソースを活用できるようになりました。

ー プラクティス チーム リーダー、Olive Power

ー GDC-V プロダクト マネージャー、Valentin Hamburger

投稿先