Compute Engine 在两个 Google Cloud 可用区中保留每个区域磁盘的副本。每个副本称为可用区级副本。将数据写入磁盘时,Compute Engine 会将这些数据同步复制到两个副本,以确保高可用性 (HA)。在任何给定时间,区域性磁盘的磁盘复制状态会告知您磁盘是否能够同步写入这两个副本。磁盘的复制状态由磁盘的可用区级副本的副本状态决定。可用区的副本状态指示与磁盘上最新数据相比,单个可用区级副本的状态。如果可用区级副本包含最新的磁盘数据,则该副本会被视为与最新磁盘数据同步。如果两个可用区级副本已同步,则区域级 Persistent Disk 或Hyperdisk Balanced 高可用性磁盘会被视为完全复制。
本文档介绍如何监控一段时间内的区域级磁盘的副本状态及其磁盘复制状态。您可以使用本文档执行以下操作:
- 检查区域级磁盘的当前和历史副本状态。
- 如需仅验证特定区域性磁盘的可用区级副本是否同步,请使用 Google Cloud 控制台进行监控。
- 如需检查项目中所有磁盘的副本的确切可用区级副本状态,请使用 Cloud Monitoring 信息中心进行监控。
- 使用特定时间点的副本状态信息来确定磁盘是否已完全复制。
如需详细了解副本状态和磁盘复制状态,请参阅同步磁盘复制简介。
所需的角色
如需获得使用 Cloud Monitoring 查看复制状态所需的权限,请让您的管理员为您授予以下 IAM 角色:
-
如需查看区域级磁盘指标(以下各项之一),请执行以下操作:
-
项目的 Monitoring Viewer (
roles/monitoring.viewer
) -
项目的 Monitoring Editor (
roles/monitoring.editor
)
-
项目的 Monitoring Viewer (
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
使用 Google Cloud 控制台进行监控
本部分介绍如何使用 Google Cloud 控制台监控 Hyperdisk Balanced 高可用性 或区域级 Persistent Disk卷的副本状态和磁盘复制状态。
检查单个磁盘的可用区级副本是否同步
您可以使用 Google Cloud 控制台检查区域性磁盘的可用区级副本是否与最新的磁盘数据同步。
如需详细了解项目中所有区域级磁盘的确切可用区级副本状态,请使用 Cloud Monitoring 信息中心检查可用区级副本状态。
控制台
如需监控区域性磁盘的可用区级副本状态,请执行以下操作:
在 Google Cloud 控制台中,转到磁盘页面。
在磁盘页面的名称列中,选择要检查副本状态的磁盘。
系统会打开所选磁盘的管理磁盘页面,并显示该磁盘的详细信息标签页。
点击可观测性标签页。
管理磁盘页面会显示磁盘的监控信息。
如需查看磁盘的历史副本状态信息,请在可观测性标签页上导航到区域级永久性磁盘复制状态图表。
该图以两个单独的图表线条的形式显示过去一小时内可用区级副本的副本状态值。
副本状态值可以是以下任一值:
0
:副本不与最新的磁盘数据同步。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 每分钟捕获一次磁盘的副本状态,并使用 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 中执行此操作。
菜单驱动的界面
-
在 Google Cloud 控制台中,转到 leaderboard Metrics Explorer 页面:
如果您使用搜索栏查找此页面,请选择子标题为监控的结果。
Metrics Explorer 页面随即打开,并显示查询标签页。
如需查看项目中每个可用区级副本的副本状态数据,请为
Regional disk replica state
指标选择时序数据,然后移除聚合过滤器,具体方法是在查询窗格的工具栏中执行以下操作:在指标菜单,点击选择指标然后选择磁盘>磁盘>区域磁盘副本状态。
点击应用。
在聚合菜单中,选择未汇总(按无)。
系统会显示一个图表,并将每个副本前一小时的指标数据显示为时序。您只能看到挂接的磁盘的区域副本的指标数据。
如需详细了解如何为指标选择时序,请参阅使用 Metrics Explorer 时选择指标。
若要同时查看图表和表格视图,请点击图表顶部的两者。时间
如需查看所有可用的区域级磁盘属性的数据,请点击表格视图顶部的
列显示选项...,选择所有列,然后点击确定。信息中心会为表中的每一行显示以下字段及其当前值:
disk_id
:磁盘的 IDzone
:区域磁盘的创建区域。replica_zone
:副本可用区state
:副本状态storage_type
:磁盘的存储类型value
:副本状态的值
如需在图表视图中的相应时序上查看此数据,请将图表上的指针悬停在当前时间。图表会在提示中显示这些值。
如需检查特定时间点的历史副本状态,请执行以下操作:
将指针悬停在图表上您选择的特定时间值处。信息中心会显示项目中该特定时间点所有可用区级副本的所有副本状态的指标数据。
在图表视图中,此信息会显示在提示中。
在表格视图中,此信息会以单独的行显示。
记下副本状态及其对应的值。在任何给定时间,如果某个特定状态的值为
1
,则副本处于该状态。在图表视图中,检查提示内的副本状态和值,找到所需的磁盘 ID 和副本可用区。
在表格视图中,检查状态和值列,获取所需的特定磁盘 ID 和副本可用区。
如需详细了解副本状态及其值的含义,请参阅了解
Regional disk replica state
指标数据。可选:如需查看特定标签的副本状态信息,请在过滤条件菜单中,选择要查看其数据的标签,然后完成对话框。您可以添加多个过滤条件。
信息中心仅显示过滤后的标签的指标数据。如需详细了解过滤条件,请参阅过滤已绘制成图表的数据。
例如,如需查看特定磁盘的副本状态数据,请执行以下操作:
- 在过滤条件菜单中,选择名称标签。
- 在比较条件菜单中,选择 =(等号)。
- 在值菜单中,选择所需的磁盘的名称。
可选:如需确定特定磁盘副本的同步时间百分比,请过滤特定磁盘和状态的数据,然后使用聚合菜单:
- 在过滤条件菜单中,选择名称标签。
- 在比较条件菜单中,选择 =(等号)。
- 在值菜单中,选择磁盘的名称。
- 在过滤条件菜单中,选择状态标签。
- 在比较条件菜单中,选择 =(等号)。
- 在值菜单中,选择已同步。
- 在聚合菜单中,选择平均值(按 replica_zone)。
- 选择要查看其数据的时间段。
信息中心会显示指定时间段内磁盘副本的平均
synced
状态的数据。将此数据乘以 100 可确定副本的同步时间百分比。如果平均值在该时间段内的值显示为1
,则副本始终是最新的数据。小于1
的平均值表示在指定的时间段内的某些时间点没有同步副本。如需详细了解分组和校准,请参阅选择如何显示已绘制成图表的数据。
可选:如需修改要监控指标数据的时间段,请点击信息中心顶部的过去 1 小时,选择所需的时间段。
您可以选择相对于当前时间的时间段,也可以指定您选择的开始时间和结束时间。默认情况下,您会看到前一小时的指标数据。
MQL
-
在 Google Cloud 控制台中,转到 leaderboard Metrics Explorer 页面:
如果您使用搜索栏查找此页面,请选择子标题为监控的结果。
Metrics Explorer 页面随即打开,并显示查询标签页。
在查询窗格的工具栏中,点击名称以 < > 开头的按钮。
在语言字段中,选择 MQL 作为查询语言。此字段位于同一工具栏中,用于设置查询格式。
可选:停用自动运行切换开关。
输入您的查询,然后点击运行查询。
启用自动运行切换开关后,不会显示运行查询按钮。
例如,如需查看名为
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)]
如需修改要监控指标数据的时间段,请点击信息中心顶部的过去 1 小时,选择所需的时间段和时区。
您可以选择相对于当前时间的时间段,也可以指定您选择的开始时间和结束时间。默认情况下,您会看到前一小时的指标数据。
PromQL
-
在 Google Cloud 控制台中,转到 leaderboard Metrics Explorer 页面:
如果您使用搜索栏查找此页面,请选择子标题为监控的结果。
Metrics Explorer 页面随即打开,并显示查询标签页。
在查询窗格的工具栏中,点击名称以 < > 开头的按钮。
在语言字段中,选择 PromQL 作为查询语言。此字段位于同一工具栏中,用于设置查询格式。
可选:停用自动运行切换开关。
输入您的查询,然后点击运行查询。
启用自动运行切换开关后,不会显示运行查询按钮。
例如,如需查看名为
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}]))
如需修改要监控指标数据的时间段,请点击信息中心顶部的过去 1 小时,选择所需的时间段和时区。
您可以选择相对于当前时间的时间段,也可以指定您选择的开始时间和结束时间。默认情况下,您会看到前一小时的指标数据。
使用指标数据确定确切的可用区级副本状态
如需了解区域性磁盘的 Regional disk replica state
指标数据,您必须在生成的图表中检查可用区级副本的状态和值列。如果您未向查询添加任何过滤条件,则会发生以下情况:
- 状态列显示可用区副本的所有可能的磁盘副本状态:
Synced
、CatchingUp
和OutOfSync
之一。该图表以时序形式显示项目中所有区域性磁盘的所有可用区副本的这些状态。 - 值列指示可用区副本是否处于特定磁盘副本状态。此列会显示项目中所有区域性磁盘的所有可用区副本的每个状态值对应的二进制值(
0
或1
)。
对于任何可用区副本,如果值列对特定磁盘副本状态显示 1
,则该可用区副本处于该特定状态。如果值列显示特定状态的 0
,则表示该副本未处于该特定状态。在任何给定时间,可用区级副本的磁盘副本状态都正好有一个在值列为 1
。另外两个磁盘副本状态在各自的值列中为 0
。
对于每个可用区副本,图表和表格都会单独显示每种磁盘副本状态的条目:Synced
、CatchingUp
和 OutOfSync
。每个条目的值列都是二进制值(0
或 1
),用于指示副本是否处于该状态。在任何给定时间,可用区级副本只有一个副本状态,其值为 1
。
确定确切的磁盘复制状态
您可以使用可用区副本的副本状态来确定区域磁盘的复制状态,方法如下:
- 如果两个可用区级副本的
Synced
状态值为1
,则表示磁盘已完全复制。 - 如果其中一个可用区副本的
1
状态值为Synced
,而另一个可用区副本的1
状态值为CatchingUp
,则表示磁盘正在同步。 - 如果其中一个可用区副本的
1
状态值为Synced
,而另一个可用区副本的1
状态值为OutOfSync
,则表示磁盘已降级。
例如,假设有一个名为 my-disk1
的磁盘,其副本位于 us-central1-a
和 us-central1-b
。以下场景显示了 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 |
后续步骤
- 创建和管理区域级磁盘。
- 了解如何使用区域性磁盘构建高可用性服务。