调度系统就是资源分配的决策过程,即在合适的时间给合适的对象分 配合适的资源。因资源不同,所以出现了各式各样的调度系统。如果资源是 CPU 的时间片,那么它可能是操作系统内部的进程调度 ;如果资源是用于创建虚拟机的一台台物理机,那么它是云上的虚拟机调度系统,如阿里云的后羿调度系统。 当用户通过控制台或者 Open API 创建一台虚拟机时,调度系统会在数以万计的物理机中,寻找一台较符合用户需求的机器承载用户的虚拟机实例。对照上面的描述,在这个场景下,合适的时间即用户创建虚拟机的时候,合适的对象指用户设定的虚拟机的属性,比如规格、售卖类型、网络类型等,而合适的资源其实就是云平台的物理机集群了。 调度系统在不同平台的实现存在一些差异,业界也有很多文章对其进行分析总结,比如 Google 发布的关于 Omega 调度系统的论文,把调度的架构分成了集中式调度、双层调度及共享状态调度。目前主流的一些分布式调度系统,包括 Yarn、Mesos、 Spark 等都可以归到这几大类。它们在扩展性、并发度、容错性等方面各有优缺点。 阿里云的后羿调度系统历经了十多年的发展。 2010 年,ECS 的第一个集群上线,那时候的后羿调度系统是基于集群的调度,做的事情就是在集群内部进行静态的资源 分配。但是伴随着集群规模的扩大,后羿调度系统也开始逐步演化,除了管理粒度细化到了区域,在调度流程中也引入了过滤—权重模型,同时考虑的权重策略变得逐渐丰富起来,从最初的装箱策略到后来的用户粒度分散、资源负载等。
《弹性计算:无处不在的算力》电子书可以通过以下链接下载:https://developer.aliyun.com/topic/download?id=7996"
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。