持续部署方法及计算机设备与流程



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的镜像文件(即,虚拟机镜像模板)。由此可见,物理机与虚拟机所使用的镜像文件的格式及内容是不同的。因此,在频繁地启动数量众多的虚拟机时存在镜像文件管理难度非常复杂的问题及虚拟机启动所载入的系统盘镜像文件错误所导致的虚拟机及基于虚拟机所承载的业务及应用无法被有效启动的缺陷。
4.同时,现有技术中的物理机需要通过基于iso格式的系统盘镜像文件执行安装物理机操作系统,且由于基于iso格式的系统盘镜像文件在安装物理机操作系统的过程中,由于需要执行解压缩、计算及系统盘镜像文件所含小文件众多等客观原因,从而导致系统盘镜像文件写入对端设备并在执行安装过程中对物理机的cpu、内存、存储及网络带宽等资源的消耗非常巨大,并由此导致通过系统盘镜像文件安装以构建物理机操作系统,以及后续在物理机中拉起启动虚拟机的操作过程非常漫长。因此,现有技术中在持续部署的生产环境中,由于需要频繁按照虚拟机操作系统而导致操作繁琐的技术缺陷,并对软件的开发与发布造成了巨大的困难。同时,现有技术中的持续部署方法面对需要执行持续部署的物理机由于存在制造商及型号存在区别的客观情况,从而导致使用传统的持续部署方法存在无法高效地适配由于制造商及型号存在区别的使用场景,从而导致对系统盘镜像文件及虚拟机镜像模板的持续部署、升级及版本维护存在困难,并由此导致依赖于被持续部署的物理机中执行软件开发效率及业务运行造成一定困难。
5.有鉴于此,有必要对现有技术中的持续部署方法予以改进,以解决上述问题。


技术实现要素:



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

技术特征:


1.一种持续部署方法,对对端设备执行持续部署,其特征在于,包括:由逻辑上独立于对端设备的源端设备确定拟被同步至对端设备的至少一镜像模板,同步所述镜像模板至对端设备中指定的磁盘分区;根据所述对端设备从位于源端设备加载的系统盘镜像文件及拟被同步至对端设备中指定的磁盘分区的至少一镜像模板安装物理机操作系统后重启对端设备;将对端设备的启动路径设置为从包含所述指定的磁盘分区的磁盘启动。2.根据权利要求1所述的持续部署方法,其特征在于,所述由逻辑上独立于对端设备的源端设备确定拟被同步至对端设备的至少一镜像模板之前还包括:基于ipmi协议引导部署于源端设备中的系统盘镜像文件在对端设备的系统盘分区中由对端设备所部署的救援系统将对端设备切换至救援模式,以基于救援模式加载用于安装物理机操作系统的系统盘镜像文件。3.根据权利要求2所述的持续部署方法,其特征在于,拟被同步至对端设备中指定的磁盘分区的至少一镜像模板由与所述源端设备建立会话的ci/cd系统编译确定,或者,通过由与所述源端设备建立会话的外部设备导入确定。4.根据权利要求3所述的持续部署方法,其特征在于,所述对端设备中被创建的虚拟机由至少一由源端设备同步至对端设备中指定的磁盘分区的镜像模板所创建,所述对端设备与部署于对端设备中的虚拟机至少基于一个相同的镜像模板予以创建并启动。5.根据权利要求3所述的持续部署方法,其特征在于,所述持续部署方法还包括:通过被ci/cd系统所托管的应用代码仓库中所部署的预配置脚本构建所述镜像模板,所述镜像模板被同步至对端设备指定的磁盘分区后,将所述指定的磁盘分区作为对端设备的系统盘;其中,所述镜像模板的文件格式包括raw、qcow2、vmdk或者ova。6.根据权利要求3所述的持续部署方法,其特征在于,所述持续部署方法还包括:由所述ci/cd系统于源端设备中加载对端设备所依赖的系统盘镜像文件,将所述系统盘镜像文件加载至对端设备所部署的虚拟光驱;基于ipmi协议引导救援系统读取始终保存于源端设备中的系统盘镜像文件,将所述对端设备设置为从位于源端设备的系统盘镜像文件启动,以在对端设备中根据所述系统盘镜像文件安装物理机操作系统;其中,所述系统盘镜像文件独立于所述镜像模板,且不依赖于最新代码并适配于所述对端设备的商品属性,所述商品属性由对端设备的制造商、型号及版本单独定义或者共同定义。7.根据权利要求3所述的持续部署方法,其特征在于,所述持续部署方法还包括:将所述镜像模板同步至对端设备所关联的至少一磁盘分区,将镜像模板同步至所述磁盘分区,由作为系统盘的磁盘分区启动虚拟机,并将所述磁盘分区挂载至对端设备中被创建的虚拟机;其中,所述磁盘分区逻辑上位于所述对端设备且对所述源端设备可见。8.根据权利要求6所述的持续部署方法,其特征在于,所述持续部署方法还包括:源端设备加载镜像模板至部署于源端设备中的至少一块设备,在对端设备中创建与所述块设备的数量及磁盘空间相同的磁盘分区,块设备基于数据同步协议并受控于所述ci/cd系统,以将所述块设备映射至对端设备中的磁盘分区,并将对端设备的启动路径设置从被挂载所述块设备且已经完成镜像模板同步作业的磁盘分区启动。9.根据权利要求8所述的持续部署方法,其特征在于,所述持续部署方法还包括:在源
端设备中创建由对端设备映射至源端设备所形成的块设备的至少一磁盘分区,所述块设备与所述对端设备中指定的磁盘分区基于数据同步协议建立映射关系,以在块设备与磁盘分区之间建立数据同步路径,并在数据同步完成后断开所述映射关系并卸载位于源端设备中的块设备;其中,所述数据同步协议包括rsync协议或者iscsi协议。10.根据权利要求9所述的持续部署方法,其特征在于,所述持续部署方法还包括:由ci/cd系统生成复制指令,以基于复制命令将镜像模板及镜像模板所对应的文件目录基于所述映射关系同步至所述对端设备中指定的磁盘分区;基于所述映射关系所确定的磁盘分区通过所述数据同步协议将源端设备中的镜像模板及文件目录同步至对端设备中指定的磁盘分区。11.根据权利要求10所述的持续部署方法,其特征在于,所述持续部署方法还包括:基于对应于所述数据同步协议的映射关系将包含所述指定的磁盘分区的磁盘或者指定的磁盘分区映射至所述ci/cd系统,由所述ci/cd系统获取镜像模板的数据规格确定复制命令选择策略,以择一地基于dd复制命令或者rsync复制命令将所述镜像模板及镜像模板所对应的文件目录同步至对端设备中指定的磁盘分区;其中,所述数据规格由镜像模板所包含文件的大小及小文件占比共同定义。12.根据权利要求11所述的持续部署方法,其特征在于,所述复制命令选择策略包括:将小于或者等于64kb的文件作为小文件,若小文件占比大于或者等于50%,基于dd复制命令将镜像模板及镜像模板所对应的文件目录通过所述映射关系同步至所述对端设备中指定的磁盘分区;若文件大于64kb或者小文件占比小于50%,基于rsync复制命令将镜像模板及镜像模板所对应的文件目录通过所述映射关系同步至所述对端设备中指定的磁盘分区。13.根据权利要求8所述的持续部署方法,其特征在于,在对端设备中创建与所述块设备的数量及磁盘空间相同的磁盘分区之后,还包括:识别磁盘分区并根据预设挂载路径确定块设备与磁盘分区之间的映射关系,所述映射关系包括块设备与由对端设备中包含所述指定的磁盘分区的磁盘映射至源端设备的磁盘之间所定义的对应关系。14.根据权利要求13所述的持续部署方法,其特征在于,所述磁盘分区中的镜像模板及镜像模板所对应的文件目录被保存至对端设备的同一个磁盘分区中,或者,所述磁盘分区中的镜像模板及镜像模板所对应的文件目录被保存至对端设备的两个磁盘分区中且分别保存镜像模板及镜像模板所对应的文件目录的两个磁盘分区所含数据一致。15.根据权利要求8所述的持续部署方法,其特征在于,所述持续部署方法还包括:判断对端设备中指定的磁盘分区是否被所述源端设备予以识别;若是,通过nbd协议或者loop协议将块设备挂载至对端设备中指定的磁盘分区;若否,通过对端设备的物理卷扫描磁盘分区的逻辑卷,并在识别到对应的磁盘分区后,通过nbd协议或者loop协议将块设备挂载至对端设备中指定的磁盘分区。16.根据权利要求8所述的持续部署方法,其特征在于,所述块设备包括网络块设备或者loop设备。17.根据权利要求3至8中任一项所述的持续部署方法,其特征在于,所述源端设备与ci/cd系统逻辑上被封装成一电子设备,或者,
将ci/cd系统与源端设备逻辑上被封装成两个独立的电子设备。18.一种计算机设备,其特征在于,包括:处理器,由至少一个存储单元组成的存储装置,以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序;所述处理器在执行所述计算机程序时执行如权利要求1至17中任一项所述的持续部署方法中的步骤。

技术总结


本发明属于软件部署技术领域,并提供了一种持续部署方法及计算机设备,该持续部署方法,包括:由逻辑上独立于对端设备的源端设备确定拟被同步至对端设备的至少一镜像模板,同步所述镜像模板至对端设备中指定的磁盘分区;根据所述对端设备从位于源端设备加载的系统盘镜像文件及拟被同步至对端设备中指定的磁盘分区的至少一镜像模板安装物理机操作系统后重启对端设备;将对端设备的启动路径设置为从包含所述指定的磁盘分区的磁盘启动。本申请解决了现有技术中在对对端设备执行持续部署场景中所存在的需要反复地安装物理机操作系统所存在的镜像文件格式不统一所导致的维护困难的技术问题,并显著地提高了物理机操作系统的安装效率。统的安装效率。统的安装效率。


技术研发人员:

ꢀ(74)专利代理机构

受保护的技术使用者:

安超云软件有限公司

技术研发日:

2022.11.09

技术公布日:

2022/12/23

本文发布于:2024-09-22 09:46:03,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/47527.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:设备   镜像   模板   所述
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议