引言
云计算技术利用高速互联网的传输能力,将计算、存储、软件、服务等资源从分散的个人计算机或服务器移植到互联网中集中管理的大规模高性能计算机、个人计算机、虚拟计算机中,从而使用户像使用电力一样使用这些资源。从层次上云计算平台可以分为以下3 种服务模式:软件即服务(softwareas a service,SaaS),平台即服务(platform as a service,PaaS),基础架构即服务(infrastructure as a service,IaaS)。从服务对象和范围来讲,云计算平台可以被分为3 种:公有云,私有云和混合云。
IaaS公有云平台是当前云计算平台最重要的一种表现形式。自亚马逊(Amazon) 通过其弹性计算云(elastic computecloud,EC2)实施IaaS以来,以面向公众服务提供计算资源和存储资源的平台不断推出,如Scientific Cloud[6],OpenNebula,Eucalyptus和IBM Blue Cloud等。国内的云计算的发展正处于成长期,技术和商业模式学习欧美,采用复制并本地化发展方式。由于国内企业对云计算技术抱有谨慎务实态度,比如安全问题等,国内更倾向于创建私有云,而不是使用公有云服务。但随着用户迅速增长的服务需求,云计算将向公共计算机网发展,对大规模的协同计算技术提出新的要求,虚拟机的互操作,资源的统一调度,需要更加开放的标准。所以,有必要对IaaS 公有云平台的服务模型进行研究。在此,本文抽象出IaaS 公有云平台的服务模型,基于排队论对平台服务模式、队列长度、调度服务器设置等进行了优化分析,并重点讨论了平台调度的几个核心问题。相关模型和算法在广东电子工业研究院自主研发的云计算平台上验证了可行性。
1 IaaS 公有云服务模型
IaaS公有云平台以面向广域网用户提供虚拟机作为主要的服务模式。其核心目标即按用户定制需求,提供对应操作系统类型、CPU 频率、核心数和硬盘空间的虚拟机。
1.1 平台组成
IaaS公有云的调度对象主要是虚拟机,即用户定制的虚拟机应该运行在具体哪个物理机上,当虚拟机状态发生改变如何重新调整虚拟机的分布,从而实现平台效率的最大化。从调度角度来看IaaS 公有云和IaaS 私有云的最大区别,公有云面对的物理资源的优先级是相同的,用户虚拟机可以运行在任一物理机上;而私有云往往需要对虚拟机的安全性和可用性有特殊要求,虚拟机具体运行在哪台物理机上还要由物理机的性能、可用性及安全性等来确定。如由于办公位置需要,而把虚拟机运行在部门独立管理的服务器上。
从逻辑上讲,如图1 所示IaaS 公有云平台主要由3 个重要组成部份组成:
云管理中心:是云对外服务的接口,也是云资源统一管理、监控和调度的中心。云管理中心接受用户对整个云的资源请求,按需从平台管理的资源中为用户分配好所需的资源(如虚拟机、存储资源等),并进行初始设置,然后将资源访问路径返回给用户。
云计算资源中心:由逻辑上可管理的物理计算资源组成,对于云平台而言,这些物理机将作为虚拟机的宿主机,供平台调度。平台的调度服务器将根据用户需求,从平台中选择最优的资源以保证虚拟机的运行。一般情况下,多个云计算资源中心以一台代理服务器作为资源与云管理中心的接入点,以完成对计算资源的监控和调度。
云存储资源中心:由逻辑上可管理的物理存储资源组成。对IaaS 平台而言,虚拟机模板、用户虚拟机镜像、快照等全部存储在统一管理的存储结点上,如NFS、S3、ISCSI 等。用户的虚拟机文件在创建时读入具体的物理机并由虚拟机系统加载,对于平台而言,物理机和虚拟机之间是松耦合的。这也是公有云平台和私有云平台的最大区别。
图1 IaaS 公有云服务模型及流程
1.2 服务流程
下面以公有云平台操作的两个流程来分析公有云平台资源调度的一般流程。用户向平台申请资源流程如下所示:(1)注册用户登录平台Portal 服务器,向平台提出虚拟机资源请求,包含CPU 核心数、主频、内存、硬盘大小等相关参数。
(2)Portal 服务器将用户请求转发给调度服务器。
(3)调度服务器查询元数据库,查找可以满足该虚拟机运行需求的物理服务器列表。
(4)调度服务器从列表中选择优先级最高的一台物理机,把请求转给该物理机所在区域的代理服务器。
(5)调度服务器根据用户请求的虚拟机类型从存储资源中选择虚拟机镜像模板,把镜像传输请求交给存储资源的代理服务器。
(6)用户请求的虚拟机镜像被加载到被调度服务器选中的物理机中。调度服务器通过代理服务器启动物理服务器上加载成功的虚拟机。如果(4)-(6)的过程中出错,调度服务器将选择新的物理机加载虚拟机。
(7)用户请求的虚拟机启动后,用户可以通过RDP、VNC、ICA、SSH 协议终端远程访问运行中的虚拟机。
各代理服务器同时具有资源的监控功能,它们定期向云管理中心返回各云计算资源和存储资源中心的资源情况,并更新元数据库,从而保证平台调度的正确性。更新元数据库的流程包括如下两个步骤:
(8) 监控服务器向调度服务器定时发出资源信息更新请求,请调度服务器将请求分发到各代理服务器,代理服务器获取信息后将请求返回给监控服务器。
(9)监控服务器将资源信息更新到元数据库,以保证信息的有效性,从而提高资源的调度效率。
1.3 平台服务模型
根据平台的服务流程,可以将IaaS 平台的服务过程抽象为如图2 所示的模型。
图2 IaaS 平台服务模型
模型包括3 个主要的流程:①云管理中心的调度平台,从用户请求队列中取出优先级最高的用户请求R。R 首先读取元数据库,根据用户请求的硬件资源判断是否能被当前空闲的物理机资源满足,如CPU 频率、核心数、带宽、存储、硬盘空间等。如果能满足,则直接转向步骤②;如果不能满足,判断是否可以通过平台虚拟机迁移,释放相关资源;如果可以则再执行迁移步骤,转步骤②;如果即使迁移也无法完成,则退出,并报告用户资源无法完成请求。②如果资源请求可以满足,调度服务器从存储结点中选择与用户请求对应的虚拟机模板T (对于新建立的虚拟机) 或虚拟机镜像I。③调度服务器将I迁入对应的物理机,并创建对应的虚拟机实例V。
从模型中可以看出,平台调度的几个核心问题:
(1)平台队列的长度如何确定,优先级如何调整,从而保证最快的用户请求响应。
(2) 调度服务器如何分解用户请求R,并从元数据库找到最优的资源,为用户提供服务。
(3)如果平台需要调整现有物理机上的虚拟机分布,如何以最小的调整代价,实现资源的重新分配。对于部分平台,由于迁移可能造成平台QoS的不稳定,迁移的条件要求较高,以确保最少的虚拟机受到影响为准。
2 IaaS 平台调度模型
根据平台的服务模型,通过对各项指标进行量化,来分析云平台的吞吐率,并对模型进行优化分析。
2.1 请求队列
从排队论的观点来看,IaaS 公有云平台的资源请求及调度过程是一个排队及接受服务的过程,排队系统的输入即用户请求,服务台即调度服务器,输出为用户请求到的资源。用户请求队列为R={R1,R2,R3,?,Rn}。
一般可假设在IaaS 公有云平台用户的排队过程中,用户请求到达服从泊松分布,服务时间服从指数分布。用表示单位时间内平均到达的用户请求数,用表示服务台的平均服务速率(服务台的服务能力)。用表示平均每单位时间中系统可以为顾客服务的比例, = / 即服务强度。Ws 表示顾客在系统中的平均逗留时间(包括排队等待时间和接受服务的时间),Wq 表示顾客排队等待的平均时间,可通过如下公式计算,在单队单服务台的情况下
多队多服务台可看作是多个单队单服务台,并结合以上公式进行分析。一般情况下,为了将平台的响应时间控制在用户可以接受的范围内。平台将限定队列的最大的长度值,当队列长度超过限定值时,所有的用户请求均暂时被拒绝,因此队列可能的最长响应时间即最长队列的处理时间。
2.2 模型量化
设IaaS 云计算平台所包含的物理机集合为,则:P={P1,P2, P3,?,Pn},其中n为物理机的数量。设F为物理机的单CPU核心的主频,F={F1,F2,F3,? n};设为物理机对应的核心数,C={C1,C2,C3 ,?Cn}; 为物理机对应的可用磁盘空间,D={D1,D2,D3,?Dn}; 为物理机可用的最大带宽,B={B1,B2,B3,?Bn};为物理机可用的最大内存,M={M1 ,M2 ,M3 ,? Mn};则有每台物理机的总频率之和为TF,即=TF{TF1,TF2,TF3,?TFn}={F1*C1F2*C2F3*C3,?,Fn*Cn},即Fi*Ci。各变量及公式说明如表1 所示。
表1 公式说明
设用户请求Ri可以被分解为对CPU 频率的请求RFi,对CPU核心数的请求RCi,对内存的请求RMi,对磁盘空间的请求RDt对带宽的请求RBi。调度服务器首先遍历元数据库中的物理机,根据其当前状态信息找到当前剩余资源可以满足用户需要的物理机集合;然后按照物理机的使用率对结果集合进行排序。用户请求的虚拟机将优先被部署在总体使用率较低的物理机上。使用率包含主频、核心数、内存等各方面。一般情况下以CPU 总体使用率作为物理机使用率的主要指标。虚拟机的筛选算法如图3 所示。
图3 物理机的筛选算法
2.4 迁移模型
公有云平台可以通过迁移物理机上虚拟机以释放资源,来完成当前资源请求无法满足的需求。由于虚拟机的迁移会造成虚拟机QoS 的下降,并影响相关物理机上所有的虚拟机(I/O 操作相关影响)。因此,平台应尽可能减少虚拟机的迁移操作,尽可能用一次虚拟机迁移操作即可得到可以满足用户请求的物理机。当物理机集合中所有物理机都不能满足请求时,调度平台首先找到使用率最低的两台物理机,然后尝试迁移使用率最低的虚拟机到另外一台物理机以释放足够的资源来运行新的虚拟机请求。对于找到的物理机,如果一次迁移也无法释放足够的资源,则拒绝用户请求。虚拟机的筛选算法如图4 所示。
图4 虚拟机迁移算法
3 实验
CN Cloud 是广东电子工业研究院自主研发的IaaS公有云平台。本文通过一组实验验证了相关调度模型的可行性,实验数据如表2 所示。模拟实验平台具有100 台物理机,每台物理机最多产生8 台虚拟机。通过改变队列长度,并提交与队列长度等长的虚拟机创建请求,来验证相关方法的可行性。从表2 中可以看出,由于队列采用FIFO 先进先出模式,因此平台的最小响应时间基本不受队列长度的影响。但是平台的平均响应时间随队列长度的增加增长速度较为明显(如图5 所示),尤其是在队列长度超过40 以后,平台平均响应时间明显加快,最大响应时间在队列长度为70 以上时均超过了120s,超过用户的容忍时间。因此在实际平台中,队列长度应设置为40 或50。
表2 队列长度及平台响应时间/s
图5 平台响应时间随队列长度变化趋势
平台物理资源的利用率(虚拟机容积率)超过80%后,出现无法找到足够资源为用户创建虚拟机的情况。平台可以通过虚拟机的迁移来释放资源,以保证平台的可用性。虚拟机的迁移和虚拟机的镜像文件大小、内存大小及虚拟机调度算法有关,如图6 所示为虚拟机迁移释放资源随镜像文件大小的变化过程。从中可见虚拟机迁移过程中,镜像文件大小将决定总体响应时间,因此在迁移过程中将镜像文件大小和虚拟机的使用率加权作为选择虚拟机的依据。
图6 虚拟机迁移响应时间与虚拟机镜像大小关系
4 结束语
IaaS 公有云平台是当前公有云的主要应用形式。本文总结了IaaS公有云平台的服务模型,给出了以云管理中心、云计算资源中心、云存储资源中心为主体的服务模型。结合排队论对平台的服务流程进行了优化分析,提出一种定长队列的管理模型;结合IaaS 平台资源利用率最大化和单虚拟机性能的最优化的设计目标,给出一种基于用户请求向量的筛选方法,通过分析平台动态更新的元数据,向调度服务器返回满足需求且利用率最低的宿主机;平台调度算法结合了虚拟机迁移操作,对于一次性无法找到符合要求的宿主机,通过利用率较低的宿主机间虚拟机的迁移操作,对物理资源进行重新分配,在提高平台的服务接受率的同时提高平台的整体效率。相关模型和算法在广东电子工业研究院自主研发的云计算平台进行了验证,平台的总体QoS 有了较大的提高。
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:IaaS公有云平台调度模型研究