GKE 上のフォールト トレラントな永続ストレージをフルマネージドにする Filestore Enterprise
Google Cloud Japan Team
※この投稿は米国時間 2022 年 8 月 9 日に、Google Cloud blog に投稿されたものの抄訳です。
コンテナによる状態の保持
Kubernetes は、ステートレスなワークロード(ウェブサービスなど)だけでなく、ステートフルなアプリケーション(e コマース アプリケーションなど)の実行にも適した選択肢になっています。レポート「Data on Kubernetes」によると、Kubernetes ユーザーの 70% 以上がコンテナ内でステートフル アプリケーションを実行しています。さらに、MariaDB や Databricks などのマネージド データサービスが、Kubernetes の移植性、Blue/Green デプロイなどの組み込み自動アップグレード機能、GKE のバックアップ、 ユニット エコノミーを向上させる、すぐに利用できるコスト効率の恩恵を受け、Google Kubernetes Engine を SaaS ビジネスの中心として利用する傾向が強まっています。
これらのことから、GKE におけるコンテナネイティブ ストレージの重要性はますます高まっているといえます。具体的には、(コンテナの平均寿命は VM よりもはるかに短いため)コンテナの離脱に合わせてシームレスに接続と切断ができ、かつゾーン間でポータブルな状態を維持して柔軟性を維持できるストレージが必要です。ここが、Filestore Enterprise に適した部分です。お客様は、99.99% の可用性を持つフルマネージド リージョン ファイル システムを手に入れることができます。ストレージは、コンテナが回転するたびに瞬時に接続され、ゾーンごとのフェイルオーバーもシームレスに処理されます。
このブログの残りの部分では、コンテナによる複数のストレージ オプションと、Filestore Enterprise がお客様のニーズを満たす最適なストレージ オプションの決定を支援するためにどのようにフィットするかについて説明します。


ストレージ オプション


3 つのストレージ モデル(左から順に、ローカル ファイル システム、SAN、NAS)。
土地勘を理解するために、コンテナによって接続されたストレージの一般的なパターンについて、3 つのオプションを探ってみましょう(注: クラウド ストレージはコンテナ内のアプリケーション コードを介してアクセスするため、ここでは扱いません)。
ローカル SSD デバイス上のローカル ファイル システム: ローカル ファイル システム(ローカル SSD ブロック デバイス上)は、設定が最も簡単で、費用対効果が非常に高く、(ローカル SSD 上)良いパフォーマンスを提供できます。しかし、ほとんどの場合、スナップショット、バックアップ、非同期 DR などのエンタープライズ ストレージ機能がありません。また、状態がホストローカルであるため、信頼性や冗長性にも限界があります。そのため、このモデルは、スクラッチ スペースや一時的なストレージの用途には適していますが、本番環境レベルやミッション クリティカルな用途にはあまり適していません。
リモート / 共有ブロック デバイス(SAN)上のローカル ファイル システム: ストレージ エリア ネットワーク(SAN)モデルは強力で、よく知られています。SAN でバックアップされたリモート ボリュームは、優れたパフォーマンス、高度なストレージ サービス、および優れた信頼性を提供できます。ボリュームはコンテナのホストの外部にあるため、コンテナの移行時や元のホストに障害が発生した場合、永続ボリュームを別のホストに再接続(マウント)できます。しかし、一度に接続できるホストは 1 つと Pod のみに限定されるのが一般的です。クラウドの世界では、SAN デバイスは Google Cloud の Persistent Disk(PD)のようなネットワーク型ブロック サービスによって置き換えられています。
リモート / ネットワーク型ファイル システム(NAS): ネットワーク接続ストレージ(NAS)モデルは、複数のコンテナ間でボリュームの読み書き共有も可能なため、意味的には強力なストレージ モデルであるといえます。このようなモデルでは、ファイル システムのロジックはリモート ファイラーに実装され、専用のファイル システム プロトコル(最も一般的なのはネットワーク ファイル システム(NFS))を介してアクセスされます。クラウドの世界では、NAS デバイスは Filestore のようなファイル システム サービスに置き換わるのが一般的です。
GCP ブロックおよびファイル ストレージのバックエンド
Google Cloud では、PD と Filestore のいずれかを使ってローカル以外のストレージを実装できます。PD は SSD や HDD を搭載した柔軟なブロック ストレージを、Filestore は NFSv3 ファイル ボリュームを提供します。両機種とも Container Storage Interface(CSI)によって管理され、GKE 管理システムに完全に統合されています。両モデルの主な長所と短所(下記に図示)は以下のとおりです。
PD は、容量に最適化されたストレージ(HDD)と、価格性能に優れたバリエーション(SSD、バランス)を提供します。PD は柔軟なサイズとゾーン ボリュームを提供します。一方で、PD ベースのボリュームは、読み書き共有には対応していません。そのため複数のコンテナが同じボリュームに対して読み書きすることができません。お客様はリージョン サポート(RePD)を選択できますが、これはアクティブ - パッシブモデルに限定されます。PD 基盤のボリュームは、コンテナの移行やフェイルオーバー(ホスト障害後)をサポートします。しかし、そのような移行やフェイルオーバーの実装には時間と専門知識が必要な場合があります。
Filestore は、同様の HDD と SSD のバリエーションと、アクティブ / アクティブのリージョン別(エンタープライズ)バリエーションを提供します。Filestore のすべてのバージョンは、読み書き可能な共有モデルをサポートし、ほぼ瞬時にコンテナの移行とフェイルオーバーを行うことができます。この機能拡張のため、Filestore 基盤のボリュームは PD 基盤のボリュームに比べてコストが高く、最小サイズも 1 TB に制限されています。


Google Cloud の主なストレージ モデルである PD と Filestore
フルマネージド コンテナ ストレージとしての Filestore
PD と Filestore は、アップグレードやフェイルオーバーなどのユースケースにおいて、ホスト間でコンテナを移行するなどのコンテナ ネイティブな操作をサポートしています。PD をご利用のお客様は、複数の PD タイプを豊富に取り揃え、最高水準の価格と性能を実現できます。そのため、PD は価格性能と機能の面でメリットがあり、多くの GKE のお客様から支持されています。しかし、PD の場合、お客様はストレージ システムに関する専門知識が必要です。PD では、ファイル システムのロジックはホストに組み込まれています。このカップリングは、移行中にホストがコンテナをきれいにシャットダウンし、ファイル システムのマウントを解除し、PD をターゲット ホストに再接続し、ファイル システムをマウントし、その後コンテナを起動する必要があることを意味します。GKE はこれらの操作の多くを自動的に管理します。しかし、フェイルオーバーの場合、ファイル システムやディスクの破損の問題が発生する可能性があります。ユーザーは、マウントされたボリュームを使用する前に、いくつかのクリーンアップ処理("fsck")を実行する必要があります。
Filestore では、お客様はホストから切り離された、フルマネージドのリージョン ファイル システムを手に入れることができます。お客様はストレージの運用に専門知識を必要とせず、ボリュームの接続や切断などのインフラストラクチャの運用がないため、フェイルオーバーもシームレスに行うことができます。また、複数のコンテナで同時に読み書きができるストレージもお客様にとってメリットになります。
GKE バックエンドとしての Filestore の一般的な価値に加え、Filestore Enterprise は、リージョン別(99.99%)の可用性、アクティブ-アクティブ ゾーンアクセス、即時スナップショット、各ボリュームに小さい SSD エントリ ポイントなどを追加して、ミッション クリティカルで中~大規模な、ステートフルなデプロイをサポートします。
概要とまとめ
Google Cloud は、GKE 永続ボリュームに対して、いくつかのフルマネージド オプションを提供しています。PD ベースのボリュームに加え、Filestore Enterprise は GKE にとってファースト クラスの一般用ストレージ バックエンドであり、(アクティブ / アクティブ)リージョン間の冗長性と高速フェイルオーバー / 移行が重要な、ミッション クリティカルなユースケースにも対応可能です。さらに、Filestore Enterprise は、お客様にとってより良い価格性能効率を実現するためのスタート地点に立ったばかりです。たとえば、お客様はプライベート プレビューにアクセスし、ボリュームを共有としてビンパッキングすることで、Filestore Enterprise インスタンスの利用率を向上できます。
サマリー テーブル


リンク
1. PD モデルの全リストと価格はこちらでご確認いただけます。https://cloud.google.com/compute/disks-image-pricing#disk
- プリンシパル ソフトウェア エンジニア Shahar Frank
- プロダクト マネージャー Akshay Ram

