维护事件和政策

为确保您的 Google Cloud Managed Lustre 实例保持最新状态, Google Cloud会定期对其进行维护。维护事件可能包括对底层软件或基础架构的更新。这些事件可能会导致暂时停机,在此期间,对实例的 I/O 操作可能会停止响应。维护完成后,受影响的 I/O 操作会恢复。停机时间通常为 2 到 25 分钟。

维护正在进行时,实例的状态为 UPGRADING。维护完成后,实例会恢复为 ACTIVE 状态。

借助维护政策,您可以控制这些维护事件的发生时间。您可以为每个实例配置维护政策,以指定维护窗口和应排除维护的时间段。如果未在实例上配置维护政策,则维护可能会随时发生。

您还可以重新安排维护事件,使其立即开始、在下一个可用窗口期间开始,或在最多 28 天后的特定时间开始。

极大规模实例

某些可提供极高性能和规模的 Managed Lustre 配置可能需要计划停机(最长 4 小时)以进行定期主机维护。Google 会提前与您协调这些维护事件。

维护政策简介

您可以为每个 Managed Lustre 实例配置维护政策。维护政策包括以下内容:

  • 每周维护窗口:每周的某个时间段(时长为一小时),在此期间,Managed Lustre 可以开始维护事件。
  • 维护排除窗口:在此期间,Managed Lustre 不得启动维护事件。您可以为每个实例定义一个排除窗口,最长持续时间为两周。如果开始日期和结束日期中未指定年份,则排除窗口每年重复一次。

排除窗口优先于常规维护窗口。如果预定事件在此期间发生,Managed Lustre 会将该事件推迟到下一个可用窗口,或完全跳过该事件。更新会在下一个维护周期内应用。

维护通知

您可以订阅有关即将进行的维护活动的电子邮件通知,以便为可能出现的中断做好准备。维护通知订阅是通过 Google Cloud 控制台的“通信”页面管理的:

前往通信页面

订阅后,系统会发送以下通知:

  • 提前通知:在安排的维护事件开始前 7 到 14 天发送,或在客户重新安排维护事件后发送。
  • 已取消:如果 Google 取消或客户重新安排了预定的维护事件,则会发送此通知。
  • 进行中:在维护事件开始时发送。
  • 已完成:在维护事件完成时发送。

您还可以在 Google Cloud 控制台的实例详情页面上查看即将进行的维护安排,也可以使用 Cloud Logging 查看维护日志

配置维护窗口

维护窗口需要指定星期几和 UTC 开始时间,且时长为 1 小时。

Google Cloud 控制台

如需在创建实例时配置维护窗口,请参阅创建实例

gcloud

通过指定 --maintenance-policy-weekly-windows 标志创建具有维护窗口的实例:

gcloud lustre instances create INSTANCE_ID \
  --per-unit-storage-throughput=PER_UNIT_STORAGE_THROUGHPUT \
  --capacity-gib=CAPACITY_GIB \
  --filesystem=FS_NAME \
  --location=LOCATION \
  --network=NETWORK_PATH \
  --maintenance-policy-weekly-windows='dayOfWeek=DAY,startTime={START_TIME}'

替换以下内容:

  • INSTANCE_ID:您的 Managed Lustre 实例的 ID。
  • PER_UNIT_STORAGE_THROUGHPUT性能层级,单位为 MBps/TiB。有效值为 01252505001000。 如需指定 [动态层][dynamic-tier],请将此属性设置为 0 并添加 --dynamic-tier-options-mode=DEFAULT_CACHE 标志。
  • CAPACITY:实例的容量(以 GiB 为单位)。
  • FS_NAME:文件系统的名称。
  • LOCATION:Managed Lustre 实例的位置。
  • NETWORK_PATH:实例所属 VPC 网络的完整路径,格式为 projects/PROJECT_ID/global/networks/NETWORK。请参阅配置 VPC 网络
  • DAY:维护窗口的星期几(例如 TUESDAY)。
  • START_TIME:维护窗口的 UTC 开始时间,采用字典格式(例如 {hours=1,minutes=0})。

如需详细了解如何创建实例,请参阅创建 Managed Lustre 实例

REST API

如需为实例指定维护窗口,请在创建实例时添加 maintenancePolicy 对象。

以下是 maintenancePolicy 对象的一个示例:

"maintenancePolicy": {
  "weeklyMaintenanceWindows": [
    {
      "dayOfWeek": "DAY",
      "startTime": {
        "hours": HOURS,
        "minutes": MINUTES
      }
    }
  ]
}

替换以下内容:

  • DAY:维护窗口的星期几(例如 TUESDAY)。
  • HOURS:维护窗口开始时间的小时(例如 1)。
  • MINUTES:维护窗口开始时间的小时分钟值(例如 0)。

配置排除窗口期

如要防止在特定时间段(例如节假日或商务活动期间)进行维护,您可以在维护政策中定义一个维护排除窗口。排除期最长可达两周。如需创建每年重复出现的排除时间段,请勿在开始日期和结束日期中指定年份。

您可以在同一政策中组合使用每周维护窗口和排除窗口期。

Google Cloud 控制台

如需在创建实例时配置排除窗口期,请参阅创建实例

gcloud

通过指定 --maintenance-policy-exclusion-window 标志来创建具有排除窗口的实例:

gcloud lustre instances create INSTANCE_ID \
  --per-unit-storage-throughput=PER_UNIT_STORAGE_THROUGHPUT \
  --capacity-gib=CAPACITY_GIB \
  --filesystem=FILESYSTEM \
  --location=LOCATION \
  --network=NETWORK_PATH \
  --maintenance-policy-exclusion-window='startDate={START_DATE},endDate={END_DATE},time={TIME}'

替换以下内容:

  • INSTANCE_ID:您的 Managed Lustre 实例的 ID。
  • PER_UNIT_STORAGE_THROUGHPUT性能层级,单位为 MBps/TiB。有效值为 01252505001000。 如需指定 [动态层][dynamic-tier],请将此属性设置为 0 并添加 --dynamic-tier-options-mode=DEFAULT_CACHE 标志。
  • CAPACITY:实例的容量(以 GiB 为单位)。
  • FS_NAME:文件系统的名称。
  • LOCATION:Managed Lustre 实例的位置。
  • NETWORK_PATH:实例所属 VPC 网络的完整路径,格式为 projects/PROJECT_ID/global/networks/NETWORK。请参阅配置 VPC 网络
  • START_DATE:维护排除期的开始日期,采用字典格式(例如 {day=08,month=06,year=2026})。如需每年重复一次,请省略 year 键。
  • END_DATE:维护排除窗口的结束日期,采用字典格式(例如 {day=08,month=06,year=2026})。如需每年重复一次,请省略 year 键。
  • TIME:排除时间段的 UTC 开始时间和结束时间,采用字典格式(例如 {hours=1,minutes=0})。

REST API

以下是包含排除窗口的 maintenancePolicy 对象示例:

"maintenancePolicy": {
  "maintenanceExclusionWindow": [
    {
      "startDate": {
        "day": START_DAY,
        "month": START_MONTH,
        "year": START_YEAR
      },
      "endDate": {
        "day": END_DAY,
        "month": END_MONTH,
        "year": END_YEAR
      },
      "time": {
        "hours": HOURS,
        "minutes": MINUTES
      }
    }
  ]
}

替换以下内容:

  • START_YEAR:排除时段开始日期的年份(例如 2026)。如需创建每年重复的时段,请省略此字段和 END_YEAR
  • START_MONTH:排除时间窗口开始日期的月份(例如 12)。
  • START_DAY:排除时间窗口开始日期的天数(例如 24)。
  • END_YEAR:排除时段结束日期的年份(例如 2027)。省略此字段和 START_YEAR 可创建每年重复的时段。
  • END_MONTH:排除时段结束日期的月份(例如 1)。
  • END_DAY:排除时间窗口结束日期的天数(例如 7)。
  • HOURS:排除时间窗口的时间(例如 0)。
  • MINUTES:排除时间窗口时间的小时分钟数(例如 0)。

更新维护政策

如需为现有实例添加或修改维护政策,请执行以下操作:

Google Cloud 控制台

如需更新实例的维护政策,请参阅管理实例

gcloud

以下 gcloud 示例会更新实例的维护政策:

gcloud lustre instances update INSTANCE_ID \
--location=LOCATION \
--maintenance-policy-weekly-windows='dayOfWeek=DAY,startTime={START_TIME}'

替换以下内容:

  • INSTANCE_ID:您的 Managed Lustre 实例的 ID。
  • LOCATION:Managed Lustre 实例的位置。
  • DAY:维护窗口的星期几(例如 TUESDAY)。
  • START_TIME:维护窗口的 UTC 开始时间,采用字典格式(例如 {hours=1,minutes=0})。

REST API

如需为实例指定维护窗口,请在更新实例时添加 maintenancePolicy 对象。您还必须在 updateMask 查询参数中指定 maintenancePolicy

以下 curl 示例会更新实例的维护政策:

curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -d '{
  "maintenancePolicy": {
    "weeklyMaintenanceWindows": [
      {
        "dayOfWeek": "DAY",
        "startTime": {
          "hours": HOURS,
          "minutes": MINUTES
        }
      }
    ]
  }
}' "https://lustre.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID?updateMask=maintenancePolicy"

替换以下内容:

  • PROJECT_ID:您的 Google Cloud 项目的 ID。
  • LOCATION Managed Lustre 实例的位置。
  • INSTANCE_ID Managed Lustre 实例的 ID。
  • DAY:维护窗口的星期几(例如 TUESDAY)。
  • HOURS 维护窗口开始时间的小时(例如 3)。
  • MINUTES 维护窗口开始时间的小时分钟值(例如 45)。

移除维护政策

如需从实例中移除维护政策,请清除该政策中的所有每周维护窗口和排除窗口。

Google Cloud 控制台

如需从实例中移除维护政策,请修改该实例并清除维护政策字段。请参阅管理实例

gcloud

使用带有 --clear-maintenance-policy-weekly-windows--clear-maintenance-policy-exclusion-window 标志的 gcloud lustre instances update 命令:

gcloud lustre instances update INSTANCE_ID \
--location=LOCATION \
--clear-maintenance-policy-weekly-windows \
--clear-maintenance-policy-exclusion-window

替换以下内容:

  • INSTANCE_ID:您的 Managed Lustre 实例的 ID。
  • LOCATION:Managed Lustre 实例的位置。

REST API

如需使用 REST API 移除维护政策,请使用 instances.patch 方法,并提供一个空的 maintenancePolicy 对象,同时将 updateMask 查询参数设置为 maintenancePolicy

curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -d '{
  "maintenancePolicy": {}
}' "https://lustre.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID?updateMask=maintenancePolicy"

替换以下内容:

  • PROJECT_ID:您的 Google Cloud 项目的 ID。
  • LOCATION:Managed Lustre 实例的位置。
  • INSTANCE_ID:Managed Lustre 实例的 ID。

查看维护日志

Managed Lustre 使用 Cloud Logging 记录维护事件,包括以下活动类型:

  • LustreAdvancedNotification:已安排对相应实例进行维护。
  • LustreOngoingNotification:实例维护已开始。完成后,系统会记录另一个 LustreOngoingNotification 事件,这次带有 is_completed=true
  • LustreCancelledNotification:维护已取消。

您可以使用 Logs Explorer 或 Google Cloud CLI 查看维护日志。

日志浏览器

如需使用日志浏览器查看 Managed Lustre 维护日志,请执行以下操作:

  1. 在 Google Cloud 控制台中,前往 Cloud Logging > Logs Explorer页面:

    转到日志浏览器

  2. 在查询编辑器中输入以下过滤条件,然后点击运行查询

    resource.type="lustre.googleapis.com/Instance"
    resource.labels.instance_id="INSTANCE_ID"
    resource.labels.location="LOCATION"
    logName="projects/PROJECT_ID/logs/lustre.googleapis.com%2Fmaintenance"
    

gcloud CLI

如需使用 Google Cloud CLI 查看维护日志,请运行 gcloud logging read 命令:

gcloud logging read 'resource.type="lustre.googleapis.com/Instance" resource.labels.instance_id="INSTANCE_ID" resource.labels.location="LOCATION" logName="projects/PROJECT_ID/logs/lustre.googleapis.com%2Fmaintenance"' --project=PROJECT_ID

替换以下内容:

  • INSTANCE_ID:Managed Lustre 实例的 ID。
  • LOCATION:实例所在的地区。
  • PROJECT_ID:实例所在项目的项目 ID。

重新安排维护

如果计划维护活动与您的需求相冲突,您可以重新安排该活动。重新安排时,您有以下选项:

  • 立即:重新安排维护事件,使其尽快开始。此选项会忽略实例上配置的所有维护窗口和排除窗口。
  • 下一个可用窗口:将维护事件重新安排到下一个可用维护窗口。这通常会将更新推迟一周。
  • 按日期:将维护事件重新安排到特定日期和时间。您可以将维护延迟到最长为最初安排的时间后的 28 天。此选项会忽略实例上配置的所有维护窗口和排除窗口。

如需重新安排维护,请执行以下操作:

gcloud

如需尽快启动维护事件,请执行以下操作:

gcloud lustre instances reschedule-maintenance INSTANCE_ID \
--location=LOCATION \
--reschedule-type=immediately

如需将维护重新安排到下一个可用维护窗口,请执行以下操作:

gcloud lustre instances reschedule-maintenance INSTANCE_ID \
--location=LOCATION \
--reschedule-type=next-available-window

如需将维护重新安排到特定时间,请执行以下操作:

gcloud lustre instances reschedule-maintenance INSTANCE_ID \
--location=LOCATION \
--reschedule-type=by-time \
--reschedule-schedule-time=TIMESTAMP

替换以下内容:

  • INSTANCE_ID:您的 Managed Lustre 实例的 ID。
  • LOCATION:Managed Lustre 实例的位置。
  • TIMESTAMP:采用 RFC 3339 格式的开始时间(例如 2026-04-30T10:00:00Z)。此时间不得晚于原定时间的 28 天。

REST API

使用 instances.rescheduleMaintenance 方法。

以下 curl 示例会尽快启动维护事件:

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -d '{
  "reschedule": {
    "rescheduleType": "IMMEDIATELY"
  }
}' "https://lustre.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID:rescheduleMaintenance"

以下 curl 示例会将维护重新安排到下一个可用窗口:

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -d '{
  "reschedule": {
    "rescheduleType": "NEXT_AVAILABLE_WINDOW"
  }
}' "https://lustre.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID:rescheduleMaintenance"

以下 curl 示例将维护重新安排到特定时间:

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -d '{
  "reschedule": {
    "rescheduleType": "BY_TIME",
    "scheduleTime": "TIMESTAMP"
  }
}' "https://lustre.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID:rescheduleMaintenance"

替换以下内容:

  • PROJECT_ID:您的 Google Cloud 项目的 ID。
  • INSTANCE_ID:您的 Managed Lustre 实例的 ID。
  • LOCATION:Managed Lustre 实例的位置。
  • TIMESTAMP:采用 RFC 3339 格式的开始时间(例如 2026-04-30T10:00:00Z)。此时间不得晚于原定时间的 28 天。