一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种可移动电子设备及其应用的制作方法

2023-02-10 20:46:39 来源:中国专利 TAG:


1.本发明涉及软件部署技术领域,尤其涉及一种可移动电子设备及其应用。


背景技术:

2.ci/cd是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法。持续集成(continuous integration,ci)是指多名开发者在开发不同功能代码的过程当中,可以频繁的将代码行合并到一起并且相互不影响工作。持续部署(continuous delivery,cd)是指在持续部署的基础之上,将产品交付到线上环境,以将持续集成的代码部署到更贴近真实运行环境的类生产环境(例如,本技术中已经安装物理机操作系统的待部署设备)中,从而使软件在短时间内完成,并保证软件的开发、测试与释放更为方便,从而减少基于待部署设备中软件的开发周期与研发成本,并降低软件开发失败风险。
3.首先,在ci/cd过程中需要将频繁地对部署虚拟机的物理机进行频繁地重建,作为待部署设备的物理机在重建过程中需要通过反复加载系统盘镜像文件(例如,iso文件)以拉起虚拟机。例如,当物理机通过镜像文件安装物理机操作系统镜像文件(例如,centos7.9)时,需要使用centos-7-x86_64-dvd-2009.iso(即,系统盘镜像文件)。然而,为了启动centos7.9操作系统的虚拟机,还需要使用centos7.9-x86_64.raw的镜像文件(即,虚拟机镜像模板)。由此可见,物理机与虚拟机所使用的镜像文件的格式及内容是不同的。因此,在频繁地启动数量众多的虚拟机时,存在镜像文件管理难度非常复杂、虚拟机启动所载入的系统盘镜像文件错误所导致的虚拟机及基于虚拟机所承载的业务及应用无法被有效启动的缺陷。其次,现有技术中的物理机需要通过基于iso格式的系统盘镜像文件执行安装物理机操作系统,且由于基于iso格式的系统盘镜像文件在安装物理机操作系统的过程中,由于需要执行解压缩、计算及系统盘镜像文件所含小文件众多等客观原因,从而导致系统盘镜像文件写入待部署设备并在执行安装过程中对物理机的cpu、内存、存储及网络带宽等资源的消耗非常巨大,并由此导致通过系统盘镜像文件安装以构建物理机操作系统,以及后续在物理机中拉起启动虚拟机的操作过程非常漫长。此外,在待部署设备位于异地而需要通过网络建立持续部署时,则必然存在延迟及对插接用于持续集成及持续部署的可移动电子设备的本地计算机的计算性能造成一定消耗,从而导致对系统盘镜像文件及虚拟机镜像模板的持续部署、升级及版本维护存在困难,并由此导致依赖于被持续部署的物理机中执行软件开发效率及业务运行造成一定困难。
4.有鉴于此,有必要对现有技术中的需要通过网络连接以执行持续集成与持续部署的装置予以改进,以解决上述问题。


技术实现要素:

5.本发明的目的在于揭示一种可移动电子设备及其应用,用以解决现有技术中持续部署所存在的需要反复地安装物理机操作系统所存在的镜像文件格式不统一所导致的维护困难的技术问题,以提升软件开发效率并保障待部署设备中被部署业务的可持续运行,
并旨在提高对待部署设备执行持续部署的灵活性,降低持续部署过程中对网络带宽的消耗与依赖,以释放插接可移动电子设备的计算机的计算性能,并提高对待部署设备执行持续集成与持续部署的效率。
6.为实现上述发明目的之一,本发明提供了一种可移动电子设备,逻辑上独立于被执行持续部署的待部署设备,包括:系统总线,耦接至系统总线的ci/cd单元,处理器及内存;所述ci/cd单元由本地磁盘、ci/cd代理及应用代码仓库组成;所述ci/cd代理确定拟被同步至待部署设备的至少一镜像模板,同步所述镜像模板至待部署设备中指定的磁盘分区;所述待部署设备根据由ci/cd单元加载的系统盘镜像文件及拟被同步至待部署设备中指定的磁盘分区的至少一镜像模板安装物理机操作系统后重启待部署设备;将待部署设备的启动路径设置为从包含所述指定的磁盘分区的磁盘启动。
7.作为本发明的进一步改进,所述待部署设备受控于ci/cd代理,并基于ipmi协议引导本地磁盘中的系统盘镜像文件在待部署设备的系统盘分区中由待部署设备所部署的救援系统将待部署设备切换至救援模式,以基于救援模式加载用于安装物理机操作系统的系统盘镜像文件。
8.作为本发明的进一步改进,拟被同步至待部署设备中指定的磁盘分区的至少一镜像模板由被预先保存于所述本地磁盘确定,或者,通过由与所述本地磁盘建立会话的应用代码仓库在ci/cd代理的控制下导入确定;其中,所述系统盘镜像文件独立于所述镜像模板,且不依赖于最新代码并适配于所述待部署设备的商品属性,所述商品数据由待部署设备的制造商、型号及版本单独定义或者共同定义。
9.作为本发明的进一步改进,所述应用代码仓库被ci/cd代理托管,并由所述应用代码仓库中所部署的预配置脚本构建所述镜像模板,所述镜像模板被同步至待部署设备指定的磁盘分区后,将所述指定的磁盘分区作为待部署设备的系统盘;其中,所述镜像模板的文件格式包括raw、qcow2、vmdk或者ova。
10.作为本发明的进一步改进,待部署设备所依赖的系统盘镜像文件被预保存于所述本地磁盘,所述ci/cd代理自应用代码仓库拉取至少一镜像模板,将所述系统盘镜像文件加载至待部署设备所部署的虚拟光驱;基于ipmi协议引导救援系统读取始终保存于ci/cd单元中的系统盘镜像文件,将所述待部署设备设置为从位于ci/cd单元的系统盘镜像文件启动,以在待部署设备中根据所述系统盘镜像文件安装物理机操作系统。
11.作为本发明的进一步改进,所述ci/cd代理自应用代码仓库拉取至少一镜像模板,并通过所述ci/cd代理加载待部署设备所依赖的系统盘镜像文件,将所述系统盘镜像文件加载至待部署设备所部署的虚拟光驱;基于ipmi协议引导救援系统读取始终保存于ci/cd单元中的系统盘镜像文件,将所述待部署设备设置为从位于ci/cd单元的系统盘镜像文件启动,以在待部署设备中根据所述系统盘镜像文件安装物理机操作系统。
12.作为本发明的进一步改进,将所述镜像模板同步至待部署设备所关联的至少一磁
盘分区,将镜像模板同步至所述磁盘分区,由作为系统盘的磁盘分区启动虚拟机,并将所述磁盘分区挂载至待部署设备中被创建的虚拟机;其中,所述磁盘分区逻辑上位于所述待部署设备且对所述ci/cd单元可见。
13.作为本发明的进一步改进,所述ci/cd代理加载镜像模板至部署于本地磁盘中的至少一块设备,在待部署设备中创建与所述块设备的数量及磁盘空间相同的磁盘分区,块设备基于数据同步协议并受控于所述ci/cd代理,以将所述块设备映射至待部署设备中的磁盘分区,并将待部署设备的启动路径设置从被挂载所述块设备且已经完成镜像模板同步作业的磁盘分区启动。
14.作为本发明的进一步改进,所述本地磁盘创建由待部署设备映射至本地磁盘所形成的块设备的至少一磁盘分区,所述块设备与所述待部署设备中指定的磁盘分区基于数据同步协议建立映射关系,以在块设备与磁盘分区之间建立数据同步路径,并在数据同步完成后断开所述映射关系并卸载位于本地磁盘中的块设备;其中,所述数据同步协议包括rsync协议或者iscsi协议,所述块设备包括网络块设备或者loop设备。
15.作为本发明的进一步改进,所述ci/cd代理生成复制指令,以基于复制命令将镜像模板及镜像模板所对应的文件目录基于所述映射关系同步至所述待部署设备中指定的磁盘分区;基于所述映射关系所确定的磁盘分区通过所述数据同步协议将本地磁盘中的镜像模板及文件目录同步至待部署设备中指定的磁盘分区;当镜像模板同步至所述待部署设备中指定的磁盘分区后,根据所述镜像模板创建运行于所述待部署设备中的若干虚拟机,所述待部署设备与部署于待部署设备中的虚拟机至少基于一个相同的镜像模板予以创建并启动。
16.作为本发明的进一步改进,基于对应于所述数据同步协议的映射关系将包含所述指定的磁盘分区的磁盘或者指定的磁盘分区映射至本地磁盘的块设备,由所述ci/cd代理获取镜像模板的数据规格确定复制命令选择策略,以择一地基于dd复制命令或者rsync复制命令将所述镜像模板及镜像模板所对应的文件目录同步至待部署设备中指定的磁盘分区;其中,所述数据规格由镜像模板所包含文件的大小及小文件占比共同定义。
17.作为本发明的进一步改进,所述复制命令选择策略包括:若文件小于或者等于64kb且小于或者等于64kb的小文件占比大于或者等于50%,基于dd复制命令将镜像模板及镜像模板所对应的文件目录通过所述映射关系同步至所述待部署设备中指定的磁盘分区;若文件大于64kb或者小于或者等于64kb的小文件占比小于50%,基于rsync复制命令将镜像模板及镜像模板所对应的文件目录通过所述映射关系同步至所述待部署设备中指定的磁盘分区。
18.作为本发明的进一步改进,所述ci/cd代理识别磁盘分区并根据预设挂载路径确定块设备与磁盘分区之间的映射关系,所述映射关系包括块设备与由待部署设备中包含所述指定的磁盘分区的磁盘映射至本地磁盘之间所定义的对应关系。
19.作为本发明的进一步改进,所述磁盘分区中的镜像模板及镜像模板所对应的文件目录被保存至待部署设备的同一个磁盘分区中,或者,所述磁盘分区中的镜像模板及镜像模板所对应的文件目录被保存至待部署设备的两个磁盘分区中且分别保存镜像模板及镜
像模板所对应的文件目录的两个磁盘分区所含数据一致。
20.作为本发明的进一步改进,所述ci/cd代理判断待部署设备中指定的磁盘分区是否被所述本地磁盘予以识别;若是,通过nbd协议或者loop协议将块设备挂载至待部署设备中指定的磁盘分区;若否,通过待部署设备的物理卷扫描磁盘分区的逻辑卷,并在识别到对应的磁盘分区后,通过nbd协议或者loop协议将块设备挂载至待部署设备中指定的磁盘分区。
21.作为本发明的进一步改进,还包括:耦接至系统总线的至少一物理网卡及pcie接口,以通过所述物理网卡在待部署设备与所述可移动电子设备之间建立通信连接;其中,所述系统总线包括基于pcie协议的系统总线,所述处理器包括cpu、dpu、fpga、asic或者gpu。
22.基于相同发明思想,本技术还揭示了一种如上述任一项发明创造所述的可移动电子设备的应用,所述可移动电子设备用于对待部署设备执行物理机操作系统的安装。
23.与现有技术相比,本发明的有益效果是:首先,由于不需要将诸如iso镜像文件写入至需要创建物理机操作系统的待部署设备中执行物理机操作系统的安装操作,而将待部署设备从位于可移动电子设备加载的系统盘镜像文件及拟被同步至待部署设备中指定的磁盘分区的至少一镜像模板安装物理机操作系统,并在物理机操作系统安装过程中仅通过ipmi协议引导系统盘镜像文件构建基础安装环境后,即可通过从可移动电子设备同步至待部署设备中指定的磁盘分区,并将该磁盘分区作为系统盘通过ci/cd单元编译确定的诸如raw格式的镜像模板执行物理机操作系统的安装,从而解决了现有技术中在对待部署设备执行持续部署场景中所存在的需要反复地安装物理机操作系统所存在的镜像文件格式不统一所导致的维护困难的技术问题,并具有对不同待部署设备具有良好适配性的技术效果及物理机操作系统安装速度快的优势,并最终提升了在待部署设备中执行软件开发效率并保障了待部署设备中所部署业务的可持续运行;其次,在对待部署设备执行安装物理机操作系统过程中,可实现可移动电子设备与待部署设备之间的物理分离,可通过插接在本地计算机的主板以远程方式批量地对待部署设备执行物理机操作系统的安装操作,或者直接插接在待部署设备的主板并以本地方式单独地对待部署设备设置执行物理机操作系统的安装操作,以实现对待部署设备及其待部署设备中虚拟机与应用的持续部署;同时,由于不需要将系统盘镜像文件实际地写入待部署设备,因此在远程批量安装数量众多的待部署设备的应用场景中具有所需要消耗的网络带宽资源较小的技术效果,当该可移动电子设备与待部署设备的主板插接时,甚至可以本地方式对待部署设备予以直接持续集成与持续部署;最后,由于可移动电子设备包含独立的处理器与内存,因此在对待部署设备执行持续集成与持续部署过程中,可释放插接该可移动电子设备的计算机的计算性能,从而提高了对待部署设备执行持续集成与持续部署的效率。
附图说明
24.图1为本发明一种移动电子设备的整体拓扑图。
25.图2为图1所示出的一种移动电子设备在一种实施例中对待部署设备使用镜像模
板执行物理机操作系统安装的示意图,其中,镜像模板及镜像模板所对应的文件目录基于nbd协议同步至待部署设备。
26.图3为iso文件保存于应用代码仓库,并由ci/cd单元将iso文件导入本地磁盘所对应实例场景中的拓扑图。
27.图4为将镜像模板通过网络块设备nbd映射到位于本地磁盘本地以同步镜像模板及镜像模板所对应的文件目录至待部署设备中指定的磁盘分区的流程图。
28.图5为安装物理机操作系统的具体流程图。
29.图6为磁盘分区扫描的具体流程图。
30.图7为可移动电子设备向待部署设备以dd复制命令同步镜像模板及镜像模板所对应的文件目录的示意图。
31.图8为可移动电子设备向待部署设备以rsync复制命令同步镜像模板及镜像模板所对应的文件目录的示意图。
32.图9为iso文件预先保存于ci/cd单元,并由ci/cd单元将iso文件导入本地磁盘所对应实例场景中的拓扑图。
33.图10为将镜像模板及镜像模板所对应的文件目录同步至位于待部署设备中指定的磁盘分区后,将该磁盘分区作为作为系统盘后拉起虚拟机的示意图,其中,linux3为待部署设备已经完成物理机操作系统安装操作所嵌布形成的物理机操作系统。
34.图11为图1所示出的一种移动电子设备在另一种实施例中对待部署设备使用镜像模板执行物理机操作系统安装的示意图,其中,镜像模板及镜像模板所对应的文件目录基于loop协议同步至待部署设备。
具体实施方式
35.下面结合附图所示的各实施方式对本发明进行详细说明,但应当说明的是,这些实施方式并非对本发明的限制,本领域普通技术人员根据这些实施方式所作的功能、方法、或者结构上的等效变换或替代,均属于本发明的保护范围之内。
36.在详细本技术所含各个实施例之前,对本技术所涉及的术语及英文缩写的含义予以必要解释及定义,并对本技术所含技术方案的应用场景予以范例性说明,且不构成对本技术所含发明创造的具体限制。
37.术语“主机”:一种物理态计算机(或称“物理机”)或者服务器,且主机为供可移动电子设备100插接的计算机或者服务器可移动电子设备100或者待部署设备20的上位概念。
38.术语“本地磁盘”:逻辑上独立于待部署设备20及与该可移动电子设备100所插接的计算机,并可被理解为焊接在可移动电子设备100上的存储装置(例如,固态硬盘),并可通过该本地磁盘预装或者从应用代码仓库17中拉取一个或者多个系统盘镜像文件,例如,centos-7-x86_64-dvd-2009.iso,以首先对一台或者多台待部署设备20持续地执行物理机操作系统安装。以由可移动电子设备100对被部署设备执行物理机操作系统的安装操作。
39.术语“待部署设备”:逻辑上独立于可移动电子设备100的一个计算机装置或者一台服务器或者一台物理机,其可被理解为被实施持续集成(ci)与持续部署(cd)的一个计算机载体,并在该待部署设备20中部署虚拟机及由虚拟机所承载的各种业务或者应用或者计算机逻辑。
40.英文缩写“rsync”(remote synchronize):rsync为linux操作系统环境中的一个远程数据同步工具,并可基于rsync通过lan/wan快速地对同步多台主机(例如,可移动电子设备100与待部署设备20)之间执行文件和文件所含文件目录的同步操作,并适当利用rsync算法(差分编码)以减少数据的传输量。
41.英文缩写“dd”:linux操作系统环境中提供整盘复制的命令,并可用于指定大小的块拷贝。
42.英文缩写“ipmi”(intelligent platform management interface):面向服务器的一个管理的开源协议,该协议规定了消息格式规范,对于不同的传输接口,消息格式会有所不同。同时,除了协议规定的标准命令外,还有预留了许多oem命令,用户可以根据实际需求实现oem命令,并支持远程控制服务器开关机、重启等操作,远程查看和修改bios设置,查看系统启动过程,远程连接服务器,登入系统,解决ssh访问问题等。
43.简要而言,结合图1与图2所示,本发明的核心是提供一种可移动电子设备100,以对逻辑上独立于可移动电子设备100的一个或者多个待部署设备20执行物理机操作系统安装操作,以在待部署设备20中执行持续集成与持续部署,以在待部署设备20所构建的物理机操作系统环境中执行软件或者应用的开发、测试、发布等计算机事件。从物理外观而言,该可移动电子设备100为插接在计算机主板上的板卡设备。图2中范例性地示出了一个待部署设备20,但本领域技术人员可以合理预测到,本技术所揭示的可移动电子设备还可对多个待部署设备20批量地执行物理机操作系统的安装操作。尤其地,本技术中的物理机操作系统是指运行于待部署设备20中的基本操作系统,以控制与管理待部署设备20的硬件资源与软件资源以及应用。应用在本技术中可被理解为待部署设备20所运行的用于响应用户请求或者满足软件测试、云服务环境搭建的计算机可执行程序。本实施例所揭示的一种可移动电子设备100可以插接在逻辑上独立于被部署设备20的主板上,并以本地模式对待部署设备20执行持续集成与持续部署(例如,对待部署设备20安装物理机操作系统等),也可将该可移动电子设备100插接在逻辑上独立于被部署设备20并与其通过网络以远程方式执行持续集成与持续部署,在远程方式执行持续集成与持续部署的场景中,该可移动电子设备100可插接在另一台计算机的主板中。
44.同时,本技术还避免了对不同的待部署设备20在安装物理机操作系统过程中需要同时依赖系统盘镜像文件(例如,文件类型为iso文件)与诸如文件类型为raw文件的镜像模板(例如,镜像模板-1~镜像模板-n)所存在的软件版本管理难度较大及安装过程时间较长的问题。由于网络块设备nbd0是一个非常轻量且配置非常简单的远程存储,而linux系统中的qemu(虚拟化模拟器)本身也支持nbd协议,待部署设备20中指定的磁盘分区(例如,磁盘分区disk1s1)可作为镜像模板的存储空间,因此可直接使用qemu的nbd协议或者loop协议建立连接,并对已经同步至指定的磁盘分区中的镜像模板执行物理机操作系统的安装。此外,iso文件与iso的技术含义相同。同时,本技术中的块设备包括如图2所示出的网络块设备nbd0或者图11所示出的loop设备loop0。
45.通常情况下,以远程方式对一个待部署设备20执行一次完整的物理机操作系统的安装操作的时间在2~3分钟,以可移动电子设备100直接插接在待部署设备的主板上并以本地模式直接对待部署设备20安装物理机操作系统的操作时间可被进一步缩短。示例性地,可移动电子设备100与待部署设备20所运行的操作系统环境均为linux系统。可移动电子设
备100运行linux系统1,待部署设备20最终被安装的物理机操作系统为linux系统3,并可在linux系统3中拉起一个或者多个虚拟机,即图10中的vm1~vmm,参数m取大于或者等于一的正整数。此外,需要理解的是,图10中的虚拟机还可被视为由可移动电子设备100以持续部署方式所同步过来的应用或者程序,应用或者程序由镜像模板予以确定。
46.尤其需要说明的,在本技术中,虽然在待部署设备20安装物理机操作系统过程中也需要借助系统盘镜像文件,但可移动电子设备100中的系统盘镜像文件(即,iso文件)仅仅被待部署设备20所加载,以在救援系统中基于救援模式进入临时系统。由此避免了将数据规格巨大的iso文件12被同步至待部署设备20过程中所消耗的网络资源及计算资源,以根据相同的镜像模板(备注:镜像模板的数量可为一个或者多个)在救援模式中对该待部署设备20执行物理机操作系统的安装操作,由此避免对可移动电子设备100中部署的iso文件传入待部署设备20中。可移动电子设备100中iso文件12基于ipmi协议被映射至虚拟光驱22,并可由虚拟光驱22识别包含指定的磁盘分区的disk1。因此,本技术能够降低在物理机操作系统过程中对iso文件(例如,可移动电子设备100中的iso文件12)执行解压缩后执行物理机操作系统安装对待部署设备20所造成的巨大资源的消耗,并实现对待部署设备20执行持续集成与持续部署,并避免同时基于iso文件(即,系统盘镜像文件的下位概念)与raw文件(即,虚拟机镜像模板的下位概念)安装物理机操作系统。前述资源消耗包括主机的存储资源、cpu资源、内存资源及可移动电子设备100与待部署设备20之间执行同步数据所消耗的网络带宽资源的一种或者任意几种的组合。同时,本技术中所揭示的可移动电子设备100单独包含一个处理器50,因此无需占用供该可移动电子设备100插接的物理机(备注:该计算机逻辑上独立于待部署设备20)的计算资源,也不会占用待部署设备20的计算资源。
47.本技术所揭示的可移动电子设备及计算机设备的具体实现方式,申请人在下文中通过下述实施例予以范例性阐述。
48.参图1与图2所示,本技术揭示了一种可移动电子设备100,用于对待部署设备20执行持续部署,持续部署包括但不限于对待部署设备20执行物理机操作系统的安装以及应用的持续部署。
49.具体地,可移动电子设备100,逻辑上独立于被执行持续部署的待部署设备20。该可移动电子设备100包括:系统总线40,耦接至系统总线40的ci/cd单元30,处理器50及内存60。ci/cd单元30由本地磁盘10、ci/cd代理16及应用代码仓库17组成。ci/cd单元30通过通信接口14耦接至系统总线40。
50.ci/cd代理16确定拟被同步至待部署设备20的至少一镜像模板,同步镜像模板至待部署设备20中指定的磁盘分区。待部署设备20根据由ci/cd单元16加载的系统盘镜像文件及拟被同步至待部署设备20中指定的磁盘分区的至少一镜像模板安装物理机操作系统后重启待部署设备20。最后,将待部署设备20的启动路径设置为从包含所述指定的磁盘分区的磁盘启动。前述系统总线40优先为pcie bus。系统总线40可以耦接至系统总线40的物理网卡与待部署设备20中的通信接口24建立远程通信连接,也可通过耦接至系统总线40的pcie接口70直接插入待部署设备20的主板中,以执行持续集成与持续部署。
51.可移动电子设备100待部署设备20受控于ci/cd代理16,并可基于ipmi协议引导可移动电子设备100中所包含的本次磁盘10的系统盘镜像文件在待部署设备20的系统盘分区中由待部署设备20所部署的救援系统将待部署设备20切换至救援模式,以基于救援模式加
载用于安装物理机操作系统的系统盘镜像文件。本次磁盘10的系统盘镜像文件既可以预先保存于ci/cd单元30中的本地磁盘10中,可以在ci/cd代理16的引导下从应用代码仓库17中导入确定。救援系统(类似于windows操作系统中的pe系统)在待部署设备20中启动。进入待部署设备20的命令行界面,“boot:”提示符后输入“linux rescue”,回车进入救援模式(rescue mode)。在救援模式的启动路径中选择“cd-rom”,此处的cd-rom为虚拟光驱22,且虚拟光驱22包含了从可移动电子设备100中iso文件12加载到虚拟光驱22中的iso文件13,且iso文件12与iso文件13为同一个系统盘镜像文件,且客观上iso文件12并不实际写入待部署设备20,并始终保存在可移动电子设备100中,iso文件12被待部署设备20的虚拟光驱22只读。iso文件12可被提前部署,并在对一个或者所有待部署设备20通过ci/cd代理16引导待部署设备20切换至救援模式后只需要执行一次映射。上述操作所涉及的命令行如下:# /opt/smcipimtool/smcipmitool ipaddr user password shell# vmwa dev2iso/root/centos-7-x86_64.iso由此,以centos-7-x86_64.iso的系统盘镜像文件通过虚拟光驱22以远程方式将待部署设备20的ipmi设置为以远程方式从实际保存于可移动电子设备100的iso文件12予以启动。
52.同时,在本实施例中,ci/cd代理16被封装有块设备挂载、数据同步、磁盘分区划分、控制镜像模板导入本地磁盘等控制逻辑。拟被同步至待部署设备20中指定的磁盘分区的至少一镜像模板由与可移动电子设备100建立会话的ci/cd代理16编译确定。可移动电子设备100配置与ci/cd代理16建立会话的api15,以将应用代码仓库17中所部署的预配置脚本通过ci/cd代理16的编译操作所形成的一个或者n个镜像模板,即镜像模板-1~镜像模板-n,传入可移动电子设备100的本地磁盘10。前述参数n取大于或者等于二的正整数。前述预配置脚本将包含应用测试逻辑、软件压力测试、安全测试等脚本文件、函数文件及插件集成至镜像模板-1~镜像模板-n中,以在安装物理机操作系统的同时将前述预配置脚本部署至待部署设备20中。
53.示例性地,参图2与图3所示,ci/cd代理16作为一种流水线系统,其通过web网络6与用户建立会话,用户可通过web网络6所嵌布形成的用户图形界面控制ci/cd代理16。此时,ci/cd代理16自应用代码仓库17拉取至少一镜像模板,并通过ci/cd代理16加载原本也保存于应用代码仓库17中的iso文件11,并在传入本地磁盘10中成为iso文件12,并最终将系统盘镜像文件加载至待部署设备20所部署的虚拟光驱22。作为前述实施例的一种变形,示例性地,参图9所示,作为图3所揭示技术方案的一种变形,还可将被导入可移动电子设备100的iso文件12预先保存本地磁盘10,且将预配置脚本、java程序、python程序、一个或者多个镜像模板等同时保存于应用代码仓库17,并以箭头171所示出的逻辑向ci/cd代理16持续地加载如图9所示出的预配置脚本、java程序、python程序、一个或者多个镜像模板等,以实现持续集成(ci)。镜像模板在ci/cd代理16的控制下导入可移动电子设备100。在此过程中,待部署设备20所依赖的系统盘镜像文件(即,iso文件12)被预先保存于本地盘10,并由ci/cd代理16从应用代码仓库17中拉取至少一镜像模板,从而将系统盘镜像文件加载至待部署设备20所部署的虚拟光驱22。
54.待部署设备20中被创建的虚拟机由至少一由可移动电子设备100同步至待部署设备20中指定的磁盘分区的镜像模板所创建,待部署设备20与部署于待部署设备20中的虚拟
机至少基于一个相同的镜像模板予以创建并启动。前述启动命令由ci/cd代理16发出,且启动命令所涉及的命令行为:# ipmitool
ꢀ–
i lan
ꢀ‑
h 10.1.199.212
ꢀ‑
u admin
ꢀ‑
p 123456 chassis bootdevdisk。
55.参图2所示,示例性地,前述镜像模板被ci/cd代理16通过导入确定,并具体为通过被ci/cd代理16所托管的应用代码仓库17中所部署的预配置脚本构建镜像模板-1~镜像模板-n,镜像模板被同步至待部署设备20指定的磁盘分区后,将磁盘分区作为待部署设备20的系统盘;其中,镜像模板的文件格式包括raw、qcow2、vmdk或者ova,申请人在本技术中以raw格式的镜像模板为范例,予以范例性阐述,其他文件格式的镜像模板参比本实施例所揭示的技术方案予以相同方式执行。应用代码仓库17以箭头171所示出的逻辑向ci/cd代理16持续地加载如图9所示出的预配置脚本、java程序、python程序等,以实现持续集成(ci)。前述预配置脚本、java程序、python程序及iso文件12以一个或者多个镜像模板的形式持续地以箭头181所示出的逻辑在待部署设备20中执行部署,以创建物理机操作系统及待部署设备20所需要的应用,以实现持续部署(cd)。示例性地,预配置脚本可单独被封装为一个镜像模板,或者,将预配置脚本与java程序整体被封装为一个镜像模板,或者将全部的非iso文件的对象全部封装为一个镜像模板,将iso文件(即,iso11)另行封装为一个镜像模板,然后沿箭头171所示出的逻辑向ci/cd代理16持续地加载,以实现持续集成(ci)。此外,封装非iso文件的镜像模板并非必须传入可移动电子设备100以最终被部署至待部署设备20。
56.ci/cd代理16确定拟被同步至待部署设备20的至少一镜像模板,同步所述镜像模板至待部署设备20中指定的磁盘分区。在本实施例所揭示的系统盘数据同步操作过程中,由ci/cd代理16通过ssh服务以远程方式登录待部署设备20的救援系统,以引导可移动电子设备100与待部署设备20执行下述步骤101~步骤108。
57.步骤101、判断网络块设备nbd是否加载。需要说明的是,在镜像模板加载至loop设备的场景参图11予以执行。若是,跳转执行步骤102;若否,跳转执行步骤103。
58.步骤102、映射镜像模板,即,将一个或者多个镜像模板与作为可移动电子设备100的本地设备的网络块设备nbd0之间建立映射关系,以将镜像模板在ci/cd代理16的控制下将镜像模板(例如,文件名为cenos7.9-x86_64.raw)的镜像模板映射到逻辑上位于本地磁盘10的网络块设备nbd0中,从而由网络块设备nbd0自动识别cenos7.9-x86_64.raw内部分区,以将内部分区对应分配至网络块设备nbd0p1与网络块设备nbd0p2。鉴于映射镜像模板为现有技术,故在本实施例中予以省略阐述。
59.步骤103、加载网络块设备nbd0,并在加载完毕后跳转执行步骤103。
60.步骤104、识别磁盘分区并拷贝镜像模板,即,将镜像模板件拷贝至已经被识别的磁盘分区。此处的磁盘分区为网络块设备nbd0p1与网络块设备nbd0p2。
61.步骤105、挂载分区并拷贝系统盘数据。系统盘数据为网络块设备nbd0p1与磁盘分区disk1s1之间以及网络块设备nbd0p2与磁盘分区disk1s2之间所建立的同步数据所指的同步对象,从而将诸如cenos7.9-x86_64.raw的镜像模板实际且分别写入磁盘分区disk1s1与磁盘分区disk1s2。系统盘数据为包含raw格式的文件。
62.步骤106、设置待安装物理机并等待系统盘数据同步完成。待安装物理机为待部署设备20。诸如图2及图7所示出的同步数据过程中,是将待部署设备20的磁盘分区disk1s1与
磁盘分区disk1s2挂载到可移动电子设备100中。
63.步骤107、取消映射镜像模板,以回收该可移动电子设备100作为其本地设备的网络块设备nbd0所对应的存储资源,满足可移动电子设备100同步地对多个待部署设备20执行物理机操作系统的安装操作。
64.步骤108、卸载网络块设备nbd0,即,通过umount命令卸除目前挂在可移动电子设备100所含linux目录下的网络块设备nbd0,以回收可移动电子设备100因挂载网络块设备nbd0在本地磁盘10中所对应的存储资源。
65.因此,在本实施例中,在对待部署设备20执行安装物理机操作系统过程中,可实现可移动电子设备100与待部署设备20之间的物理分离,尤其适用于以远程方式批量地对待部署设备20执行物理机操作系统的安装操作,以实现对待部署设备20及其待部署设备20中虚拟机与应用的持续部署;同时,由于不需要将系统盘镜像文件实际地写入待部署设备20,因此在远程批量安装数量众多的待部署设备的应用场景中具有所需要消耗的网络带宽资源较小,并取得了待部署设备20无需对iso文件12执行解压缩的技术效果,因此解决了现有技术中对待部署设备20安装物理机操作系统所存在的计算资源存在浪费的技术问题。
66.然后,所述待部署设备20根据由ci/cd单元30加载的系统盘镜像文件及拟被同步至待部署设备20中指定的磁盘分区的至少一镜像模板安装物理机操作系统后重启待部署设备20。具体而言,本实施例中的磁盘分区为形成于disk1中的磁盘分区disk1s1或者磁盘分区disk1s2,磁盘分区disk1s1与磁盘分区disk1s2部署于disk1,并由disk1划分形成,且可将disk1视为待部署设备20中一块物理磁盘(physical disk)。在实际生产环境中,待部署设备20作为一台物理机,其也配置有与系统总线40建立通信的通信接口24,以在可移动电子设备100与待部署设备20之间执行加载系统盘镜像文件的加载操作以及对镜像模板所执行的同步操作。同时,disk1为物理存储装置,并可选用机械磁盘(hdd)、raid0~raid10、固态硬盘(ssd)、nvme等能够保存主引导记录(master boot record ,mbr)的存储装置。
67.示例性地,本实施例所揭示的通信接口24包括但不限于m.2接口、pci-e接口、usb接口、以太网接口、光纤接口、iscsi接口或者无线网络接口。同时,网络块设备nbd0与disk1之间执行的数据同步及在救援模式中加载iso文件12均可通过通信接口24与可移动电子设备100之间所建立的有线方式或者无线方式的数据报文转发操作予以具体实现。
68.具体地,在本实施例中,由ci/cd代理16于可移动电子设备100中加载待部署设备20所依赖的系统盘镜像文件,将系统盘镜像文件(即,iso文件)加载至可移动电子设备100所部署的虚拟光驱22。此时,可移动电子设备100中的iso文件(即,iso12)并不实际写入待部署设备20的虚拟光驱22中,并对可移动电子设备100可见。由此,既避免了将数据量巨大的iso文件12实际写入待部署设备20所消耗的带宽及计算资源,又可在救援模式中使得待部署设备20快速地进入基础安装环境,并由同步至待部署设备20的镜像模板-1~镜像模板-n执行物理机操作系统的安装操作。
69.同时,基于ipmi协议引导救援系统读取始终保存于可移动电子设备100中的系统盘镜像文件,将待部署设备20设置为从位于可移动电子设备100的系统盘镜像文件启动,以在待部署设备20中根据系统盘镜像文件安装物理机操作系统;其中,系统盘镜像文件独立于镜像模板,且不依赖于最新代码并适配于待部署设备20的商品属性,商品数据由待部署设备20的制造商、型号及版本单独定义或者共同定义。
70.因此,在本技术中,基于救援模式构建基础安装环境所需要的系统盘镜像文件可使用各种版本,例如centos-7-x86_64-livegnome-2003.iso或者centos-7-x86_64-dvd-2009.iso,而镜像模板则可通过ci/cd代理16根据不同商品数据的待部署设备20予以自适应编译,从而提高了对不同制造商(例如,dell与浪潮)提供的不同型号(例如,dell r730与dell r740)及不同硬件版本(例如,含有intel xeon 4201的服务器与含有intel xeon 3204的服务器)的待部署设备20执行物理机操作系统安装操作的适应性与灵活性。
71.参图5所示,本实施例进一步示出了对待部署设备20安装物理机操作系统的具体流程,具体参步骤201至步骤210所示。
72.步骤201、挂载系统盘镜像文件。具体而言,通过虚拟光驱22将可移动电子设备100的iso文件12映射至待部署设备20以形成iso文件13,以实际挂载iso文件12,从而将待部署设备20基于ipmi协议以远程方式从可移动电子设备100的iso文件12所启动。可移动电子设备100中的iso文件12被设置为只读模式。
73.步骤202、将待部署设备20设置从虚拟光驱22启动。
74.ipmi为通过远程访问待部署设备20,并由部署于ipmi系统中的web控制器或者直接在可移动电子设备100中以输入命令行形式,并在可视化界面中执行修改计算机(即,待部署设备20),并将待部署设备20设置为从系统盘启动。ci/cd代理16控制待部署设备20的ipmi所展现的可视化操作界面中,将待部署设备20设置为从可移动电子设备100所实际保存的iso文件12执行远程启动,其所涉及的命令行如下:# ipmitool
ꢀ‑
i lan
ꢀ‑
h 10.1.199.212
ꢀ‑
u admin
ꢀ‑
p 123456 chassis bootdevcdrom;其中,10.1.199.212为待安装物理机操作系统的待部署设备20的ipmi地址,admin是ipmi用户名称,123456是ipmi的密码,cdrom含义为从虚拟光驱22启动。由此,以由逻辑上独立于待部署设备20的可移动电子设备100确定拟被同步至待部署设备20的至少一镜像模板,即图2中的镜像模板-1~镜像模板-n。本实施例中所揭示的ipmi系统是指一组用于带外管理的计算机接口规范。带外是指无需与系统的物理设备位于同一逻辑空间即可访问计算机系统。ipmi系统支持远程监视,不需要计算机操作系统的许可。ipmi系统在连接到主机的主板或服务器的单独硬件上运行。此单独的硬件是底板管理控制器(bmc)。bmc管理平台硬件和系统管理软件之间的接口。
75.步骤203、待部署设备20上电。该步骤203受控于ci/cd代理16,且其所涉及的命令行如下:# ipmitool
ꢀ‑
i lan
ꢀ‑
h 10.1.199.212
ꢀ‑
u admin
ꢀ‑
p 123456 chassis power on。
76.步骤204、待部署设备网络配置,且亦受控于ci/cd代理16,并具体为通过ipmi的远程console管理入口进入救援系统,并设置待部署设备20的网络地址,例如,将待部署设备20的ip地址设置为192.168.8.10/24 ,将待部署设备20的网关设置为gw192.168.8.1/24。
77.步骤205、识别可移动电子设备100所划分形成的一个或者多个磁盘分区,以识别/dev/nbd设备或者/dev/loop0设备。优选的,在步骤204之后还可包括识别拟被执行挂载的镜像模板的文件大小,以在可移动电子设备100中选择合理的磁盘分区。
78.步骤206、划分磁盘分区,并具体为对待部署设备20中disk1执行磁盘划分。参图2
所示,可将disk1划分两个磁盘分区,保证每个磁盘分区的大小和centos7.9-x86_64.raw通过网络块设备nbd0映射后所形成的磁盘分区大小一致,以使得nbd0p1和disk0s1大小一致,nbd0p2和disk0s2大小一致。disk1划分形成的磁盘分区可根据需要被持续部署的镜像模板的数量而定,但不存在严格的一一对应关系。
79.步骤207、将网络块设备nbd挂载至指定的磁盘分区,从而在ci/cd代理16的控制下将nbd0p1和nbd0p2挂载至可移动电子设备100,将待部署设备20中的disk0s1和disk0s2挂载至待部署设备20。图11中的loop设备loop0p1和loop设备loop0p2参比执行。
80.步骤208、同步系统盘数据指定的磁盘分区,即,将nbd0p1被挂载的镜像模板的数据通过rsync协议同步复制到disk0s1,将nbd0p2被挂载的镜像模板的数据通过rsync协议同步复制到disk0s2,从而使得待部署设备20的disk1包含在救援模式所配置的基础安装环境中能够对待部署设备20安装物理机操作系统。
81.步骤209、将待部署设备20的启动路径设置为从待部署设备20的磁盘启动,并具体为从待部署设备20的disk1作为系统盘的磁盘予以启动。
82.步骤210、重启待部署设备20,且重启操作指令可由用户或者管理员从可移动电子设备100的命令行界面中发起对待部署设备20的重启请求,或者,由用户直接以物理方式直接重启待部署设备20,或者,在已经完成物理机操作系统安装的待部署设备20所嵌布形成的操作系统界面中,利用光标直接点击“重启”控件,以完成待部署设备20的重启操作。至此,待部署设备20所需要执行的物理机操作系统的安装作业及持续部署作业完成。
83.结合图3所示,在本实施中,该可移动电子设备100将镜像模板-1~镜像模板-n中的一个或者多个镜像模板同步至待部署设备20所关联的至少一磁盘分区,将镜像模板同步至磁盘分区,由作为系统盘的磁盘分区启动虚拟机,并将磁盘分区挂载至待部署设备20中被创建的虚拟机vm1~vmm;其中,磁盘分区逻辑上位于待部署设备20且对可移动电子设备100可见。上述作为系统盘的磁盘分区是指磁盘分区disk1s1或者磁盘分区disk1s2,且若将磁盘分区disk1s1作为系统盘,则磁盘分区disk1s2作为部署软件压力测试、安全测试的应用的一个或者多个磁盘分区,且该等应用由从可移动电子设备100同步至待部署设备20的一个或者多个镜像模板所确定。虚拟机vm1、vm2
……
vmm均部署于disk1中。待部署设备20中被创建并启动有多个虚拟机,即,图3中的vm1、vm2
……
vmm,参数m取正整数。虚拟机在待部署设备20的操作系统被创建完毕后即可拉起,并通过虚拟机vm1~ vmm承载需要部署的业务逻辑,以响应用户。同时,由于同步至待部署设备20中的镜像模板还可包含预配置脚本,因此可在物理机操作系统安装的同时直接部署并拉起含有预配置脚本、java程序或者python程序的一个或者多个虚拟机,以直接开始执行软件压力测试、安全测试,从而满足了待部署设备20所执行的持续集成(ci)与持续部署(cd)的应用需求。
84.可移动电子设备100加载镜像模板至部署于可移动电子设备100中的至少一块设备,该块设备包括网络块设备nbd或者loop设备(例如,图2所示出的可移动电子设备100中的网络块设备nbd0,或者图11所示出的可移动电子设备100中的loop设备loop0),在待部署设备20中创建与网络块设备的数量及磁盘空间相同的磁盘分区(例如,待部署设备20中的磁盘分区disk1s1与磁盘分区disk1s2),网络块设备基于数据同步协议并受控于ci/cd代理16,以将网络块设备映射至待部署设备20中的磁盘分区,并将待部署设备20的启动路径设置从被挂载网络块设备且已经完成镜像模板同步作业的磁盘分区启动。在待部署设备20中
创建与网络块设备的数量及磁盘空间相同的磁盘分区之后,还包括:识别磁盘分区并根据预设挂载路径确定网络块设备与磁盘分区之间的映射关系,映射关系包括网络块设备与由待部署设备20中包含指定的磁盘分区的磁盘映射至可移动电子设备100中本地磁盘10之间所定义的对应关系。此种对应关系需要在将镜像模板同步至待部署设备20中的指定分区后,取消网络块设备nbd0与磁盘分区之间的映射关系,并卸载网络块设备nbd0。至此,图2所示出的将镜像模板通过网络块设备nbd0映射到位于可移动电子设备100,以同步镜像模板及镜像模板所对应的文件目录至待部署设备20中指定的磁盘分区的过程结束。
85.例如,镜像模板及镜像模板所对应的文件目录通过nbd协议(参图2所示)或者loop协议(参图11所示)将网络块设备挂载至本地磁盘10的网络块设备nbd0后,可在可移动电子设备100后台显示“/dev/nbd0”的设备或者显示“/dev/loop0”的设备。
86.参图2所示,采用nbd协议执行系统盘数据同步的场景中,可移动电子设备100中保存镜像文件的存储介质为网络块设备nbd0,且网络块设备nbd0中可包含网络块设备nbd0p1与网络块设备nbd0p2。参图11所示,采用loop协议执行数据同步场景中,可移动电子设备100中保存镜像文件的存储介质为loop设备loop0,且loop0中可包含loop设备loop0p1与loop设备loop0p2。loop设备loop0与网络块设备nbd0均可视为用于保存镜像模板的一种块设备。
87.具体而言,网络块设备nbd可将一个远程主机(例如,待部署设备20)的磁盘空间当作一个网络块设备nbd来使用。网络块设备nbd类似于一块物理磁盘,以便捷地将另一台服务器(例如,待部署设备20)的硬盘空间,增加到本地设备(即,可移动电子设备100)上。客户端可以把这个网络块设备nbd0格式化成各种类型的分区(即,nbd0p1与nbd0p2),以便于待部署设备20的用户对该待部署设备20的使用需求。在nbd协议执行数据同步场景,需要扫描网络块设备nbd0的块设备驱动。参图2或者图11所示,镜像模板通过nbd协议或者loop协议挂载到待部署设备20的一块磁盘中。基于nbd协议同步数据场景中,可移动电子设备100中的nbd0p1与nbd0p2为网络块设备nbd0;同时,在基于loop协议同步数据场景中,可移动电子设备100中的loop0p1与loop0p2为loop设备,并也可视为一种块设备。loop设备一种伪设备,其使用文件来模拟为块设备,文件模拟成块设备后,就像一个磁盘或光盘一样使用。在使用之前,一个loop设备必须要和一个文件进行连接。这种结合方式给用户提供了一个替代块特殊文件的接口。因此,如果这个文件包含有一个完整的文件系统,那么这个文件就可以像磁盘被mount(挂载)。loop设备(回环)中被mount起来的镜像文件它本身也包含有文件系统,通过loop设备把它mount起来,它就像是文件系统之上再绕了一圈的文件系统。由此,在本技术中,可移动电子设备100与待部署设备20之间所执行的数据同步操作是指对镜像模板所执行的同步操作,而系统盘镜像文件(即,iso文件)并不实际地写入待部署设备20。
88.无论是网络块设备nbd0还是loop设备loop0在被挂载至待部署设备20后,均会在待部署设备20的安装界面中显示一个或者多个/dev/nbd设备或者/dev/loop0设备。前述/dev/nbd设备或者/dev/loop0设备均可被可移动电子设备100识别。同时,在本技术中需要对磁盘分区进行识别,以满足后续待部署设备20中挂载镜像模板的需求。参图6所示,磁盘分区扫描的具体流程具体如下步骤301至步骤307所示。
89.步骤301、将nbd设备或者loop设备加载镜像模板。对可移动电子设备100而言加载镜像模板只能是择一地选择nbd设备或者loop设备。
90.步骤302、识别磁盘分区。图2中网络块设备nbd0中包含的nbd0p1及nbd0p2可视为nbd0设备中的两个磁盘分区,图11中loop设备loop0中包含的loop0p1及loop0p2可视为loop0设备中的两个磁盘分区(即,块设备)。识别磁盘分区可确定被执行挂载的镜像模板的文件格式是否能够被识别。步骤303、判断是否能够识别磁盘分区,若是,跳转执行步骤304,并步骤304执行完毕后结束;若否,跳转执行步骤305。
91.步骤305、扫描磁盘分区的逻辑卷(lvm),其所涉及的命令行为#pvsan。
92.步骤306、判断挂载磁盘分区是否成功,若是,跳转执行步骤307;若否,结束。
93.步骤307、将镜像模板挂载至磁盘分区的逻辑卷,并结束。
94.示例性地,磁盘分区disk1s1与磁盘分区disk1s2可部署于待部署设备20的一块磁盘中,也可部署于两块独立的磁盘中,甚至还分别部署于待部署设备20的一块磁盘的两个物理分区(partition)中。同时,在将网络块设备nbd0映射至待部署设备20中的磁盘分区过程中,网络块设备nbd0会自动识别用于安装物理机操作系统的镜像模板(例如,centos7.9-x86_64.raw)内部分区(即,nbd0p1与nbd0p2),并在可移动电子设备100中通过在可移动电子设备100的命令行界面中通过键入lsblk命令予以查看,向使用者展现列出可移动电子设备100中所有可用网络块设备的设备信息,即,网络块设备nbd0p1与网络块设备nbd0p2。然后,将一个镜像模板共同挂载至网络块设备nbd0p1与nbd0p2,其所涉及的命令行为:# qemu-nbd
ꢀ‑‑
connect=/dev/nbd0 centos7.9-x86_64.raw。
95.在可移动电子设备100中创建由待部署设备20映射至可移动电子设备100所形成的网络块设备的至少一磁盘分区,网络块设备与待部署设备20中指定的磁盘分区基于数据同步协议建立映射关系,以在网络块设备与磁盘分区之间建立数据同步路径,并在数据同步完成后断开映射关系并卸载位于可移动电子设备100中的网络块设备;其中,数据同步协议包括rsync协议或者iscsi协议。前述映射关系是指例如网络块设备nbd0p1与磁盘分区disk1s1之间,以及网络块设备nbd0p2与磁盘分区disk1s2之间所形成的对应关系,并可基于前述对应关系确定可移动电子设备100与待部署设备20之间针对镜像模板所形成的数据同步路径,从而将已经挂载镜像模板-1的网络块设备nbd0p1与磁盘分区disk1s1之间,或者载镜像模板-n的网络块设备nbd0p2与磁盘分区disk1s2之间建立数据同步路径,以将一个或者多个镜像模板同步至待部署设备20中指定的一个或者多次磁盘分区中。在救援模式中,当待部署设备20识别到镜像模板已经被同步至网络块设备的镜像模板复制到指定的磁盘分区。
96.参图2与图7所示,申请人继续示出对已经同步至待部署设备20中的镜像模板执行物理机操作系统的安装过程予以阐述。由ci/cd代理16生成复制指令,以基于复制命令将镜像模板及镜像模板所对应的文件目录基于映射关系同步至待部署设备20中指定的磁盘分区;基于映射关系所确定的磁盘分区通过数据同步协议将可移动电子设备100中的镜像模板及文件目录同步至待部署设备20中指定的磁盘分区。然后,基于对应于数据同步协议的映射关系将包含所述指定的磁盘分区的磁盘或者指定的磁盘分区映射至ci/cd代理16,由ci/cd代理16获取镜像模板的数据规格确定复制命令选择策略,以择一地基于dd复制命令或者rsync复制命令将镜像模板及镜像模板所对应的文件目录同步至待部署设备20中指定的磁盘分区;其中,数据规格由镜像模板所包含文件的大小及小文件占比共同定义。复制命令选择策略由ci/cd代理16确定并保存在ci/cd代理16中,且复制命令选择策略可由用户在
ci/cd代理16予以配置,从而提高了数据同步的灵活性及合理性,以避免在持续部署过程中占用过多的网络带宽资源。
97.当镜像模板同步至所述待部署设备20中指定的磁盘分区后,根据镜像模板创建运行于待部署设备20中的若干虚拟机(参图10中待部署设备20中linux系统3中拉起一个或者多个虚拟机vm1~vmm),待部署设备20与部署于待部署设备20中的虚拟机至少基于一个相同的镜像模板予以创建并启动。
98.具体地,在本实施例中,基于iscsi协议将磁盘分区disk1s1映射至可移动电子设备100的disk_a,或者同时将磁盘分区disk1s2映射至可移动电子设备100的disk_b,然后通过复制命令选择策略将已经挂载至disk_a或者disk_b中的镜像模板同步复制到磁盘分区中。需要说明的是,disk1与可移动电子设备100之间基于iscsi协议建立映射关系,可移动电子设备100中包含一个iscsi服务端(未示出),待部署设备20中包含一个iscsi客户端(未示出)。图7中的disk_a与disk_b并非实际存在的磁盘或者存储空间,而是基于iscsi协议由待部署设备20中指定的磁盘分区(即,磁盘分区disk1s1与磁盘分区disk1s2)所具有的端口号、iscsi客户端ip地址等信息在可移动电子设备100中通过映射关系所形成的磁盘映射。由此使得可移动电子设备100与待部署设备20之间同步数据的效率及速度会非常快,通常在秒级即可实现gb级别的数据同步。同时,可移动电子设备100还可通过iscsi协议远程挂载至ci/cd代理16,因此可由网络块设备nbd0或者loop设备loop0所包含的镜像模板所对应的数据直接复制到disk1中,而不需要考虑disk1中所形成的磁盘分区情况,但只要disk1的存储空间大于网络块设备nbd0或者loop设备loop0即可,从而使得本实施例所揭示的可移动电子设备更加便捷。示例性地,当可移动电子设备100包含nbd0设备且以dd复制命令将镜像模板及镜像模板所对应的文件目录通过映射关系同步至待部署设备20中指定的磁盘分区所涉及的命令行如下:# dd if=/dev/nbd0 of=/dev/disk1。
99.基于dd复制命令所形成的数据同步适用小文件较多的场景,且支持单线程复制。
100.当可移动电子设备100包含loop设备loop0且以dd复制命令将镜像模板及镜像模板所对应的文件目录通过映射关系同步至待部署设备20中指定的磁盘分区所涉及的命令行如下:# dd if=/dev/loop0 of=/dev/disk1。
101.同时,在本实施例中,为了解决持续部署过程中小文件过多所导致对前述镜像模板同步复制过程所存在而效率较低及耗时较长的技术问题,本实施例优选地需要对镜像模板的所形成的文件的大小及小文件所定义的数据规格进行判断,以选择合适的复制命令。复制命令选择策略包括:若文件小于或者等于64kb且小于或者等于64kb的小文件占比大于或者等于50%,基于dd复制命令将镜像模板及镜像模板所对应的文件目录通过映射关系同步至待部署设备20中指定的磁盘分区。前述映射关系优先为iscsi映射关系。基于dd复制命令将镜像模板及镜像模板所对应的文件目录同步至待部署设备20中指定的磁盘分区的详细过程参图7所示,且dd复制命令适用于待执行同步的对象中包含的小文件较少的同步场景,并尤其适用于大块文件及整盘复制。磁盘分区disk1s1及磁盘分区disk1s2在ci/cd代理16的引导下被挂载至可移动电子设备100中形成disk_a与disk_b,然后通过dd复制命令,将网络块设备
bootdevdisk。
107.最后,通过由ci/cd代理16基于ipmi协议通过web控制器或者直接在待部署设备20的命令行界面中输入重启指令,以重启待部署设备20,从而最终完成对待部署设备20所执行的物理机操作系统的安装操作。相对于中直接将iso文件写入待部署设备20并安装物理机操作系统的现有技术而言,本技术所揭示的上述技术方案基于同一个受控于ci/cd代理16并同步至待部署设备20的一个或者多个诸如raw格式的镜像模板,以执行物理机操作系统的安装作业,具有物理机操作系统安装速度非常快的技术优势。
108.此外,本技术还揭示了一种可移动电子设备100的应用,可移动电子设备100用于对待部署设备20执行物理机操作系统的安装。用户在客户端(例如,逻辑上独立于可移动电子设备100及待部署设备20的一台计算机)中发起的访问请求或者操作时,以对逻辑上与该可移动电子设备100呈分离结构的待部署设备20执行物理机操作系统及其各种应用的快速安装与部署。
109.上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。
110.此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献