DisasterOperation
DisasterOperation 是长流程动作的统一载体。用户点击一次按钮,Server 通常会创建一个 DisasterOperation,operator 再按步骤执行。

可编辑图源:failover-flow.excalidraw
操作类型
支持的 operationType 包括:
failoverreprotectpauseresumesynconcesyncdatasyncresourceundocanceldrilldrill-cleanup
操作状态
status.state 包括:
PendingRunningCompletedFailed
status.steps 记录每个步骤的名称、状态、开始时间、完成时间和 message。
Failover 步骤
默认步骤:
PreCheckPauseSchedulesFinalSyncScaleDownSourceScaleUpTargetCheckReplicasSwitchRoles
当前实现将 FinalSync 放在 ScaleDownSource 前,原因是源端 Pod 仍运行时更适合读取文件系统备份数据;之后再缩容源端以降低脑裂风险。
补偿
当 failover 在关键步骤失败时,状态机会根据失败位置进入自动补偿分支,例如直接回滚或创建 cancel 路径。补偿状态通过 autoCancelStatus、autoCancelMode、autoCancelTriggerStep 等字段观察。