一种基于流量亲和性的OpenStack云平台资源动态调度系统和方法与流程

文档序号:12135336阅读:615来源:国知局
一种基于流量亲和性的OpenStack云平台资源动态调度系统和方法与流程

本发明涉及云计算服务领域,尤其涉及一种基于流量亲和性的OpenStack云平台资源动态调度系统和方法。



背景技术:

云计算技术的产生与发展,改变人们对计算资源的使用方式。随着云计算技术的日益发展,各种云计算平台应运而生,云服务领域呈现百花齐放的形式。而OpenStack作为一种云计算平台,为云计算基础设施服务提供解决方案,其以全开源、易扩展的特点,获得工业界越来越多的关注。

云计算平台主要功能是实现资源的管理和按需分配。在主流商业云管理平台中均存在资源调度进程,以实现对平台物理资源的动态调度管理。现有OpenStack云计算管理平台中仅有简单的虚拟机资源调度进程Nova-Scheduler,实现过滤称重的初始放置算法,通过对物理机负载参数进行量化比较,选择得分最高的物理机进行部署。

但是现在客户端的业务越来越复杂,部分业务会考虑到业务虚拟机之间的流量亲和性关系,以使得虚拟机之间的时延最小化,这种简单的选择方法就无法满足需求。

同时现有OpenStack云计算平台中没有实现资源负载均衡的模块,对于物理机负载过高(热点)和物理机负载过低(冷点)等情况无应对方法,缺乏对资源利用率和能耗的有效管理。



技术实现要素:

本发明提供了一种基于流量亲和性的OpenStack云平台资源动态调度系统和方法,通过定义虚拟机之间的流量亲和性,减少业务虚拟机之间的时延,提升业务的性能。

本发明提供了一种基于流量亲和性的OpenStack云平台资源动态调度系统,包括OpenStack云平台,所述的OpenStack云平台执行资源调度进程,还包括:

系统负载监控模块,用于监控和收集OpenStack云平台集群中物理主机的负载信息,将负载信息提供给资源调度模块,定时地根据集群负载信息,计算判断当前状态下集群中是否存在冷点和热点,如果存在则向资源调度进程发出冷点整合或热点消除请求;

SDN监控模块,用于监控和收集OpenStack云平台集群中网络拓扑结构信息、物理主机之间的流量信息和虚拟机实例之间的流量信息,将网络拓扑结构信息和流量信息提供给资源调度模块;

资源调度模块,处理来自OpenStack云平台的客户端的虚拟机实例初始放置请求和来自系统负载监控模块的冷点整合请求和热点消除请求。

调度请求总共分为3类:初始放置请求、热点消除请求和冷点整合请求。其中初始放置请求仍由原有OpenStack云平台的客户端发出,而热点消除请求和冷点整合请求则由系统负载监控模块发出。系统负载监控模块定时地计算集群中节点的负载值,当发现集群中存在热点或者冷点时,向虚拟机调度进程发出热点消除请求或者冷点整合请求。

本发明的资源调度模块整合了原有OpenStack云平台的虚拟机调度进程(Nova-Scheduler),即将该进程转变为资源调度请求的接收端,当虚拟机调度进程接受到调度请求时,根据调度请求类型来调用资源调度模块处理请求。资源调度模块在处理调度请求时,会向系统负载监控模块发出查询负载信息请求,向SDN监控模块发出查询网络拓扑结构和实时流量信息请求。在接收到相应信息后,构造流量模型,调用调度决策器开始执行相应调度算法,得出调度结果。最后资源调度模块将结果返回到虚拟机调度进程。

系统负载监控模块负责监控集群负载,当发现冷点和热点时发出调度请求,并向资源调度模块提供负载查询功能。

SDN监控模块负责监控集群网络,向资源调度模块提供网络拓扑和实时流量查询功能。

作为优选,所述的资源调度模块包括前端预处理部分和后端算法处理部分,

前端预处理部分解析请求类别并从系统负载监控模块和SDN监控模块获得算法所需的信息;

后端算法处理部分根据请求类别调用相应的算法进行处理得到结果。

作为优选,后端算法处理部分支持适配和扩展。

基于所述的调度系统,针对OpenStack云平台客户端发起的创建虚拟机的请求,为了满足用户设定的亲和性关系和尽可能减少虚拟机间的时延,本发明还提供了一种基于流量亲和性的OpenStack云平台资源初始放置方法,包括:资源调度进程接收到客户端发送的建立虚拟机实例的请求信息后,根据从系统负载监控模块获得的集群物理主机负载、物理机框组划分和从SDN监控模块获得的网络拓扑结构信息和节点间流量信息构建流量权重图作为初始放置算法的输入;根据流量权重图中的流量关系将虚拟机分组;根据虚拟机间的同组亲和性关系,使用最大流最小割算法将虚拟机组进行切割;根据虚拟机间的反亲和性关系,找出虚拟机组中的核心虚拟机;以亲和性和流量关系连接虚拟机成边,将虚拟机组构成子图,对子图使用启发式搜索,获得所有虚拟机组的目标物理机,资源调度进程将结果封装并发送到相应节点的部署进程(Nova-Compute)。

作为优选,建立虚拟机实例的请求信息包括用于建立虚拟机实例的配额信息、虚拟机实例的数量和虚拟机实例之间的流量和亲和性关系。

本发明中物理机板指示1个物理机节点;物理机框指示1个机架上的物理机群,连接到机架上的同一交换机,相互之间的时延小;物理机组指示人为划分的含有相同物理特征或功能的物理机群。

物理主机负载是以物理机为单位,监控物理机节点上的CPU、内存、磁盘和网络带宽的利用率,将物理机资源量化,从多个资源维度来描述节点的资源利用率,以此来定义物理节点负载,用于后续算法中的物理机状态判定。

作为优选,本发明中,物理主机负载的计算公式为:

式中,Loadpm为物理主机负载;vcpuused、memused、diskused和netused分别为该节点此时已经使用的虚拟核、内存、磁盘和网络带宽;vcputotal、memtotal、disktotal和nettotal分别为该节点总的可用虚拟核、内存、磁盘和网络带宽;k1、k2、k3和k4为该节点各种资源的重要率;ratio1、ratio2、ratio3和ratio4为该节点各种资源允许的过载比率。

k1、k2、k3和k4表示不同物理资源的重要性,可调控应对不同应用场景;ratio1、ratio2、ratio3和ratio4的引入可以提高资源利用率。

本发明的初始放置方法中初始放置请求由OpenStack云平台的客户端发出,资源调度进程接收到初始放置请求后根据集群的网络拓扑、物理节点流量和虚拟机之间的流量亲和性关系,来决策虚拟机实例初始放置的目标物理机节点。针对客户端发起的创建虚拟机的请求,初始放置方法满足了用户设定的亲和性关系(高优先级)和尽可能减少虚拟机间的时延的要求。

基于所述的调度系统,针对系统负载监控模块发起的负载均衡请求,本发明还提供了一种基于流量亲和性的OpenStack云平台资源冷点整合或热点消除方法,包括:资源调度进程接收到系统负载监控模块发送的冷点整合或热点消除请求信息后,根据从系统负载监控模块获得的集群物理主机负载、物理机框组划分和从SDN监控模块获得的网络拓扑结构信息和节点间流量信息构建流量权重图作为冷点整合或热点消除算法的输入;结合原有的虚拟机流量和亲和性关系,在满足亲和性的关系下将冷点主机上的虚拟机实例全部迁移到其它物理机上,完成迁移后关闭冷点主机,将热点主机上的虚拟机实例部分迁移使得热点主机达到温点状态。

本发明中冷点、热点和温点用于衡量网络流量或物理板节点负载利用率值所处的状态,一般情况下,用户希望系统网络带宽或负载利用率能在一个预设的范围,如(下界,上界),若物理板节点负载利用率大于预设的上界值,则称系统存在热点,若小于预设的下界值,则称为冷点,处于两者之间的成为温和。

作为优选,冷点整合或热点消除请求信息包括冷点或热点物理主机负载以及该物理主机上的虚拟机实例信息。

系统监控模块根据集群物理主机负载和预先设置的冷点、热点标准,判断当前状态下集群中是否存在冷点或热点,若存在冷点或热点则向资源调度进程发送冷点整合或热点消除。资源调度进程接收到初始放置请求后根据集群的网络拓扑、物理节点流量和该节点上虚拟机之间的流量亲和性关系,将处于热点状态的物理机上的虚拟机实例迁移以达到温点状态实现负载均衡,将冷点状态物理机上的虚拟机实例迁移以关闭物理节点实现减少能耗。

与现有技术相比,本发明的有益效果为:

(1)本发明的调度系统通过系统负载监控模块获得云平台物理机集群的负载信息,通过SDN监控模块获得云平台物理机集群的网络拓扑和节点流量信息,通过资源调度模块实现基于流量亲和性的资源动态调度,满足了特定业务的时延需求,实现了云平台物理机集群的负载均衡和减少云平台的能耗;

(2)初始放置方法通过定义虚拟机之间的流量亲和性,减少业务虚拟机之间的时延,提升业务的性能;

(3)冷点整合或热点消除方法可以使云平台物理机集群的负载达到均衡和减少云平台的能耗,增强了OpenStack云平台的资源管理能力,实现云平台的资源动态调度功能。

附图说明

图1为本发明的调度系统的架构示意图;

图2为初始放置方法的具体流程图;

图3为冷点整合方法的具体流程图;

图4为热点消除方法的具体流程图。

具体实施方式

下面结合附图和实施例对本发明作进一步详细描述。

本发明中涉及一下几个关键概念:

1、物理机板、框、组:物理机板指示1个物理机节点;物理机框指示1个机架上的物理机群,连接到机架上的同一交换机,相互之间的时延小;物理机组指示人为划分的含有相同物理特征或功能的物理机群;

2、物理机负载:以物理机为单位,监控物理机节点上的CPU、内存、磁盘和网卡带宽等资源的利用率,将物理机资源量化,从多个资源维度来描述节点的资源利用率,以此来定义物理节点负载,用于后续算法中的物理机状态判定。物理机负载计算公式如下:

式中,Loadpm为物理主机负载;vcpuused、memused、diskused和netused分别为该节点此时已经使用的虚拟核、内存、磁盘和网络带宽;vcputotal、memtotal、disktotal和nettotal分别为该节点总的可用虚拟核、内存、磁盘和网络带宽;k1、k2、k3和k4为该节点各种资源的重要率;ratio1、ratio2、ratio3和ratio4为该节点各种资源允许的过载比率,即可用资源可以超出实际所有资源。

k1、k2、k3和k4表示不同物理资源的重要性,可调控应对不同应用场景;ratio1、ratio2、ratio3和ratio4的引入可以提高资源利用率。

3、冷点、热点和温点:用于衡量网络流量或物理板节点负载利用率值所处的状态,一般情况下,用户希望系统网络带宽或负载利用率能在一个预设的范围,如(下界,上界),若物理板节点负载利用率大于预设的上界值,则称系统存在热点,若小于预设的下界值,则称为冷点,处于两者之间的成为温和。

本发明提供了一种基于流量亲和性的OpenStack云平台资源动态调度系统,如图1所示,该系统包括云平台的资源调度进程,还包括:

a、系统负载监控模块:系统负载监控模块(比如ganglia集群监视软件)用于监控和收集云平台集群中物理主机的负载信息,为资源调度模块提供调度算法所需的主机负载信息。同时定时地根据集群负载信息,计算判断当前状态下集群中是否存在冷点和热点,如果存在则向资源调度进程发出冷点整合或热点消除请求,以维持集群的负载均衡。

b、SDN监控模块:SDN监控模块(比如OpenDaylight SDN软件)用于监控和收集云平台集群中网络拓扑结构、物理主机之间的流量和虚拟机实例之间的流量等信息,为资源调度模块提供调度算法所需的网络拓扑和流量信息。同时可以让系统管理员管理云平台的网络资源,根据业务需求改变定制网络拓扑和带宽。

c、资源调度模块:资源调度模块处理来自客户端的虚拟机实例初始放置请求和来自系统监控模块的冷点整合请求和热点消除请求。该模块与OpenStack原有架构兼容,云平台通过Nova-Scheduler向资源调度模块发送请求,模块处理后将结果发回。该模块可以分为前端预处理和后端算法处理两部分,前端预处理解析请求类别并从系统负载监控模块和SDN监控模块获得算法所需的信息,后端处理根据请求类型调用相应的算法进行处理得到结果。其中后端算法处理支持适配,用户可以为相同类型的请求提供多种处理算法,并支持扩展。

调度请求总共分为3类:初始放置请求、热点消除请求和冷点整合请求。其中初始放置请求仍由原有OpenStack平台的客户端发出,而热点消除请求和冷点整合请求则由负载监控模块发出。负载监控模块定时地计算集群中节点的负载值,当发现集群中存在热点或者冷点时,向虚拟机调度进程发出热点消除请求或者冷点整合请求。

资源调度模块整合了原有OpenStack平台的虚拟机调度进程(Nova-Scheduler),即将该进程转变为资源调度请求的接收端,当虚拟机调度进程接受到调度请求时,根据调度请求类型来调用资源调度模块处理请求。资源调度模块在处理调度请求时,会向负载监控模块发出查询负载信息请求,向SDN监控模块发出查询网络拓扑和实时流量信息请求。在接收到相应信息后,构造流量模型,调用调度决策器开始执行相应调度算法,得出调度结果。最后调度模块将结果返回到虚拟机调度进程。

负载监控模块负责监控集群负载,当发现冷点和热点时发出调度处理请求,并向监控模块提供负载查询功能。

SDN监控模块负责监控集群网络,向监控模块提供网络拓扑和实时流量查询功能。

基于该调度系统,本发明提供了一种基于流量亲和性的OpenStack云平台资源初始放置方法,包括:资源调度进程接收客户端发送的建立虚拟机实例的请求信息,所述请求信息包括用于建立虚拟机实例的配额信息、虚拟机实例的数量和虚拟机实例之间的流量和亲和性关系。资源调度进程根据从系统负载监控模块获得的集群物理主机负载、物理机框组划分和从SDN模块获得的网络拓扑和节点间流量等信息构建流量权重图。先根据流量关系将虚拟机实例分组,根据同组亲和性利用最大流最小割算法进行分割,根据反亲和性找出核心虚拟机。以亲和性和流量关系连接虚拟机成边,将虚拟机组构成子图,对子图使用启发式搜索,得到最终结果。

具体来说,资源调度进程(Nova-Scheduler)接收到客户端发起的虚拟机部署请求,从请求参数中获取虚拟机实例的配额信息、虚拟机间流量信息和虚拟机间亲和性关系作为初始放置算法的输入。同时资源调度进程向负载监控模块发出负载查询请求,向SDN监控模块发出网络拓扑、流量和时延查询请求。在接收到上述请求的反馈后,提取负载、网络拓扑、流量和时延等信息封装成算法需求的相应结构作为初始放置算法的输入,并将亲和性关系存入数据库中。当算法的输入构造完毕后,开始初始放置的具体流程。

如图2所示,初始放置的具体流程包括:

1)根据网络拓扑和时延,构造与每台物理机时延较小的物理机排序;

2)根据虚拟机间流量关系,使用DFS搜索遍历将虚拟机分组;

3)根据虚拟机间的同组亲和性关系,使用最大流最小割算法将虚拟机组进行切割;

4)根据虚拟机间的反亲和性关系,找出虚拟机组中的核心虚拟机;

5)对虚拟机组使用子图IDA搜索,放置到物理机中;

6)如果存在不能放置的子图,使用模拟退火算法将虚拟机组按照是能升序排序,将势能最低的虚拟机组进行切割分组,回到上一步;

7)最后获得所有虚拟机组的目标物理机,

当获得算法的输出即每个虚拟机对应的目标物理机后,资源调度进程将结果封装成云平台原有初始放置消息的格式,发送到相应节点的部署进程(Nova-Compute)来启动虚拟机。

基于该调度系统,本发明还提供了一种基于流量亲和性的OpenStack云平台冷点整合或热点消除方法,包括:系统监控模块根据集群物理主机负载和预先设置的冷热点标准,判断当前状态下集群中否存在冷点和热点,若存在冷点和热点则发送热点消除或冷点整合请求到资源调度进程。资源调度进程接收到请求信息,所述信息包括冷点和热点物理主机负载以及该主机上的虚拟机实例信息。根据从系统监控模块获得的集群物理主机负载、物理机框组划分和网络拓扑等信息构建流量权重图。并结合原有的虚拟机流量和亲和性关系,在满足亲和性的关系下将冷点主机上的虚拟机实例全部迁移到其它物理机上,如果可以完成迁移,则关闭冷点主机,将热点主机上的虚拟机实例部分迁移使得主机达到温点状态。

具体地说,冷点整合方法为:负载监控模块定时地检查集群负载情况,当检查到集群中存在冷点时,向资源调度进程发出冷点整合请求,请求参数中包含冷点物理机的负载信息和该节点上运行的虚拟机配额信息。当资源调度模块接收到冷点整合请求后,从请求参数中获取该节点上虚拟机实例的配额信息作为冷点整合算法的输入。同时资源调度进程向负载监控模块发出负载查询请求,向SDN监控模块发出网络拓扑、流量和时延查询请求。在接收到上述请求的反馈后,提取负载、网络拓扑、流量和时延等信息封装成算法需求的相应结构,并从数据库中获取该节点上虚拟机间的亲和性关系作为算法输入。当算法输入构造完毕后,开始处理具体流程。

如图3所示,冷点整合的具体流程为:

1)将全部物理机按照负载值大小降序排序,选出其中处于温点状态的物理机;

2)选择一台负载值最低的温点物理机作为虚拟机可放置的候选物理机;

3)递归地调用初始放置算法中的放置函数来放置虚拟机;

4)如果虚拟机不能全部放置成功,则从剩余温点物理机中选择一台负载值最低的温点物理机到候选物理机中,回到上一步;

5)放置成功后关闭冷点物理机,

当获得算法的输出即每个虚拟机对应的目标物理机后,资源调度进程将结果封装成云平台原有迁移消息的格式,发送到原先节点和相应新节点的部署进程(Nova-Compute)来进行虚拟机迁移。

具体地说,热点消除方法为:负载监控模块定时地检查集群负载情况,当检查到集群中存在热点时,向资源调度进程发出热点消除请求,请求参数中包含热点物理机的负载信息和该节点上运行的虚拟机配额信息。当资源调度模块接收到热点消除请求后,从请求参数中获取该节点上虚拟机实例的配额信息作为热点消除算法的输入。同时资源调度进程向负载监控模块发出负载查询请求,向SDN监控模块发出网络拓扑、流量和时延查询请求。在接收到上述请求的反馈后,提取负载、网络拓扑、流量和时延等信息封装成算法需求的相应结构,并从数据库中获取该节点上虚拟机间的亲和性关系作为算法输入。当算法输入构造完毕后,开始处理具体流程。

如图4所示,热点消除的具体流程为:

1)将全部物理机按照负载值大小降序排序,选出其中处于温点状态的物理机;

2)选择一台负载值最低的温点物理机作为虚拟机可放置的候选物理机;

3)递归地调用初始放置算法中的放置函数来放置虚拟机,选取顺序为原热点物理机、候选物理机;

4)如果虚拟机不能全部放置成功,则从剩余温点物理机中选择一台负载值最低的温点物理机到候选物理机中,回到上一步,

当获得算法的输出即每个虚拟机对应的目标物理机后,判断虚拟机算法前后的所在物理机是否一样,不一样则将虚拟机迁移到新目标物理机上。资源调度进程将结果封装成云平台原有迁移消息的格式,发送到原先节点和相应新节点的部署进程(Nova-Compute)来进行虚拟机迁移。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1