监控区域级永久性磁盘的副本状态和磁盘复制状态


Compute Engine 在两个 Google Cloud 可用区中保留每个区域级永久性磁盘卷的副本。每个副本称为可用区级副本。将数据写入磁盘时,Compute Engine 会将这些数据同步复制到两个副本,以确保高可用性 (HA)。在任何给定时间,区域级永久性磁盘卷的磁盘复制状态会告知您磁盘是否能够同步写入这两个副本。磁盘的复制状态由磁盘的可用区级副本的副本状态决定。可用区的副本状态指示与磁盘上最新数据相比,单个可用区级副本的状态。如果可用区级副本包含最新的磁盘数据,则该副本会被视为与最新磁盘数据同步。如果两个可用区级副本已同步,则区域级永久性磁盘卷会被视为完全复制

本文档介绍如何监控一段时间内的区域级永久性磁盘副本状态和磁盘复制状态。您可以使用此文档执行以下操作:

  1. 检查区域级永久性磁盘的可用区级副本的当前和历史副本状态。
  2. 使用特定时间点的副本状态信息来确定磁盘是否已完全复制。

如需详细了解副本状态和磁盘复制状态,请参阅区域级永久性磁盘的可用区级磁盘复制

使用 Google Cloud 控制台进行监控

本部分介绍如何使用 Google Cloud 控制台监控区域级永久性磁盘卷的副本状态和磁盘复制状态。

检查单个磁盘的可用区级副本是否同步

您可以使用 Google Cloud 控制台检查特定区域级永久性磁盘卷的可用区级副本是否与最新的磁盘数据同步。

如需详细了解项目中所有区域级永久性磁盘卷的确切可用区级副本状态,请使用 Cloud Monitoring 信息中心检查可用区级副本状态

控制台

如需监控区域级永久性磁盘卷的可用区级副本状态,请执行以下操作:

  1. 在 Google Cloud 控制台中,转到磁盘页面。

    转到“磁盘”

  2. 磁盘页面的名称列中,选择要检查副本状态的磁盘。

    系统会打开所选磁盘的管理磁盘页面,并显示该磁盘的详细信息标签页。

  3. 管理磁盘页面上,点击监控标签页。

    管理磁盘页面会显示磁盘的监控信息。

  4. 如需查看磁盘的历史副本状态信息,请在监控标签页上导航到区域级永久性磁盘复制状态图表。

    该图以两个单独的图表线条的形式显示过去一小时内可用区级副本的副本状态值。

    副本状态值可以是以下任一值:

    • 0:副本不与最新的磁盘数据同步。
    • 1。副本与最新的磁盘数据同步。
  5. 如需检查特定时间点的可用区级副本的副本状态值,请执行以下操作:

    • 将图表上的指针悬停在要查看副本状态的时间值上。
    • 如需查看可用区级副本的副本状态,请导航到图表的底部。
    • 可选。如需查看图表线条表示的名称和副本状态值,请将指针悬停在图表线条上以查看任何特定时间的值。该图表会在提示中突出显示该副本的名称和特定于时间的状态。
  6. 可选。如需修改要查看副本状态数据的时间段,请在监控标签页的顶部选择一个时间段。您可以使用以下选项:

    • 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 每分钟捕获一次磁盘的副本状态,并使用 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 指标创建一个临时图表。您可以使用菜单驱动的界面、Monitoring Query Language (MQL)PromQL 在 Metrics Explorer 中执行此操作。

  1. 在 Google Cloud 控制台的导航面板中,选择监控,然后选择 Metrics Explorer

    转到 Metrics Explorer

    Metrics Explorer 页面随即打开,并显示查询标签页。

  2. 如需查看项目中每个可用区级副本的副本状态数据,请为 Regional disk replica state 指标选择时序数据,然后移除聚合过滤器,具体方法是在查询窗格的工具栏中执行以下操作:

    1. 指标菜单,点击选择指标然后选择磁盘>磁盘>区域磁盘副本状态

    2. 点击应用

    3. 聚合菜单中,选择未汇总(按无)

    系统会显示一个图表,并将每个副本前一小时的指标数据显示为时序。您只能看到挂接的区域级永久性磁盘卷副本的指标数据。

    如需详细了解如何为指标选择时序,请参阅使用 Metrics Explorer 时选择指标

  3. 若要同时查看图表和表格视图,请点击图表顶部的两者。时间

  4. 如需查看所有可用的区域级永久性磁盘属性的数据,请点击表格视图顶部的 列显示选项...,选择所有列,然后点击确定

    信息中心会为表中的每一行显示以下字段及其当前值:

    • disk_id:磁盘的 ID
    • zone:对于区域级永久性磁盘卷,即磁盘所在的区域。
    • replica_zone:副本可用区
    • state:副本状态
    • storage_type:磁盘的存储类型
    • value:副本状态的值

    如需在图表视图中的相应时序上查看此数据,请将图表上的指针悬停在当前时间。图表会在提示中显示这些值。

  5. 如需检查特定时间点的历史区域级永久性磁盘副本状态,请执行以下操作:

    1. 将指针悬停在图表上您选择的特定时间值处。信息中心会显示项目中该特定时间点所有可用区级副本的所有副本状态的指标数据。

      在图表视图中,此信息会显示在提示中。

      在表格视图中,此信息会以单独的行显示。

    2. 记下副本状态及其对应的值。在任何给定时间,如果某个特定状态的值为 1,则副本处于该状态。

      在图表视图中,检查提示内的副本状态和值,找到所需的磁盘 ID 和副本可用区。

      在表格视图中,检查状态列,获取所需的特定磁盘 ID 和副本可用区。

    如需详细了解副本状态及其值的含义,请参阅了解 Regional disk replica state 指标数据

  6. 可选:如需查看特定标签的副本状态信息,请在过滤条件菜单中,选择要查看其数据的标签,然后完成对话框。您可以添加多个过滤条件。

    信息中心仅显示过滤后的标签的指标数据。如需详细了解过滤条件,请参阅过滤已绘制成图表的数据

    例如,如需查看特定区域性永久性磁盘卷的副本状态数据,请执行以下操作:

    1. 过滤条件菜单中,选择名称标签。
    2. 比较条件菜单中,选择 =(等号)
    3. 菜单中,选择所需的磁盘的名称。
  7. 可选:如需确定特定磁盘副本的同步时间百分比,请过滤特定磁盘和状态的数据,然后使用聚合菜单:

    1. 过滤条件菜单中,选择名称标签。
    2. 比较条件菜单中,选择 =(等号)
    3. 菜单中,选择磁盘的名称。
    4. 过滤条件菜单中,选择状态标签。
    5. 比较条件菜单中,选择 =(等号)
    6. 菜单中,选择已同步
    7. 聚合菜单中,选择平均值(按 replica_zone)
    8. 选择要查看其数据的时间段。

    信息中心会显示指定时间段内磁盘副本的平均 synced 状态的数据。将此数据乘以 100 可确定副本的同步时间百分比。如果平均值在该时间段内的值显示为 1,则副本始终是最新的数据。小于 1 的平均值表示在指定的时间段内的某些时间点没有同步副本。

    如需详细了解分组和校准,请参阅选择如何显示已绘制成图表的数据

  8. 可选:如需修改要监控指标数据的时间段,请点击信息中心顶部的过去 1 小时,选择所需的时间段。

    您可以选择相对于当前时间的时间段,也可以指定您选择的开始时间和结束时间。默认情况下,您会看到前一小时的指标数据。

MQL

  1. 在 Google Cloud 控制台的导航面板中,选择监控,然后选择 Metrics Explorer

    转到 Metrics Explorer

    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 小时,选择所需的时间段和时区。

    您可以选择相对于当前时间的时间段,也可以指定您选择的开始时间和结束时间。默认情况下,您会看到前一小时的指标数据。

PromQL

  1. 在 Google Cloud 控制台的导航面板中,选择监控,然后选择 Metrics Explorer

    转到 Metrics Explorer

    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 小时,选择所需的时间段和时区。

    您可以选择相对于当前时间的时间段,也可以指定您选择的开始时间和结束时间。默认情况下,您会看到前一小时的指标数据。

使用指标数据确定确切的可用区级副本状态

如需了解区域级永久性磁盘卷的 Regional disk replica state 指标数据,您必须在生成的图表中检查可用区级副本的状态列。如果您不向查询添加任何过滤条件,则会发生以下情况:

  • 状态列显示可用区副本的所有可能的磁盘副本状态:SyncedCatchingUpOutOfSync 之一。该图表以时序形式显示项目中所有区域永久性磁盘的所有可用区副本的这些状态。
  • 列指示可用区副本是否处于特定磁盘副本状态。此列会显示项目中所有区域永久性磁盘的所有可用区副本的每个状态值对应的二进制值(01)。

对于区域永久性磁盘的任何可用区副本,如果列显示特定磁盘副本状态的 1,则该可用区副本处于该特定状态。如果列显示特定状态的 0,则表示该副本未处于该特定状态。在任何给定时间,可用区级副本的磁盘副本状态都正好有一个在列为 1。另外两个磁盘副本状态在各自的列中为 0

对于每个可用区级副本,图表和表格都会单独显示每种磁盘副本状态的条目:SyncedCatchingUpOutOfSync。每个条目的列都是二进制值(01),用于指示副本是否处于该状态。在任何给定时间,可用区级副本只有一个副本状态,其值为 1

确定确切的磁盘复制状态

您可以使用可用区级副本的副本状态来确定区域级永久性磁盘卷的复制状态,方法如下:

  • 如果两个可用区级副本的 Synced 状态值为 1,则表示区域级永久性磁盘卷已完全复制
  • 如果其中一个可用区副本的 1 状态值为 Synced,而另一个可用区副本的 1 状态值为 CatchingUp,则表示您的区域永久性磁盘卷正在同步
  • 如果其中一个可用区副本的 1 状态值为 Synced,而另一个可用区副本的 1 状态值为 OutOfSync,则表示您的区域永久性磁盘卷已降级

例如,请考虑一个在 us-central1-aus-central1-b 中具有副本的区域永久性磁盘 my-disk1。以下场景显示了 my-disk1 的每个可能的复制状态的可用区副本的状态列的值:

已完全复制

在此场景中,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

后续步骤