リージョン Persistent Disk について


リージョン Persistent Disk は、Compute Engine に高可用性(HA)サービスを実装できるストレージ オプションです。リージョン Persistent Disk は、同じリージョン内の 2 つのゾーン間でデータを同期的に複製し、1 つのゾーンの障害に対してディスクデータの HA を確保します。

リージョン Persistent Disk ボリュームは、より低い目標復旧時点(RPO)と目標復旧時間(RTO)を必要とするワークロード用に設計されています。RPO と RTO の詳細については、障害復旧計画の基本をご覧ください。

リージョン Persistent Disk ボリュームは、リージョンのマネージド インスタンス グループでも動作するように設計されています。

このドキュメントでは、リージョン Persistent Disk の概要と、リージョン Persistent Disk ボリュームを使用して HA サービスを構築する方法について説明します。

リージョン Persistent Disk を使用する場合は、さまざまなサービス アーキテクチャの費用、パフォーマンス、復元力と可用性を向上させるためのオプションを比較してください。

リージョン Persistent Disk のゾーンディスク レプリケーション

リージョン Persistent Disk ボリュームでは、ディスクデータを保存するリージョン内にプライマリ ゾーンとセカンダリ ゾーンがあります。

  • プライマリ ゾーンは、ディスクをアタッチする仮想マシン(VM)インスタンスと同じゾーンです。
  • セカンダリ ゾーンは、同じリージョン内の代替ゾーンです。

Compute Engine は、この両方のゾーンにリージョン Persistent Disk ボリュームのレプリカを保持します。ディスクにデータを書き込むと、Compute Engine は HA を確保するために、そのデータを両方のゾーンのディスク レプリカに同期的に複製します。各ゾーンレプリカのデータは、耐久性を確保するためにゾーン内の複数の物理マシンに分散されます。ゾーンレプリカは Persistent Disk ボリュームのデータの可用性を確保し、いずれかのディスクゾーンが一時的に停止しても可用性を維持します。

ゾーンレプリカのレプリケーション状態

リージョン Persistent Disk のディスク レプリカの状態は、ディスクの内容と比較したゾーンレプリカの状態を示します。リージョン Persistent Disk のゾーンレプリカは、常に次のいずれかのディスク レプリカ状態になります。

  • 同期済み: レプリカは使用可能です。レプリカはディスクに対して行われたすべての書き込みを同期的に受信します。また、ディスク上のすべてのデータが最新の状態になります。
  • キャッチアップ: レプリカは使用できますが、他のレプリカからディスク上のデータを取得し続けます。
  • 非同期: レプリカが一時的に使用できなくなり、ディスク上のデータと同期されていない状態です。

ゾーンレプリカのレプリカの状態を確認して追跡する方法については、リージョン Persistent Disk ボリュームのディスク レプリカの状態をモニタリングするをご覧ください。

リージョン Persistent Disk のレプリケーション状態

個々のゾーンレプリカの状態に応じて、リージョン Persistent Disk ボリュームは次のいずれかのレプリケーション状態になります。

  • 完全に複製済み。両方のゾーンのレプリカが利用可能であり、最新のディスクデータと同期されています。
  • キャッチアップ。ゾーンレプリカは使用可能ですが、ゾーンレプリカの 1 つが最新のディスクデータをキャッチアップしています。
  • デグレード: ゾーンレプリカの 1 つが、障害または停止により同期されていない状態です。

リージョン Persistent Disk ボリュームが「キャッチアップ」または「デグレード」の場合、ゾーンレプリカの 1 つの一部データが更新されていません。このとき、正常なレプリカのゾーンが停止すると、正常なレプリカのゾーンが復元されるまでリージョン Persistent Disk ボリュームが利用できなくなります。

リージョン Persistent Disk ボリュームがキャッチアップ状態の場合、Google Cloud はキャッチアップ状態のゾーンレプリカの修復を開始します。影響を受けるゾーンレプリカがディスク上のデータを取得し続けることを待つことをおすすめします。ゾーンレプリカが同期済み状態に移行すると、リージョン Persistent Disk ボリュームが完全に複製された状態に戻ります。リージョン Persistent Disk ボリュームが長時間にわたってキャッチアップまたはデグレード状態にあり、組織の RPO 要件を満たさない場合は、次のいずれかの方法でディスクのスナップショットを作成することをおすすめします。

  • スケジュール設定されたスナップショットを有効にします。
  • リージョン Persistent Disk ボリュームの手動スナップショットを作成します。

スナップショットを作成すると、そのスナップショットを使用して新しいリージョン Persistent Disk ボリュームを作成できるようになります。新しいリージョン Persistent Disk ボリュームにデータを復元します。新しいボリュームも、完全に複製された状態で開始され、正常なデータ レプリケーションが行われます。

リージョン Persistent Disk ボリュームのレプリケーション状態を確認する方法については、リージョン Persistent Disk のレプリケーション状態を判断するをご覧ください。

リージョン Persistent Disk のレプリカ復元チェックポイント

レプリカ復元チェックポイントは、完全に複製されたディスクの最新のクラッシュ整合性ポイントを示すリージョン Persistent Disk 属性です。Compute Engine は、リージョン Persistent Disk ボリュームごとに 1 つのレプリカ復元チェックポイントを自動的に作成し、維持します。リージョン Persistent Disk ボリュームが完全に複製されると、Compute Engine は約 10 分ごとにチェックポイントを更新し、チェックポイントを更新した状態を維持します。リージョン Persistent Disk ボリュームがデグレード状態になった場合、Compute Engine でそのディスクのレプリカ復元チェックポイントから標準スナップショットを作成できます。作成された標準スナップショットは、完全に複製されたディスクのクラッシュ整合性のある最新バージョンからデータをキャプチャします。

まれに、ディスクのパフォーマンスが低下し、最新のディスクデータと同期されたゾーンレプリカが、非同期レプリカにキャッチアップする前に障害が発生することがあります。その場合、どちらのゾーンの VM にもディスクを強制的にアタッチすることはできません。リージョン Persistent Disk ボリュームは使用できなくなり、データを新しいディスクに移行する必要があります。このようなシナリオでは、ディスクに使用できる既存の標準スナップショットがない場合でも、レプリカ復元チェックポイントから作成された標準スナップショットを使用して、不完全なレプリカからディスクデータを復元できる可能性があります。

Compute Engine は、マウントされたリージョン Persistent Disk ボリュームごとに、レプリカの復元チェックポイントを自動的に作成します。これらのチェックポイントを作成しても追加料金は発生しません。ただし、これらのチェックポイントを使用して、機能しているゾーンにディスクを移行すると、スナップショットや VM の作成でストレージ料金が発生します。

レプリカ復元チェックポイントを使用してリージョン Persistent Disk データを復元する方法をご確認ください。

リージョン Persistent Disk のフェイルオーバー

ゾーンが停止すると、ゾーンはアクセス不能になり、ゾーン内の VM はそのディスクに対して読み取りオペレーションや書き込みオペレーションを実行できなくなります。VM がディスクの読み取り / 書き込みオペレーションを続行できるように、Compute Engine では、ディスクのレプリカがある他のゾーンにディスクデータを移行できます。このプロセスはリージョン Persistent Disk のフェイルオーバーと呼ばれます。フェイルオーバー プロセスでは、影響を受けるゾーンのディスク レプリカから VM を切断し、他のゾーンのディスク レプリカに新しい VM を再アタッチします。Compute Engine は、ディスク上のデータをセカンダリ リージョンに同期的に複製して、単一のレプリカで障害が発生した場合に迅速なフェイルオーバーを実現します。

アプリケーション固有のリージョン コントロール プレーンによるフェイルオーバー

アプリケーション固有のリージョン コントロール プレーンは Google Cloud サービスではありません。HA サービス アーキテクチャを設計する場合は、アプリケーション固有のリージョン コントロール プレーンを独自に構築する必要があります。このアプリケーションのコントロール プレーンは、どの VM にリージョン Persistent Disk をアタッチし、どの VM を現在のプライマリ VM にするかを決定します。リージョン Persistent Disk ボリュームのプライマリ VM またはデータベースで障害が検出されると、HA サービス アーキテクチャのアプリケーション固有のリージョン コントロール プレーンが、セカンダリ VM のスタンバイ VM へのフェイルオーバーを自動的に開始できます。フェイルオーバー中、アプリケーション固有のリージョン コントロール プレーンは、リージョン Persistent Disk ボリュームをセカンダリ ゾーンのスタンバイ VM に再アタッチします。Compute Engine は、ヘルスチェック シグナルに基づいてすべてのトラフィックをその VM に転送します。

障害検出時間を除いたフェイルオーバー レイテンシの合計時間は、次のレイテンシの合計です。

  • 0 秒(リージョン Persistent Disk ボリュームをスタンバイ VM に再接アタッチにかかる時間)
  • アプリケーションの初期化と障害復旧にかかる時間

詳細については、アプリケーション固有のリージョン コントロール プレーンについてをご覧ください。

障害復旧の構成要素のページでは、Compute Engine で使用可能な構成要素について説明しています。

強制アタッチによるフェイルオーバー

リージョン Persistent Disk の利点の一つは、ゾーンが停止した場合に、リージョン Persistent Disk で実行されているワークロードを別のゾーンに手動でフェイルオーバーできることです。元のゾーンが停止すると、そのゾーンレプリカが復元されるまで切断オペレーションを完了できません。このシナリオでは、プライマリ ゾーンレプリカから VM を切断せずに、新しい VM をセカンダリ ゾーンレプリカにアタッチしなければならない場合があります。このプロセスは強制アタッチと呼ばれます。

プライマリ ゾーンの VM インスタンスが使用できなくなった場合は、ディスクをセカンダリ ゾーンの VM インスタンスに強制的にアタッチできます。このタスクを実行するには、次のいずれかを行う必要があります。

  • 強制アタッチするリージョン Persistent Disk ボリュームと同じゾーンで別の VM インスタンスを起動します。
  • そのゾーン内のホット スタンバイ VM インスタンスを維持します。ホット スタンバイは、使用中の VM インスタンスと同一の、実行中の VM インスタンスです。2 つのインスタンスは同じデータを所有します。

Compute Engine は強制アタッチ オペレーションを 1 分以内に実行します。合計目標復旧時間(RTO)は、ストレージ フェイルオーバー(リージョン Persistent Disk ボリュームの強制アタッチ)だけでなく、次のような要因にも左右されます。

  • 最初にセカンダリ VM インスタンスを作成するかどうか
  • 基盤となるファイル システムがホットアタッチされたディスクを検出する時間
  • 対応するアプリケーションの復旧時間

強制アタッチを使用して VM をフェイルオーバーする方法については、force-attach を使用してリージョン Persistent Disk ボリュームをフェイルオーバーするをご覧ください。

リージョン Persistent Disk はワークロードの可用性を優先します。つまり、まれに両方のディスク レプリカが同時に使用できなくなった場合に、データ保護のトレードオフが発生します。詳細については、リージョン Persistent Disk の障害を管理するをご覧ください。

制限事項

以降のセクションでは、リージョン Persistent Disk に適用される制限事項について説明します。

リージョン Persistent Disk の一般的な制限事項

  • リージョン Persistent Disk をアタッチできるのは、E2N1N2N2D のマシンタイプを使用する VM のみです。
  • リージョン Persistent Disk はイメージからは作成できません。
  • 読み取り専用モードを使用すると、最大 10 個の VM インスタンスにリージョン バランス永続ディスクをアタッチできます。
  • リージョン標準永続ディスクの最小サイズは 200 GiB です。
  • リージョン Persistent Disk ボリュームのサイズを増やすことはできますが、縮小はできません。
  • リージョン Persistent Disk ボリュームのパフォーマンス特性は、ゾーン Persistent Disk ボリュームとは異なります。詳細については、ブロック ストレージのパフォーマンスをご覧ください。
  • ゾーンディスクのクローンを作成してリージョン Persistent Disk を作成する場合、2 つのゾーンレプリカは作成時には完全には同期しません。作成後、リージョン ディスクのクローンは平均で 3 分以内に使用できるようになります。ただし、ディスクが完全に複製された状態になり、目標復旧時点(RPO)がゼロに近くなるまで、数十分かかる場合があります。詳細については、リージョン Persistent Disk が完全に複製されたかどうかを確認する方法をご覧ください。

リージョン Persistent Disk のレプリカ復元チェックポイントの制限事項

  • レプリカ復元チェックポイントはデバイス メタデータの一部であり、ディスクデータ自体を表すものではありません。チェックポイントは、デグレード状態のディスクのスナップショットを作成するメカニズムとしてのみ使用できます。チェックポイントを使用してスナップショットを作成した後、スナップショットを使用してデータを復元できます。
  • ディスクがデグレード状態になっている場合にのみ、レプリカ復元チェックポイントからスナップショットを作成できます。
  • Compute Engine は、ディスクが完全に複製された場合にのみ、ディスクのレプリカ復元チェックポイントを更新します。
  • Compute Engine は、ディスクに対して 1 つのレプリカ復元チェックポイントのみを維持し、そのチェックポイントの最新バージョンのみを維持します。
  • レプリカ復元チェックポイントの作成および更新の正確なタイムスタンプを確認することはできません。
  • レプリカ復元チェックポイントからスナップショットを作成するには、Compute Engine API を使用する必要があります。

次のステップ