一种加速虚拟机启动的方法及系统的制作方法_4

文档序号:9826104阅读:来源:国知局
务平台还通过第二存储模块存储与每一个虚拟机唯一对应的衍生镜像;并且,一个基准镜像对应至少一个衍生镜像;而一个衍生镜像只能对应到唯一一个基准镜像;每一个所述衍生镜像用于存储与其唯一绑定的虚拟机运行时相对对应的基准镜像发生改变的资源,并且,每一个所述衍生镜像均绑定与其对应的基准镜像的存储路径; S2,设服务器Pi所分配的虚拟机集合Xi由m台虚拟机组成,分别记为X1-1、X1-2…X1-m;其中,m为自然数;i e (1、2…η); 当服务器Pi启动时,对于任意一台虚拟机X1-j,其中,j ^ (1、2…m),均执行以下操作: S2.1,所述服务器Pi通过查找所述第二存储模块,获得与该虚拟机X1-j绑定的衍生镜像Yi ;然后再根据与所述衍生镜像Yi绑定的基准镜像的存储路径,查找所述第一存储模块,获得与该虚拟机X1-j绑定的基准镜像Wi ; S2.2,所述服务器Pi获取所述衍生镜像Yi中按由前向后顺序排列的各个指纹区数据,分别记为Z1、Z2…Zx ; 所述服务器Pi还获取所述基准镜像Wi中按由前向后顺序排列的各个指纹区数据,分别记为Q1、Q2…Qx ; 所述服务器分别比对Zk和Qk,其中,k e (1、2…X);如果Zk为空,由取Qk为有效指纹数据;如果Zk不为空,则取Zk为有效指纹数据; 由此共得到X个有效指纹数据,将X个有效指纹数据称为有效指纹数据集; 52.3,所述服务器Pi将S2.2得到的有效指纹数据集预加载到共享内存中,同时在该有效指纹数据集后绑定一个标志位,初始时,该标志位为有效标志位; 通过上述操作,服务器Pi的共享内存中共存储m个有效指纹数据集,并且,每一个有效指纹数据集均绑定一个有效标志位; 53,当任意一台虚拟机b需要被启动时,该虚拟机b向云服务平台发送启动请求消息;所述云服务平台首先查找SI记录的所述分配记录表,获得与该虚拟机对应的服务器,记为服务器b ;此时,服务器b已预加载与虚拟机b对应的有效指纹数据集b ; 然后,所述云服务平台读取服务器b的当前负载情况,如果服务器b的当前负载情况允许再进一步启动所述虚拟机b,则再进一步读取所述有效指纹数据集b的标志位,如果为有效标志位,则直接使用所述有效指纹数据集b启动所述虚拟机b,在所述虚拟机b被启动后,将有效指纹数据集b的标志位设置为无效标志位;反之,如果服务器b的当前负载情况不允许再进一步启动所述虚拟机b,则使用服务器集群中的其他服务器启动所述虚拟机b,在所述虚拟机b被启动后,将服务器b预加载的有效指纹数据集b的标志位设置为无效标志位。2.根据权利要求1所述的加速虚拟机启动的方法,其特征在于,SI中,所述云服务平台预先为所述服务器集群中的每一台服务器分配需要被预加载的虚拟机集合,其中,所分配的虚拟机集合中包括的虚拟机数量大于该服务器的可最大负载的虚拟机数量。3.根据权利要求1所述的加速虚拟机启动的方法,其特征在于,SI中,每一个所述基准镜像为若干个虚拟机共享的公共资源具体为: 具有相同操作系统的虚拟机共同对应一个基准镜像;而具有不同操作系统的虚拟机对应不同的基准镜像。4.根据权利要求1所述的加速虚拟机启动的方法,其特征在于,SI中,所述云服务平台通过以下方法存储与所述虚拟机唯一对应的衍生镜像: 所述云服务平台创建与所述虚拟机唯一对应的衍生镜像,且该衍生镜像的存储空间以及该存储空间的逻辑分区情况均与所述虚拟机所对应的基准镜像完全相同;初始时,该衍生镜像为空;随着所述虚拟机的运行,所述虚拟机相对所述基准镜像发生改变的资源被不断写入到所述衍生镜像,由此得到所述云服务平台所存储的衍生镜像;其中,所述虚拟机相对所述基准镜像发生改变的资源包括:相对所述基准镜像新增加的资源,以及相对所述基准镜像更新的资源。5.根据权利要求1所述的加速虚拟机启动的方法,其特征在于,S3中,当服务器b的当前负载情况不允许再进一步启动所述虚拟机b,则所述云服务平台基于预设的负载均衡算法获得所述服务器集群中的其他指定服务器,然后由所述指定服务器启动所述虚拟机b。6.根据权利要求1所述的加速虚拟机启动的方法,其特征在于,S3中,直接使用所述有效指纹数据集b启动所述虚拟机b,具体为:所述虚拟机b从所述服务器内存中读取到所述有效指纹数据集b,然后再进一步读取到与所述有效指纹数据集b对应的有效真实启动数据,通过所述有效真实启动数据,启动所述虚拟机b。7.一种加速虚拟机启动的系统,其特征在于,包括:云服务平台以及服务器集群; 所述云服务平台包括: 分配模块,用于预先为所述服务器集群中的每一台服务器分配需要被预加载的虚拟机集合; 分配记录表,用于存储服务器与所述分配模块所分配的各台虚拟机的对应关系;设所述服务器集群共有η台服务器,分别记为Ρ1、Ρ2...Ρη ;各台服务器对应的虚拟机集合分别记为:Χ1、Χ2…Xn ;其中,η为自然数; 第一存储模块,用于存储至少一个基准镜像;每一个所述基准镜像为若干个虚拟机共享的公共资源; 第二存储模块,用于存储与每一个虚拟机唯一对应的衍生镜像;并且,一个基准镜像对应至少一个衍生镜像;而一个衍生镜像只能对应到唯一一个基准镜像;每一个所述衍生镜像用于存储与其唯一绑定的虚拟机运行时相对对应的基准镜像发生改变的资源,并且,每一个所述衍生镜像均绑定与其对应的基准镜像的存储路径; 所述服务器集群中的任意一台服务器Pi所分配的虚拟机集合Xi由m台虚拟机组成,分别记为X1-1、X1-2…Xin ;其中,m为自然数;i e (1、2…η);任意一台虚拟机记为虚拟机 X1-J ; 则:所述服务器Pi包括: 查找模块,用于当服务器Pi启动时,查找所述云服务平台的第二存储模块,获得与该虚拟机X1-j绑定的衍生镜像Yi ;然后再根据与所述衍生镜像Yi绑定的基准镜像的存储路径,查找所述云服务平台的第一存储模块,获得与该虚拟机X1-j绑定的基准镜像Wi ; 第一指纹区数据获取模块,用于获取所述衍生镜像Yi中按由前向后顺序排列的各个指纹区数据,分别记为Z1、Z2…Zx ; 第二指纹区数据获取模块,用于获取所述基准镜像Wi中按由前向后顺序排列的各个指纹区数据,分别记为Q1、Q2…Qx; 有效指纹数据集获取模块,用于逐一比对所述第一指纹区数据获取模块所获取到的指纹区数据Zk以及所述第二指纹区数据获取模块所获取到的指纹区数据Qk,如果Zk为空,由取Qk为有效指纹数据;如果Zk不为空,则取Zk为有效指纹数据;由此共得到X个有效指纹数据,将X个有效指纹数据称为有效指纹数据集; 预加载模块,用于将所述有效指纹数据集获取模块所获取到的有效指纹数据集预加载到共孚内存中,冋时在该有效指纹数据集后绑定Iv标志位,初始时,该标志位为有效标志位; 由于服务器Pi共分配有m个虚拟机,因此,通过预加载模块,共将m个有效指纹数据集预加载到共享内存中,并且,每一个有效指纹数据集均绑定一个有效标志位; 所述云服务平台还包括: 接收模块,用于接收来自某一台服务器的某一个虚拟机b的启动请求消息; 查找模块,用于当所述接收模块接收到启动请求消息后,查找所述分配记录表,获得与该虚拟机对应的服务器,记为服务器b ;此时,服务器b已预加载与虚拟机b对应的有效指纹数据集b ; 启动模块,用于读取服务器b的当前负载情况,如果服务器b的当前负载情况允许再进一步启动所述虚拟机b,则再进一步读取所述有效指纹数据集b的标志位,如果为有效标志位,则直接使用所述有效指纹数据集b启动所述虚拟机b,在所述虚拟机b被启动后,将有效指纹数据集b的标志位设置为无效标志位;反之,如果服务器b的当前负载情况不允许再进一步启动所述虚拟机b,则使用服务器集群中的其他服务器启动所述虚拟机b,在所述虚拟机b被启动后,将服务器b预加载的有效指纹数据集b的标志位设置为无效标志位。
【专利摘要】本发明提供一种加速虚拟机启动的方法及系统,系统包括:云服务平台以及服务器集群;云服务平台包括:分配模块、分配记录表、第一存储模块、第二存储模块、接收模块、查找模块和启动模块;服务器集群中的任意一台服务器包括:查找模块、第一指纹区数据获取模块、第二指纹区数据获取模块、有效指纹数据集获取模块、预加载模块。服务器在启动时,对其所分配的所有虚拟机的有效指纹数据集进行预加载,因此,当某台虚拟机需要启动时,服务器只需要从内存中加载该有效指纹数据集,进而启动虚拟机即可,由于从内存读取数据的过程远大于从硬盘中读取数据的过程,因此,有效加快了虚拟机的启动速度。
【IPC分类】G06F9/445, G06F9/455
【公开号】CN105589704
【申请号】CN201410566543
【发明人】杨耀敏, 周雄峰, 高良伟, 冯立松
【申请人】北京云巢动脉科技有限公司
【公开日】2016年5月18日
【申请日】2014年10月22日
当前第4页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1