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


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

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

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

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

必要なロール

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

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

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

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

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

ゾーンレプリカが単一ディスク用に同期されているかどうかを確認する

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

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

コンソール

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

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

    [ディスク] に移動

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

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

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

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

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

    グラフには、前の 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 の場合、ディスクは完全に複製されています。
  • ゾーンレプリカの 1 つで Synced 状態の値が 1 で、もう 1 つのゾーンレプリカの CatchingUp 状態の値が 1 の場合、ディスクは最新の状態に追いつきます
  • ゾーンレプリカの 1 つで Synced 状態の値が 1 で、もう 1 つのゾーンレプリカの OutOfSync 状態の値が 1 の場合、ディスクはデグレードしています。

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

完全に複製

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

レプリカのゾーン 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 のゾーンレプリカのディスク レプリカの状態ごとに次の値が表示されます。

レプリカのゾーン 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 のゾーンレプリカのディスク レプリカの状態ごとに次の値が表示されます。

レプリカのゾーン 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

次のステップ