CN112527448A - 基于openstack的动态负载调整方法及其*** - Google Patents

基于openstack的动态负载调整方法及其*** Download PDF

Info

Publication number
CN112527448A
CN112527448A CN202010896885.3A CN202010896885A CN112527448A CN 112527448 A CN112527448 A CN 112527448A CN 202010896885 A CN202010896885 A CN 202010896885A CN 112527448 A CN112527448 A CN 112527448A
Authority
CN
China
Prior art keywords
load
openstack
data
nodes
dynamic load
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010896885.3A
Other languages
English (en)
Inventor
戴俊伟
马平清
宋泽锋
伍福生
简超
李兴锋
潘星明
刘彬
李琪平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Unionpay Co Ltd
Original Assignee
China Unionpay Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Unionpay Co Ltd filed Critical China Unionpay Co Ltd
Priority to CN202010896885.3A priority Critical patent/CN112527448A/zh
Publication of CN112527448A publication Critical patent/CN112527448A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明涉及基于openstack的动态负载调整方法及其***。该方法包括:采集步骤,基于zabbix监控节点实时采集作为被监控对象的物理机和虚拟机的特征数据;预测步骤,基于规定预测模型对所述特征数据进行异常负载预测;以及调度步骤,在所述预测步骤中预测到异常负载的情况下,进行负载均衡处理。根据本发明,能够解决现有技术中Openstack动态资源调度不足的问题,通过构建负载调节器使资源达到负载均衡,能够根据实际运行节点的负载情况对虚拟机进行动态迁移调度。

Description

基于openstack的动态负载调整方法及其***
技术领域
本发明涉及云技术,具体地涉及一种基于openstack的动态负载调整方法以及基于openstack的动态负载调整***。
背景技术
OpenStack(云计算管理平台)是一个开源的云计算管理平台项目,OpenStack为私有云和公有云提供可扩展的弹性的云计算服务,其目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。
Openstack包括两个主要模块:Nova和Swift。前者虚拟服务器部署和业务计算模块,后者是分布式云存储模块。
现有技术中,在openstack中所使用的虚拟机调度策略为静态调度策略,通过模块nova-scheduler进行主机过滤、权值选择、主机选择这三步实现资源调度,以此来解决如何分发新建的虚拟机到物理服务器上的问题。
然而,Openstack所使用的静态调度策略,在对虚拟机完成初始化调度之后就不再进行自动迁移了,这将导致openstack无法根据实际运行节点的负载情况对虚拟机进行动态迁移调度,虽然能够保障用户的服务需求,但忽略了实际的资源利用情况,资源利用率低。
由于Opnestack中静态资源调度策略导致虚拟机的迁移必须通过手动完成,没有实现根据节点负载情况的变化而动态迁移;在Openstack实际的运行中,其上运行的虚拟机对物理资源的需求都是动态变化的,在持续化的运行中很容易出现局部聚集的情况,某些节点可能负载过高而有些节点有出现空闲,导致***出现负载不均衡的情况,资源浪费严重。
发明内容
鉴于上述问题,本发明旨在提出一种能够实现负载动态平衡的基于openstack的动态负载调整方法以及基于openstack的动态负载调整***。
本发明的一方面的基于openstack的动态负载调整方法,其特征在于,包括:
采集步骤,基于zabbix监控节点实时采集作为被监控对象的物理机和虚拟机的特征数据;
预测步骤,基于规定预测模型对所述特征数据进行异常负载预测;以及
调度步骤,在所述预测步骤中预测到异常负载的情况下,进行负载均衡处理。
可选地,所述采集步骤包括:
搭建zabbix监控节点;
将被监控对象接入所述zabbix监控节点;以及
建立CUM节点以汇总所有zabbix监控节点得到的特征数据。
可选地,在所述采集步骤中,采用分布式节点设置所述zabbix监控节点。
可选地,在所述采集步骤中,针对不同的服务器而设置不同的zabbix监控节点,针对不同的zabbix监控节点集群而设置不同的CUM节点。
可选地,在所述采集步骤中,实时采集物理机和虚拟机的CPU占用率、内存占用率、磁盘占用率以及网络流量中的一项或者多项作为被监控对象的特征数据。
可选地,在所述采集步骤中进一步包括:将得到的所有的特征数据进行标准化处理以使得映射到一个数量级上以消除奇异性样本。
可选地,使用以下的公式对所述于特征数据进行标准化处理,
Figure BDA0002658739300000021
其中,所述标准化处理对yj,j∈(1,2,3...4)进行变换,生成的新序列xj,j∈(1,2,3...4)的方差为1,均值为0,实现将特征数据的取值映射到[0,1]区间上,
其中,j表示被监控对象的特征数据,yi为对应j表示的特征数据的实际取值,
xi为标准化后对应yi缩放后的取值。
可选地,在所述采集步骤和所述训练步骤之间,进一步包括:
降纬步骤,采用规定算法对于所述特征数据进行数据降纬。
可选地,在所述预测步骤中,基于复合预测模型对于进行了数据降纬后的特征数据进行异常负载预测。
可选地,所述复合预测模型包括N个预测模型,
所述预测步骤包括:
采用数据降纬后的数据分别对所述N个预测模型进行模型训练;
对比所述N个预测模型的规定特征确定在所述复合预测模型中的各个预测模型的权重;
基于所述权重构建复合预测模型;以及
基于构建的复合预测模型对所述特征数据进行异常负载预测,
其中,N为大于等于2的自然数。
可选地,当所述N等于2的情况下,2个预测模型分别为SVM模型和随机森林模型。
可选地,当所述N等于2的情况下,其中,2个预测模型分别为k-means模型和决策树模型。
可选地,所述调度步骤包括:
在所述预测步骤中预测到异常负载的情况下利用冒泡排列法获取预测到的负载异常的虚拟机负载序列;
对未预测到异常的物理节点计算综合负载系数并使用冒泡排列法进行排序;
从未预测到异常的物理节点中选出匹配度最高的物理节点并计算负载变动系数;以及
基于计算得到的负载变动系数的值判断是否执行虚拟机迁移。
可选地,基于所述物理节点的资源使用比例以及不同的特征数据所拥有的权重计算所述综合负载系数。
本发明一方面的基于openstack的动态负载调整***,其特征在于,包括:
数据采集模块,用于实时采集作为监控对象的负载的特征数据;以及
负载调节模块,用于基于规定预测模型对所述特征数据进行异常负载预测,并且在预测到异常负载的情况下,进行负载均衡处理。
可选地,所述数据采集模块包括:中心采集器、子数据采集器以及集群,
其中,所述多个集群实时采集物理机和虚拟机的特征数据并汇总到所述子数据采集器,所述子数据采集器将特征数据进一步汇总到中心采集器。
可选地,所述多个集群的每一个包括多个zabbix监控节点,所述多个子数据采集器的每一个包括多个CUM节点,
其中,搭建zabbix监控节点并且将被监控对象接入所述zabbix监控节点,并且建立CUM节点以汇总所有zabbix监控节点得到的特征数据,将多个CUM节点采集到特征数据汇总到所述中心采集器。
可选地,采用分布式节点设置所述多个zabbix监控节点。
可选地,针对不同的服务器而设置不同的zabbix监控节点,针对不同的zabbix监控节点集群而设置不同的CUM节点。
可选地,所述zabbix监控节点实时采集物理机和虚拟机的CPU占用率、内存占用率、磁盘占用率以及网络流量中的一项或者多项作为被监控对象的特征数据。
可选地,所述中心采集器将得到的所有的特征数据进行标准化处理以使得映射到一个数量级上并消除奇异性样本。
可选地,进一步包括:
数据降纬模块,用于采用PCA算法对于所述特征数据进行数据降纬。
可选地,在所述负载调节模块中,基于复合预测模型对于进行了数据降纬后的特征数据进行异常负载预测。
可选地,所述复合预测模型分别为SVM模型和随机森林模型。
可选地,所述复合预测模型分别为k-means模型和决策树模型。
可选地,在所述负载调节模块中,在预测到异常负载的情况下利用冒泡排列法获取预测到的负载异常的虚拟机负载序列,对未预测到异常的物理节点计算综合负载系数并使用冒泡排列法进行排序,从未预测到异常的物理节点中选出匹配度最高的物理节点并计算负载变动系数,基于计算得到的负载变动系数的值判断是否执行虚拟机热迁移。
本发明的计算机可读介质,其上存储有计算机程序,该计算机程序被处理器执行时实现权利要求所述的基于openstack的动态负载调整方法。
本发明的计算机设备,包括存储模块、处理器以及存储在存储模块上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现所述的基于openstack的动态负载调整方法。
如上所述,根据本发明的基于openstack的动态负载调整方法以及本发明的基于openstack的动态负载调整***,能够解决现有技术中Openstack动态资源调度不足的问题,通过构建负载调节器使资源达到负载均衡,能够根据实际运行节点的负载情况对虚拟机进行动态迁移调度,而且能够防止运行中某些节点可能负载过高而某些节点出现空闲这样的负载不平衡的情况,使得资源利用提高。
附图说明
图1是表示本发明的基于openstack的动态负载调整方法的概要流程图。
图2是表示本发明的基于openstack的动态负载调整***的结构框图。
图3是表示本发明一实施方式的基于openstack的动态负载调整方法的流程图。
图4表示是了实现特征数据采集的一个示例的示意图。
图5表示资源调度的具体步骤。
图6是表示虚拟机负载序列的示意图。
图7是表示物理节点的负载序列的示意图。
图8是表示本发明一实施方式的基于openstack的动态负载调整***的结构框图。
具体实施方式
下面介绍的是本发明的多个实施例中的一些,旨在提供对本发明的基本了解。并不旨在确认本发明的关键或决定性的要素或限定所要保护的范围。
出于简洁和说明性目的,本文主要参考其示范实施例来描述本发明的原理。但是,本领域技术人员将容易地认识到,相同的原理可等效地应用于所有类型的基于openstack的动态负载调整方法以及基于openstack的动态负载调整***,并且可以在其中实施这些相同的原理,以及任何此类变化不背离本专利申请的真实精神和范围。
而且,在下文描述中,参考了附图,这些附图图示特定的示范实施例。在不背离本发明的精神和范围的前提下可以对这些实施例进行电、机械、逻辑和结构上的更改。此外,虽然本发明的特征是结合若干实施/实施例的仅其中之一来公开的,但是如针对任何给定或可识别的功能可能是期望和/或有利的,可以将此特征与其他实施/实施例的一个或多个其他特征进行组合。因此,下文描述不应视为在限制意义上的,并且本发明的范围由所附权利要求及其等效物来定义。
诸如“具备”和“包括”之类的用语表示除了具有在说明书和权利要求书中有直接和明确表述的单元(模块)和模块以外,本发明的技术方案也不排除具有未被直接或明确表述的其它单元(模块)和模块的情形。
图1是表示本发明的基于openstack的动态负载调整方法的概要流程图。
如图1所示,本发明的基于openstack的动态负载调整方法包括:
采集步骤S100:实时采集作为监控对象的负载的特征数据;
降纬步骤S200:采用PCA算法对于所述特征数据进行数据降纬;
预测步骤S300:基于规定预测模型对所述特征数据进行异常负载预测;
调度步骤S400:在所述预测步骤S300中预测到异常负载的情况下,进行负载均衡处理。
其中,降纬步骤S200是可选步骤。
在采集步骤S100中,基于zabbix监控节点实时采集物理机和虚拟机的特征数据。具体地,采集步骤S200包括:
搭建zabbix监控节点;
将被监控对象接入所述zabbix监控节点;以及
建立CUM节点以汇总所有zabbix监控节点得到的特征数据。
这里,采用分布式节点设置所述zabbix监控节点。而且,优选的是,针对不同的服务器而设置不同的zabbix监控节点,针对不同的zabbix监控节点集群而设置不同的CUM节点。
作为所采集的特征数据,一般情况下例如包括:物理机和虚拟机的CPU占用率、内存占用率、磁盘占用率以及网络流量中的一项或者多项。
在采集步骤S100中进一步包括:将得到的所有的特征数据进行标准化处理以使得映射到一个数量级上并消除奇异性样本。
预测步骤S300包括:
采用数据降纬后的数据分别对第一预测模型和第二预测模型进行模型训练;
对比两个预测模型的规定特征确定所述复合预测模型中的两个预测模型的权重;
基于所述权重构建复合预测模型;以及
基于构建的复合预测模型对所述特征数据进行异常负载预测。
作为一个示例,所述第一预测模型和所述第二预测模型分别为SVM和随机森林。
调度步骤S400包括:
在所述预测步骤S300中预测到异常负载的情况下利用冒泡排列法获取预测到的负载异常的虚拟机负载序列;
对未预测到异常的物理节点计算综合负载系数并使用冒泡排列法进行排序;
从未预测到异常的物理节点中选出匹配度最高的物理节点并计算负载变动系数;以及
基于计算得到的负载变动系数的值判断是否执行虚拟机迁移。
图2是表示本发明的基于openstack的动态负载调整***的结构框图。
如图2所示,本发明的基于openstack的动态负载调整***包括:
数据采集模块100,实时采集作为监控对象的负载的特征数据;
数据降纬模块200,用于采用PCA算法对于所述特征数据进行数据降纬;以及
负载调节模块300,基于规定预测模型对所述特征数据进行异常负载预测,并且在预测到异常负载的情况下,进行负载均衡处理。
其中,数据降纬模块200为可选模块。
在负载调节模块300中,采用数据降纬后的数据分别对第一预测模型和第二预测模型进行模型训练,对比两个预测模型的规定特征确定所述复合预测模型中的两个预测模型的权重,基于所述权重构建复合预测模型,基于构建成的复合预测模型对所述特征数据进行异常负载预测。
作为一个示例,所述第一预测模型和所述第二预测模型分别为SVM模型和随机森林膜。
在负载调节模块300中,在预测到异常负载的情况下利用冒泡排列法获取预测到的负载异常的虚拟机负载序列,对未预测到异常的物理节点计算综合负载系数并使用冒泡排列法进行排序,从未预测到异常的物理节点中选出匹配度最高的物理节点并计算负载变动系数,基于计算得到的负载变动系数的值判断是否执行虚拟机热迁移。
接着,对于本发明一实施方式的基于openstack的动态负载调整方法以及基于openstack的动态负载调整***进行说明。
图3是表示本发明一实施方式的基于openstack的动态负载调整方法的流程图。
如图3所示,在步骤S1,提取(即采集)负载的特征数据;
在步骤S2,对于负载的特征数据进行数据降纬;
在步骤S3,训练复合检测模型;
在步骤S4,实时进行数据采集;
在步骤S5,利用训练得到的复合预测模型对采集到的特征数据进行异常负载预测,判断负载状态是否出现异常,在判断为出现异常情况下进至步骤S6;
在步骤S6,发出告警;
在步骤S7,在收到告警后进行资源调度;
在步骤S8,判断是否需要重新分配资源,在判断结果为是的情况下重新分配资源并且返回步骤S5,在判断结果为否的情况下结束流程。
接着,对于各步骤的详细内容进行说明。
首先,说明步骤S1的负载的特征数据的提取。
在本发明申请中作为一个示例,主要采集的信息为物理机和虚拟机的CPU、内存、磁盘和网络的状态信息。通过搭建zabbix监控节点实现对服务器和虚拟机的监控;将被监控对象接入到zabbix监控节点后,zabbix监控节点就会对该对象进行实时负载数据收集;再建立CUM节点使用zabbix监控节点的接口汇总所有zabbix节点的监控数据。例如,图4表示是了实现特征数据采集的一个示例的示意图。
如图4所示,多个zabbix监控节点组成多个集群,在图4中表示为集群1~集群n,集群1中的多个zabbix监控节点汇总到子数据采集器的CUM节点(1),集群2中的多个zabbix监控节点汇总到子数据采集器的CUM节点(2),……集群n中的多个zabbix监控节点汇总到子数据采集器的CUM节点(n),子数据采集器的CUM节点(1)~子数据采集器的CUM节点(n)汇总到中心采集器,由此构成下文将要提及的数据采集器。
这里由于zabbix本身不会占用***太多资源,基本不会对平台的负载情况造成影响。而且,未避免中心采集器在实施数据采集汇总的过程中监控对象过多导致中心节点压力过大的问题,在本发明中采用分布式节点监控的方式,针对不同的服务器设置监控节点zabbix,不同的集群设置CUM节点,这样不仅分散了中心采集器的服务压力,同时又解决了中心采集服务器到各个区域的网络带宽,虽然缺点是数据略有延迟增加,但数据延迟的增加相比整体收益的增加是值得的。
利用图4的所示的数据采集方式,选用物理机和虚拟机的历史运行数据,从中提取的八个负载特征如下:{{物理机:CPU占用率、内存占用率、磁盘占用率、网络流量},{虚拟机:CPU占用率、内存占用率、磁盘占用率、网络流量}}。
由于不同特征数据的代表意义、取值大小的差异都是不同的,为了消除不同特征的取值大小对预测的影响,在本发明中还可以增加设置一个数据标准化处理,将所有数据映射到一个数量级上,消除奇异性样本,所使用的标准化方法如下:
作为一个示例,使用以下的公式对所述于特征数据进行标准化处理。
Figure BDA0002658739300000101
其中,所述标准化处理对yj,j∈(1,2,3...n)进行变换,生成的新序列xj,j∈(1,2,3...n)的方差为1,均值为0,实现将特征数据的取值映射到[0,1]区间上,其中,j表示被监控对象的特征数据,yi为对应j表示的特征数据的实际取值,例如j可表示特征CPU占用率、内存占用率、磁盘占用率、网络流量等,xj为标准化后对应yi缩放后的取值。
在步骤S2,对于负载的特征数据进行数据降纬,作为一个示例通过PCA算法对构建的特征数据进行数据降维。由此,能够降低在机器学习的时间成本,提高运算效率的同时降低特征信息的损失率。
接着,进行复合预测模型的训练。
在本发明中,设置不同权重下的多算法的复合预测模型,并定期使用新数据对模型进行更新提高模型的适应性,这样能够避免传统的单一算法模型易受数据特异性及算法本身特性的影响。这里作为复合预测模型可以采用N个预测模型,N为大于等于2的自然数。
作为一个示例,当N=2时,选用SVM模型和随机森林模型作为底层算法。SVM(Support Vector Machines)是指支持向量机,在所有知名的数据挖掘算法中最健壮,最准确的方法之一,它属于二分类算法,可以支持线性和非线性的分类。SVM模型是一类按监督学***面。随机森林模型是指利用多棵树对样本进行训练并预测的一种分类器。在机器学习中,随机森林是一个包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定。
这里,由于SVM模型泛化能力强,不易出现过拟合情况,并能够处理噪声数据,但对大规模的数据速度较慢,对缺入数据和核函数比较敏感;而随机森林模型训练速度较快能够处理大规模数据,对数据适应能力较强能处理缺入数据,但对噪声数据的处理易出现过拟合情况。结合这两种算法模型能够补足单一算法的补足,提高模型对数据预测的准确性。
其中,随机森林模型使用的信息熵越计算方法如下:
Figure BDA0002658739300000111
信息增益计算方法如下:
Figure BDA0002658739300000112
SVM模型选用线性核函数公式如下:
f(i,j)=iTj+c
其中,A表示所要计算的信息熵的对象,指样本集合,Ent(A)表示A的信息熵,
K表示特征数据(即指CPU占用率、内存占用率、磁盘占用率、网络流量等),
pk表示特征k在莫个取值,或某个段取值的概率,
D表示样本集和,
Figure BDA0002658739300000121
表示第v个分支的权重,样本越多表示其越重要,
a是划分样本集的依据,按照设定的a进行样本划分,
Ent(A)划分前的信息熵,
Figure BDA0002658739300000122
表示划分后的信息熵,
i为分类向量,即训练集中特征数据的取值,
j为分类标记,
c为一个常数。
接着,基于所述权重构建复合预测模型result如下公式进行:
result=Weightsa*model(a)+(1-Weightsa)model(b)
其中,model(a)是随机森林模型预测为异常状态的概率,model(b)是SVM模型预测为异常的概率,Weightsa为随机森林模型所占的权重,通过测试数据集对训练后的随机森林模型和SVM模型进行模型评估,获得随机森林模型和SVM模型的规定特征,对比两个模型的规定特征确定复合预测模型的Weightsa
再者,作为另一个示例,当N=2时,可以采用k-means模型和决策树模型。k-means模型是指k均值聚类算法(k-means clustering algorithm),它是一种迭代求解的聚类分析算法,其步骤是,预将数据分为K组,则随机选取K个对象作为初始的聚类中心,然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心,聚类中心以及分配给它们的对象就代表一个聚类,每分配一个样本,聚类的聚类中心会根据聚类中现有的对象被重新计算。决策树模型是一种简单易用的非参数分类器,决策树模型是由决策点、策略点(事件点)及结果构成的树形图,一般应用于序列决策中,通常以最大收益期望值或最低期望成本作为决策准则,通过图解方式求解在不同条件下各类方案的效益值,然后通过比较,做出决策。
如上所述,在本实施方式的基于openstack的动态负载调整方法中,通过对历史负载特征数据提取物理机和虚拟机的例如CPU占用率、内存占用率、磁盘占用率、网络流量等的特征数据,分别标记正样本和白样本,划分训练集和测试集。
其中,为避免数据量过大造成的资源消耗,需要对原始特征数据进行数据降纬,例如选用PCA算法对构建的特征数据进行数据降维,消除重复特征的同时最大化的保留特征特性。使用降维后的训练数据集分别对随机森林模型和SVM模型进行模型训练或者采用其他模型(例如k-means模型和决策树模型等等),通过测试数据集获得所得模型的准确率、精确率、召回率、误报率和ROC曲线,对比两个预测模型的这五个特征确定他们在复合预测模型中所占的预测权重。设置时间T值,数据采集器会根据T值对云平台的数据进行采集,通过同样的PCA降维后利用复合预测模型进行负载预测,当预测出异常后,***会将标记的异常虚机进行异常输出,在进行负载均衡处理即资源调度。
接着,对于资源调度的具体情况进行说明。
利用训练得到的复合预测模型对采集到的特征数据进行异常负载预测,在预测到异常负载的情况下,发出告警并进行资源调度。图5表示资源调度的具体步骤。资源调度的具体步骤如图5所示。
如图5所示,在步骤a1,获取预测到的负载异常的虚拟机负载序列;
在步骤a2,对未预测到异常的物理节点计算综合负载系数并进行排序;
在步骤a3,从未预测到异常的物理节点中选出匹配度最高的物理节点并计算负载变动系数;
在步骤a4,校验可行性;
在步骤a5,判断负载变动系数的值是否为负,在判断结果为是的情况下,否执行虚拟机迁移;
在步骤a6,判断是否异常的虚拟机全部完成处理,若全部完成处理则结束,否则返回步骤a1。
接下来具体说明图5的各步骤。
在本发明中,采用复合预测模型针对负载特征进行异常负载预测后,需要解决对应的负载异常,本发明的负载均衡的核心思想设计资源调度方案,最终让各节点负载到达一个动态平衡值,针对负载特点设计以下负载衡量方法,其中,基于所述物理节点的资源使用比例以及不同的特征数据所拥有的权重计算所述综合负载系数综合负载系数CLnode,具体如下:
首先,计算物理节点R(x)node的资源使用量,如下式:
R(x)node=∑use(x)m
其次,计算物理节点的资源总量T(x)node,如下式:
T(x)node=∑total(x)m
这样,物理节点的资源使用比例f(m)node,如下式:
Figure BDA0002658739300000141
物理节点综合负载系数CLnode的计算方法,如下式:
CLnode=∑Weightsm×f(m)
=Weightscpu×f(cpu)+Weightsram×f(ram)+Weightsdisk×f(disk)+WeightsNetwork×f(Network)
负载不均衡度系数NBCL,如下式:
Figure BDA0002658739300000151
负载变动系数Changes,如下式:
Figure BDA0002658739300000152
其中,T(X)a是物理节点a的资源总量,a节点可能包含多个物理机资源,a的资源总量需要累加包含的各个物理机资源,Use表示其中一个物理机消耗的资源,T(X)b是物理节点b的资源总量,use(x)m表示node节点上x服务器在m资源上的消耗量,total(x)m表示某node节点上某个服务器所拥有的m资源总量,m代表负载特征,cpu,ram,disk,Network分别代表物理节点的CPU占用率、内存占用率、磁盘占用率、网络流量。
CLn表示所有节点n的综合负载系数,计算方式具体见上述的CLnode的计算公式,CLnode就是node的综合负载系数。f(m)为m资源在某节点的消耗占比;Weightsm代表不同的m负载特征所拥有的权重系数,不同的负载权重系数表示每个负载信息对综合负载的影响大小,Weightsm,值越大,m资源对负载的影响力也越大;最终确定物理节点的综合负载系数CLnode;NBCL表示整个***的负载状况;Changes用来衡量热迁移后负载变换的情况,当Changes为负值时表示迁移后整体负载降低,为0表示迁移后负载不变,为正值表示迁移后整体负载增加。
在接到复合预测模型的负载异常报警后,收集预测到异常的虚拟机,将收集到的虚拟机进行负载比较,通过冒泡排序的方法构建的虚拟机负载序列,找到负载在严重的虚拟机,具体如图6所示。图6是表示虚拟机负载序列的示意图。在图6中,从虚拟机1、虚拟机2、虚拟机3、……虚拟机n按照负载减小方向排列,通过指针Max可以最快的找到负载最严重的虚拟机,通过每次的迭代Max将实现最快降低负载至最低。
另一方面,依据报警的异常信息筛选正常物理节点,以综合负载系数的取值为基准使用冒泡排序算法进行排序,获得依据负载从小到大的物理节点的负载序列,具体如图7所示。图7是表示物理节点的负载序列的示意图。在图7中从节点1、节点2、节点3、……节点n按照负载增大方向排列。指针await指向最适合迁移到的节点。
在步骤a5中,在实施虚拟机热迁移操作前会先使用上述公式计算出负载变动系数Changes,如果Changes系数为负值表示此次虚拟机迁移可行,否则await指针将指向下一个物理节点进行判断。
发生一次虚拟机热迁移后,Max指针会通过冒泡算法找到下一个负载最严重的虚拟机,同时由于不同物理节点的负载有所变换会重新生成物理节点的负载序列。
如上所述,在检测到负载异常的情况下,会对异常的虚拟机进行热迁移来降低对应物理节点的负载,根据CLvm计算结果使用冒泡算法(CLvm表示vm虚机的综合负载系数,其计算与CLnode同理,可参照CLnode的计算公式),构建虚机负载序列,优先安排负载压力较大的物理节点上的虚拟机进行热迁移;根据CLnode计算结果使用冒泡排序构建物理机节点负载序列,找到当下未出现负载异常且负载最低的物理节点标记预迁移节点,通过公式计算负载变动系数Changes,如果计算结果为负值则表明本次迁移会实现负载均衡;否则取消标记,重新查找下一个被选物理节点,直到完成热迁移,完后第一次热迁移后,若异常虚拟机列表任不为空,则重复以上操作继续进行热迁移,直至异常虚拟机全部处理完为止。
图8是表示本发明一实施方式的基于openstack的动态负载调整***的结构框图。
如图8所示,本发明一实施方式的基于openstack的动态负载调整***包括:
数据采集器10,用于实时采集作为监控对象的负载的特征数据;以及
负载调节器20,基于规定预测模型对所述特征数据进行异常负载预测,并且在预测到异常负载的情况下,进行负载均衡处理。
数据采集器10的结构可以参考图4的所示的结构。数据采集器10采用多层数据采集构造实时采集承载节点运行的负载情况,与现有技术中的单个数据采集点相比稳定性、抗压性更强,而且,所使用的zabbix服务器对资源的消耗相对较低,几乎不会增加平台的负载。
负载调节器20是针对Openstack动态资源调度不足的问题而用于实现自动化负载均衡的调节器。
负载调节器20包括:
预测子模块21,通过对历史数据的分析构建复合预测模型实现对云平台运行数据的监控,找出或***负载异常点;以及
负载调节子模块22,针对节点资源结构特点构造负载度量公式,计算出负载变动系数和负载不均衡度系数找到最优资源调度方案对负载异常节点进行处理。
这样,利用负载调节器20最终实现资源的动态平衡从而提高资源利用率。
其中,在预测子模块21中,采用特征数据分别对第一预测模型和第二预测模型进行模型训练,对比两个预测模型的规定特征确定所述复合预测模型中的两个预测模型的权重,基于所述权重构建复合预测模型,基于构建成的复合预测模型对所述特征数据进行异常负载预测。构建复合预测模块的过程可以参考以上的说明内容。
在负载调节子模块22中,在预测到异常负载的情况下利用冒泡排列法获取预测到的负载异常的虚拟机负载序列,对未预测到异常的物理节点计算综合负载系数并使用冒泡排列法进行排序,从未预测到异常的物理节点中选出匹配度最高的物理节点并计算负载变动系数,基于计算得到的负载变动系数的值判断是否执行虚拟机热迁移。具体负载调节的过程可以参考以上的说明内容。
如上所述,在预测子模块21中,例如以随机森林模型和SVM模型为底层算法进行训练构建复合预测模型,相较于传统单一算法多算法可以弥补算法本身的缺陷,对数据拥有更强的适应性能精准的进行预测,实时的对云承载节点进行负载状态监控与预测报警,改变了传统负载异常先出现后解决的被动情况。当预测节点可能出现负载异常时,负载调节子模块22会对数据采集器10及经过复合预测模型处理的数据进一步的分析,使用CLnode、Changes等参数分析出各个节点的负载情况再构建调度序列,通过正常负载序列和异常负载序列找出对应的服务转移节点,并在转移前进行可行性验证,保障实施的稳定性,在转移后对序列进行再次排序,直至所有的各节点都达到负载均衡。
本发明提供一种计算机可读介质,其上存储有计算机程序,其中,该计算机程序被处理器执行时实现上述的基于openstack的动态负载调整方法。
本发明还提供一种计算机设备,包括存储模块、处理器以及存储在存储模块上并可在处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现上述的基于openstack的动态负载调整方法。
以上例子主要说明了本发明的基于openstack的动态负载调整方法以及基于openstack的动态负载调整***。尽管只对其中一些本发明的具体实施方式进行了描述,但是本领域普通技术人员应当了解,本发明可以在不偏离其主旨与范围内以许多其他的形式实施。因此,所展示的例子与实施方式被视为示意性的而非限制性的,在不脱离如所附各权利要求所定义的本发明精神及范围的情况下,本发明可能涵盖各种的修改与替换。

Claims (28)

1.一种基于openstack的动态负载调整方法,其特征在于,包括:
采集步骤,基于zabbix监控节点实时采集作为被监控对象的物理机和虚拟机的特征数据;
预测步骤,基于规定预测模型对所述特征数据进行异常负载预测;以及
调度步骤,在所述预测步骤中预测到异常负载的情况下,进行负载均衡处理。
2.如权利要求1所述的基于openstack的动态负载调整方法,其特征在于,
所述采集步骤包括:
搭建zabbix监控节点;
将被监控对象接入所述zabbix监控节点;以及
建立CUM节点以汇总所有zabbix监控节点得到的特征数据。
3.如权利要求2所述的基于openstack的动态负载调整方法,其特征在于,
在所述采集步骤中,采用分布式节点设置所述zabbix监控节点。
4.如权利要求2所述的基于openstack的动态负载调整方法,其特征在于,
在所述采集步骤中,针对不同的服务器而设置不同的zabbix监控节点,针对不同的zabbix监控节点集群而设置不同的CUM节点。
5.如权利要求1所述的基于openstack的动态负载调整方法,其特征在于,
在所述采集步骤中,实时采集物理机和虚拟机的CPU占用率、内存占用率、磁盘占用率以及网络流量中的一项或者多项作为被监控对象的特征数据。
6.如权利要求1所述的基于openstack的动态负载调整方法,其特征在于,
在所述采集步骤中进一步包括:将得到的所有的特征数据进行标准化处理以使得映射到一个数量级上以消除奇异性样本。
7.如权利要求6所述的基于openstack的动态负载调整方法,其特征在于,
使用以下的公式对所述于特征数据进行标准化处理,
Figure FDA0002658739290000021
其中,所述标准化处理对yj,j∈(1,2,3...4)进行变换,生成的新序列xj,j∈(1,2,3...4)的方差为1,均值为0,实现将特征数据的取值映射到[0,1]区间上,
其中,j表示被监控对象的特征数据,yi为对应j表示的特征数据的实际取值,
xi为标准化后对应yj缩放后的取值。
8.如权利要求1~7任意一项所述的基于openstack的动态负载调整方法,其特征在于,在所述采集步骤和所述训练步骤之间,进一步包括:
降纬步骤,采用规定算法对于所述特征数据进行数据降纬。
9.如权利要求8所述的基于openstack的动态负载调整方法,其特征在于,
在所述预测步骤中,基于复合预测模型对于进行了数据降纬后的特征数据进行异常负载预测。
10.如权利要求9所述的基于openstack的动态负载调整方法,其特征在于,
所述复合预测模型包括N个预测模型,
所述预测步骤包括:
采用数据降纬后的数据分别对所述N个预测模型进行模型训练;
对比所述N个预测模型的规定特征确定在所述复合预测模型中的各个预测模型的权重;
基于所述权重构建复合预测模型;以及
基于构建的复合预测模型对所述特征数据进行异常负载预测,
其中,N为大于等于2的自然数。
11.如权利要求10所述的基于openstack的动态负载调整方法,其特征在于,
当所述N等于2的情况下,2个预测模型分别为SVM模型和随机森林模型。
12.如权利要求10所述的基于openstack的动态负载调整方法,其特征在于,
当所述N等于2的情况下,其中,2个预测模型分别为k-means模型和决策树模型。
13.如权利要求9所述的基于openstack的动态负载调整方法,其特征在于,所述调度步骤包括:
在所述预测步骤中预测到异常负载的情况下利用冒泡排列法获取预测到的负载异常的虚拟机负载序列;
对未预测到异常的物理节点计算综合负载系数并使用冒泡排列法进行排序;
从未预测到异常的物理节点中选出匹配度最高的物理节点并计算负载变动系数;以及
基于计算得到的负载变动系数的值判断是否执行虚拟机迁移。
14.如权利要求13所述的基于openstack的动态负载调整方法,其特征在于,
基于所述物理节点的资源使用比例以及不同的特征数据所拥有的权重计算所述综合负载系数。
15.一种基于openstack的动态负载调整***,其特征在于,包括:
数据采集模块,用于实时采集作为监控对象的负载的特征数据;以及
负载调节模块,用于基于规定预测模型对所述特征数据进行异常负载预测,并且在预测到异常负载的情况下,进行负载均衡处理。
16.如权利要求15所述的基于openstack的动态负载调整***,其特征在于,
所述数据采集模块包括:中心采集器、子数据采集器以及集群,
其中,所述多个集群实时采集物理机和虚拟机的特征数据并汇总到所述子数据采集器,所述子数据采集器将特征数据进一步汇总到中心采集器。
17.如权利要求16所述的基于openstack的动态负载调整***,其特征在于,
所述多个集群的每一个包括多个zabbix监控节点,
所述多个子数据采集器的每一个包括多个CUM节点,
其中,搭建zabbix监控节点并且将被监控对象接入所述zabbix监控节点,并且建立CUM节点以汇总所有zabbix监控节点得到的特征数据,将多个CUM节点采集到特征数据汇总到所述中心采集器。
18.如权利要求17所述的基于openstack的动态负载调整***,其特征在于,
采用分布式节点设置所述多个zabbix监控节点。
19.如权利要求18所述的基于openstack的动态负载调整***,其特征在于,
针对不同的服务器而设置不同的zabbix监控节点,针对不同的zabbix监控节点集群而设置不同的CUM节点。
20.如权利要求19所述的基于openstack的动态负载调整***,其特征在于,
所述zabbix监控节点实时采集物理机和虚拟机的CPU占用率、内存占用率、磁盘占用率以及网络流量中的一项或者多项作为被监控对象的特征数据。
21.如权利要求20所述的基于openstack的动态负载调整***,其特征在于,
所述中心采集器将得到的所有的特征数据进行标准化处理以使得映射到一个数量级上并消除奇异性样本。
22.如权利要求15~21任意一项所述的基于openstack的动态负载调整***,其特征在于,进一步包括:
数据降纬模块,用于采用PCA算法对于所述特征数据进行数据降纬。
23.如权利要求22所述的基于openstack的动态负载调整***,其特征在于,
在所述负载调节模块中,基于复合预测模型对于进行了数据降纬后的特征数据进行异常负载预测。
24.如权利要求23所述的基于openstack的动态负载调整***,其特征在于,
所述复合预测模型分别为SVM模型和随机森林模型。
25.如权利要求23所述的基于openstack的动态负载调整***,其特征在于,
所述复合预测模型分别为k-means模型和决策树模型。
26.如权利要求23所述的基于openstack的动态负载调整***,其特征在于,
在所述负载调节模块中,在预测到异常负载的情况下利用冒泡排列法获取预测到的负载异常的虚拟机负载序列,对未预测到异常的物理节点计算综合负载系数并使用冒泡排列法进行排序,从未预测到异常的物理节点中选出匹配度最高的物理节点并计算负载变动系数,基于计算得到的负载变动系数的值判断是否执行虚拟机热迁移。
27.一种计算机可读介质,其上存储有计算机程序,其特征在于,
该计算机程序被处理器执行时实现权利要求1~14任意一项所述的基于openstack的动态负载调整方法。
28.一种计算机设备,包括存储模块、处理器以及存储在存储模块上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1~14任意一项所述的基于openstack的动态负载调整方法。
CN202010896885.3A 2020-08-31 2020-08-31 基于openstack的动态负载调整方法及其*** Pending CN112527448A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010896885.3A CN112527448A (zh) 2020-08-31 2020-08-31 基于openstack的动态负载调整方法及其***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010896885.3A CN112527448A (zh) 2020-08-31 2020-08-31 基于openstack的动态负载调整方法及其***

Publications (1)

Publication Number Publication Date
CN112527448A true CN112527448A (zh) 2021-03-19

Family

ID=74978813

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010896885.3A Pending CN112527448A (zh) 2020-08-31 2020-08-31 基于openstack的动态负载调整方法及其***

Country Status (1)

Country Link
CN (1) CN112527448A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113051131A (zh) * 2021-03-23 2021-06-29 北京沃东天骏信息技术有限公司 采集端、管理控制平台、Prometheus服务调整方法及***
CN113157440A (zh) * 2021-03-23 2021-07-23 北京云上曲率科技有限公司 应用于移动端的自适应负载均衡和保证高可用的方法
CN114265671A (zh) * 2022-03-03 2022-04-01 浙江省邮电工程建设有限公司 虚拟机房的混合式扩展方法
CN116939158A (zh) * 2023-06-15 2023-10-24 武汉贝多多网络科技有限公司 一种基于云计算的监控管理***和方法
CN117421131A (zh) * 2023-12-18 2024-01-19 武汉泽塔云科技股份有限公司 一种监控服务器功耗负载的智能调度方法及***

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107645410A (zh) * 2017-09-05 2018-01-30 郑州云海信息技术有限公司 一种基于OpenStack云平台的虚拟机管理***及方法
CN108196957A (zh) * 2017-12-28 2018-06-22 福州大学 一种云环境下的主机负载预测方法
CN108512719A (zh) * 2018-03-02 2018-09-07 南京易捷思达软件科技有限公司 一种基于开源云平台的一体化资源监控***
CN108874623A (zh) * 2018-05-31 2018-11-23 郑州云海信息技术有限公司 分布式集群性能监控方法、装置、设备、***及存储介质
US20190190771A1 (en) * 2017-12-20 2019-06-20 Gemini Open Cloud Computing Inc. Cloud service management method
CN110389820A (zh) * 2019-06-28 2019-10-29 浙江大学 一种基于v-TGRU模型进行资源预测的私有云任务调度方法
CN110618861A (zh) * 2019-09-16 2019-12-27 山东科技大学 一种Hadoop集群节能***

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107645410A (zh) * 2017-09-05 2018-01-30 郑州云海信息技术有限公司 一种基于OpenStack云平台的虚拟机管理***及方法
US20190190771A1 (en) * 2017-12-20 2019-06-20 Gemini Open Cloud Computing Inc. Cloud service management method
CN108196957A (zh) * 2017-12-28 2018-06-22 福州大学 一种云环境下的主机负载预测方法
CN108512719A (zh) * 2018-03-02 2018-09-07 南京易捷思达软件科技有限公司 一种基于开源云平台的一体化资源监控***
CN108874623A (zh) * 2018-05-31 2018-11-23 郑州云海信息技术有限公司 分布式集群性能监控方法、装置、设备、***及存储介质
CN110389820A (zh) * 2019-06-28 2019-10-29 浙江大学 一种基于v-TGRU模型进行资源预测的私有云任务调度方法
CN110618861A (zh) * 2019-09-16 2019-12-27 山东科技大学 一种Hadoop集群节能***

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张晓兵;朱仲马;: "基于虚拟机迁移的云计算资源动态调度策略", 软件导刊, no. 11, 15 November 2018 (2018-11-15), pages 44 - 48 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113051131A (zh) * 2021-03-23 2021-06-29 北京沃东天骏信息技术有限公司 采集端、管理控制平台、Prometheus服务调整方法及***
CN113157440A (zh) * 2021-03-23 2021-07-23 北京云上曲率科技有限公司 应用于移动端的自适应负载均衡和保证高可用的方法
CN113157440B (zh) * 2021-03-23 2023-06-27 北京云上曲率科技有限公司 应用于移动端的自适应负载均衡和保证高可用的方法
CN114265671A (zh) * 2022-03-03 2022-04-01 浙江省邮电工程建设有限公司 虚拟机房的混合式扩展方法
CN116939158A (zh) * 2023-06-15 2023-10-24 武汉贝多多网络科技有限公司 一种基于云计算的监控管理***和方法
CN117421131A (zh) * 2023-12-18 2024-01-19 武汉泽塔云科技股份有限公司 一种监控服务器功耗负载的智能调度方法及***
CN117421131B (zh) * 2023-12-18 2024-03-26 武汉泽塔云科技股份有限公司 一种监控服务器功耗负载的智能调度方法及***

Similar Documents

Publication Publication Date Title
CN112527448A (zh) 基于openstack的动态负载调整方法及其***
CN106933650B (zh) 云应用***的负载管理方法及***
CN104978236B (zh) 基于多衡量指标的hdfs负载源宿节点选取方法
Zhang et al. Virtual machine placement strategy using cluster-based genetic algorithm
CN111930526B (zh) 负载预测方法、装置、计算机设备和存储介质
CN109460301B (zh) 一种流数据负载的弹性资源配置方法及***
Shekhawat et al. Datacenter workload classification and characterization: An empirical approach
CN110334157B (zh) 一种云计算管理***
Canali et al. Improving scalability of cloud monitoring through PCA-based clustering of virtual machines
CN110825545A (zh) 一种云服务平台异常检测方法与***
CN113177857B (zh) 一种基于台风灾害预估的资源弹性调配方法
CN111327480B (zh) 移动边缘环境下的Web服务多元QoS监控方法
US7461037B2 (en) Clustering technique for cyclic phenomena
CN116010228B (zh) 面向网络安全扫描的时间预估方法及装置
CN112882805A (zh) 一种任务资源约束的利润优化调度方法
CN112148483A (zh) 一种容器迁移方法及相关装置
CN116755872A (zh) 基于topsis的容器化流媒体服务动态加载***及方法
CN116431346A (zh) 一种用于电子设备主存储器容量的补偿方法
CN115292303A (zh) 数据处理方法及装置
JP2023101234A (ja) クラウドアプリケーションデプロイ装置およびクラウドアプリケーションデプロイ方法
CN113723514A (zh) 一种基于混合采样的安全接入日志数据平衡处理方法
CN106888237B (zh) 一种数据调度方法及***
CN110134575B (zh) 一种服务器集群的服务能力计算方法及装置
CN118101344B (zh) 一种针对5g消息的传输安全识别***、方法及介质
CN117834455B (zh) 一种电力物联网数据传输仿真方法和***

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination