常青藤 HPC常青园 2023-07-28 19:48 发表于北京
弹性扩缩技术正在成为HPC集群中的一项重要技术。它可以根据实际需求动态调整集群资源,应对用户负载的波动。对于运维团队来说,自动弹性扩缩能够减轻集群运维负担,提高集群资源利用率,降低成本。
目前已经存在一些可行的集群自动扩缩方案。其中,LSF Resource Connector是LSF官方提供的自动扩缩工具,能够帮助用户实现LSF集群的弹性扩缩。另一种方案是通过HPCinsights与Augur的组合,可以更加灵活的实现HPC集群弹性扩缩需求。
我们来具体介绍这两种实现方式。
一、LSF Resource Connector
LSF Resource Connector(简称LSF RC)是LSF 10.1版本的一个新特性,该特性使得LSF能够根据集群的作业负载情况,从各种外部计算资源管理系统借用计算资源(虚拟机或者物理机),将其加入LSF集群,再将作业调度到借用的资源上。
下图是LSF Resource Connector涉及的重要组件。
从上图可以得知,Resource Connector主要涉及的组件包括:mbschd、mbatchd和ebrokerd。在ebrokerd内部,定义了一组通用的Resource Connector接口,可以调用不同的外部资源。例如AWSTool.jar作为AWS公有云的plugin,实现了对AWS的资源借用和删除接口,包括申请创建虚拟机、删除虚拟机和查询虚拟机状态等。
以下是Resource Connector的具体工作流程。
(1) 用户提交一个LSF作业。作业会产生一个对计算资源的需求(Demand),但是集群中已没有足够的计算资源来处理作业,这时就需要从外部资源提供方借用资源了。
(2) mbatchd守护进程会首先检查是否已经有机器被分配并且能够满足这个需求,如果没有,它会根据外部资源模板(Template)的定义,计算针对每个模板需要几台机器,然后生成一个具体的资源请求(Request),并把这个Request发给ebrokerd守护进程。
(3) 根据作业的Demand,Resource Connector请求外部资源提供方来分配机器。
(4) ebrokerd守护进程会监控请求的状态,直到它检测到资源提供方成功分配了机器,并在新分配的机器上启动LSF守护进程。
(5) 机器加入到LSF集群之后,作业就会被调度到这台机器上。
(6) 当没有新的资源需求的时候,mbatchd通过ebrokerd守护进程把资源返回给资源提供方。
二、HPCinsights + Augur
HPCinsights可以实现对HPC集群的监控、查询、统计和分析(参考“LSF集群监控和分析工具HPCinsights”),Augur可以实现对HPC集群的自动化运维(参考“自动化运维平台Augur”),通过HPCinsights与Augur的组合,可以实现:
-
HPC集群自动扩容:HPCinsights可以监控HPC集群的状态和负载变化,当满足扩容条件时,通过Augur自动触发扩容操作。
-
HPC集群自动缩容:当集群负载下降,满足缩容条件时,通过Augur自动释放多余资源,以节省成本。
HPCinsights与Augur实现HPC集群弹性扩缩的总体架构如下图所示:
下面我们以LSF集群和AWS公有云为例,具体展示一下云上LSF集群的自动弹性扩缩过程。
集群的初始化环境只有一个LSF管理节点部署在AWS公有云上,集群中无任何作业。
Augur管理平台中只有LSF管理节点和HPCinsights节点,如下图所示。
HPCinsights服务器资源监控面板中,可以查看到LSF管理节点的监控信息。
接下来,我们在集群中提交一些作业,可以看到这些作业因资源不足而处于PEND状态。
根据预设的触发扩容的规则(可配置),集群开始自动扩容,在AWS云上自动增加了两个LSF节点。
HPCinsights服务器资源监控面板,会显示新创建出来的这两个计算节点。
我们用命令查询到LSF集群中添加了两台主机,并且作业也分配到了这两台新的计算节点上。
接下来,我们展示集群缩容过程。
我们把所有作业都杀掉(只是为了演示目的,实际使用时HPCinsights会根据作业和计算节点负载情况决定是否触发缩容),队列中无等待作业,自动触发缩容操作。
Augur平台上会出现缩容场景执行的任务,并且主机会从主机管理中移除。
HPCinsights服务器资源监控面板,也会同步信息,最后只剩下LSF管理节点。
三、总结
LSF RC是LSF用于支持集群弹性扩缩的新功能。HPCinsights与Augur的组合可以更加灵活地实现HPC集群弹性扩缩,其主要特点是,弹性扩缩操作是通过调用Augur平台中的Ansible脚本实现的(例如在AWS上创建虚拟机、加入LSF集群都以Ansible脚本方式实现,可以根据实际需要进行修改),因而可以应用于多种公有云平台,也可以根据具体需求灵活调整HPC集群中的统一用户认证、共享文件系统等设置。另外,HPCinsights + Augur也提供了更加细粒度的扩缩策略(LSF RC目前只根据pending作业数量进行扩缩,但未考虑主机CPU和内存当前实际负载情况)。