带你读《弹性计算—无处不在的算力》第三章:计算产品和技术3.2虚拟机云服务器(二)

本文涉及的产品
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
简介: 《弹性计算—无处不在的算力》第三章:计算产品和技术3.2虚拟机云服务器(二)


3.2.4 调度技术

调度系统在整个弹性计算中发挥着资源决策的作用, 当用户创建一台虚拟机或者使用一台已有的虚拟机进行迁移时,需要调度系统能够精确选择一个可用的物理机。典型的迁移场景有以下几个。

停机迁移: 物理机停机的时候。

升降配迁移:虚拟机需要进行CPU 和内存扩容,或者升级到其他规格产品系列的时候。

主动迁移:物理机硬件隐患、资源竞争导致性能下降时,可以通过热迁移或者用户重启的方式触发主动迁移。


调度系统不光在云平台,也在日常生活的很多场景中会遇到,比如高铁、电梯等。

回归本质,调度系统就是资源分配的决策过程,即在合适的时间给合适的对象分配合适的资源。因资源不同,所以出现了各式各样的调度系统。如果资源是 CPU 68


时间片,那么它可能是操作系统内部的进程调度;如果资源是用于创建虚拟机的一台台物理机,那么它是云上的虚拟机调度系统,如阿里云的后羿调度系统。

当用户通过控制台或者 Open API 创建一台虚拟机时,调度系统会在数以万计的物理机中,寻找一台较符合用户需求的机器承载用户的虚拟机实例。对照上面的描述,在这个场景下,合适的时间即用户创建虚拟机的时候,合适的对象指用户设定的虚拟机的属性,比如规格、售卖类型、网络类型等,而合适的资源其实就是云平台的物理机集群了。

调度系统在不同平台的实现存在一些差异,业界也有很多文章对其进行分析总结,比如 Google 发布的关于 Omega 调度系统的论文,把调度的架构分成了集中式调度、双层调度及共享状态调度。目前主流的一些分布式调度系统,包括 YarnMesosSpark 等都可以归到这几大类。它们在扩展性、并发度、容错性等方面各有优缺点, 此处不再赘述。

阿里云的后羿调度系统历经了十多年的发展。 2010 年,ECS 的第一个集群上线, 那时候的后羿调度系统是基于集群的调度,做的事情就是在集群内部进行静态的资源分配。但是伴随着集群规模的扩大,后羿调度系统也开始逐步演化,除了管理粒度细化到了区域,在调度流程中也引入了过滤—权重模型,同时考虑的权重策略变得逐渐丰富起来,从最初的装箱策略到后来的用户粒度分散、资源负载等。

过滤—权重模型

过滤— 权重模型是目前调度系统中使用的主流模型之一, 在 OpenStackKubernetes 中都能看到相关实现,当接受调度请求时,会依次流转到过滤器( Filter)、 权重器( Weigher) 及选择器( Selector) 这三个核心组件,如图 3-10 所示。

过滤器权重器选择器调度请求

image.png

3-10  过滤权重模型

我们以用户发起创建多个 ecs.c5.large 规格的虚拟机为例,介绍这三个组件的作用。

1)过滤器

顾名思义,过滤器的作用是过滤候选物理机。对于创建 ecs.c5.large 规格(即 CPU 是两核,内存是 4GB)的虚拟机,过滤器最典型的一个用途就是剔除当前资源不足两核 4GB 内存的物理机。实际上,在过滤器中有一个过滤器链,上文提到的剩第3 章 计算产品和技术


余资源过滤只是链路中的一环,其他比较常见的有售卖集群过滤、售卖类型过滤、网络架构过滤等。

2)权重器

所谓“吹尽狂沙始到金”,经过前置的过滤器后,到达权重器的物理机列表都是符合创建条件的,那为什么需要权重器这个组件呢?回到前面创建虚拟机的场景中, 最主要的一个考虑就是装箱策略,ecs.c5.large 的内存和 CPU 的比例是 2 1,从资源使用率的角度,我们当然期望最大化使用物理机上的所有资源,如果候选的物理机有两台,剩余的资源分别是两核 4GB 和两核 8GB,那么从配比的角度看,使用剩余资源是两核4GB 的物理机比较合算,刚好能最大化使用资源,否则会造成 4GB 资源的浪费。与过滤器中的过滤条件描述类似,权重器中考虑的权重也不止一个,除了刚才举例的资源配比,还有用户分散度、大规格资源预留等,这里部分权重甚至还会有冲突,如何去做权衡是一个大学问。

3)选择器

这是整个调度链路的最后一环,从前置的权重器获取一个有序的物理机列表后, 它要做的事情就是从列表里面选择一台最终承载用户创建的虚拟机。当然,最简单的策略就是选择第一台,因为它在此时此刻是最符合用户需求的。而实际情况是,在分布式环境里,用户创建的是多台 ecs.c5.large 规格的实例,言外之意就是并发创建。每创建一次虚拟机,都需要对物理机执行资源分配、虚拟机创建等操作,为了保持在分布式环境中的资源一致性,往往需要对当前操作的物理机执行加锁操作。为了提高效率,在选择器中比较典型的做法是对在一定范围内符合条件的物理机,执行随机选择策略,降低对同一台物理机争抢加锁的概率。当然这时候选择的物理机未必就是最佳的了,这本身也存在与效率之间的平衡问题。

核心业务组件

阿里云的 ECS 后羿调度系统有哪些独特之处呢?除了过滤—权重模型,还有哪些调度相关的核心业务组件呢?接下来逐步为大家揭晓。

1) 调度的大脑——过滤器—权重器—选择器工作流

虽然说这个工作流结构相对比较通用,但是在不同平台中需要考虑的方面存在不少差异,尤其是在不同规格及业务场景的冲击下,设计上的差异更是突出,如图3-11 所示。70

image.png

3-11  过滤器权重器选择器工作流

/ 弱过滤器的引入。过滤器依据了一些规则对候选物理机列表做筛选,但是在调度的策略中常常会出现如期望这些虚拟机尽量迁移到符合某些特定条件的机器上去等需求。针对这类需求,除了在权重中引入对应的因子,还可以使用弱过滤器,即当调度系统使用过滤器过滤后的候选列表低于设定阈值时, 就会忽略掉这个过滤规则。

多重的调度权重因子。在当前的调度权重计算中,会考虑用户维度的打散、物理机健康度、调度虚拟机与目的机器上 CPU/ 内存的配比、机型的最佳匹配等。正是因为有诸多的考虑因素,最终才能在众多物理机中选择出“最”符合条件的物理机。

高度可配置化。在实际情况中,集群中资源的分布时刻都在变化,通过外部分析实时调整相关调度策略及因子,最大的挑战是一个可用区的物理机数量达到数万乃至数十万级别,如果每个物理机都走一遍过滤器—权重器—选择器的过程流,则性能开销非常巨大,无法实现高性能交付。常规的解决思路是进行物理机分组,比如1000 台服务器一组,调度系统先选择分组,然后在组内实施过滤器—权重器—选择器流程。


2)调度的基石——标签系统

随着业务的变化及技术的发展,云上机器的异构性也越来越明显,下面介绍一些典型的例子。

1)在物理机层面,Intel CPU 不断更新换代,如 HaswellBroadwellSkylakeCaslake 等,同样地,与之对应的机型也有诸多差异,如不同的内存容量、磁盘容第3 章 计算产品和技术71


量等。

2)在物理网络和虚拟网络层面,物理网络从早期的千兆网络、万兆网络演变到目前主流的 25G bit/s 网络。同样,虚拟网络也在逐步发展:从经典网络到 VPC 网络, 以及是否支持 DPDK 高速转发等。

3)存储系统的差异,包括高效云盘、SSD 云盘、ESSD 云盘及本地实例存储的区别。

4)虚拟化技术,除了大家熟知的 Xen KVM ,还有阿里云特有的神龙架构等。

调度流程中的过滤—权重工作流程,需要区分这些差异,或者说需要把这些差异用程序表达出来。在阿里云的后羿调度系统中,这是由标签系统来实现的。

在系统实现层面,标签系统其实就是为每台物理机维护了很多的 Key-Value 的配对值,如图3-12 所示,涵盖了从物理机自身的硬件配置、上面运行的软件状态、机器的实际物理位置到售卖相关的业务特性等方方面面的信息。其实,在设计之初,标签系统就并不只是供调度系统使用,我们期望它在物理机的管理控制等方面都能提供系统支撑。

有了标签系统后,无论是调度系统还是管控系统,都能通过程序化的方式感知和比较下层物理机的差异,甚至进一步,通过引入标签组等方式,更快地筛选机器,降低过滤器—权重器—选择器工作流中过滤器的压力。

3)调度的情报处——数据中台

俗话说得好,“知己知彼,百战不殆”。调度系统想做出一个好的决策,必须对所有物理机知根知底。如果要准确、高效地给如标签系统等输入信息,就离不开数据中台。

数据中台是弹性计算业务架构中用于数据收集、处理及分发的业务平台,调度系统借助数据中台的力量,实现了调度信息的收集和处理,比如以下典型的场景。

1)物理机依赖实时上报和数据回流来构建整体的机器画像。在实时上报层面, 通过运行在物理机上的Agent 实时上报,系统获取当前 CPU Model/Flags、网络组件 AVS 的大小版本及支持的特性、本地盘机型的磁盘状态等;在数据回流层面,通过离线对数据做分析处理,把物理机前一段时间的健康状态回流到调度系统中,例如当前物理机上虚拟机的争抢情况、功耗和超电情况等。72

image.png

3-12  标签系统

2ECS 的后羿资源调度本质是一个黑盒调度,换言之,调度系统没有办法知道当前虚拟机的用途,但是我们可以通过检测物理机上的负载情况、用户创建和释放的周期等去建立画像信息,做到料敌于先机。

4)后羿调度的训练师——调度模拟器

上面提到后羿调度系统考虑了多重的调度权重因子及高度可配置化,这就引入了另外一个问题:不同区域存在差异性,这么多因子的权重如何配置?初期可以依赖线上数据定性分析,但是随着业务的更加复杂和更多因子的引入,显然需要一个比人脑更高效的“训练师”来做决策,这个训练师就是调度模拟器。

3-13 描述了调度模拟器的工作流程。我们通过设定调度目标,并使用线上实际的创建记录数据,在模拟器平台上结合机器学习模块反复播放,按照用户购买习惯,找到当前区域产品最佳权重分配策略,通过配置化接口设置到调度系统,并以此形成一个自闭环的反馈机制,逐步优化线上资源分配。

在介绍调度系统之后,不得不提到库存供给系统。如果说调度系统是厨师,负责把各种不同的物理机食材做资源分配,并通过管控系统创建出符合用户需求的虚拟机,那么库存供给系统就是准备食材的人。显而易见,调度系统想要烧出一道好菜, 如果食材不好或者不符合预期,是万万不能的。

比如阿里云售卖的同一款产品,在不用的区域,购买用户不同,应用场景也不同,诸如创建的虚拟机平均 CPU 值、内存和 CPU 的配比、单位时间的并发创建量等也不同。在资源调度时需要适配这些“不同”,最典型的就是针对下层物理机构成的第3 章 计算产品和技术73


不同,在虚拟机内存和 CPU 配比较小的区域,尽量补充数量合适的物理机,以更好地分配虚拟机资源,甚至在差异性较大时,还可能需要适当调整装箱的策略权重参数等。

image.png

3-13  调度模拟器的工作流程

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
弹性计算 Cloud Native 数据可视化
建站选择云虚拟主机、轻量应用服务器、云服务器、云·速成美站、云·原生建站有何区别?
在阿里云的各种云产品中,云虚拟主机、轻量应用服务器、云服务器、云·原生建站、云·速成美站等产品都可用来建站使用,每种产品都有自己的优势和适用场景,例如我们是自己写的代码,可以选择云虚拟主机或者云服务器和轻量应用服务器来搭建网站,如果是自己不会写代码,想快速完成建站,一般选择云·速成美站就可以。本文为大家比较下这几个阿里云的产品在建站时各自的优势和适合的用户,以供参考。
建站选择云虚拟主机、轻量应用服务器、云服务器、云·速成美站、云·原生建站有何区别?
|
2月前
|
监控 Java 调度
探秘Java虚拟机(JVM)性能调优:技术要点与实战策略
【6月更文挑战第30天】**探索JVM性能调优:**关注堆内存配置(Xms, Xmx, XX:NewRatio, XX:SurvivorRatio),选择适合的垃圾收集器(如Parallel, CMS, G1),利用jstat, jmap等工具诊断,解决Full GC问题,实战中结合MAT分析内存泄露。调优是平衡内存占用、延迟和吞吐量的艺术,借助VisualVM等工具提升系统在高负载下的稳定性与效率。
64 1
|
1月前
|
存储 弹性计算 应用服务中间件
阿里云经济型e与通用算力型u1实例长效特价云服务器解析,性能与性价比的完美平衡
阿里云目前有两款深受个人和普通企业用户喜欢的特价云服务器,ECS 经济型e实例2核2G,3M固定带宽,40G ESSD Entry云盘,仅需99元1年。ECS u1实例2核4G,5M固定带宽,80G ESSD Entry盘,仅需199元1年。新老同享,活动期间新购、续费同价。很多用户关心这两款云服务器性能怎么样?本文将对阿里云2024年推出的特价云服务器进行深度解析,从性能、价格、适用场景等多个维度进行详细探讨,以供选择参考。
阿里云经济型e与通用算力型u1实例长效特价云服务器解析,性能与性价比的完美平衡
|
27天前
|
存储 SQL 运维
服务器数据恢复—Isilon存储误删除vmware虚拟机的数据恢复案例
Isilon存储使用的是分布式文件系统OneFS。在Isilon存储集群里面每个节点均为单一的OneFS文件系统,所以Isilon存储在进行横向扩展的同时不会影响数据的正常使用。Isilon存储集群所有节点提供相同的功能,节点与节点之间没有主备之分。当用户向Isilon存储集群中存储文件时,OneFS文件系统层面将文件划分为128K的片段分别存放到不同的节点中,而节点层面将128K的片段分成8K的小片段分别存放到节点的不同硬盘中。用户文件的Indoe信息、目录项及数据MAP则会分别存储在所有节点中,这样可以确保用户不管从哪个节点都可以访问到所有数据。Isilon存储在初始化时会让用户选择相应的
49 12
|
1月前
|
人工智能 大数据 数据中心
算力服务器的崛起:技术革新与市场展望
在数字化浪潮中,算力服务器正经历革命性变化。技术突破如液冷系统提升性能与能效,如宁畅B8000的液冷设计,降低PUE并增强单节点算力。AI服务器市场预计2025年全球达317.9亿美元,中国年复合增长率超19%。国产化趋势明显,如中国电信采用国产芯片服务器。融合架构与绿色节能成为未来关键,适应多变业务需求和环保要求。
62 1
|
1月前
|
边缘计算 人工智能 测试技术
什么是虚拟机技术?
拟机技术作为现代计算环境中的重要组成部分,极大地丰富了我们对资源管理和系统部署的理解与实践。本文将深入探讨虚拟机的定义、工作原理、应用场景、优势、主要技术以及未来发展趋势,帮助读者全方位地理解虚拟机这一强大技术。
42 7
|
1月前
|
存储 弹性计算 大数据
阿里云ECS以其强大的弹性计算与存储能力,为大数据处理提供了灵活、高效、成本优化的解决方案
阿里云ECS在大数据处理中发挥关键作用,提供多样化实例规格适应不同需求,如大数据型实例适合离线计算。ECS与OSS集成实现大规模存储,通过Auto Scaling动态调整资源,确保高效运算。案例显示,使用ECS处理TB级数据,速度提升3倍,成本降低40%,展现其在弹性、效率和成本优化方面的优势。结合阿里云生态系统,ECS助力企业数据驱动创新。
42 1
|
2月前
|
SQL 存储 数据库
服务器数据恢复—X3850服务器中虚拟机误删除的数据恢复案例
服务器数据恢复环境: 某品牌X3850系列服务器(用于VMware虚拟主机)+某品牌RD220i系列存储(用于存放虚拟机文件)+VMware ESXi虚拟化操作系统。 虚拟机操作系统:Windows Server,虚拟机上运行SQL Server数据库(宏桥和索菲两套应用的数据库)。 虚拟磁盘:数据盘(精简模式)+ 快照数据盘。 服务器故障: 意外断电导致某台虚拟机无法正常启动。管理员检查后发现此虚拟机除了磁盘文件以外其他配置文件全部丢失,xxx-flat.vmdk磁盘文件和xxx-000001-delta.vmdk快照文件还在。管理员联系VMware工程师寻求帮助。VMware工程师尝试新
服务器数据恢复—X3850服务器中虚拟机误删除的数据恢复案例
|
3月前
|
存储 SQL 数据挖掘
服务器数据恢复—误删除VMware虚拟机vmdk文件的数据恢复案例
服务器数据恢复环境: 某大厂PS4000服务器,服务器上部署VMware ESXi虚拟化平台。 服务器故障: 机房断电,重启后服务器中的某台虚拟机不能正常启动。管理员查看虚拟机配置文件,发现无法启动的虚拟机的配置文件除了磁盘文件以外其他配置文件全部丢失,xxx-flat.vmdk磁盘文件和xxx-000001-delta.vmdk快照文件还存在。联系VMware原厂工程师进行诊断,VMware原厂工程师尝试新建一个虚拟机,但发现存储空间不足,于是将故障虚拟机下的xxx-flat.vmdk磁盘文件删除了。VMware工程师重新建了一个虚拟机,分配了固定大小的虚拟磁盘,为虚拟机安装了Window
服务器数据恢复—误删除VMware虚拟机vmdk文件的数据恢复案例
|
2月前
|
Linux KVM 数据库
服务器数据恢复—EXT4文件系统下误删除虚拟机数据恢复案例
服务器数据恢复环境&故障: 1台服务器,Linux操作系统+EXT4文件系统,部署了数台KVM虚拟机,每台虚拟机包含一个qcow2格式的磁盘文件,和一个raw格式的磁盘文件。 工作人员操作失误删除了3台服务器上的KVM虚拟机,需要恢复raw格式的磁盘文件。
服务器数据恢复—EXT4文件系统下误删除虚拟机数据恢复案例