一种在IaaS环境中面向负载均衡的应用感知虚拟机调度方法技术

技术编号:20362663 阅读:26 留言:0更新日期:2019-02-16 16:26
本发明专利技术公开了一种在IaaS环境中面向负载均衡的应用感知虚拟机调度方法,包括以下步骤:步骤1:OpenStack自动为宿主机们上的虚拟机自省库LibVMI和内存分析框架Volatility配置相关文件;步骤2:获取应用感知数据并将其存储在数据库中;步骤3:在每个负载过重的宿主机上挑选出一个待迁移的虚拟机,得到待迁移虚拟机集合;步骤4:为每个待迁移的虚拟机挑选一个合适的宿主机,并使用实时迁移技术将其迁移。相比于传统方法,本发明专利技术在负载频繁变化的情况下有效地减少SLA违约次数,并且在CPU、内存以及带宽等多种资源上都实现了更好的负载均衡,具有很好的适应性和实用价值。

【技术实现步骤摘要】
一种在IaaS环境中面向负载均衡的应用感知虚拟机调度方法
本专利技术属于云计算领域,具体涉及一种在IaaS环境中面向负载均衡的应用感知虚拟机调度方法。
技术介绍
云计算作为一种新型的网络计算模式,通过网络以按需、易扩展的方式为用户提供各种虚拟的IT资源和应用服务,支持用户在任意位置、使用多种终端进行访问。根据其提供服务的不同,可以将云计算分为三种类型:基础设施即服务(InfrastructureasaService,IaaS)、平台即服务(PlatformasaService,PaaS)和软件即服务(SoftwareasaService,SaaS)。IaaS服务主要以虚拟机的形式为用户提供业务所需的IT基础设施,这些虚拟机部署在云服务提供商(CloudServiceProvider,CSP)的数据中心,由CSP统一管理和维护。典型的IaaS服务包括AWS的弹性计算云(ElasticComputeCloud,EC2)以及VMWare和Openstack提供的虚拟机服务。IaaS环境下为云租户提供虚拟机时,任何对于计算资源的请求都以虚拟机的形式进行,虚拟机中运行的应用由用户指定,这些应用往往是一些长期运行的后端服务。由于虚拟化技术提供的资源隔离机制,使得虚拟机中的应用只能使用该虚拟机配额内的资源。随着其上应用负载的动态变化,数据中心的宿主机很容易陷入负载不均衡的状态。对于负载过重的宿主机,由于资源的限制无法满足应用新的资源需求且会导致频繁的进程上下文切换。而负载较轻的宿主机上的剩余资源又存在闲置与浪费的问题。此外,负载过重的宿主机上还有可能出现资源使用不平衡的情况,比如一台宿主机CPU负载过重但内存和带宽相对空闲,另外一台宿主机带宽负载过重但CPU相对空闲。上述情况会导致资源的浪费以及云服务整体性能的下降,甚至违反与云租户签订的服务等级协定(ServiceLevelAgreement,SLA),产生SLA违约(SLAViolation)。虚拟机之间的资源争用,本质上是由虚拟机中所承载的应用造成的。因此,在面向负载均衡的虚拟机调度中,要想实现更加高效的负载均衡除了观察虚拟机整体的资源需求之外,还必须考察虚拟机中运行应用的种类和数量。每一次负载均衡的过程实际上就是重新寻找一个虚拟机和宿主机之间满足多种资源约束的最佳映射关系,这是一个NP-Hard问题。因此,大部分的研究通过使用启发式算法或者元启发式算法寻找一个次优解或近似最优解。TsepoMofolo,R.S.使用虚拟机实时迁移技术将虚拟机从负载过重的宿主机上迁移到其他负载较低的虚拟机上,他们使用了修改后的降序最佳适应算法(ModifiedBestFitDecreasing),将待迁移的虚拟机按照CPU的资源请求量降序排列,并将可用的宿主机按照空闲CPU大小降序排列,然后使用最佳适应算法依次为每个虚拟机选择宿主机。Forsman,M.等人同样使用了虚拟机实时迁移技术来实现负载均衡,他们提出了两种不同的迁移策略:在push策略中,负载过重的宿主机主动将虚拟机迁移到负载较低的宿主机上,而在pull策略中,低负载的宿主机主动的从其他负载较重的宿主机上迁移虚拟机。但这两种研究都只考虑了CPU这一种资源的使用情况,但事实上,宿主机上还有很多其他的热点资源,例如带宽,却并未纳入考虑范围。庄威等人根据虚拟机的资源需求特征以及宿主机的资源使用情况,使用多属性层次分析方法为虚拟机寻找部署压力最小的宿主机,从而实现负载均衡。该方法首先结合用户选择虚拟机的用途推断出虚拟机对各种资源的需求特征,然后按照1-9比例标度对虚拟机所需各种资源的重要性程度赋值,接着通过构造虚拟机所需各种资源的成对比较矩阵计算出虚拟机所需各种资源的权重向量V,再结合宿主机的资源使用向量M找出使V·M最小的宿主机作为待迁移虚拟机的目标宿主机,最后使用虚拟机实时迁移技术将迁移该虚拟机。但是他们在计算加权和时为不同的资源预先定义权重或简单地给他们赋予相等的权重,这显然不能适应虚拟机的资源请求和宿主机的资源使用情况都动态变化的特征。基于预测的方法通过对虚拟机的资源需求和宿主机的资源使用情况进行预测,从而可以在热点宿主机出现之前就提取迁移虚拟机,这缩短了甚至消除了对负载不均衡状态的响应时间。但对于高度动态的工作负载,由于很难精确地预测资源需求及使用情况,基于预测的负载均衡方法并不是非常可靠。综上所述,现有工作在一定程度上改善了数据中心中宿主机之间的负载均衡情况,但是大部分工作在进行虚拟机调度的过程中,只是把虚拟机当成一个黑盒,从外部观察其资源需求,而对其内部的情况一无所知,并不能很好地解决虚拟机的负载均衡问题。
技术实现思路
本专利技术的目的在于提供一种在IaaS环境中面向负载均衡的应用感知虚拟机调度方法,针对云计算环境中虚拟机实例动态创建和迁移的特性,设计了一种可以对LibVMI和Volatility进行自动配置的应用感知服务,实时收集云计算环境下虚拟机内部运行的应用信息以及资源使用情况并周期性检测宿主机的资源使用情况。为降低同驻虚拟机之间资源争用的概率,将由应用感知服务收集到的数据作为虚拟机调度的辅助信息,使那些内部运行应用差异比较大的虚拟机同驻,这可减少SLA违约次数以及取得更好的负载均衡效果。为了实现上述目的,本专利技术采用的技术方案是:一种在IaaS环境中面向负载均衡的应用感知虚拟机调度方法,包括以下步骤:步骤1:OpenStack自动为宿主机们上的虚拟机自省库LibVMI和内存分析框架Volatility配置相关文件;步骤2:获取应用感知数据并将其存储在数据库中;步骤3:在每个负载过重的宿主机上挑选出一个待迁移的虚拟机,得到待迁移虚拟机集合;步骤4:为每个待迁移的虚拟机挑选一个合适的宿主机,并使用实时迁移技术将其迁移。进一步的,步骤1)具体包括以下步骤:1.1)OpenStack的计算服务项目Nova检测宿主机是否存在虚拟机新建或迁移的情况,若存在,则Nova将情况对应的事件发送到OpenStack的分布式总线上,继续下一步骤;若不存在,则跳到步骤1.6);1.2)OpenStack的告警服务项目Aodh检测到事件后,触发自动配置模块,自动配置模块在配置库中寻找配置内容,若配置成功,则直接使用配置库中的内容在宿主机上进行配置,跳到步骤1.6);若配置库匹配失败,则创建新的配置,继续下一步骤;1.3)在宿主机上的目录/etc/libvmi.conf中为该虚拟机添加一个配置条目,包括了操作系统类型、System.map文件的位置以及用来在虚拟机或者内存镜像中访问数据的偏移量内容;1.4)制作module.dwarf文件,将其和System.map文件压缩成一个压缩包即Profile,把压缩包放置于volatility/plugins/overlays/linux/目录下,并检验Profile是否配置成功,若配置成功,则继续下一步骤;若配置不成功,则检查原因,跳到步骤1.3;1.5)将配置好的文件上传至配置库;1.6)重复步骤1.1)-步骤1.5),直到所有的宿主机都完成了相关配置。进一步的,步骤2)具体包括以下步骤:2.1)通过实现资源发现模块Discovery、数据调用模块Pollster和数据感本文档来自技高网
...

【技术保护点】
1.一种在IaaS环境中面向负载均衡的应用感知虚拟机调度方法,其特征在于,包括以下步骤:步骤1:OpenStack自动为宿主机们上的虚拟机自省库LibVMI和内存分析框架Volatility配置相关文件;步骤2:获取应用感知数据并将其存储在数据库中;步骤3:在每个负载过重的宿主机上挑选出一个待迁移的虚拟机,得到待迁移虚拟机集合;步骤4:为每个待迁移的虚拟机挑选一个合适的宿主机,并使用实时迁移技术将其迁移。

【技术特征摘要】
1.一种在IaaS环境中面向负载均衡的应用感知虚拟机调度方法,其特征在于,包括以下步骤:步骤1:OpenStack自动为宿主机们上的虚拟机自省库LibVMI和内存分析框架Volatility配置相关文件;步骤2:获取应用感知数据并将其存储在数据库中;步骤3:在每个负载过重的宿主机上挑选出一个待迁移的虚拟机,得到待迁移虚拟机集合;步骤4:为每个待迁移的虚拟机挑选一个合适的宿主机,并使用实时迁移技术将其迁移。2.根据权利要求1所述的一种基于响应时间序列数据分析的虚拟机同驻检测方法,其特征在于,步骤1)具体包括以下步骤:1.1)OpenStack的计算服务项目Nova检测宿主机是否存在虚拟机新建或迁移的情况,若存在,则Nova将情况对应的事件发送到OpenStack的分布式总线上,继续下一步骤;若不存在,则跳到步骤1.6);1.2)OpenStack的告警服务项目Aodh检测到事件后,触发自动配置模块,自动配置模块在配置库中寻找配置内容,若配置成功,则直接使用配置库中的内容在宿主机上进行配置,跳到步骤1.6);若配置库匹配失败,则创建新的配置,继续下一步骤;1.3)在宿主机上的目录/etc/libvmi.conf中为该虚拟机添加一个配置条目,包括了操作系统类型、System.map文件的位置以及用来在虚拟机或者内存镜像中访问数据的偏移量内容;1.4)制作module.dwarf文件,将其和System.map文件压缩成一个压缩包即Profile,把压缩包放置于volatility/plugins/overlays/linux/目录下,并检验Profile是否配置成功,若配置成功,则继续下一步骤;若配置不成功,则检查原因,跳到步骤1.3;1.5)将配置好的文件上传至配置库;1.6)重复步骤1.1)-步骤1.5),直到所有的宿主机都完成了相关配置。3.根据权利要求1所述的一种基于响应时间序列数据分析的虚拟机同驻检测方法,其特征在于,步骤2)具体包括以下步骤:2.1)通过实现资源发现模块Discovery、数据调用模块Pollster和数据感知模块Inspector这三个模块在Openstack的监控服务项目Ceilometer中的数据采集模块agent-computer里添加应用感知插件;2.2)修改/etc/ceilometer/pipeline.yaml,在sources下面添加name为process_list的条目;2.3)Ceilometer为应用感知任务定义一条包含了一个数据源source和一个接收点sink的pipeline;2.4)针对每条pipeline,Ceilometer将从source中提取数据项...

【专利技术属性】
技术研发人员:桂小林张晨徐盼梁鑫
申请(专利权)人:西安交通大学
类型:发明
国别省市:陕西,61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1