腾讯云VStation架构总结

0. 前言

在IDC最新(截止到2019年2月)的数据报告中显示,目前在公有云市场中,腾讯云占据国内公有云市场份额的11%,位列第二紧随阿里云之后。腾讯作为互联网巨头,在2018年底的时候成立云与智能事业群足见其在云计算方向上的布局。

本篇主要根据腾讯发布的文章对其VStation系统进行总结

1. 腾讯云调度面临的挑战

  • 异构性与调度质量;]
  • 宿主机的异构性趋势;
  • 虚拟机的多样性需求;
  • 调度过程中需要考虑的多种策略(将同一用户的虚拟机分散放置到不同的故障域中保证高可用;
  • 控制单台宿主机同时创建虚拟机的数量保证创建速度;
  • 优先选择命中镜像缓存的宿主机加快创建速度;
  • 考虑资源利用率保证SLA和集群资源利用率的相对平衡);
  • 异构性对调度质量造成挑战;
  • 超大规模集群对分布式系统可扩展性带来巨大挑战;
  • 海量的云主机购买需求;
  • 超大规模对调度吞吐率带来的挑战;

2. 调度架构的演化规律

  • 单层调度系统(YARN):一个调度器。架构简单但是内部实现复杂,保证资源数据一致性,但是调度器会成为瓶颈,适合小集群。
  • 两级调度器(MESOS):两层调度。灵活性和并发性得到改善,但是缺乏全局资源视图,并发度受限(在不同的框架下进行串行轮询,相当于悲观加锁并发控制)
  • 共享状态调度器(borg,omega):有多个调度器,调度器之间采用无锁乐观并发机制,每个调度器都具有全局资源视图可接受待调度任务。存在调度冲突问题。

3. VStation架构

各个模块之间通过消息队列的方式进行间接通信,每个模块监听特定的队列并提供一个回调函数,框架会将参数传递给回调函数执行。
腾讯云VStation架构总结_第1张图片

4. 调度架构优化实践

VStation调度框架采用共享状态调度框架,采用无锁乐观并发机制,基于全局资源视图进行调度决策,提交调度结果保证事务性,保证资源数据的强一致性,对调度冲突进行优化。总体来说调度过程包括资源同步、调度决策和提交调度结果环节。

  • 资源同步。接收到待调度虚拟机时先进行资源同步,拉取集群状态信息。采用私有缓存和增量更新的方式拉取数据,首次调度时拉取全量数据缓存本地内存,后续调度根据时间戳进行增量更新,对变化数据进行更新。
  • 调度决策。过滤:根据资源需求筛选出符合要求的宿主机;排序:计算每台宿主机多维度的优先级值,并进行排序;打散:对前K个宿主机进行随机打散重新排序,得到新的排序列表,防止并发场景下的调度冲突。
  • 提交调度结果。按序遍历宿主机候选列表;对宿主机进行模拟扣减;提交资源变更事物;事务成功则调度成功更新缓存;事务多次失败,发生调度冲突选择下一台宿主机。
  • 海量并发场景下的极速创建:消息压缩、合并提升系统内部消息流转效率;宿主机缓存高频使用镜像,调度器优先选择命中镜像缓存的镜像,尽量避免下载镜像;采用 CBS 云盘快照回滚技术,避免下载镜像,减少创建时间。

5. 腾讯云分布式调度系统的技术优势

  • 速度快,每分钟数万台;
  • 高可用,VStation 的每个调度进程都是无状态、可平行扩容的。同时,在一些特殊情况如消费者崩溃、MQ 崩溃等极端场景下,VStation 能够基于 MQ 的 ACK 机制、Mirror 机制、消息持久化机制等,将未执行完成的消息重新发送给活跃的进程,重新进行调度;
  • 支持异构计算:随着硬件产品的丰富,例如 GPU、FPGA、智能网卡等专用设备的出现,以前的调度系统也需要考虑相关新硬件的资源统筹调度。在 VStation 中,针对这类的 PCI 设备进行统一管理,可以快速适配和纳管新型异构硬件,腾讯云的专有云解决方案 TCE 就采用了 VStation 分布式调度系统。

6. 未来改进策略

  • 任务间调度,目前,VStation 侧重点是一个资源调度系统,未来会对加强任务间的管理与调度,能够对任务关系和资源统一进行管理,整合资源的负载情况,做出最优的调度决策。
  • 调度系统的可视化运营,我们计划开发一个为调度系统服务的实时可视化系统,使得调度逻辑更加透明化、直观化,让使用的人员可以了解调度系统的内部运行机制。

你可能感兴趣的:(资源管理与任务调度)