《云计算架构技术与实践》连载(6)超大规模资源调度算法

时间:2022-06-27 12:45:13

版权所有,未经华为书面许可,请勿转载或转发!

 

 

2.2     云计算架构关键技术

相对于云计算初期阶段以探索和试用为特征的非互联网领域及行业的基础设施云资源池建设,新阶段云计算基础设施云化已步入大规模集中化建设的阶段,需要云操作系统(Cloud OS)必须具备对多地多数据中心内异构多厂家的计算、存储以及网络资源的全面整合能力,因此有如下一些关键技术和算法。

2.2.1超大规模资源调度算法

我们说希望能像用水用电一样的方式去使用IT资源,那么,IT资源的供给就需要许多类似于大大小小的水厂/电厂的IT资源工厂,这就是我们所说的IT数据中心。

以水厂为例,其实我们有各种大小的水库,有时候为了供给一个大城市,我们会通过复杂的管道,将某些江河或某些水库引入城市边上的大水库。就是说,这个供水系统是个复杂的网络系统,需要有良好的预先设计。

可以看到,尽管我们家家户户使用的自来水没有什么差别,但实际上他们是来自于不同的水厂。每个水厂会有可能遇到自己的枯水期,使用这些水厂水资源的客户可能面临缺水的场景,就是说,水的供应并不是无限制的。对应的,其实我们需要的IT资源也并不是无限制供给的,它是由后面大大小小的IT数据中心的能力决定的。当然,为了应对一些大企业的IT资源要求,我们会需要将异地的IT数据中心进行联网设计,组成一个大的IT资源池来给大客户使用。此时,这个大资源池的组成技术、调度技术都是关键技术,包括三个方面。

1.计算资源调度算法

超大规模资源调度算法实现十万物理机、百万虚拟机的多级、分层调度。

在一个分布式的数据中心情况下,计算虚拟化部分负责L2L5调度,以虚拟机(含OS及应用软件/中间件)为基本调度单元,完成指定虚拟机实例或者虚拟机集群到整个云数据中心计算资源池内最合适的物理机或者物理机集群的映射(见图2-6)。

《云计算架构技术与实践》连载(6)超大规模资源调度算法

2-6超大规模数据中心调度

初始分配调度及动态规划

典型的调度算法: 首次匹配、负载均衡、轮转指针等,可统一规约化为运筹学的线性规划NP求最优解/次优解的问题,约束条件及目标函数均可按需进行策略配置。

资源弹性分配的问题域

资源弹性分配的限定条件有下面6个表达式【更详细的描述请参见参考文献33】,如图2-7所示。

《云计算架构技术与实践》连载(6)超大规模资源调度算法

2-7资源弹性分配

其中各变量的含义如下:

l i = 1->N, 服务请求数量;

l h = 1->H, 每个集群中同质物理服务器数量

l j = 1->d, 每个服务器提供的资源类型数量(例如CPURAM、带宽等)

l Rij,表示第i个服务请求对资源类型j的资源需求量,这个值在01之间,表示资源的满足程度;

l δij,表示Rij是否为固定资源请求类型。取值0或者1。如果Rij是固定资源请求(比如每个用户邮箱服务固定需要内存10G),则δij=1;如果Rij是弹性资源请求(比如每个用户邮箱服务需要内存可以在010G之间变动),则δij=0

l y^i,表示服务i的最小产出要求,取值在01之间;例如某个大型企业需要从云中获得邮箱服务1000个用户,并且客户要求不论如何,最差的情况下也需要保证200用户,则此时取值0.2.

l eih:表示资源请求i是否分配在物理服务器h上,取值0或者1;如果是则取值1,否则取值0

l yih:表示服务i在服务器h上是否进行Scale方式的输出;如果服务i不在这个服务器上,则取值必须是0

各个限定表达式的含义:

l 表达式(1):表示服务请求i分配在物理服务器h上的状态,或者在或者不在。

l 表达式(2):表示不管某个服务器是否承载了服务请求i,但是所有服务器上满足服务请求i的总和肯定等1

l 表达式(3):表示一个服务i可以在某个服务器h上得到部分运行资源的满足,这个满足程度肯定大于等于0,如果大于0,而小于1,表示服务器i需要的资源是分配在多个服务器上,此服务器只能满足部分资源需求;如果等于1,表示此服务此时无需进行scale,它完全能在h服务器上得到全部的资源满足;

l 表达式(4):表示一个服务在相关的服务器上能取得的产生必须大于它的最小产出需求;例如客户要求云系统满足最低某个企业客户200个邮箱用户的需求,而系统中有服务器10万台,不管此时是多少台服务器实际给这个企业客户提供邮箱服务,都必须保证200个邮箱用户的使用;

l 表达式(5):表示资源类型j在服务器h上能分配各种服务使用的最大值是1

l 表达式(6):表示最小的服务产出Y不会大于任何服务的产出。

资源弹性分配的近似最优解有如下公式:

《云计算架构技术与实践》连载(6)超大规模资源调度算法

其中:NZ:不等于0的物理资源集合;

整个系统的求解就是获得Y值的最大值;一般的,我们可以采用如下的条件来获得最优解:《云计算架构技术与实践》连载(6)超大规模资源调度算法

 

 

2.存储资源调度算法

存储资源的调度算法主要实现(见图2-8):

l 将数据中心服务器(机架式服务器)直连存储(HDD/SSD)转换为高性能、低时延的共享存储资源,大幅提升可用存储空间,实现无SAN化的计算集群的虚拟化整合

l 性能无损的瘦分配、为每VM/PM提供更大的“瘦分配弹性”:为不具备“瘦分配”能力的服务器内置DAS/SSD,以及外置SAN带来天然瘦分配能力,并解决多数外置SAN存储瘦分配带来的性能下降开销问题

l 更大规模的跨SAN资源池,基于在线分布式去重实现更大范围的重复数据识别与删除(文件级/对象级/块级),将资源利用率进一步提升40%

l 更大规模资源池,意味着可有更多共享空闲资源满足计算侧需求,避免独立SAN/NAS各自数据不均衡带来的资源浪费(30%

l 超大资源池下,将“跨SAN”数据热迁移的概率几乎降低为零

l 物理机无Hypervisor,也需要引入“存储融合”层来解决数据的跨SAN热迁移能力 (存储大资源池内的)

 

3.能耗管理最优化算法

要降低PUE值,实现云计算绿色节能的理念,需要有一个好的能耗管理算法。能耗管理算法在云计算中是一个关键技术(见图2-9)。

《云计算架构技术与实践》连载(6)超大规模资源调度算法

2-9能耗管理功能模块图

l 计算部分是数据中心L1+L2功耗的主要矛盾和关键路径(>60%70%

l 数据中心内,基于“轻载合并”原则进行VM热迁移调度,使得更多的空闲服务器可以下电或处于节能运行态

l 计算虚拟化部分与数据中心L1管理软件联动,尽量减少局部热点,从而允许L1管理软件控制空调提升平均工作温度,达到提升PUE效率的目的

l 持续动态采集当前负载情况下服务器、UPS及空调、制冷设备的功耗及温度数据,得出PUE指标,并在管理界面上实时呈现。

处理过程:

(1)输入信息包括:

1)物理机信息列表:

n 静态规格:CPU主频和数量、内存大小、网卡速率

n 负载信息:CPU利用率、内存利用率、网络I/O

n 状态:上电、下电、异常状态

n 功率信息(可选):额定功耗,当前功率

n 温度信息(可选):当前CPU温度,物理机温度

n 其他(可选):物理机能耗效率评级,离冷风送风口距离或评级

2)虚拟机信息列表:

n 静态规格:虚拟机CPUvCPU数量和主频),内存大小,网卡速率

n 负载信息:CPU占用、内存占用、网络I/O

n 约束信息:互斥性约束、亲和性约束 

n 物理机和虚拟机的关联关系

n 物理机对应的VM ID列表

3)两个场景:

l 轻载时,合并VM,物理机下电节能

l 重载时,启动物理机,均衡VM,保证QoS

4)三个子算法

l 轻载/重载检测算法

l 上下电PM选择子算法

l 负载均衡子算法

5)算法设计时要考虑:

l 多维资源问题

l 迁移成本-收益分析

l 迁移震荡问题

l What-if测试

l 配电问题

l 温度问题

l 调度约束

(2)输出信息包括:

调度动作列表。有两种动作:

l 物理机上下电动作

l VM迁移动作