TPU 实例的故障恢复
为了确保工作负载持续运行,Compute Engine 会从硬件和应用故障中恢复 TPU 实例和切片。
故障恢复行为取决于您的容量模式:
- 受管容量模式(按需、灵活启动和标准预留):Compute Engine 会通过在运行正常的硬件上重启 TPU 实例和切片来自动恢复它们。
- 全容量模式(全容量模式下的预留):您负责管理 TPU 切片恢复。在现有主机上修复硬件故障,而不会自动将实例迁移到新硬件。
多主机切片恢复要求
多主机 TPU 切片要求切片中的所有实例一起恢复或重新调度。无论 Compute Engine 在受管容量模式下是否自动处理恢复,还是您在“所有容量”模式下手动恢复切片,都无法重新调度切片中的各个实例。
多主机切片中的实例通过芯片间互连 (ICI) 连接,在某些情况下还通过光路交换机 (OCS) 连接。当您预配多宿主切片时,Compute Engine 会创建 TPU 实例并激活 ICI 网络。您可以在工作负载政策中设置加速器拓扑,以指定切片的网络拓扑。当工作负载启动时,基础 TPU 软件层 LibTPU 会初始化网络拓扑。默认情况下,XLA 编译器随后会静态地将模型的操作映射到此拓扑。
如果实例或网络链接发生故障,则物理硬件不再与映射的拓扑匹配。因此,在系统通过重新创建或重新调度切片中的所有实例来重新配置网络拓扑之前,XLA 编译器无法执行工作负载。
在受管容量模式下进行故障恢复
在受管容量模式下(包括按需预留、灵活启动预留和标准预留),Compute Engine 会通过在运行正常的硬件上重启 TPU 实例和切片,自动从硬件和主机故障中恢复。
单主机 TPU 切片的自动恢复
单主机切片是独立的 TPU 实例。默认情况下,Compute Engine 会通过在运行正常的硬件上重启实例来自动恢复失败的实例。此行为由自动重启设置控制,创建实例时(Spot 虚拟机除外)默认启用该设置。如果您停用自动重启,则实例发生故障会导致实例进入 TERMINATED 状态。如需了解详情,请参阅自动重启。
在以下情况下,Compute Engine 会自动恢复发生故障的实例:
- 由物理机未响应、主机关闭、主机重启或主机断电导致的主机超时或错误
- 由您或 Google 发起的物理主机维护事件
- 主机内的芯片间互连 (ICI) 故障
- 虚拟机崩溃
在计划终止的情况下,Compute Engine 不会自动恢复实例,包括:
- 实例删除
- 预留删除或过期
- Spot 虚拟机抢占
单主机切片中的 MIG 启动的修复
在具有单主机切片的 MIG 中,如果单主机切片中的 TPU 实例因硬件故障或外部事件(例如抢占竞价型虚拟机)而进入 TERMINATED 状态,则 MIG 会默认修复该实例。在修复期间,MIG 会重新创建具有相同名称的实例。如果您关闭修复功能,则可以停用此修复机制。
您还可以在具有单主机切片的 MIG 中设置基于应用的健康检查。如果健康检查检测到应用无响应,则 MIG 会将相应实例标记为健康状况不佳,并通过重新创建该实例来自动修复该实例。
如需了解详情,请参阅关于修复虚拟机以实现高可用性和设置应用健康检查和自动修复。
多主机切片的自动恢复
对于采用按需、灵活启动或预留消耗模型的受管模式 TPU,Compute Engine 会自动恢复多主机切片中发生故障的实例。
在恢复期间,Compute Engine 会识别一组可构成网络拓扑的 TPU 机器,在这些机器上同时重启切片中的所有实例,并重新配置网络。此流程通过在可用的健康硬件上重新创建拓扑,而不是等待硬件修复,最大限度地减少了停机时间。
恢复流程和切片状态
在自动恢复期间,切片会经历以下状态:
- 切片转换为
REACTIVATING状态。 - 切片中的所有实例都会过渡到
REPAIRING状态,但并非一定在同一时间。 - Compute Engine 会在运行正常的硬件上同时重启切片中的所有实例。
如需详细了解 TPU 切片状态,请参阅加速器拓扑状态。
在受管理容量模式下需要手动恢复切片的场景
在以下情况下,Compute Engine 无法自动恢复多宿主切片:
- Spot 虚拟机抢占:如果切片中的任何实例被抢占,Compute Engine 会终止切片中的所有实例,并且切片会进入
FAILED状态。 - 用户发起的中断:如果您停止或删除 TPU 实例,或者从操作系统内停止实例,则切片会进入
FAILED状态。在您重新创建切片之前,该切片会一直处于FAILED状态。
在这些情况下,您必须手动恢复切片。
全容量模式下的故障恢复
在全容量模式下,您负责管理 TPU 切片恢复流程。与受管容量模式不同,Compute Engine 不会自动将发生故障的 TPU 实例或多主机切片重新定位到新的物理硬件。Google 会修复现有主机上出现故障的底层硬件,而您负责将健康状况不佳的切片重新调度到您在预订中预留的健康备用硬件。
主机故障和有故障的主机修复
如果发生主机故障,或者您将虚拟机主机报告为有故障,主机修复流程会按如下方式运行:
- 在修复物理硬件期间,受影响的虚拟机会过渡到
REPAIRING状态。 - 底层硬件修复后,虚拟机将转换回同一主机上的
RUNNING状态。不过,如果虚拟机属于多主机切片,则该切片会保持“FAILED”状态。您必须手动恢复切片。
如需了解详情,请参阅在全容量模式下报告和修复有故障的 TPU 主机。
紧急维护
在紧急维护事件期间或您手动启动维护事件时:
- 虚拟机会从
RUNNING状态转换为REPAIRING状态。 - 维护完成后,虚拟机将恢复为同一主机上的
RUNNING状态。
如需了解详情,请参阅在全容量模式下管理维护事件。
多主机切片故障场景
在“所有容量”模式下,Compute Engine 不会自动恢复多主机切片。在以下情况下,切片会转换为 FAILED 状态:
- ICI 失败:虚拟机保持
RUNNING状态,但切片状态转换为FAILED状态。 - Spot 虚拟机抢占:如果切片中的任何实例被抢占,Compute Engine 会终止切片中的所有实例,并且切片会进入
FAILED状态。 - 用户发起的中断:如果您停止或删除 TPU 实例,或者从操作系统内停止实例,则切片会进入
FAILED状态。
当切片进入 FAILED 状态时,您必须通过重新调度切片中的所有实例来手动恢复切片。
手动恢复 TPU 切片
当采用受管理容量模式或全容量模式的 TPU 切片处于 FAILED 状态时,您必须使用以下方法之一重新调度切片中的所有实例,以手动恢复该切片:
- 将 MIG 调整为目标大小
0,然后将其增加到所需大小。 - 删除 MIG 并重新创建切片。
后续步骤
如需验证 TPU 的故障恢复情况,请检查以下状态: