OpenSCOW调度器适配器
什么是调度器适配器
OpenSCOW是建立在底层作业调度器基础上的系统,它通过与底层调度器进行功能对接,向用户提供各种超算功能。
在之前的实现中,OpenSCOW直接与作业调度器本身交互,因此OpenSCOW必须知道底层调度器内部的某些细节, 导致OpenSCOW内部的某些代码是与调度器种类直接相关的(如最先适配的slurm),这会使适配其它调度器时比较麻烦。
调度器适配器(scheduler-adapter
)则是为了解决这一问题,通过一层适配器层,OpenSCOW只与适配器进行交互,
适配器再对接作业调度器,实现OpenSCOW需要的调度器功能。
怎样实现调度器适配器
调度器适配器本质上是一个gRPC服务器,它 实现了OpenSCOW定义的一套接口, OpenSCOW只会调用这套接口来实现调度器功能。
因此,只需要为对应种类的作业调度器实现这样一个gRPC服务器,满足上述接口定义,就能够轻松对接OpenSCOW系统
我们已经实现的调度器适配器:
如何平滑升级
这一部分介绍如何从旧版本OpenSCOW升级至新版本,使用调度器适配器
1. 部署调度器适配器
首先需要确保您的集群上部署了对应的调度器适配器,得到访问它的地址及端口号
部署适配器可参考文档:
2. 修改OpenSCOW配置文件
首先确保您使用了最新的OpenSCOW镜像(可查看install.yaml
中的imageTag
字段)
在用于部署OpenSCOW的scow-deployment
文 件夹中,修改配置文件:
-
首先修改集群配置文件
主要变化为删除
slurm
配置项, 将loginNodes
配置项作为独立的一项配置。新增adapterUrl
配置项,标识适配器地址 -
修改管理系统配置文件
删除了
fetchJobs
配置项中的db
项,即不再采用源作业信息数据库,通过适配器同步作业信息
3. 不再使用源作业信息数据库
部署使用适配器后,可以不再部署export-jobs
项目,同步作业信息的功能由适配器完成