System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及云计算,特别是涉及一种单虚拟机下支持多操作系统的方法和装置。
技术介绍
1、云计算作为一种追求性价比的算力供给模式,其处理器逐渐从单一架构向多元异构转变。在多元异构处理器功能、性能和可靠性存在差异的情况下,为满足高效稳定的技术需求,规避供应风险,保障关键业务长期稳定运行,一云多芯成为云计算发展的必然趋势。
2、但在现有技术中,云计算下一云多芯的实现都是在用户可切换不同系统类型的虚拟机上,如由linux系统的虚拟机切换至windows系统的虚拟机,但这种切换都是在同一架构类型下,如用户无法在x86架构与arm架构之间进行切换,但在实际使用中,不同应用对于架构的要求也可能不同,而由于现有技术不支持多架构的切换,就直接给用户所能够使用的应用的多样性带来了限制。
3、鉴于此,克服该现有技术所存在的缺陷是本
亟待解决的问题。
技术实现思路
1、本专利技术要解决的技术问题是现有技术不支持用户在单虚拟机下进行多架构之间的切换。
2、本专利技术采用如下技术方案:
3、第一方面,本专利技术提供了一种单虚拟机下支持多操作系统的方法,在单个虚拟机的镜像文件中包括引导元数据和位于引导元数据之后的多个操作镜像;每个操作镜像包括引导程序和对应的操作系统;方法包括:
4、目标服务器读取云管理平台中的镜像文件;其中,所述目标服务器为由云管理平台所选定的与目标架构匹配的服务器;所述目标架构为虚拟机所需启动的架构类型;
5、目
6、优选的,所述引导元数据包括镜像文件中各操作镜像的镜像信息,所述镜像信息包括操作系统的系统类型、操作系统的架构类型和引导程序的地址;所述目标服务器根据虚拟机所需启动的目标架构和目标系统,从所述镜像文件中获取与目标架构和目标系统匹配的目标操作系统,启动目标操作系统的目标引导程序,具体包括:
7、从所述镜像文件的引导元数据中读取各操作系统的系统类型、操作系统的架构类型以及引导程序的地址;
8、从各操作系统中找到系统类型为目标系统且架构类型为目标架构的目标操作系统;
9、从所述目标操作系统所对应引导程序的地址读取目标引导程序,执行相应的引导程序启动命令,以启动目标引导程序。
10、优选的,当目标系统为linux系统时,所述目标引导程序为initrd引导程序,所述执行相应的引导程序启动命令,具体包括:
11、执行qemu-kvm–os linux--initrd initrd.file--kernel kernel.file命令,启动initrd引导程序。
12、优选的,当目标系统为windows系统时,所述目标引导程序为grub引导程序,所述执行相应的引导程序启动命令,具体包括:
13、执行qemu-kvm-os windows--grub image.file命令,启动grub引导程序。
14、优选的,在目标服务器读取云管理平台中的镜像文件前,还由云管理平台对镜像文件进行检查,具体包括:
15、读取所述镜像文件中的引导元数据,根据所述引导元数据判断是否存在与目标架构和目标系统匹配的操作系统;
16、若不存在与目标架构和目标系统匹配的操作系统,则从操作系统仓库中取出与目标架构和目标系统匹配的操作系统,以及该操作系统对应的引导程序,将所述操作系统和引导程序写入到所述镜像文件中;
17、并生成该操作系统的镜像信息,将所述镜像信息写入到所述镜像文件的引导元数据中,以便于目标服务器通过引导元数据获取该操作系统和引导程序。
18、优选的,所述方法还包括:
19、当相应操作系统启动失败时,在所述镜像文件中添加操作系统启动失败标识,以便于在后续从镜像文件中获取目标操作系统时,跳过存在操作系统启动失败标识的操作系统。
20、优选的,所述镜像文件中还包括虚拟应用运行环境数据和虚拟应用,在所述启动目标操作系统的目标引导程序前,所述方法还包括:
21、执行qemu-kvm snapshot-create image.file命令,创建目标操作系统的快照;
22、在启动目标操作系统后,将所述虚拟应用运行环境数据和虚拟应用加载到所述快照中。
23、优选的,所述方法还包括:
24、将用户数据存储到数据盘中,在启动目标操作系统后,从数据盘加载用户数据。
25、优选的,所述虚拟机所需启动的目标架构和目标系统是由云管理平台携带在虚拟机启动配置信息中发送给目标服务器的;
26、所述虚拟机启动配置信息中还包括镜像文件的名称和镜像文件的类型,以便于目标服务器根据所述镜像文件的类型和名称识别所述镜像文件。
27、第二方面,本专利技术还提供了一种单虚拟机下支持多操作系统的装置,用于实现第一方面所述的单虚拟机下支持多操作系统的方法,所述装置包括:
28、至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器执行,用于执行第一方面所述的单虚拟机下支持多操作系统的方法。
29、第三方面,本专利技术还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,用于完成第一方面所述的单虚拟机下支持多操作系统的方法。
30、本专利技术首先通过在镜像文件的头部存储引导元数据,使各个引导程序后置,即不位于分区的开头,使固件程序无法正确读取引导程序,从而关闭引导程序的自启动,其次通过在启动引导程序前,获取用户需求的架构类型和系统类型,由所需架构的服务器根据用户需求读取完整的镜像文件,再在所需架构的服务器上启动用户所需架构类型和系统类型的操作系统所对应的引导程序,实现虚拟机的带外启动(即在开启引导程序前实现操作系统的指定),从而实现单虚拟机切换多架构操作系统的可能。
本文档来自技高网...【技术保护点】
1.一种单虚拟机下支持多操作系统的方法,其特征在于,在单个虚拟机的镜像文件中包括引导元数据和位于引导元数据之后的多个操作镜像;每个操作镜像包括引导程序和对应的操作系统;方法包括:
2.根据权利要求1所述的单虚拟机下支持多操作系统的方法,其特征在于,所述引导元数据包括镜像文件中各操作镜像的镜像信息,所述镜像信息包括操作系统的系统类型、操作系统的架构类型和引导程序的地址;所述目标服务器根据虚拟机所需启动的目标架构和目标系统,从所述镜像文件中获取与目标架构和目标系统匹配的目标操作系统,启动目标操作系统的目标引导程序,具体包括:
3.根据权利要求2所述的单虚拟机下支持多操作系统的方法,其特征在于,当目标系统为Linux系统时,所述目标引导程序为initrd引导程序,所述执行相应的引导程序启动命令,具体包括:
4.根据权利要求2所述的单虚拟机下支持多操作系统的方法,其特征在于,当目标系统为Windows系统时,所述目标引导程序为grub引导程序,所述执行相应的引导程序启动命令,具体包括:
5.根据权利要求2所述的单虚拟机下支持多操作系统的方法
6.根据权利要求1所述的单虚拟机下支持多操作系统的方法,其特征在于,所述方法还包括:
7.根据权利要求1所述的单虚拟机下支持多操作系统的方法,其特征在于,所述镜像文件中还包括虚拟应用运行环境数据和虚拟应用,在所述启动目标操作系统的目标引导程序前,所述方法还包括:
8.根据权利要求7所述的单虚拟机下支持多操作系统的方法,其特征在于,所述方法还包括:
9.根据权利要求1-8任一所述的单虚拟机下支持多操作系统的方法,其特征在于,所述虚拟机所需启动的目标架构和目标系统是由云管理平台携带在虚拟机启动配置信息中发送给目标服务器的;
10.一种单虚拟机下支持多操作系统的装置,其特征在于,包括:
...【技术特征摘要】
1.一种单虚拟机下支持多操作系统的方法,其特征在于,在单个虚拟机的镜像文件中包括引导元数据和位于引导元数据之后的多个操作镜像;每个操作镜像包括引导程序和对应的操作系统;方法包括:
2.根据权利要求1所述的单虚拟机下支持多操作系统的方法,其特征在于,所述引导元数据包括镜像文件中各操作镜像的镜像信息,所述镜像信息包括操作系统的系统类型、操作系统的架构类型和引导程序的地址;所述目标服务器根据虚拟机所需启动的目标架构和目标系统,从所述镜像文件中获取与目标架构和目标系统匹配的目标操作系统,启动目标操作系统的目标引导程序,具体包括:
3.根据权利要求2所述的单虚拟机下支持多操作系统的方法,其特征在于,当目标系统为linux系统时,所述目标引导程序为initrd引导程序,所述执行相应的引导程序启动命令,具体包括:
4.根据权利要求2所述的单虚拟机下支持多操作系统的方法,其特征在于,当目标系统为windows系统时,所述目标引导程序为gru...
【专利技术属性】
技术研发人员:张贝,李俊波,史汉嶂,肖丁,王博迪,王少伟,付小东,李毅,黄韬,赵丹,刘星辰,赵晨凯,杨明翔,朱正亮,李涛,刘丽萍,
申请(专利权)人:烽火通信科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。