基于云计算平台的资源自迁移方法及系统
技术领域
本发明属于云计算技术领域,具体涉及一种基于云计算平台的资源自迁移方法及系统。
背景技术
CloudStack(云计算)的资源均衡机制:在云计算平台上创建、启动或者重启虚拟机的时候,需要给虚拟机分配相应的计算资源和存储资源,由于云计算会实时监控资源的使用情况,并依据监控的结果,选择合适的物理机来分别部署虚拟机的计算资源和存储资源,所以虚拟机的计算资源和存储资源往往部署在不同的物理机上。
虚拟机热迁移技术:热迁移,又叫做动态迁移或者实时迁移,使得IT运维人员能够将运行中的虚拟机从一台物理机迁移到另一台物理机,不需要暂停时间。它将整个虚拟机的运行状态从一台物理机热迁移到另一台物理机,迁移之后,虚拟机仍旧平滑运行,用户不会察觉到任何的差异。
AutoCS(云管理平台):这是基于CloudStack API(Application ProgrammingInterface,应用程序编程接口)进行的一个二次开发,添加了更多的管理功能,并屏蔽了底层的一些具体操作,为最终用户提供的一个界面友好功能强大的使用环境。
发明人发现现有技术中至少存在如下问题:云计算的资源均衡机制不能保证分配的计算资源和存储资源在同一台物理机上,若计算资源和存储资源不在同一物理机上会带来物理机的运行缓慢,同时造成IO的效率较低。
发明内容
本发明所要解决的技术问题包括,针对现有的云计算的资源均衡机制存在的上述的问题,提供一种保证申请的虚拟机的计算资源和存储资源在同一台物理机上,最大化IO的效率,同时又不破坏共享存储原有的功能的基于云计算平台的资源自迁移方法及系统。
解决本发明技术问题所采用的技术方案是一种基于云计算平台的资源自迁移方法,其特征在于,包括:
将为虚拟机的配置的计算资源和存储资源镜像到相应的物理机上;
查询为虚拟机配置的计算资源和管理资源是否镜像到同一物理机上,若否,定位存储资源所在的物理机,将计算资源自迁移到存储资源所在的物理机上。
优选的是,所述将为虚拟机的配置的计算资源和存储资源镜像到相应的物理机上之前还包括:
创建虚拟机集群,并为各虚拟机配置计算资源和存储资源。
优选的是,为各虚拟机配置计算资源和存储资源具体包括:
通过云计算应用程序接口为各虚拟机配置计算资源和存储资源。
优选的是,所述将虚拟机的计算资源和存储资源镜像到相应的物理机上时,还包括:
记录虚拟机的地址以及计算资源和存储资源分别镜像到的物理机的地址,以定位存储资源所在的物理机。
优选的是,所述将虚拟机的计算资源和存储资源镜像到相应的物理机上之前还包括:
通过云管理平台检测各物理机的负载情况,从负载最轻物理机开始镜像虚拟机。
进一步优选的是,计算资源自迁移到存储资源所在的物理机上是从负载最轻的物理机开始,对虚拟机所镜像的计算资源进行自迁移。
优选的是,所述查询虚拟机的计算资源和管理资源是否在同一物理机上,若是虚拟机正常工作,若否计算资源自迁移到存储资源所在的物理机上之后还包括:
通过云管理平台周期性检测各虚拟机的计算资源和存储资源的镜像情况。
解决本发明技术问题所采用的技术方案是一种基于云计算平台的资源自迁移系统,其包括:
资源管理模块,用于为各虚拟机配置相应的计算资源和存储资源;
资源检测模块,用于检测各虚拟机的计算资源和存储资源是否镜像到与其对应的物理机上;
资源迁移模块,用于将资源检测模块检测到的计算资源与存储资源不在同一物理机上的进行迁移,使得计算资源迁移至存储资源所在的物理机上。
优选的是,资源记录模块,用于记录各虚拟机的地址,以及各虚拟机的计算资源和管理资源在镜像到物理机上的地址。
本发明的有益效果:
本发明的基于云计算平台的资源自迁移方法及系统根据实际需求,解决云计算的资源均衡机制不能保证分配的计算资源和存储资源在同一台物理机上的问题,保证申请的虚拟机的计算资源和存储资源在同一台物理机上,最大化IO的效率,同时又不破坏共享存储原有的功能。
附图说明
图1为本发明的实施例1的自迁移的过程示意图;
图2为本发明的实施例1的基于云计算平台的资源自迁移方法的流程图。
具体实施方式
为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明作进一步详细描述。
本实施例应用的场景主要包括以下四种:
第一,当用户创建虚拟机的时候,云计算的资源均衡机制会使得计算资源和存储资源分配到不同的物理机(HOST)上。
第二,当用户重启虚拟机的时候,云计算将会重新均衡虚拟机的计算资源和存储资源,此时计算资源和存储资源被分配到不同的物理机上。
第三,在某些异常情况下,比如脑裂,虚拟机的计算资源可能发生自迁移。
第四,当存储虚拟机镜像的物理机宕机时,虚拟机的存储资源也可能发生自迁移。
其中,在本实施例中存储资源的定位过程是:根据Glusterfs现有的机制,它是将随机生成的UUID(通用唯一识别码)通过一个哈希算法,然后获得一个物理机列表,从而确定存储资源所在的物理机位置。而在本实施例中,是通过在生成的UUID被哈希算法调用之前,将它的值截获,保存到数据库中。再调用Glusterfs提供的API,以已截获的UUID为参数,去获得存储资源所在的物理机列表从而完成存储资源的定位,定位完成之后,通过热迁移将计算资源迁移到存储资源上了。基于其他类型的文件系统(如GFS,Google File System,谷歌文件系统)提供的接口开发API,也可以进行存储资源的定位。
具体的资源的迁移方法及系统如下所述。
实施例1:
结合图1和2所示,本实施例提供一种基于云计算平台的资源自迁移方法,其包括如下步骤:
步骤一、创建虚拟机集群,并为各虚拟机配置计算资源和存储资源。
该步骤具体的可以为:云计算平台检测虚拟机镜像的计算资源和存储资源,分析各个物理机的的负载情况,从负载最轻的物理机开始启动虚拟机,用户通过云管理平台调用云计算的API(应用程序接口)为各虚拟机配置相应的计算资源和存储资源。
步骤二、将虚拟机的计算资源和存储资源镜像到相应的物理机上。
在该步骤进行的同时云管理平台将会自动记录虚拟机的地址以及计算资源和存储资源分别镜像到的物理机的地址,以便后续中判断计算资源和存储资源是否被经想到同物理机上。
步骤三、通过云管理平台查询虚拟机的计算资源和管理资源是否在同一物理机上,若是则执行下一步骤,若否则将计算资源自迁移到存储资源所在的物理机上后再执行下一步骤。
其中,当发生自迁移时,是从负载最轻的物理机所对应的虚拟机开始自迁移,将计算资源和存储资源迁移到同一物理上。
步骤四、虚拟机正常工作。
步骤五、云计算平台将会周期性查询机制,周期性地检测虚拟机的计算资源和存储资源的位置,若两者不在同一台物理机上,立即触发计算资源的自迁移。
本实施例的方法,根据实际需求,解决云计算的资源均衡机制不能保证分配的计算资源和存储资源在同一台物理机上的问题,保证申请的虚拟机的计算资源和存储资源在同一台物理机上,最大化IO的效率,同时又不破坏共享存储原有的功能。同时,基于云计算REST API,以及Glusterfs(Gluster公司研发的一种文件系统,它是各种不同的存储服务器之上的组合,这些服务器由以太网或无限带宽技术Infiniband以及远程直接内存访问RDMA互相融汇,最终所形成的一个大的并行文件系统网络)提供的监测API,利用云管理平台在虚拟机的整个生命周期内监控计算资源和存储资源的分布情况,实时调整计算资源的分布,以达到计算资源和存储资源共存于同一台物理机的目的。
实施例2:
本实施例提供一种云计算平台的资源自迁移系统,其包括:
资源管理模块,用于为各虚拟机配置相应的计算资源和存储资源;资源检测模块,用于检测各虚拟机的计算资源和存储资源是否镜像到与其对应的物理机上;资源迁移模块,用于将资源检测模块检测到的计算资源与存储资源不在同一物理机上的进行迁移,使得计算资源迁移至存储资源所在的物理机上。
当本实施例的基于云计算平台的资源自迁移系统还包括:资源记录模块,用于记录各虚拟机的地址,以及各虚拟机的计算资源和管理资源在镜像到物理机上的地址。
本实施例的系统的可以按照实施例1所述的方法进行工作,在此不详细描述了。
可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。