ディスクの同期レプリケーションについて


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

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

リージョン Persistent Disk と Hyperdisk Balanced High Availability ボリュームは、リージョン マネージド インスタンス グループと連携するように設計されています。

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

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

ディスクの同期レプリケーションについて

リージョン Persistent Disk または Hyperdisk Balanced High Availability(プレビュー)ボリューム(レプリケートされたディスク)には、ディスクデータを保存するリージョン内にプライマリ ゾーンとセカンダリ ゾーンがあります。

  • プライマリ ゾーンは、ディスクをアタッチするコンピューティング インスタンスと同じゾーンです。
  • セカンダリ ゾーンは、同じリージョン内の代替ゾーンです。

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

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

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

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

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

同期レプリケートされたディスクのレプリケーション ステータス

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

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

ディスク レプリケーションのステータスが catching up または degraded の場合、ゾーンレプリカの 1 つがすべてのデータで更新されていません。このとき、正常なレプリカのゾーンが停止すると、正常なレプリカのゾーンが復元されるまでディスクが利用できなくなります。

リージョン Persistent Disk または Hyperdisk Balanced High Availability ボリュームがキャッチアップ状態の場合、Google Cloud はキャッチアップ状態のゾーンレプリカの修復を開始します。影響を受けるゾーンレプリカがディスク上のデータの取得を完了するまで待つことをおすすめします。この時点でステータスは Synced に変わります。ゾーンレプリカが同期済み状態に移行すると、レプリケートされたディスクのステータスが Fully replicated 状態に戻ります。

レプリケートされたディスクのステータスが catching up または degraded で長時間継続し、組織の RPO 要件を満たさない場合は、次のいずれかの方法でプライマリ レプリカのスナップショットを作成することをおすすめします。

  • スケジューリングされたスナップショットを有効にします。
  • リージョン Persistent Disk または Hyperdisk Balanced High Availability ディスクの手動スナップショットを作成します。

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

リージョン Persistent Disk または Hyperdisk Balanced High Availability ディスクのレプリケーション状態を確認する方法については、ディスクのレプリケーション状態を判断するをご覧ください。

レプリカの復元チェックポイント

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

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

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

詳しくは、レプリカ復元チェックポイントを使用してレプリケートされたディスクデータを復元するをご覧ください。

レプリケートされたディスクのフェイルオーバー

ゾーンが停止すると、ゾーンはアクセス不能になり、ゾーン内のコンピューティング インスタンスはそのディスクに対して読み取りオペレーションや書き込みオペレーションを実行できなくなります。インスタンスがレプリケートされたディスクに読み取り / 書き込みオペレーションを続行できるように、Compute Engine では、ディスクのレプリカがある他のゾーンにディスクデータを移行できます。このプロセスはフェイルオーバーと呼ばれます。

フェイルオーバー プロセスでは、影響を受けるゾーンのインスタンスからゾーンレプリカを切断し、セカンダリ ゾーンの新しいインスタンスにゾーンレプリカをアタッチします。Compute Engine は、ディスク上のデータをセカンダリ ゾーンに同期的に複製して、単一のレプリカで障害が発生した場合に迅速なフェイルオーバーを実現します。

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

アプリケーション固有のリージョン コントロール プレーンは Google Cloud サービスではありません。HA サービス アーキテクチャを設計する場合は、アプリケーション固有のリージョン コントロール プレーンを独自に構築する必要があります。このアプリケーションのコントロール プレーンは、レプリケートされたディスクをアタッチするインスタンスと、現在のプライマリ インスタンスを決定します。

レプリケートされたディスクのプライマリ インスタンスまたはデータベースで障害が検出されると、HA サービス アーキテクチャのアプリケーション固有のリージョン コントロール プレーンが、セカンダリ ゾーンのスタンバイ インスタンスへのフェイルオーバーを自動的に開始できます。フェイルオーバー中、アプリケーション固有のリージョン コントロール プレーンは、レプリケートされたディスクをセカンダリ ゾーンのスタンバイ インスタンスに再アタッチします。Compute Engine は、ヘルスチェック シグナルに基づいてすべてのトラフィックをそのインスタンスに転送します。

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

  • レプリケートされたディスクをスタンバイ インスタンスにアタッチするまでの時間は 1 分未満です。
  • アプリケーションの初期化と障害復旧にかかる時間

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

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

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

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

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

  • 強制アタッチするレプリケートされたディスクと同じゾーンで、別のコンピューティング インスタンスを起動します。
  • そのゾーン内のホット スタンバイ コンピューティング インスタンスを維持します。ホット スタンバイは、プライマリ ゾーンのインスタンスと同一の実行中のインスタンスです。2 つのインスタンスは同じデータを所有します。

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

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

強制アタッチを使用してコンピューティング インスタンスをフェイルオーバーする方法については、force-attach を使用してレプリケートされたディスクをフェイルオーバーするをご覧ください。

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

制限事項

以降のセクションでは、リージョン Persistent Disk と Hyperdisk Balanced High Availability(プレビュー)に適用される制限事項について説明します。

レプリケートされたディスクの一般的な制限事項

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

レプリカの復元チェックポイントの制限事項

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

次のステップ