作业调度与云计算

在查阅云计算相关资料的时候,发现云计算中有部分内容与我们目前开发的批量调度总线十分相关,例如作业调度也是云计算的关键软件,云计算的作业调度软件一般有以下功能:排队,调度,监控,资源管理以及计费。目前比较流行的开源作业管理有PBS(Portable Batch System), Condor ,商业的比较常见的有IBM的Loadleveler,以及LSF(Load Sharing Facility)。Hadoop的的调度功能,也只是做批量的调度,借鉴了Condor的经验

 

Condor是一个专门用于计算密集型作业的负载管理系统。像其他功能齐全的批处理系统一样,Condor提供了作业排队机制,调度策略,优先计划,资源监测和资源管理。用户提交他们的串行或并行工作给Condor,Condor把他们放到一个队列中,根据某种策略选择时间和地点来执行作业,仔细监测其进展情况,并最终通知用户完成。

 

PBS目前已经变成商业产品,condor目前仍然开源并在持续开发(http://research.cs.wisc.edu/condor/),可以作为我们调度产品的参考。

 

目前Condor等调度系统的调度算法,如常见的FCFS, Backfilling, Gang scheduling 等,大多延续自DQS(Distributed Queung System) ,解决了我们讨论的吞吐量,优先级,分布式排队等问题。其中Backfilling 算法 由于解决了资源碎片问题,显著提高了系统的性能,因此在集群系统中得到了广泛应用。

 

 

另外目前云计算调度规范,比如OGF-OGSA的作业描述语言(JSDL Job Submission and Dscription Language)和作业提交规范(BES Basic Execution Service),对于作业的描述,定义及提交有很好的的标准,其中的很多思路对我们的调度产品参考借鉴意义很大,如果产品最终能支持JDSL以及BES 等开放标准也是后续产品的一个亮点。JDSL和bes可参考附件。

SaaS

两年前在LFT的时候对公司的线业务部门很纳闷,因为感觉完全与主业不搭边,后来在一个VP的提问时间我提出了这个问题。原来最初创建在线业务部门是想进入SaaS领域。现在想想SaaS很难与现有部署的系统集成,客户定制,数据安全性,性能等都成为发展绕不开的坎。现在它的风头已经完全被云计算盖过了呢。

读书中。。

最近在测试公司研发的调度产品,谈到调度产品变离不开调度,条件管理,排队,资源管理,监控这几个核心功能。调度算法是个难题,如果保证系统有最大的吞吐率,以及保证作业优先级的情况下避免‘饥饿’情况发生。目前我们的调度算法还很不完善,最近在看云计算相关材料的时候才知道有很多开源的像PBS,condor等调度产品,FCFS, Backfilling, Gang scheduling等调度算法,在网上一阵搜索,希望能对现在的产品有点帮助。