本申请涉及云计算技术领域,例如涉及一种用于云平台虚拟机迁移的方法、装置及服务器。
背景技术:
云计算是一种提供资源的网络,是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享池,资源包括网络、服务器、存储、应用软件、服务,这些资源能够被快速提供,需要投入很少的管理工作,或与服务供应商进行很少的交互。云计算包含两个方面的含义:一个方面是底层构建的云计算平台基础设施,是用来构建上层应用程序的基础;另一方面的含义是构建在这个基础平台之上的云计算应用程序。云计算是通过系统虚拟化、多处理器虚拟化、内存虚拟化、i/o虚拟化等虚拟化技术将物理资源虚拟化成资源池,这些资源再由云系统平台进行统一的管理调度。
对于大部分基础设施及服务云而言,分布于物理机或者物理服务器上的虚拟机(virtualmachine,简称vm),是云系统向用户提供服务的基础性单元。vm,是通过硬件虚拟化技术将一台物理服务器分割成了多个逻辑隔离的单元,每个单元都是一个虚拟的计算机,和真实的计算机一样它也有cpu、主板、内存、硬盘等等设备组成,可以为这台虚拟的计算机安装操作系统。一台物理服务器通过虚拟化技术可以同时运行多个vm,这样不仅节省了硬件采购成本与电能消耗,也降低了维护工作量。
近年来,移动计算与云计算技术的相互融合成为一个新趋势。在众多研究和技术问题中,如何使云计算系统更好的为具有移动性的用户提供服务,一直是一个研究热点和难点。
由于真实的移动用户的位置总处于不断的变化中,云系统的物理机和物理服务器不可能永远对所有的用户都处于最佳的服务距离内:如果大部分人群都朝向一个位置或这个位置附近进行移动,那么云服务也应该向着这个位置进行迁移,以确保人群位置改变后,云服务仍能以较小的传输开销为人群服务。
在实现本公开实施例的过程中,发现相关技术中至少存在如下问题:(1)主流的vm迁移策略和方法,主要服务于云系统的负载均衡,很少考虑为移动用户的需求进行优化;(2)往往人为的预先指定进程迁移的目的主机,而没有对多用户的移动趋势进行分析并确定适应移动变化趋势的目标云主机。
技术实现要素:
为了对披露的实施例的一些方面有基本的理解,下面给出了简单的概括。所述概括不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围,而是作为后面的详细说明的序言。
本公开实施例提供了一种用于云平台虚拟机迁移的方法、装置及服务器,以解决如何基于用户的移动趋势进行虚拟机迁移的技术问题。
在一些实施例中,所述方法包括:
获取用户的移动数据;
根据所述用户的移动数据,获得用户群加权中心;
对用户群加权中心的改变进行预测,得到用户群加权中心预测位置;
根据所述用户群加权中心预测位置获得虚拟机迁移决策。
在一些实施例中,所述装置包括:处理器和存储有程序指令的存储器,所述处理器被配置为在执行所述程序指令时,执行上述的用于云平台虚拟机迁移的方法。
在一些实施例中,所述服务器包括:上述的用于云平台虚拟机迁移的装置。
本公开实施例提供的用于云平台虚拟机迁移的方法、装置及服务器,可以实现以下技术效果:能够通过用户的移动数据对用户群加权中心的改变进行预测,从而得到用户的移动趋势,进而得到虚拟机迁移决策,使云服务器能够跟人群总体的移动趋势相匹配,能够使云计算系统更好地为具有移动性的用户提供服务。
以上的总体描述和下文中的描述仅是示例性和解释性的,不用于限制本申请。
附图说明
一个或多个实施例通过与之对应的附图进行示例性说明,这些示例性说明和附图并不构成对实施例的限定,附图中具有相同参考数字标号的元件示为类似的元件,附图不构成比例限制,并且其中:
图1是本公开实施例提供的一个用于云平台虚拟机迁移的方法的示意图;
图2是本公开实施例提供的一个用于云平台虚拟机迁移的装置的示意图。
具体实施方式
为了能够更加详尽地了解本公开实施例的特点与技术内容,下面结合附图对本公开实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本公开实施例。在以下的技术描述中,为方便解释起见,通过多个细节以提供对所披露实施例的充分理解。然而,在没有这些细节的情况下,一个或多个实施例仍然可以实施。在其它情况下,为简化附图,熟知的结构和装置可以简化展示。
本公开实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开实施例的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。
除非另有说明,术语“多个”表示两个或两个以上。
本公开实施例中,字符“/”表示前后对象是一种“或”的关系。例如,a/b表示:a或b。
术语“和/或”是一种描述对象的关联关系,表示可以存在三种关系。例如,a和/或b,表示:a或b,或,a和b这三种关系。
结合图1所示,本公开实施例提供一种用于云平台虚拟机迁移的方法,包括:
s01,获取用户的移动数据;
s02,根据用户的移动数据,获得用户群加权中心;
s03,对用户群加权中心的改变进行预测,得到用户群加权中心预测位置;
s04,根据用户群加权中心预测位置获得虚拟机迁移决策。
采用本公开实施例提供的用于云平台虚拟机迁移的方法,能够通过用户的移动数据对用户群加权中心的改变进行预测,从而得到虚拟机迁移决策,使虚拟机的迁移能够跟人群总体的移动趋势相匹配,能够使云计算系统更好地为具有移动性的用户提供服务。
可选地,用户的移动数据,包括:各用户当前位置的经度jdi和纬度wdi,各用户的移动速度vi和各用户的移动角度ai。
可选地,通过计算
可选地,通过计算
可选地,通过计算
可选地,通过计算
可选地,获取最近一次实施迁移时刻与当前时刻的时间差sjc;
通过计算
其中,x为正整数,1≤x≤n,wci为第i个用户累积的完成任务数量;xzi为从系统最近一次实施迁移到目前为止第i个用户上新出现的任务数量。可选地,各用户基于任务负载的权重可以计算为每个用户累积完成任务数量加上新增任务数量,相对于总体用户群任务数量的比例。可选地,如果完成任务数量和新增任务数量都为0,则直接将所有用户视为具有均分的任务负载权重。
可选地,根据用户的移动数据获得用户群加权中心,包括:
通过计算
通过计算
其中,1≤i≤n,n为用户的数量,i、n均为正整数,jdi为用户i当前位置的经度,wdi为用户i当前位置的纬度,qzi为用户i基于任务负载的权重。
可选地,用户群加权中心为用户群基于各用户权重的中心位置。
可选地,对用户群加权中心的改变进行预测,得到用户群加权中心预测位置,包括:
通过计算
通过计算
其中,
这样,能够更加准确的得到用户群加权中心预测位置,从而判断出用户的移动趋势。
可选地,虚拟机迁移决策包括物理机迁移优先度;
根据用户群加权中心预测位置获得物理机迁移优先度。
可选地,根据用户群加权中心预测位置获得物理机迁移优先度,包括:
通过计算
获得物理机j的迁移优先度qyyxdj;
其中,j为正整数,pmjdj为物理机j的经度;pmwdj为物理机j的纬度;zyvmij为物理机j上被用户i使用的虚拟机的数量,zyvmij为正整数;kxvmj为物理机j上空闲虚拟机的数量,kxvmj为正整数。
可选地,第j个物理机的迁移优先度,由第j个物理机上的虚拟机的占用率、该物理机位置与用户群加权中心预测位置的距离、以及该物理机上运行的虚拟机与对应的用户当前位置的通信距离的累加和,这三者的乘积决定。
其中,第j个物理机上的虚拟机的占用率为
该物理机位置与用户群加权中心预测位置的距离为
该物理机上运行的虚拟机与对应的用户当前位置的通信距离的累加和为
其中,物理机位置为物理机的经度pmjdj和纬度pmwdj;用户群加权中心预测位置为用户群加权中心预测位置的经度wljd和纬度wlwd;用户当前位置为用户当前位置的经度jdi和纬度wdi。
可选地,虚拟机迁移决策还包括各虚拟机对应的迁移对象物理机;
根据各物理机迁移优先度获得各虚拟机对应的迁移对象物理机:
可选地,将各物理机迁移优先度qyyxdj按照从大到小进行排序;优先度越大越需要迁移。用户移动远离用户的虚拟机需要迁移到离用户越来越近的物理机上。
通过计算
得到迁移标记变量矩阵bjljk,bjljk为m×m矩阵;
根据所述迁移标记变量矩阵bjljk得到第j个物理机上虚拟机的迁移对象物理机;
其中,m为物理机的数量,m、l、s、k均为正整数,0<l≤m,0<s≤m,0<k≤m。当bjljk为1时,则表示第j个物理机上虚拟机应该迁移到第k个物理机:检查迁移标记变量矩阵bjljk的第j行,如果存在第k列,对应的数值为1,则将第j个物理机上所有虚拟机迁移到第k个物理机上;该第k个物理机则为第j个物理机上虚拟机的迁移对象物理机。如果不存在第k列,没有需要迁移的虚拟机,也不存在对应的迁移对象物理机。对于所有的物理机,只对迁移优先度的数值高于所有物理机迁移优先度数值中间值的虚拟机进行迁移,并且迁移对象物理机的迁移优先度数值应该是所有物理机迁移优先度数值中最小的那一个。
可选地,还包括根据迁移决策进行虚拟机迁移。
可选地,对所有物理机上处于运行状态的虚拟机实施迁移,具体而言,对于第j个物理机,检查迁移标记变量矩阵bjljk的第j行,如果存在某列,如第k列,对应的数值为1,则将第j个物理机上所有虚拟机迁移到第k个物理机上;如果迁移标记变量矩阵的第j行存在多列对应的数值为1,则在这些数值为1的列中随机选取某列对应的序号,如第k列,将第j个物理机上所有虚拟机迁移到第k个物理机上。如果迁移标记变量矩阵的第j行不存在对应数组为1的列,则不进行虚拟机迁移。
可选地,执行完上述步骤后,当有新用户加入时,然后重新获取用户的移动数据。
采用本公开实施例提供的用于云平台虚拟机迁移的方法,能够动态的跟踪云系统用户在运行时位置变化情况,然后根据多人群用户的加权平均移动趋势,得到各物理机迁移优先度,从而决定云虚拟机的迁移策略,进而使云服务能够跟人群总体的移动趋势相匹配,使虚拟机更接近人群预期的移动目标位置,使云计算系统能够更好的为具有移动性的用户提供服务。
结合图2所示,本公开实施例提供一种用于云平台虚拟机迁移的装置,包括处理器(processor)100和存储有程序指令的存储器(memory)101。可选地,该装置还可以包括通信接口(communicationinterface)102和总线103。其中,处理器100、通信接口102、存储器101可以通过总线103完成相互间的通信。通信接口102可以用于信息传输。处理器100可以调用存储器101中的逻辑指令,以执行上述实施例的用于云平台虚拟机迁移的方法。
此外,上述的存储器101中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
存储器101作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令/模块。处理器100通过运行存储在存储器101中的程序指令/模块,从而执行功能应用以及数据处理,即实现上述实施例中用于云平台虚拟机迁移的方法。
存储器101可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器101可以包括高速随机存取存储器,还可以包括非易失性存储器。
采用本公开实施例提供的用于云平台虚拟机迁移的装置,能够充分考虑用户的移动趋势,并以移动人群移动目标位置的加权中心作为云计算资源和虚拟机迁移的驱动因素来决定迁移方案,能更好的动态优化和调整资源的地理分布以适应对移动人群计算需求的高效率响应,避免了单纯的根据用户当前位置和云计算资源的静态地理分布来决策虚拟机迁移的方案。
本公开实施例提供了一种服务器,包含上述的用于云平台虚拟机迁移的装置。该服务器能够充分考虑用户的移动趋势,并以移动人群移动目标位置的加权中心作为云计算资源和虚拟机迁移的驱动因素来决定迁移方案,能更好的动态优化和调整资源的地理分布以适应对移动人群计算需求的高效率响应,避免了单纯的根据用户当前位置和云计算资源的静态地理分布来决策虚拟机迁移的方案。
本公开实施例提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为执行上述用于…的方法。
本公开实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述用于…的方法。
上述的计算机可读存储介质可以是暂态计算机可读存储介质,也可以是非暂态计算机可读存储介质。
本公开实施例的技术方案可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括一个或多个指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开实施例所述方法的全部或部分步骤。而前述的存储介质可以是非暂态存储介质,包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
以上描述和附图充分地示出了本公开的实施例,以使本领域的技术人员能够实践它们。其他实施例可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施例的部分和特征可以被包括在或替换其他实施例的部分和特征。而且,本申请中使用的用词仅用于描述实施例并且不用于限制权利要求。如在实施例以及权利要求的描述中使用的,除非上下文清楚地表明,否则单数形式的“一个”(a)、“一个”(an)和“所述”(the)旨在同样包括复数形式。类似地,如在本申请中所使用的术语“和/或”是指包含一个或一个以上相关联的列出的任何以及所有可能的组合。另外,当用于本申请中时,术语“包括”(comprise)及其变型“包括”(comprises)和/或包括(comprising)等指陈述的特征、整体、步骤、操作、元素,和/或组件的存在,但不排除一个或一个以上其它特征、整体、步骤、操作、元素、组件和/或这些的分组的存在或添加。在没有更多限制的情况下,由语句“包括一个…”限定的要素,并不排除在包括所述要素的过程、方法或者设备中还存在另外的相同要素。本文中,每个实施例重点说明的可以是与其他实施例的不同之处,各个实施例之间相同相似部分可以互相参见。对于实施例公开的方法、产品等而言,如果其与实施例公开的方法部分相对应,那么相关之处可以参见方法部分的描述。
本领域技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,可以取决于技术方案的特定应用和设计约束条件。所述技术人员可以对每个特定的应用来使用不同方法以实现所描述的功能,但是这种实现不应认为超出本公开实施例的范围。所述技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本文所披露的实施例中,所揭露的方法、产品(包括但不限于装置、设备等),可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,可以仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例。另外,在本公开实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
附图中的流程图和框图显示了根据本公开实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。在附图中的流程图和框图所对应的描述中,不同的方框所对应的操作或步骤也可以以不同于描述中所披露的顺序发生,有时不同的操作或步骤之间不存在特定的顺序。例如,两个连续的操作或步骤实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。