一种加速虚拟机启动的方法及系统技术方案

技术编号:13269064 阅读:77 留言:0更新日期:2016-05-18 19:14
本发明专利技术提供一种加速虚拟机启动的方法及系统,系统包括:云服务平台以及服务器集群;云服务平台包括:分配模块、分配记录表、第一存储模块、第二存储模块、接收模块、查找模块和启动模块;服务器集群中的任意一台服务器包括:查找模块、第一指纹区数据获取模块、第二指纹区数据获取模块、有效指纹数据集获取模块、预加载模块。服务器在启动时,对其所分配的所有虚拟机的有效指纹数据集进行预加载,因此,当某台虚拟机需要启动时,服务器只需要从内存中加载该有效指纹数据集,进而启动虚拟机即可,由于从内存读取数据的过程远大于从硬盘中读取数据的过程,因此,有效加快了虚拟机的启动速度。

【技术实现步骤摘要】

本专利技术属于虚拟机启动
,具体涉及一种加速虚拟机启动的方法及系统
技术介绍
在云计算环境中,需要部署数量众多的服务器,每一台服务器又配置若干台虚拟机,例如,在云计算办公环境中,假设共部署6台服务器,而每台服务器被分配20个虚拟机,则在6台服务器开机过程中,共有120个虚拟机同时被启动,而且,每一台虚拟机在启动过程中,均需要直接从硬盘读取启动资源,导致整个云计算环境的开机压力过大,易发生开机风暴现象,从而导致虚拟机启动速度过慢,降低用户体验。另外,现有技术中,虚拟机与服务器绑定,当某台服务器启动某台虚拟机时,如果服务器负载过大,会导致该台虚拟机启动速度慢,从而进一步降低了用户体验。
技术实现思路
针对现有技术存在的缺陷,本专利技术提供一种加速虚拟机启动的方法及系统,可有效解决上述问题。本专利技术采用的技术方案如下:本专利技术提供一种加速虚拟机启动的方法,应用于云计算环境中,包括云服务平台以及服务器集群;方法包括以下步骤:SI,所述云服务平台预先为所述服务器集群中的每一台服务器分配需要被预加载的虚拟机集合;并通过分配记录表存储服务器与被分配的各台虚拟机的对应关系;设所述服务器集群共有η台服务器,分别记为P1、Ρ2…Pn ;各台服务器对应的虚拟机集合分别记为:Χ1、Χ2…Xn;其中,η为自然数;所述云服务平台还通过第一存储模块存储至少一个基准镜像;每一个所述基准镜像为若干个虚拟机共享的公共资源;所述云服务平台还通过第二存储模块存储与每一个虚拟机唯一对应的衍生镜像;并且,一个基准镜像对应至少一个衍生镜像;而一个衍生镜像只能对应到唯一一个基准镜像;每一个所述衍生镜像用于存储与其唯一绑定的虚拟机运行时相对对应的基准镜像发生改变的资源,并且,每一个所述衍生镜像均绑定与其对应的基准镜像的存储路径;S2,设服务器Pi所分配的虚拟机集合Xi由m台虚拟机组成,分别记为Xi_l、X1-2…X1-m;其中,m为自然数;i E (1、2…η);当服务器Pi启动时,对于任意一台虚拟机X1-j,其中,j E (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个有效指纹数据称为有效指纹数据集;S2.3,所述服务器Pi将S2.2得到的有效指纹数据集预加载到共享内存中,同时在该有效指纹数据集后绑定一个标志位,初始时,该标志位为有效标志位;通过上述操作,服务器Pi的共享内存中共存储m个有效指纹数据集,并且,每一个有效指纹数据集均绑定一个有效标志位;S3,当任意一台虚拟机b需要被启动时,该虚拟机b向云服务平台发送启动请求消息;所述云服务平台首先查找Si记录的所述分配记录表,获得与该虚拟机对应的服务器,记为服务器b;此时,服务器b已预加载与虚拟机b对应的有效指纹数据集b;然后,所述云服务平台读取服务器b的当前负载情况,如果服务器b的当前负载情况允许再进一步启动所述虚拟机b,则再进一步读取所述有效指纹数据集b的标志位,如果为有效标志位,则直接使用所述有效指纹数据集b启动所述虚拟机b,在所述虚拟机b被启动后,将有效指纹数据集b的标志位设置为无效标志位;反之,如果服务器b的当前负载情况不允许再进一步启动所述虚拟机b,则使用服务器集群中的其他服务器启动所述虚拟机b,在所述虚拟机b被启动后,将服务器b预加载的有效指纹数据集b的标志位设置为无效标志位。优选的,SI中,所述云服务平台预先为所述服务器集群中的每一台服务器分配需要被预加载的虚拟机集合,其中,所分配的虚拟机集合中包括的虚拟机数量大于该服务器的可最大负载的虚拟机数量。优选的,SI中,每一个所述基准镜像为若干个虚拟机共享的公共资源具体为:具有相同操作系统的虚拟机共同对应一个基准镜像;而具有不同操作系统的虚拟机对应不同的基准镜像。优选的,SI中,所述云服务平台通过以下方法存储与所述虚拟机唯一对应的衍生镜像:所述云服务平台创建与所述虚拟机唯一对应的衍生镜像,且该衍生镜像的存储空间以及该存储空间的逻辑分区情况均与所述虚拟机所对应的基准镜像完全相同;初始时,该衍生镜像为空;随着所述虚拟机的运行,所述虚拟机相对所述基准镜像发生改变的资源被不断写入到所述衍生镜像,由此得到所述云服务平台所存储的衍生镜像;其中,所述虚拟机相对所述基准镜像发生改变的资源包括:相对所述基准镜像新增加的资源,以及相对所述基准镜像更新的资源。优选的,S3中,当服务器b的当前负载情况不允许再进一步启动所述虚拟机b,则所述云服务平台基于预设的负载均衡算法获得所述服务器集群中的其他指定服务器,然后由所述指定服务器启动所述虚拟机b。优选的,S3中,直接使用所述有效指纹数据集b启动所述虚拟机b,具体为:所述虚拟机b从所述服务器内存中读取到所述有效指纹数据集b,然后再进一步读取到与所述有效指纹数据集b对应的有效真实启动数据,通过所述有效真实启动数据,启动所述虚拟机b0本专利技术还提供一种加速虚拟机启动的系统,包括:云服务平台以及服务器集群;所述云服务平台包括:分配模块,用于预先为所述服务器集群中的每一台服务器分配需要被预加载的虚拟机集合;分配记录表,用于存储服务器与所述分配模块所分配的各台虚拟机的对应关系;设所述服务器集群共有η台服务器,分别记为Ρ1、Ρ2...Ρη ;各台服务器对应的虚拟机集合分别记为:Χ1、Χ2…Xn ;其中,η为自然数;第一存储模块,用于存储至少一个基准镜像;每一个所述基准镜像为若干个虚拟机共享的公共资源;第二存储模块,用于存储与每一个虚拟机唯一对应的衍生镜像;并且,一个基准镜像对应至少一个衍生镜像;而一个衍生镜像只能对应到唯一一个基准镜像;每一个所述衍生镜像用于存储与其唯一绑定的虚拟机运行时相对对应的基准镜像发生改变的资源,并且,每一个所述衍生镜像均绑定与其对应的基准镜像的存储路径;所述服务器集群中的任意一台服务器Pi所分配的虚拟机集合Xi由m台虚拟机组成,分别记为X1-l、X1-2…Xin ;其中,m为自然数;i e (1、2…η);任意一台虚拟机记为虚拟机X1-j ;贝IJ:所述服务器Pi包括:查找模块,用于当服务器Pi启动时,查找所述云服务平台的第二存储模块,获得与该虚拟机X1-j绑定的衍生镜像Yi ;然后再根据与所述衍生镜像Yi绑定的基准镜像的存储路径,查找所述云服务平台的第一存储模块,获得与该虚拟机X1-j绑定的基准镜像Wi ;第一指纹区数据获取模块,用于获取所述衍生镜像Yi中按由前向后顺序排列的各个指纹区数据,分别记为Z1、Z2…Zx ;第二指纹区数据获取模块,用于获取所述基准镜像Wi中按由前向后顺序排列的各个指纹区数据,分别记为Q1、Q本文档来自技高网...

【技术保护点】
一种加速虚拟机启动的方法,其特征在于,应用于云计算环境中,包括云服务平台以及服务器集群;方法包括以下步骤:S1,所述云服务平台预先为所述服务器集群中的每一台服务器分配需要被预加载的虚拟机集合;并通过分配记录表存储服务器与被分配的各台虚拟机的对应关系;设所述服务器集群共有n台服务器,分别记为P1、P2…Pn;各台服务器对应的虚拟机集合分别记为:X1、X2…Xn;其中,n为自然数;所述云服务平台还通过第一存储模块存储至少一个基准镜像;每一个所述基准镜像为若干个虚拟机共享的公共资源;所述云服务平台还通过第二存储模块存储与每一个虚拟机唯一对应的衍生镜像;并且,一个基准镜像对应至少一个衍生镜像;而一个衍生镜像只能对应到唯一一个基准镜像;每一个所述衍生镜像用于存储与其唯一绑定的虚拟机运行时相对对应的基准镜像发生改变的资源,并且,每一个所述衍生镜像均绑定与其对应的基准镜像的存储路径;S2,设服务器Pi所分配的虚拟机集合Xi由m台虚拟机组成,分别记为Xi‑1、Xi‑2…Xi‑m;其中,m为自然数;i∈(1、2…n);当服务器Pi启动时,对于任意一台虚拟机Xi‑j,其中,j∈(1、2…m),均执行以下操作:S2.1,所述服务器Pi通过查找所述第二存储模块,获得与该虚拟机Xi‑j绑定的衍生镜像Yi;然后再根据与所述衍生镜像Yi绑定的基准镜像的存储路径,查找所述第一存储模块,获得与该虚拟机Xi‑j绑定的基准镜像Wi;S2.2,所述服务器Pi获取所述衍生镜像Yi中按由前向后顺序排列的各个指纹区数据,分别记为Z1、Z2…Zx;所述服务器Pi还获取所述基准镜像Wi中按由前向后顺序排列的各个指纹区数据,分别记为Q1、Q2…Qx;所述服务器分别比对Zk和Qk,其中,k∈(1、2…x);如果Zk为空,由取Qk为有效指纹数据;如果Zk不为空,则取Zk为有效指纹数据;由此共得到x个有效指纹数据,将x个有效指纹数据称为有效指纹数据集;S2.3,所述服务器Pi将S2.2得到的有效指纹数据集预加载到共享内存中,同时在该有效指纹数据集后绑定一个标志位,初始时,该标志位为有效标志位;通过上述操作,服务器Pi的共享内存中共存储m个有效指纹数据集,并且,每一个有效指纹数据集均绑定一个有效标志位;S3,当任意一台虚拟机b需要被启动时,该虚拟机b向云服务平台发送启动请求消息;所述云服务平台首先查找S1记录的所述分配记录表,获得与该虚拟机对应的服务器,记为服务器b;此时,服务器b已预加载与虚拟机b对应的有效指纹数据集b;然后,所述云服务平台读取服务器b的当前负载情况,如果服务器b的当前负载情况允许再进一步启动所述虚拟机b,则再进一步读取所述有效指纹数据集b的标志位,如果为有效标志位,则直接使用所述有效指纹数据集b启动所述虚拟机b,在所述虚拟机b被启动后,将有效指纹数据集b的标志位设置为无效标志位;反之,如果服务器b的当前负载情况不允许再进一步启动所述虚拟机b,则使用服务器集群中的其他服务器启动所述虚拟机b,在所述虚拟机b被启动后,将服务器b预加载的有效指纹数据集b的标志位设置为无效标志位。...

【技术特征摘要】

【专利技术属性】
技术研发人员:杨耀敏周雄峰高良伟冯立松
申请(专利权)人:北京云巢动脉科技有限公司
类型:发明
国别省市:北京;11

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

1