> For the complete documentation index, see [llms.txt](https://baiyongan.gitbook.io/lsf-handbook/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://baiyongan.gitbook.io/lsf-handbook/part-ii-ji-chu-cao-zuo-pian/user_fundations/inside_an_lsf_cluster/falut_tolerance.md).

# 容错

LSF 的强大体系结构在设计时考虑了容错能力。 系统中的每个组件都具有恢复操作，因此，重要组件可以由另一个组件监视，并可以自动从故障中恢复。

即使集群中的某些主机不可用，LSF 也可以继续运行。 集群中的一个主机充当主节点，但是如果该主节点不可用，则由另一台主机候选节点接管。当集群中有一个主节点候选时，LSF 可用。

LSF 可以容许集群中，任何主机或主机组的故障。当某主机不可用时，在该主机上运行的所有作业，将会重新排队运行或丢失，具体取决于该作业是否被标记为可重新运行。其他挂起或正在运行的作业，则不会受到影响。

## 故障转移的工作原理

容错能力取决于事件日志文件 lsb.events，该文件保存在主文件服务器上。系统中的每个事件都记录在该文件中，包括所有作业提交以及作业和主机状态更改。如果主节点不可用，则从主节点候选列表中选择一个新的主节点，新的主节点上的 **sbatchd** 守护程序，将启动一个新的 **mbatchd** 守护程序。 新的 **mbatchd** 守护程序，会读取lsb.events 文件以恢复系统状态。

## 重复事件记录

对于不希望仅依靠中央文件服务器获取恢复信息的站点，可以将 LSF 配置为通过保留 lsb.events 文件的副本来维护重复的事件日志。 副本存储在文件服务器上，并且在主副本不可用时使用。 启用重复事件日志记录后，主事件日志将本地存储在第一个主主机上，并在主机恢复时与复制的副本重新同步。

## 主机故障转移

LSF 主节点是动态选择的。如果当前的主节点不可用，则另一台主机将自动接管。故障转移主机，是从 lsf.conf 文件（在安装时在 install.config 文件中指定）的 **LSF\_MASTER\_LIST** 参数中定义的列表中选择的。列表中的第一个可用节点充当主机。

正在运行的作业由每个服务器主机上的 **sbatchd** 守护程序管理。 当新的 **mbatchd** 守护程序启动时，它将轮询每个主机上的 **sbatchd** 守护程序，并找到其作业状态。如果 sbatchd 守护程序失效，但主机仍在运行，则主机上正在运行的作业不会丢失。 重新启动 sbatchd 守护程序后，它将重新获得对主机上正在运行的所有作业的控制。

## 作业故障转移

作业可以通过可重新运行的方式来提交，如此一来，它们可以从头开始自动运行，也可以通过可检查点的形式提交，如此一来，如果由于主机故障而挂掉，则可以从另一个主机上的检查点重新开始。

如果集群中的所有主机都关闭，则所有正在运行的作业都将丢失。 当主节点的候选节点，恢复并接管为主节点时，它将读取 lsb.events 文件，以获取所有批处理作业的状态。 除非系统将其标记为可重新运行，否则系统关闭时，正在运行的作业将被认为已退出，并且电子邮件将发送给提交用户。等待的作业则保留在队列中，并在主机可用时，进行调度。

## 分区集群

如果集群因网络故障而分区，则 master LIM 会接管分区的每一侧，而候选主节点则在分区的每一侧都可用。 当每个主机仍然可以访问 LSF 可执行文件时，交互式负载共享仍然可用。.

## 分区网络

如果对网络进行了分区，则只有一个分区可以访问 lsb.events 文件，因此 LSF 服务仅在分区的一侧可用。一个锁定文件，用于确保集群中仅运行一个 mbatchd 守护程序。

## 作业异常处理

您可以配置主机和队列，以便 LSF 在作业运行时检测到异常情况，并自动采取适当的措施。 您可以自定义检测到哪些异常以及相应的操作。 例如，您可以将 LSF 设置为在作业退出并显示特定错误代码时，自动重新启动。
