节点容错#
Ray 集群由一个或多个工作节点组成,每个工作节点包含工作进程和系统进程(例如 raylet)。其中一个工作节点被指定为头节点,并拥有额外的进程,如 GCS。
在这里,我们描述节点故障及其对任务、Actor 和对象的影响。
工作节点故障#
当工作节点发生故障时,所有正在运行的任务和 Actor 都会失败,并且该节点工作进程拥有的所有对象都将丢失。在这种情况下,任务、Actor 和 对象 的容错机制将会启动,并尝试使用其他工作节点来恢复故障。
头节点故障#
当头节点发生故障时,整个 Ray 集群都会失败。为了容忍头节点故障,我们需要使 GCS 具有容错能力,这样当我们启动一个新的头节点时,我们仍然拥有所有的集群级数据。
Raylet 故障#
当 raylet 进程发生故障时,对应的节点将被标记为死亡,并被视为与节点故障相同。每个 raylet 都关联一个唯一的 ID,因此即使 raylet 在同一物理机上重启,它也会被 Ray 集群视为一个新的 raylet/节点。