[0001]
本发明涉及计算机网络技术领域,尤其是涉及一种引导镜像制作方法、装置、电子设备及存储介质。
背景技术:[0002]
目前,基于openstack的云平台创建bios/uefi引导启动的虚拟机的方式,首先,单独创建bios引导或uefi引导的镜像并且uefi引导的镜像有操作系统的限制,并不是所有的系统都支持uefi启动,这就存在制作镜像失败的风险;然后,将制作好的bios引导或uefi引导的镜像上传到openstack的云平台,对于uefi引导的镜像上传完之后,还要添加镜像元数据”hw_firmware_type=uefi”;最后,用户选择所需的镜像启动制作虚拟机。
[0003]
对于上述过程存在几个问题,第一,对于uefi引导的镜像需要在服务端计算节点安装ovmf软件并需要在配置文件中添加配置项,如果集群计算节点很多,用户一个个配置极大的浪费了时间而且还容易漏配造成创建虚拟机失败;第二,uefi引导镜像的制作存在操作系统支持的限制,如果用户不清楚所用操作系统是否支持uefi启动,这样就会造成镜像制作失败;第三,对于同一个操作系统,如果用户需要bios引导和uefi引导的镜像,用户需要制作两次,这样就存在重复制作浪费用户大量时间。
技术实现要素:[0004]
本发明的目的在于提供一种引导镜像制作方法、装置、电子设备及存储介质,借助openstack的云平台实现一键校验服务端所有计算节点是否安装了ovmf软件并检查配置项,实现在一个镜像中支持bios和uefi两种启动方式,镜像制作提示用户所选操作系统是否支持uefi启动。
[0005]
第一方面,本发明提供的一种引导镜像制作方法,应用于云平台,所述方法包括:
[0006]
查询云平台的计算节点是否有ovmf安装文件;
[0007]
如果有,则选择支持uefi启动的操作系统;
[0008]
利用ovmf在计算节点的不同引导区,分别制作uefi引导镜像和bios引导镜像。
[0009]
进一步的,查询云平台的计算节点是否有ovmf安装文件的步骤,包括:
[0010]
根据用户的镜像制作请求,从数据库中读取计算节点的ip地址,遍历每个计算节点是否有ovmf安装文件。
[0011]
进一步的,查询云平台的计算节点是否有ovmf安装文件的步骤之后,还包括:
[0012]
如果没有,则从软件存储服务器向计算节点传输ovmf安装文件,或者通过访问外网下载ovmf安装文件,并在配置文件中添加配置项。
[0013]
进一步的,选择支持uefi启动的操作系统的步骤,包括:
[0014]
获取用户输入的选择指令;
[0015]
根据选择指令确定用户选择的操作系统;
[0016]
判断所选的操作系统是否支持uefi启动;
[0017]
若否,则提示用户重新选择操作系统,并返回获取用户输入的选择指令的步骤;
[0018]
若是,则执行利用ovmf在计算节点的不同引导区,分别制作uefi引导镜像和bios引导镜像的步骤。
[0019]
进一步的,利用ovmf在计算节点的不同引导区,分别制作uefi引导镜像和bios引导镜像的步骤,包括:
[0020]
调用底层libvirt服务生成xml格式的uefi引导文件和bios引导文件;
[0021]
将uefi引导文件写入计算节点的第一引导区,制作uefi引导镜像;
[0022]
将bios引导文件写入计算节点的第二引导区,制作bios引导镜像。
[0023]
进一步的,利用ovmf在计算节点的不同引导区,分别制作uefi引导镜像和bios引导镜像的步骤之后,还包括:
[0024]
通过加载uefi引导镜像或bios引导镜像,在计算节点创建虚拟机。
[0025]
进一步的,通过加载uefi引导镜像或bios引导镜像,在计算节点创建虚拟机的步骤,包括:
[0026]
根据虚拟机创建请求,加载uefi引导镜像或bios引导镜像;
[0027]
利用uefi引导镜像或bios引导镜像设置云主机资源规格,通过libvirt服务创建虚拟机。
[0028]
第二方面,本发明还提供一种引导镜像制作装置,应用于云平台,所述装置包括:
[0029]
查询模块,用于查询云平台的计算节点是否有ovmf安装文件;
[0030]
选择模块,用于选择支持uefi启动的操作系统;
[0031]
制作模块,用于利用ovmf在计算节点的不同引导区,分别制作uefi引导镜像和bios引导镜像。
[0032]
第三方面,本发明还提供一种电子设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现引导镜像制作方法的步骤。
[0033]
第四方面,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行引导镜像制作方法。
[0034]
本发明提供的一种引导镜像制作方法、装置、电子设备及存储介质,实现了在openstack的云平台上制作双引导镜像,一键检验服务端计算节点是否安装ovmf软件,智能验证操作系统版本是否支持uefi启动,带来的有益效果主要有:通过在openstack的云平台上制作双引导镜像,避免了用户错误操作导致镜像制作失败,比如:不知道所选操作系统版本不支持uefi启动导致镜像创建失败,节省了大量的时间,另外,也避免了对于不同的引导方式的镜像需要制作两个镜像,提高了镜像的制作效率,用户选择不同的引导方式创建虚拟机,只需要通过界面选择不同的引导方式,系统会自动切换到所需引导方式创建虚拟机,提高了镜像制作效率,节省了大量的时间。
[0035]
相应地,本发明实施例提供的一种电子设备及计算机可读存储介质,也同样具有上述技术效果。
附图说明
[0036]
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0037]
图1为本发明实施例提供的引导镜像制作方法流程图;
[0038]
图2为本发明实施例提供的工作逻辑框图;
[0039]
图3为本发明实施例提供的电子设备工作原理图。
[0040]
图中:800电子设备、801存储器、802处理器、803总线、804通信接口。
具体实施方式
[0041]
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0042]
本发明实施例中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0043]
请参阅附图1-3,本发明实施例提供了一种引导镜像制作方法,应用于云平台,方法包括:
[0044]
查询云平台的计算节点是否有ovmf安装文件;
[0045]
如果有,则选择支持uefi启动的操作系统;
[0046]
利用ovmf在计算节点的不同引导区,分别制作uefi引导镜像和bios引导镜像。
[0047]
本发明实施例实现了在openstack的云平台上制作双引导镜像,一键检验服务端计算节点是否安装ovmf软件,智能验证操作系统版本是否支持uefi启动,带来的有益效果主要有:通过在openstack的云平台上制作双引导镜像,避免了用户错误操作导致镜像制作失败,比如:不知道所选操作系统版本不支持uefi启动导致镜像创建失败,节省了大量的时间,另外,也避免了对于不同的引导方式的镜像需要制作两个镜像,提高了镜像的制作效率,用户选择不同的引导方式创建虚拟机,只需要通过界面选择不同的引导方式,系统会自动切换到所需引导方式创建虚拟机,提高了镜像制作效率,节省了大量的时间。
[0048]
如图2所示,本发明实施例中,查询云平台的计算节点是否有ovmf安装文件的步骤,包括:
[0049]
根据用户的镜像制作请求,从数据库中读取计算节点的ip地址,遍历每个计算节点是否有ovmf安装文件。
[0050]
本发明实施例中,查询云平台的计算节点是否有ovmf安装文件的步骤之后,还包括:
[0051]
如果没有,则从软件存储服务器向计算节点传输ovmf安装文件,或者通过访问外网下载ovmf安装文件,并在配置文件中添加配置项。
[0052]
本发明实施例中,选择支持uefi启动的操作系统的步骤,包括:
[0053]
获取用户输入的选择指令;
[0054]
根据选择指令确定用户选择的操作系统;
[0055]
判断所选的操作系统是否支持uefi启动;
[0056]
若否,则提示用户重新选择操作系统,并返回获取用户输入的选择指令的步骤;
[0057]
若是,则执行利用ovmf在计算节点的不同引导区,分别制作uefi引导镜像和bios引导镜像的步骤。
[0058]
本发明实施例中,利用ovmf在计算节点的不同引导区,分别制作uefi引导镜像和bios引导镜像的步骤,包括:
[0059]
调用底层libvirt服务生成xml格式的uefi引导文件和bios引导文件;
[0060]
将uefi引导文件写入计算节点的第一引导区,制作uefi引导镜像;
[0061]
将bios引导文件写入计算节点的第二引导区,制作bios引导镜像。
[0062]
本发明实施例中,利用ovmf在计算节点的不同引导区,分别制作uefi引导镜像和bios引导镜像的步骤之后,还包括:
[0063]
通过加载uefi引导镜像或bios引导镜像,在计算节点创建虚拟机。
[0064]
本发明实施例中,通过加载uefi引导镜像或bios引导镜像,在计算节点创建虚拟机的步骤,包括:
[0065]
根据虚拟机创建请求,加载uefi引导镜像或bios引导镜像;
[0066]
利用uefi引导镜像或bios引导镜像设置云主机资源规格,通过libvirt服务创建虚拟机。
[0067]
如图3所示,本发明实施例还提供了一种引导镜像制作装置,应用于云平台,装置包括:
[0068]
查询模块,用于查询云平台的计算节点是否有ovmf安装文件;
[0069]
选择模块,用于选择支持uefi启动的操作系统;
[0070]
制作模块,用于利用ovmf在计算节点的不同引导区,分别制作uefi引导镜像和bios引导镜像。
[0071]
本发明实施例还提供了一种电子设备,包括存储器、处理器,存储器中存储有可在处理器上运行的计算机程序,处理器执行计算机程序时实现引导镜像制作方法的步骤。
[0072]
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有机器可运行指令,计算机可运行指令在被处理器调用和运行时,计算机可运行指令促使处理器运行引导镜像制作方法。
[0073]
本发明实施例提出了一种基于openstack的双引导镜像制作方法,首先是在openstack的云平台的ui界面选择制作双引导,触发服务端检查计算节点是否安装了ovmf软件以及配置项,如果没有加载安装软件以及配置项,从软件存储服务器传输相应的软件安装,如果能连接外网可以直接下载软件安装;选择操作系统,触发校验该操作系统是否支持uefi启动,如果支持进行镜像制作,如果不支持,提示用户重新选择操作系统;镜像制作划分系统引导区,完成镜像制作;创建虚拟机选择uefi/bios引导方式,选择镜像、设置虚拟机vcpu、内存等配置,完成虚拟机的创建。
[0074]
本发明实施例的具体实施步骤如下:
[0075]
第一步:用户通过ui界面发起制作双引导镜像的请求,服务端接受到请求后,从数据库中读取计算节点ip,之后遍历每台计算节点查询固定的目录下是否有ovmf软件安装的文件,如果某台计算节点查询不到,需要从软件存储服务器传输相应的软件安装或者能访问外网情况下直接下载软件安装,并在配置文件中添加配置项。
[0076]
第二步:选择操作系统,将操作系统版本与数据库中uefi支持操作系统版本表做对比,主要是查询该表是否存在所选操作系统的记录,如果不存在,提示用户所选操作系统版本不支持,请重新选择操作系统版本。极个别情况下,如果所有操作系统版本都不支持,则终止引导镜像制作。
[0077]
第三步:调用底层libvirt服务生成xml,并启动制作镜像,镜像制作过程中划分系统引导区并设置不同的盘符标志位,在不同的引导区加载不同的引导文件,镜像制作过程中只能写入一个引导区,制作完成后,通过读取挂载磁盘的引导文件,将另一种引导文件写入另一个引导区,从而完成一个镜像双引导制作。
[0078]
第四步:用户发起创建虚拟机的请求,选择bios或uefi引导方式,不同的引导方式的选择能够触发虚拟机启动时进入不同的引导区,加载不同引导项,也即是调用底层libvirt服务生成xml的时候,配置相应的引导启动参数;选择制作好的镜像,设置vcpu、内存等flavor规格,最后libvirt服务启动虚拟机,完成虚拟机创建。
[0079]
本发明实施例中所涉及的英文缩写解释如下:
[0080]
openstack:一个开源的云计算管理平台项目,是一系列软件开源项目的组合。
[0081]
云平台:基于硬件资源和软件资源服务的,提供计算、网络和存储能力的云计算平台。
[0082]
虚拟机:指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。
[0083]
bios(basic input output system)是一组固化到计算机内主板上一个rom芯片上的程序,它保存着计算机最重要的基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序。
[0084]
uefi(unified extensible firmware interface),即统一可扩展固件接口,是由英特尔联合众硬件厂商研发的用于替代传统bios的新一代计算机固件技术。
[0085]
ovmf(open virtual machine firmware),支持虚拟机开启uefi。
[0086]
flavor:云主机资源规格。
[0087]
vcpu:虚拟cpu。
[0088]
libvirt:用于管理虚拟化平台的开源的api,后台程序和管理工具,用于管理kvm、xen、vmware esx,qemu和其他虚拟化技术。
[0089]
本发明实施例提供的一种电子设备,如图3所示,电子设备800包括存储器801、处理器802,存储器中存储有可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例提供的方法的步骤。
[0090]
如图3所示,电子设备还包括:总线803和通信接口804,处理器802、通信接口804和存储器801通过总线803连接;处理器802用于执行存储器801中存储的可执行模块,例如计算机程序。
[0091]
其中,存储器801可能包含高速随机存取存储器(random access memory,简称
ram),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口804(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
[0092]
总线803可以是isa总线、pci总线或eisa总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
[0093]
其中,存储器801用于存储程序,处理器802在接收到执行指令后,执行程序,前述本发明任一实施例揭示的过程定义的装置所执行的方法可以应用于处理器802中,或者由处理器802实现。
[0094]
处理器802可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器802中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器802可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processing,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现成可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器801,处理器802读取存储器801中的信息,结合其硬件完成上述方法的步骤。
[0095]
对应于上述方法,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有机器可运行指令,计算机可运行指令在被处理器调用和运行时,计算机可运行指令促使处理器运行上述方法的步骤。
[0096]
本发明实施例所提供的装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。
[0097]
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬
件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0098]
又例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,再例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0099]
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0100]
另外,在本发明提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0101]
功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,简称rom)、随机存取存储器(random access memory,简称ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0102]
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0103]
在本发明的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
[0104]
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的范围。都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。