Achelous 使用心得体会
编者按: Achelous 的作业调度、管理功能,除了可以直接使用biocli 进行作业投递,也允许用户在平台基础上进行各种开发,比如基于Achelous系统提供的服务,构建用户的交互式分析平台。 本文作者杨海生,荣联科技生物云部门工程师,深耕数据分析WEB交互平台开发多年。本文为他对基于Achelous 的生物信息平台开发和使用过程中的一些心得体会。
Q1: 以Achelous 作为基础系统,为你的工作带来了哪些变化?
作为一名从事开发工作多年的工程师,在面对一个具体开发项目的时候,需要面对的问题,很多情况下,都是对资源使用的灵活性。比如让某一个任务直接运行到指定节点,用户只需要在其编写的WDL脚本中的属性项中添加对应内容即可:
task fusioncatcher {
File db
String sampleName
command <<<
… …
>>>
output {
File out="fusion"
}
runtime{
slaveconstraints:{"hostname":"Cc12Xtcls"}
}
}
这种对任务运行细节的掌控,是一般WDL解析器所不具备的。
Q2:那就你的经验而言,Achelous 系统的用户,又能获得什么样的便利呢?
对于开发者而言,所谓“用户”,其实可以细分为“管理员用户”和“使用者用户”,管理员用户追求的是系统的稳定性,而使用者用户追求的是用最短的时间把任务跑完。两者的诉求经常是矛盾的。目前最佳的调和方式,就是对任务使用的资源进行合理的分配,而这恰恰是现在很多调度平台所不具备的。
比如对于作业优先级,SRM平台对用户有信用机制,管理员可以按照极道科技提供的运维操作手册进行用户信用机制设置,比如某一个用户A的信用机制是5,那么A提交的作业无论是通过web页面提交还是通过biocli命令提交,他自己设置的优先级如果低于5,那么默认为用户设置的,如果高于5,那么A提交的作业优先级会被设置成4。
Achelous 还可以设置普通用户的作业提交数量。不但可以对作业数进行限制,还可以对作业中包含的task数量进行限制,具体操作,请按照极道科技提供的运维文档进行设置。比如给用户A设置的quota数为10,那么A用户提交11个作业后,如果前面10个作业状态都是运行中,那么第11个就是等待状态。
再比如,对于多用户环境,需要对于特定的用户或用户组投递的任务进行资源的限制 ,Achelous 为提供了这对CPU、内存、GPU的限制方式。其中CPU,Memory,GPU设置quota之后,是指该用户能用的最大CPU,比如管理员给A分配100核,A用户提交了2个作业,第一个作业运行的过程中已经占据了100核,那么第二个作业就处于等待状态,Memory,GPU雷同。对于平台的的存储资源,系统管理员可以通过极道科技提供的分布式存储,对用户的存储资源进行quota设置。
总的来说,对于系统管理员而言,Achelous可以实现很多实用的管理功能。