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