リージョン ディスクのレプリカの状態とレプリケーションのステータスをモニタリングする


Compute Engine では、各リージョン ディスクのコピーが 2 つの Google Cloud ゾーンで保持されます。各コピーはゾーンレプリカと呼ばれます。高可用性(HA)を確保するため、ディスクに書き込まれたデータは両方のレプリカに同期的に複製されます。ディスクが両方のレプリカに同期して書き込む能力の状態は、リージョン Persistent Disk ボリュームのディスク レプリケーション ステータスによっていつでも把握できます。ディスク レプリケーション ステータスは、ディスクのゾーンレプリカのレプリカ状態によって決まります。ゾーンのレプリカの状態は、ディスク上の最新のデータと比較した個別のゾーンレプリカの状態を示します。最新のディスクデータが含まれているゾーンレプリカは、最新のディスクデータと同期状態にあるとみなされます。両方のゾーンレプリカが同期状態の場合、リージョン Persistent Disk またはHyperdisk Balanced High Availability ディスクは完全にレプリケーションされているとみなされます。

このドキュメントでは、リージョン ディスクのレプリカ状態とディスク レプリケーション ステータスを一定の期間にわたってモニタリングする方法について説明します。このドキュメントを使用すると、次のことを行えます。

  1. リージョン ディスクの現在と過去のレプリカ状態を確認する。
  2. 特定時点のレプリカ状態に関する情報を使用して、ディスクが完全にレプリケーションされたかどうかを判別する。

レプリカ状態とディスク レプリケーション ステータスの詳細については、ディスクの同期レプリケーションについてをご覧ください。

必要なロール

Cloud Monitoring を使用してレプリケーションの状態を表示するために必要な権限を取得するには、次の IAM ロールを付与するように管理者に依頼してください。

ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

Google Cloud コンソールを使用してモニタリングする

このセクションでは、Hyperdisk Balanced High Availability ボリュームまたはリージョン Persistent Diskボリュームのレプリカ状態とディスク レプリケーション ステータスを Google Cloud コンソールによってモニタリングする方法について説明します。

単一ディスクのゾーンレプリカが同期状態にあるかどうかを確認する

Google Cloud コンソールを使用して、リージョン ディスクのゾーンレプリカが最新のディスクデータと同期状態にあるかどうかを確認できます。

プロジェクト内のすべてのリージョン ディスクの正確なゾーンレプリカ状態に関する詳細を表示するには、Cloud Monitoring ダッシュボードを使用してゾーンレプリカ状態を確認します。

コンソール

リージョン ディスクのゾーンレプリカ状態をモニタリングするには、次の操作を行います。

  1. Google Cloud コンソールで、[ディスク] ページに移動します。

    [ディスク] に移動

  2. [ディスク] ページの [名前] 列で、レプリカの状態を確認するディスクを選択します。

    選択したディスクの [ディスクの管理] ページが開き、対象のディスクの [詳細] タブが表示されます。

  3. [オブザーバビリティ] タブをクリックします。

    [ディスクの管理] ページに、ディスクのモニタリング情報が表示されます。

  4. ディスクの過去のレプリカ状態に関する情報を表示するには、[オブザーバビリティ] タブで [リージョン永続ディスクのレプリケーション状態] グラフに移動します。

    グラフには、直近の 1 時間のゾーンレプリカのレプリカ状態値が 2 本の個別のグラフ線で表示されます。

    レプリカの状態の値は次のいずれかです。

    • 0: レプリカが最新のディスクデータと同期していません。
    • 1: レプリカは最新のディスクデータと同期しています。
  5. 特定の時点のゾーンレプリカのレプリカ状態の値を確認するには、次の操作を行います。

    • グラフでレプリカの状態を確認する時刻値の上にポインタを置きます。
    • ゾーンレプリカのレプリカ状態値を確認するには、グラフの下部に移動します。
    • 省略可: グラフ線で示される名前とレプリカ状態値を表示するには、任意の時間値のグラフ線上にポインタを置きます。グラフのツールチップ内に、レプリカの名前と時間ごとの状態がハイライト表示されます。
  6. レプリカ状態データを表示する期間を変更するには、[オブザーバビリティ] タブの上部で期間を選択します。次のオプションが用意されています。

    • 1 時間: 直近の 1 時間。これがデフォルト値です。
    • 6 時間: 直近の 6 時間。
    • 1 日: 前日。
    • 1 週間: 前週。
    • 1 か月: 前月。
    • 6 週間: 直前の 6 週間。
    • カスタム: 任意の特定の期間。 カスタム モニタリング期間を指定するには、[カスタム] をクリックして次の操作を行います。

      • [開始日時] フィールドに、モニタリング期間の開始時点を指定します。過去の時刻を指定する必要があります。
      • [終了日時] フィールドに、モニタリング期間の終了時点を指定します。過去の時刻を指定する必要があります。
      • カスタム モニタリング期間を保存するには、[適用] をクリックします。

ディスクが完全に複製されたかどうかを確認する

ゾーンレプリカが最新のディスクデータと同期しているかどうかを判断したら、その情報を使用してディスクが完全に複製されているかどうかを判断できます。

両方のゾーンレプリカのレプリカの状態の値が 1 の場合、任意の時点でディスクは完全に複製されています。そうでない場合は、その時点での正確なレプリカ状態を確認して、ディスクがデグレード状態か、最新情報のチェック中かを判断します。詳細については、Cloud Monitoring の指標を使用してモニタリングするをご覧ください。

Cloud Monitoring の指標を使用してモニタリングする

Cloud Monitoring の Regional disk replica state 指標を使用すると、すべてのリージョン ディスクの正確なゾーンレプリカ状態に関する詳細情報を確認できます。

Regional disk replica state 指標について

Cloud Monitoring ダッシュボードでは、ゾーンレプリカの現在と過去のディスク レプリカ状態を確認できます。Compute Engine によってディスクのレプリカ状態が 1 分ごとにキャプチャされ、Regional disk replica state 指標によって報告されます。ただし、ゾーンレプリカがアタッチされているコンピューティング インスタンスに影響するゾーン停止が発生すると、いずれのゾーンレプリカの Regional disk replica state 指標データも表示されません。

Regional disk replica state 指標の値は次のいずれかです。ゾーンレプリカは、常にこれらのディスク レプリカ状態のいずれかになります。

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

指標の定義については、Compute Engine Monitoring の指標をご覧ください。

Regional disk replica state 指標データを使用すると、次のことを行えます。

  • リージョン ディスクのレプリケーション ステータスを判別する
  • リージョン ディスクのレプリカ状態の履歴を確認して、フェイルオーバー アーキテクチャが意図したとおりに機能しているかどうかを確認し、リージョン ディスクの状態が変化した場合には必要な措置を講じる。
  • Regional disk replica state 指標データに基づいてアラートを作成し、レプリカ状態の変化を検出して必要な対応を行う。指標ベースのアラートの作成方法については、アラート ポリシーの追加方法をご覧ください。

Regional disk replica state 指標データを確認する

アタッチされたリージョン ディスクのゾーンレプリカのステータスを確認するには、クエリを作成し、Regional disk replica state 指標の一時的なグラフを作成します。Metrics Explorer でこれを行うには、メニュー形式インターフェース、Monitoring Query Language(MQL)、または PromQL を使用します。

  1. Google Cloud コンソールで、[Metrics Explorer] ページに移動します。

    Metrics Explorer に移動

    検索バーを使用してこのページを検索する場合は、小見出しが [Monitoring] の結果を選択します。

    [Metrics Explorer] ページが開き、[クエリ] タブが表示されます。

  2. プロジェクト内の各ゾーンレプリカのレプリカ状態データを表示するには、Regional disk replica state 指標の時系列データを選択してから、クエリペインのツールバーで次の操作を行って集計フィルタを削除します。

    1. [指標] メニューで、[指標を選択] をクリックして [ディスク] > [ディスク] > [リージョン ディスクのレプリカの状態] を選択します。

    2. [適用] をクリックします。

    3. [集計] メニューで、[Unaggregated by None] を選択します。

    グラフが表示され、各レプリカの直近の 1 時間の指標データが時系列として表示されます。アタッチされているディスクのゾーンレプリカの指標データのみが表示されます。

    指標の時系列の選択の詳細については、Metrics Explorer 使用時の指標の選択をご覧ください。

  3. グラフとテーブルのビューを同時に表示するには、グラフの上部にある [両方] をクリックします。

  4. 使用可能なすべてのリージョン ディスク プロパティのデータを表示するには、テーブルビューの上部で [列表示オプション...] をクリックし、すべての列を選択して [OK] をクリックします。

    ダッシュボードには、テーブルのすべての行について、次のフィールドと現在の値が表示されます。

    • disk_id: ディスクの ID
    • zone: リージョン ディスクが作成されたリージョン
    • replica_zone: レプリカのゾーン
    • state: レプリカの状態
    • storage_type: ディスクのストレージ タイプ
    • value: レプリカの状態の値

    グラフビュー内の対応する時系列についてこのデータを表示するには、グラフ上の現在の時刻にポインタを置きます。これらの値は、グラフのツールチップ内に表示されます。

  5. 特定の時点におけるレプリカ状態の履歴を確認するには、次の操作を行います。

    1. グラフで選択した特定の時刻値の上にポインタを置きます。ダッシュボードには、特定の時点におけるプロジェクト内のすべてのゾーンレプリカのすべてのレプリカの状態に関する指標データが表示されます。

      グラフビューでは、この情報はツールチップ内に表示されます。

      テーブルビューでは、この情報は個別の行として表示されます。

    2. レプリカの状態とそれらの状態に対応する値をメモします。任意の時点で特定の状態の値が 1 の場合、レプリカはその状態にありました。

      グラフビューで、ツールチップ内のレプリカの状態と値で、必要なディスク ID とレプリカゾーンを確認します。

      テーブルビューで、[state] 列と [value] 列で、必要な特定のディスク ID とレプリカゾーンを確認します。

    レプリカの状態とそれらの値が示す内容について詳しくは、Regional disk replica state 指標データを理解するをご覧ください。

  6. 省略可: 特定のラベルのレプリカの状態情報を表示するには、[フィルタ] メニューで、データを表示するラベルを選択し、ダイアログを完了します。フィルタは複数追加できます。

    ダッシュボードには、フィルタされたラベルの指標データのみが表示されます。フィルタの詳細については、グラフデータをフィルタするをご覧ください。

    たとえば、特定のディスクのレプリカ状態データを表示する手順は次のとおりです。

    1. [フィルタ] メニューで、[名前] ラベルを選択します。
    2. [コンパレータ] メニューで [=(等しい)] を選択します。
    3. [] メニューで、必要なディスクの名前を選択します。
  7. 省略可: 特定のディスクのレプリカが同期されていた時間の割合を確認するには、特定のディスクと状態でデータをフィルタしてから、集計メニューを使用します。

    1. [フィルタ] メニューで [名前] ラベルを選択します。
    2. [コンパレータ] メニューで [=(等しい)] を選択します。
    3. [] メニューで、ディスクの名前を選択します。
    4. [フィルタ] メニューで、[状態] ラベルを選択します。
    5. [コンパレータ] メニューで [=(等しい)] を選択します。
    6. [] メニューで [同期済み] を選択します。
    7. [集計] メニューで、[Mean by replica_zoneeplica_zone] を選択します。
    8. データを表示する期間を選択します。

    ダッシュボードには、指定した期間におけるディスクのレプリカの平均 synced ステータスに関するデータが表示されます。このデータに 100 を乗算して、レプリカが同期されていた時間の割合を特定します。この期間の平均値の値が 1 となっている場合、レプリカは常に最新のデータで最新の状態になっていました。平均値が 1 未満の場合、指定された期間中のある時点でレプリカが同期されていないことを示します。

    グループ化とアライメントの詳細については、グラフ化したデータの表示方法を選択するをご覧ください。

  8. 省略可: 指標データをモニタリングする期間を変更するには、ダッシュボードの上部にある [過去 1 時間] をクリックして、目的の期間を選択します。

    現在の時刻を基準とする相対的な期間を選択するか、任意の開始時刻と終了時刻を指定できます。デフォルトでは、直近 1 時間の指標データが表示されます。

MQL

  1. Google Cloud コンソールで、[Metrics Explorer] ページに移動します。

    Metrics Explorer に移動

    検索バーを使用してこのページを検索する場合は、小見出しが [Monitoring] の結果を選択します。

    [Metrics Explorer] ページが開き、[クエリ] タブが表示されます。

  2. クエリペインのツールバーで、名前が < > で始まるボタンをクリックします。

  3. [言語] フィールドで、クエリ言語として [MQL] を選択します。このフィールドは、クエリの書式設定を行うのと同じツールバーにあります。

  4. (省略可)[自動実行] の切り替えボタンを無効にします。

  5. クエリを入力し、[クエリを実行] をクリックします。

    [自動実行] の切り替えが有効になっている場合、[クエリを実行] ボタンは表示されません。

    たとえば、disk-1 というディスクのレプリカ状態データを表示するには、次のクエリを実行します。

    fetch gce_disk
    | metric 'compute.googleapis.com/disk/regional/replica_state'
    | filter (metadata.system_labels.name == 'disk-=1')
    | group_by 1m, [value_replica_state_mean: mean(value.replica_state)]
    | every 1m
    

    別の例として、disk-1 というディスクに対してレプリカが同期された時間の割合を確認するには、次のクエリを実行します。

    fetch gce_disk
    | metric 'compute.googleapis.com/disk/regional/replica_state'
    | filter (metadata.system_labels.name == 'disk-1') && (metric.state == 'Synced')
    | group_by 1m, [value_replica_state_mean: mean(value.replica_state)]
    | every 1m
    | group_by [metric.replica_zone],
        [value_replica_state_mean_mean: mean(value_replica_state_mean)]
    
  6. 指標データをモニタリングする期間を変更するには、ダッシュボードの上部にある [過去 1 時間] をクリックして、必要な期間とタイムゾーンを選択します。

    現在の時刻を基準とする相対的な期間を選択するか、任意の開始時刻と終了時刻を指定できます。デフォルトでは、直近 1 時間の指標データが表示されます。

PromQL

  1. Google Cloud コンソールで、[Metrics Explorer] ページに移動します。

    Metrics Explorer に移動

    検索バーを使用してこのページを検索する場合は、小見出しが [Monitoring] の結果を選択します。

    [Metrics Explorer] ページが開き、[クエリ] タブが表示されます。

  2. クエリペインのツールバーで、名前が < > で始まるボタンをクリックします。

  3. [言語] フィールドで、クエリ言語として [PromQL] を選択します。このフィールドは、クエリの書式設定を行うのと同じツールバーにあります。

  4. (省略可)[自動実行] の切り替えボタンを無効にします。

  5. クエリを入力し、[クエリを実行] をクリックします。

    [自動実行] の切り替えが有効になっている場合、[クエリを実行] ボタンは表示されません。

    たとえば、disk-1 というディスクのレプリカ状態データを表示するには、次のクエリを実行します。

    avg_over_time(compute_googleapis_com:disk_regional_replica_state{monitored_resource="gce_disk",metadata_system_name="disk-1"}[${__interval}])
    

    別の例として、disk-1 というディスクに対してレプリカが同期された時間の割合を確認するには、次のクエリを実行します。

    avg by (replica_zone)(avg_over_time(compute_googleapis_com:disk_regional_replica_state{monitored_resource="gce_disk",state="Synced",metadata_system_name="disk-1"}[${__interval}]))
    
  6. 指標データをモニタリングする期間を変更するには、ダッシュボードの上部にある [過去 1 時間] をクリックして、必要な期間とタイムゾーンを選択します。

    現在の時刻を基準とする相対的な期間を選択するか、任意の開始時刻と終了時刻を指定できます。デフォルトでは、直近 1 時間の指標データが表示されます。

指標データを使用して正確なゾーンレプリカ状態を特定する

リージョン ディスクの Regional disk replica state 指標データを把握するには、生成されたグラフでゾーンレプリカの state 列と value 列を確認する必要があります。クエリにフィルタを追加しない場合、次のようになります。

  • state 列には、ゾーンレプリカのディスク レプリカ状態(SyncedCatchingUpOutOfSync のいずれか)が表示されます。グラフには、プロジェクト内のすべてのリージョン ディスクのすべてのゾーンレプリカについて、これらの各状態が時系列形式で表示されます。
  • value 列には、ゾーンレプリカが特定のディスク レプリカ状態にあるかどうかが表示されます。この列には、プロジェクト内のすべてのリージョン ディスクのすべてのゾーンレプリカに対応する state の値ごとに、対応するバイナリ値(0 または 1)が表示されます。

ゾーンレプリカの [value] 列で特定のディスク レプリカ状態について 1 と表示されている場合、そのゾーンレプリカはその特定の状態にあります。[value] 列で特定の状態について 0 と表示されている場合、そのレプリカはその特定の状態にはありません。任意の時点で、ゾーンレプリカの [value] 列に 1 が含まれるディスク レプリカの状態は、常に 1 つのみです。他の 2 つのディスク レプリカ状態では、それぞれの [value] 列に 0 が含まれています。

すべてのゾーンレプリカで、グラフとテーブルにはディスク レプリカ状態(SyncedCatchingUpOutOfSync)ごとに個別のエントリが表示されます。各エントリの [value] 列は、レプリカがその状態にあるかどうかを示すバイナリ値(0 または 1)です。任意の時点で、ゾーンレプリカには値が 1 のレプリカ状態が 1 つのみ存在します。

正確なディスク レプリケーション ステータスを確認する

ゾーンレプリカのレプリカ状態に基づき、次の方法でリージョン ディスクのレプリケーションの状態を判断できます。

  • 両方のゾーンレプリカで Synced 状態の値が 1 の場合、ディスクは完全にレプリケーションされています。
  • 一方のゾーンレプリカで Synced 状態の値が 1 で、他方のゾーンレプリカで CatchingUp 状態の値が 1 の場合、ディスクは最新情報のチェック中です。
  • 一方のゾーンレプリカで Synced 状態の値が 1 で、他方のゾーンレプリカで OutOfSync 状態の値が 1 の場合、ディスクはデグレード状態です。

たとえば、my-disk1 という名前のディスクがあり、そのレプリカが us-central1-aus-central1-b にあるとします。次のシナリオでは、my-disk1 で考えられるレプリケーション状態ごとに、ゾーンレプリカの [state] 列と [value] 列の値を示しています。

完全に複製

このシナリオでは、us-central1-a のレプリカと us-central1-b のレプリカの両方がディスク上の最新のデータで更新されます。グラフには、my-disk1 のゾーンレプリカのディスク レプリカの状態ごとに次の値が表示されます。

replica_zone state value
us-central1-a Synced 1
us-central1-a CatchingUp 0
us-central1-a OutOfSync 0
us-central1-b Synced 1
us-central1-b CatchingUp 0
us-central1-b OutOfSync 0

最新情報のチェック

このシナリオでは、us-central1-a のレプリカがディスク上のデータで更新され、us-central1-b のレプリカがディスク上のデータで最新の状態に追いつきます。グラフには、my-disk1 のゾーンレプリカのディスク レプリカの状態ごとに次の値が表示されます。

replica_zone state value
us-central1-a Synced 1
us-central1-a CatchingUp 0
us-central1-a OutOfSync 0
us-central1-b Synced 0
us-central1-b CatchingUp 1
us-central1-b OutOfSync 0

デグレード

このシナリオでは、us-central1-a のレプリカがディスク上のデータで更新され、us-central1-b のレプリカは同期されません。グラフには、my-disk1 のゾーンレプリカのディスク レプリカの状態ごとに次の値が表示されます。

replica_zone state value
us-central1-a Synced 1
us-central1-a CatchingUp 0
us-central1-a OutOfSync 0
us-central1-b Synced 0
us-central1-b CatchingUp 0
us-central1-b OutOfSync 1

次のステップ