IBM LSF 系统简介
LSF(Load Sharing Facility)是IBM旗下的一款分布式集群管理系统软件,负责计算资源的管理和批处理作业的调度。它给用户提供统一的集群资源访问接口,让用户透明地访问整个集群资源。同时提供了丰富的功能和可定制的策略。LSF 具有良好的可伸缩性和高可用性,支持几乎所有的主流操作系统。它通常是高性能计算环境中不可或缺的基础软件。作用上与PBS一样,使用方法略有不同。
IBM Spectrum LSF (“LSF” ,简称为负载共享设施) 软件是业界领先的企业级软件。 LSF 在现有异构 IT 资源之间分配工作,以创建共享,可扩展且容错的基础架构,从而提供更快,更可靠的工作负载性能并降低成本。 LSF 均衡负载和分配资源,并提供对这些资源的访问权。
LSF 提供了一个资源管理框架,用于满足您的作业需求,查找运行该作业的最佳资源,并监视其进度。 作业始终根据主机装入和站点策略运行。
集群
一组运行 LSF 的计算机 (主机) ,它们作为单个单元一起工作,将计算能力,工作负载和资源组合在一起。 集群为计算资源网络提供单系统映像。
可以通过多种方式将主机分组到集群中。 集群可以包含:
- 单个管理组中的所有主机
- 子网上的所有主机
主机
集群中的主机执行不同的功能。
- 管理主机
充当集群整体协调程序的 LSF 服务器主机,执行所有作业调度和分派。 - 服务器主机
提交和运行作业的主机。 - 客户机主机
仅提交作业和任务的主机。 - 执行主机
运行作业和任务的主机。 - 提交主机
从中提交作业和任务的主机。
作业
在 LSF 系统中运行的工作单元。 作业是提交到 LSF 以执行的命令。 LSF 根据配置的策略调度,控制和跟踪作业。
作业可以是复杂问题,模拟场景,广泛计算或需要计算能力的任何内容。
作业槽
作业槽是在 LSF 系统中分配单个工作单元的存储区。
可以使用多个作业插槽来配置主机,并且您可以从队列分派作业,直到所有作业插槽都已填满为止。 您可以将作业插槽与集群中的 CPU 总数相关联。
队列
作业的集群范围容器。 所有作业都在队列中等待,直到调度这些作业并将其分派给主机为止。
队列与个别主机不对应; 每个队列都可以使用集群中的所有服务器主机或已配置的服务器主机子集。
将作业提交到队列时,不需要指定执行主机。 LSF 将作业分派到集群中的最佳可用执行主机以运行该作业。
队列实现不同的作业调度和控制策略。
资源
资源是集群中可用于运行工作的对象。 例如,资源包括但不限于主机, CPU 插槽和许可证。
LSF 集群组件
LSF 集群可管理资源,接受和调度工作负载以及监视所有事件。 用户和管理员可以通过命令行界面, API 或通过 IBM® Spectrum LSF Application Center 来访问 LSF
在 LSF 集群中
了解在 LSF 主机上运行的各种守护进程, LSF 集群通信路径以及 LSF 如何容忍集群中的主机故障。
- LSF 守护程序和进程
多个 LSF 进程在集群中的每个主机上运行。 正在运行的进程的类型和数量取决于主机是 管理 主机还是计算主机。 - LSF 集群通信路径
了解集群中 LSF守护程序之间的通信路径。 - 故障容错和自动管理主机故障转移
LSF 的稳健体系结构设计时考虑到了故障容错。 系统中的每个组件都具有恢复操作,因此重要组件由另一个组件监视,并且可以从故障中自动恢复。 - 安全性
了解 LSF 安全模型,认证和用户角色。
1、LSF 守护程序和进程
多个 LSF 进程在集群中的每个主机上运行。 正在运行的进程的类型和数量取决于主机是 管理主机 还是 计算主机。
2、LSF 集群通信路径
容错和自动管理主机故障转移
LSF 的稳健体系结构是在设计时考虑了容错。 系统中的每个组件都具有恢复操作,因此重要组件由另一个组件监视,并且可以从故障中自动恢复。
LSF 旨在继续运行,即使集群中的某些主机不可用也是如此。 集群中的一个主机充当 管理 主机,但如果 管理 主机变为不可用,那么另一个 管理 主机候选者将接管。 当集群中有一个 管理 主机候选者可用时, LSF 可用。
LSF 可以容许集群中任何主机或主机组发生故障。 当主机变为不可用时,将重新排队或丢失在该主机上运行的所有作业,这取决于该作业是否标记为可重新运行。 不会影响其他暂挂或正在运行的作业。
1)、故障转移的工作方式
容错取决于事件日志文件 lsb.events,该文件保留在主文件服务器上。 系统中的每个事件都会记录在此文件中,包括所有作业提交以及作业和主机状态更改。 如果 管理 主机变得不可用,那么将从 管理 候选列表中选择新的 管理 主机,并且新的 管理 主机上的 sbatchd 守护程序将启动新的 mbatchd 守护程序。 新的 mbatchd 守护程序读取 lsb.events 文件以恢复系统状态。
2)、重复事件日志记录
对于不希望仅依赖中央文件服务器来获取恢复信息的站点,可以将 LSF 配置为通过保留 lsb.events 文件的副本来维护重复事件日志。 副本存储在文件服务器上,并在主副本不可用时使用。 启用重复事件日志记录后,主事件日志将以本地方式存储在第一个 管理 主机上,并在主机恢复时与复制的副本进行再同步。
3)、主机故障转移
LSF 管理 主机是动态选择的。 如果当前 管理 主机变为不可用,那么另一个主机将自动接管。 从 lsf.conf 文件 (在安装时在 install.config 文件中指定) 的 LSF_MASTER_LIST 参数中定义的列表中选择故障转移 管理 主机。 列表中的第一个可用主机充当 管理 主机。
正在运行的作业由每个服务器主机上的 sbatchd 守护程序管理。 当新的 mbatchd 守护程序启动时,它会轮询每个主机上的 sbatchd 守护程序并查找其作业的状态。 如果 sbatchd 守护程序失败但主机仍在运行,那么在主机上运行的作业不会丢失。 当 sbatchd 守护程序重新启动时,它将重新控制正在主机上运行的所有作业。
4)、作业故障转移
可以将作业作为 rerunnable提交,以便它们自动从头开始再次运行或作为 checkpoint运行,以便它们在由于主机故障而丢失时从另一个主机上的检查点再次启动。
如果集群中的所有主机都关闭,那么所有正在运行的作业都将丢失。 当 管理 候选主机恢复并接管为 管理 主机时,它将读取 lsb.events 文件以获取所有批处理作业的状态。 假定在系统关闭时正在运行的作业已退出,除非这些作业被标记为可重新运行,并且将向提交用户发送电子邮件。 暂挂作业将保留在其队列中,并在主机变为可用时进行调度。
5)、分区集群
如果集群由网络故障分区,那么 管理 主机 LIM 将在分区的每一侧进行接管,而 管理 主机候选项在分区的每一侧都可用。 当每个主机仍可访问 LSF 可执行文件时,交互式负载共享仍然可用。
6)、分区网络
如果网络已分区,那么只有其中一个分区可以访问 lsb.events 文件,因此 LSF 服务仅在分区的一侧可用。 锁定文件用于确保只有一个 mbatchd 守护程序在集群中运行。
7)、作业异常处理
您可以配置主机和队列,以便 LSF 在作业运行时检测异常情况,并自动执行相应的操作。 您可以定制检测到的异常以及相应的操作。 例如,您可以将 LSF 设置为在作业退出时带有特定错误代码时自动重新启动该作业。
3、安全性
LSF 安全模型
缺省情况下, LSF 安全模型在内部跟踪用户帐户。 LSF 中定义的用户帐户包含用于提供认证的密码和用于提供授权的已分配角色 (例如管理员)。
LSF 用户角色
在未启用 EGO 的情况下, LSF支持以下用户角色:
-
LSF user
有权将作业提交到 LSF 集群并查看作业和集群的状态。 -
主 LSF 管理员
有权执行集群范围的操作,更改配置文件,重新配置集群以及控制所有用户提交的作业。
配置文件 (例如 lsb.params 和 lsb.hosts ) 配置 LSF的所有方面。 -
LSF 管理员
有权执行影响其他 LSF 用户的操作。
– 集群管理员
可以对集群中的所有作业和队列执行管理操作。 可能无权更改 LSF 配置文件。
–队列管理员
管理许可权仅限于指定的队列。
– 主机组管理员
管理许可权仅限于指定的主机组。
– 用户组管理员
管理许可权仅限于指定的用户组。
启用了 EGO 的 LSF 用户角色
启用了 EGO 的 LSF支持以下角色:
-集群管理员
可以管理集群中的任何对象和工作负载。
-使用者管理员
可以管理他们有权访问的使用者中的任何对象和工作负载。
-使用者用户
可以在他们有权访问的使用者中运行工作负载
在 EGO中创建和管理用户帐户。 EGO 授权其用户数据库中的用户。
LSF 用户组
通过在可以指定 LSF 用户组的任何位置指定 UNIX 或 Linux 用户组,直接使用任何现有 UNIX 和 Linux 用户组。
外部认证
LSF 为首选使用外部或第三方安全性机制 (例如 Kerberos, LDAP 或 ActiveDirectory) 的站点提供了安全插件。
您可以创建定制的 eauth 可执行文件,以提供用户,主机和守护程序的外部认证。 从外部安全系统传递凭证。 还可以定制 eauth 可执行文件以从操作系统或认证协议 (例如 Kerberos) 获取凭证。