系统更新方法、装置、设备及计算机可读存储介质转让专利

申请号 : CN202011126702.6

文献号 : CN111966384B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 白媛

申请人 : 腾讯科技(深圳)有限公司

摘要 :

本申请提供了一种系统更新方法、装置、设备及计算机可读存储介质,涉及云技术领域。方法包括:响应于针对初始系统镜像的同步请求,将存储于管理机的存储设备上的初始系统镜像同步至物理机的本地存储设备;发送配置指令至物理机;配置指令用于指示物理机在本地存储设备上对初始系统镜像进行配置,得到目标系统镜像;响应于针对目标系统镜像的更新请求,发送系统更新指令至物理机;系统更新指令用于指示物理机获取目标系统镜像,以完成系统更新。通过本申请提供的系统更新方法,能够降低系统更新耗时,提升系统更新效率。

权利要求 :

1.一种系统更新方法,其特征在于,应用于管理机,包括:响应于针对初始系统镜像的同步请求,将存储于所述管理机的存储设备上的所述初始系统镜像同步至物理机的本地存储设备;所述物理机为无盘物理机集群中的物理机;

发送配置指令至所述物理机;所述配置指令用于指示所述物理机在所述本地存储设备上对所述初始系统镜像进行配置,得到目标系统镜像;

响应于针对所述目标系统镜像的更新请求,发送系统更新指令至所述物理机;所述系统更新指令用于指示所述物理机获取所述目标系统镜像,以完成系统更新。

2.根据权利要求1所述的方法,其特征在于,在将所述初始系统镜像同步至物理机的本地存储设备之前,所述方法还包括:接收针对所述初始系统镜像的生成请求;

响应于所述生成请求,根据镜像定义数据对镜像源文件进行处理,得到初始系统镜像;

将所述初始系统镜像发送至所述管理机的存储设备;

生成与所述初始系统镜像对应的状态标签;所述状态标签用于确定所述初始系统镜像的存储位置;

所述将所述初始系统镜像同步至物理机的本地存储设备,包括:根据所述状态标签将所述初始系统镜像批量同步至物理机集群中的多个所述物理机的本地存储设备。

3.根据权利要求2所述的方法,其特征在于,所述根据镜像定义数据对镜像源文件进行处理,得到初始系统镜像,包括:获取所述镜像源文件和镜像定义数据;

根据所述镜像定义数据中的文件系统结构为所述初始系统镜像创建文件系统;

根据所述镜像定义数据中的配置数据,对所述文件系统进行配置处理;

根据经过配置处理的文件系统生成所述初始系统镜像。

4.根据权利要求3所述的方法,其特征在于,所述根据所述镜像定义数据中的配置数据,对所述文件系统进行配置处理,包括以下至少之一:根据所述镜像定义数据中的软件列表在所述镜像源文件中的软件包中获取目标软件,并安装所述目标软件;

根据所述镜像定义数据中的驱动列表在所述镜像源文件中的驱动包中获取目标驱动,并加载所述目标驱动;

根据所述镜像定义数据中的基本配置脚本生成目标配置脚本;所述目标配置脚本用于指示所述物理机根据所述目标配置脚本对所述初始系统镜像进行配置,得到所述目标系统镜像。

5.根据权利要求2所述的方法,其特征在于,在接收针对所述初始系统镜像的生成请求之后,所述方法还包括:响应于所述生成请求,生成所述目标系统镜像对应的系统启动文件;所述系统启动文件包括内核和目标启动镜像文件;

所述生成所述目标系统镜像对应的系统启动文件,包括:从所述镜像源文件中提取所述内核和启动镜像文件;解压所述启动镜像文件;将镜像加载脚本插入解压后的所述启动镜像文件,并压缩,得到所述目标启动镜像文件;所述镜像加载脚本用于获取所述目标系统镜像并挂载到内存。

6.根据权利要求5所述的方法,其特征在于,所述方法还包括:发送所述内核和所述目标启动镜像文件至所述物理机,以使所述物理机加载所述内核和所述目标启动镜像文件,并执行所述目标启动镜像文件中的镜像加载脚本。

7.一种系统更新方法,其特征在于,应用于物理机,所述物理机为无盘物理机集群中的物理机;所述方法包括:接收管理机发送的系统更新指令;

响应于所述系统更新指令,接收所述管理机发送的系统启动文件;

基于所述系统启动文件,在所述物理机的本地存储设备中获取目标系统镜像;所述目标系统镜像是所述物理机在所述本地存储设备上对初始系统镜像进行配置后生成的;所述初始系统镜像是所述管理机将存储于所述管理机的存储设备上的所述初始系统镜像同步至所述本地存储设备后得到的;

根据所述目标系统镜像完成系统更新。

8.一种系统更新装置,其特征在于,包括:

同步模块,用于响应于针对初始系统镜像的同步请求,将存储于管理机的存储设备上的所述初始系统镜像同步至物理机的本地存储设备;所述物理机为无盘物理机集群中的物理机;

第一发送模块,用于发送配置指令至所述物理机;所述配置指令用于指示所述物理机在所述本地存储设备上对所述初始系统镜像进行配置,得到目标系统镜像;

第二发送模块,用于响应于针对所述目标系统镜像的更新请求,发送系统更新指令至所述物理机;所述系统更新指令用于指示所述物理机获取所述目标系统镜像,以完成系统更新。

9.一种系统更新设备,其特征在于,包括:

存储器,用于存储可执行指令;

处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至6任一项或者权利要求7所述的方法。

10.一种计算机可读存储介质,其特征在于,存储有可执行指令,用于被处理器执行时,实现权利要求1至6任一项或者权利要求7所述的方法。

说明书 :

系统更新方法、装置、设备及计算机可读存储介质

技术领域

[0001] 本申请涉及系统更新技术,尤其涉及一种系统更新方法、装置、设备及计算机可读存储介质。

背景技术

[0002] 无盘系统是一种网络传输技术,使用无盘系统的电子设备将不使用电子设备自身的硬盘获得启动系统,而是通过网络的指定服务器去获得启动系统的镜像,并通过自身内存实现系统加载与运行,可以提高工作效率,实现资源共享,降低运维成本及管理成本。
[0003] 对于无盘物理机集群,在需要对集群中大量物理机进行系统更新的过程中,相关技术需要同时在指定服务器或管理机中同时下载镜像,并且在下载镜像并加载到自身内存中之后进行配置,以完成系统更新。上述相关技术的系统更新过程中会导致网络拥堵,并且配置过程会占用物理机的工作时间,耗时过长,系统更新效率低。

发明内容

[0004] 本申请实施例提供一种系统更新方法、装置、设备及计算机可读存储介质,能够提升系统更新效率。
[0005] 本申请实施例的技术方案是这样实现的:
[0006] 本申请实施例提供一种系统更新方法,包括:响应于针对初始系统镜像的同步请求,将存储于管理机的存储设备上的初始系统镜像同步至物理机的本地存储设备;发送配置指令至物理机;配置指令用于指示物理机在本地存储设备上对初始系统镜像进行配置,得到目标系统镜像;响应于针对目标系统镜像的更新请求,发送系统更新指令至物理机;系统更新指令用于指示物理机获取目标系统镜像,以完成系统更新。
[0007] 在本申请的一些实施例中,在将初始系统镜像同步至物理机的本地存储设备之前,所述方法还包括:接收针对初始系统镜像的生成请求;响应于生成请求,根据镜像定义数据对镜像源文件进行处理,得到初始系统镜像;将初始系统镜像发送至管理机的存储设备;生成与初始系统镜像对应的状态标签;状态标签用于确定初始系统镜像的存储位置;所述将初始系统镜像同步至物理机的本地存储设备,包括:根据状态标签将初始系统镜像批量同步至物理机集群中的多个物理机的本地存储设备。
[0008] 在本申请的一些实施例中,所述根据镜像定义数据对镜像源文件进行处理,得到初始系统镜像,包括:获取镜像源文件和镜像定义数据;根据镜像定义数据中的文件系统结构为初始系统镜像创建文件系统;根据镜像定义数据中的配置数据,对文件系统进行配置处理;根据经过配置处理的文件系统生成初始系统镜像。
[0009] 在本申请的一些实施例中,所述根据镜像定义数据中的配置数据,对文件系统进行配置处理,包括以下至少之一:根据镜像定义数据中的软件列表在镜像源文件中的软件包中获取目标软件,并安装目标软件;根据镜像定义数据中的驱动列表在镜像源文件中的驱动包中获取目标驱动,并加载目标驱动;根据镜像定义数据中的基本配置脚本生成目标配置脚本;目标配置脚本用于指示物理机根据目标配置脚本对初始系统镜像进行配置,得到目标系统镜像。
[0010] 在本申请的一些实施例中,在接收针对初始系统镜像的生成请求之后,所述方法还包括:响应于生成请求,生成目标系统镜像对应的系统启动文件;系统启动文件包括内核和目标启动镜像文件;所述生成目标系统镜像对应的系统启动文件,包括:从镜像源文件中提取内核和启动镜像文件;解压启动镜像文件;将镜像加载脚本插入解压后的启动镜像文件,并压缩,得到目标启动镜像文件;镜像加载脚本用于获取目标系统镜像并挂载到内存。
[0011] 在本申请的一些实施例中,所述方法还包括:发送内核和目标启动镜像文件至物理机,以使物理机加载内核和目标启动镜像文件,并执行目标启动镜像文件中的镜像加载脚本。
[0012] 本申请实施例提供一种系统更新方法,包括:接收管理机发送的系统更新指令;响应于系统更新指令,接收管理机发送的系统启动文件;基于系统启动文件,在物理机的本地存储设备中获取目标系统镜像;目标系统镜像是物理机在本地存储设备上对管理机上的初始系统镜像进行配置后生成的;根据目标系统镜像完成系统更新。
[0013] 在本申请的一些实施例中,所述系统启动文件包括内核和目标启动镜像文件;所述基于系统启动文件,在物理机的本地存储设备中获取目标系统镜像,包括:加载内核和目标启动镜像文件,并执行目标启动镜像文件中的镜像加载脚本;通过镜像加载脚本在本地存储设备中获取目标系统镜像。
[0014] 在本申请的一些实施例中,所述根据目标系统镜像完成系统更新,包括:通过镜像加载脚本解压目标系统镜像,并通过内核切换工具将解压后的目标系统镜像挂载到内存中,以完成系统更新。
[0015] 本申请实施例提供一种系统更新装置,所述装置包括:同步模块,用于响应于针对初始系统镜像的同步请求,将存储于管理机的存储设备上的初始系统镜像同步至物理机的本地存储设备;第一发送模块,用于发送配置指令至物理机;配置指令用于指示物理机在本地存储设备上对初始系统镜像进行配置,得到目标系统镜像;第二发送模块,用于响应于针对目标系统镜像的更新请求,发送系统更新指令至物理机;系统更新指令用于指示物理机获取目标系统镜像,以完成系统更新。
[0016] 本申请实施例提供一种系统更新装置,所述装置包括:第一接收模块,用于接收管理机发送的系统更新指令;第二接收模块,用于响应于系统更新指令,接收管理机发送的系统启动文件;获取模块,用于基于系统启动文件,在物理机的本地存储设备中获取目标系统镜像;目标系统镜像是物理机在本地存储设备上对管理机上的初始系统镜像进行配置后生成的;更新模块,用于根据目标系统镜像完成系统更新。
[0017] 本申请实施例提供一种系统更新设备,包括:存储器,用于存储可执行指令;处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的系统更新方法。
[0018] 本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本申请实施例提供的系统更新方法。
[0019] 本申请实施例具有以下有益效果:
[0020] 本申请实施例通过在进行系统更新之前,先将初始系统镜像同步至物理机的本地存储设备中,相对于相关技术中接收批量更新指令后同时从管理机下载系统镜像至各物理机的方案,可以避免同时下载镜像时的网络拥堵情况,本申请通过先同步初始系统镜像至物理机本地存储设备的方案可以省去系统更新过程中的镜像下载时间,降低了系统更新过程中的耗时,提升了系统更新效率;同时,本申请实施例通过在物理机的本地磁盘中对该初始系统镜像进行配置,得到配置后的目标系统镜像,在对物理机进行更新的过程中,直接基于配置后的目标系统镜像进行系统更新,相对于相关技术中在物理机加载初始系统镜像后进行配置的方案,本申请可以省去系统更新过程中的对初始系统镜像的配置时间,降低了系统更新过程中的耗时,提升了系统更新效率。

附图说明

[0021] 图1是本申请实施例提供的分布式系统的一个可选的架构示意图;
[0022] 图2是本申请实施例提供的系统更新设备的结构示意图;
[0023] 图3是本申请实施例提供的系统更新方法的一个可选的流程示意图;
[0024] 图4是本申请实施例提供的系统更新方法的一个可选的流程示意图;
[0025] 图5是本申请实施例提供的系统更新方法的一个可选的流程示意图;
[0026] 图6是本申请实施例提供的系统更新方法的一个可选的流程示意图;
[0027] 图7是本申请实施例提供的系统更新方法的一个可选的流程示意图;
[0028] 图8是本申请实施例提供的系统更新方法的一个可选的流程示意图;
[0029] 图9是本申请实施例提供的系统更新方法的一个可选的流程示意图;
[0030] 图10是本申请实施例提供的分布式系统的一个可选的架构示意图;
[0031] 图11是本申请实施例提供的镜像生成方法的一个可选的流程示意图;
[0032] 图12是本申请实施例提供的镜像同步配置方法的一个可选的流程示意图;
[0033] 图13是本申请实施例提供的系统更新方法的一个可选的流程示意图。

具体实施方式

[0034] 为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
[0035] 在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
[0036] 在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使在本实施例中描述的本申请实施例能够以除了在在本实施例中图示或描述的以外的顺序实施。
[0037] 除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
[0038] 对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
[0039] (1)Diskless(无盘)节点(无盘物理机,无盘物理机节点):为整个操作系统是在内存中加载的的物理机。
[0040] (2)管理机:物理机集群的总控节点。
[0041] (3)Kexec方法:Kernel execution,是Linux内核的一种机制,它允许从当前运行的内核启动新内核。Kexec会跳过由系统固件(BIOS或UEFI)执行的引导加载阶段和硬件初始化阶段,直接将新的内核加载到主内存并立即开始执行。
[0042] (4)Initrd:把内存当做磁盘去挂载,然后找到RAM(内存)中的init进行执行,在实际根文件系统可用之前挂载到系统中的一个初始根文件系统,与内核一起作为内核引导过程的一部分进行加载。
[0043] (5)动态主机配置协议(dynamic host configuration protocol,DHCP):主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等。
[0044] (6)简单文件传输协议(Trivial File Transfer Protocol,TFTP):是TCP/IP协议族中的用来在客户机和服务器之间进行简单文件传输协议。
[0045] (7)DNS:域名系统(服务)协议,是一种分布式网络目录服务,主要用于域名与IP地址的相互转换。
[0046] (8)PXE:预启动执行环境(Preboot Execution Environment),提供了一种使用网络接口启动计算机的机制,这种机制让计算机的启动可以不依赖本地数据存储设备。通过使用DHCP、TFTP等网络协议和全局唯一标识符、通用网络驱动接口、通用唯一识别码等等的概念并通过对物理机固件扩展预设的API来实现目的。
[0047] (9)Chroot:linux的一个系统调用,可以更改一个进程所能看到的根目录,类似创建一个沙盒,进程运行在沙盒之内,进程运行正常与否,并不会影响这台机器的其他进程。
[0048] (10)Rsync:可实现全量及增量(差异化备份)的本地或远程数据同步备份的工具。
[0049] 参见图1,图1是本申请实施例提供的分布式系统100的一个可选的架构示意图,为实现支撑一个系统更新应用,物理机400通过网络300连接管理机200,网络300可以是广域网或者局域网,又或者是二者的组合,物理机400可以为物理机集群,该物理机集群中包括大量的物理机,图中示例性示出了物理机400-1和物理机400-2。图1还示出了管理机200可以为管理机集群,该管理机集群包括管理机200-1至200-3,同样地,管理机200-1至200-3可以是实体机器,也可以是利用虚拟化技术(如容器技术及虚拟机技术等)构建的虚拟机器,本申请实施例对此不做限定,当然,在本实施例中也可使用单个管理机来进行服务的提供。
[0050] 在本申请的一些实施例中,管理机在接收到管理员发送的针对初始系统镜像的同步请求后,将存储于管理机的存储设备上的初始系统镜像同步至物理机的本地存储设备;发送配置指令至物理机;配置指令用于指示物理机在本地存储设备上对初始系统镜像进行配置,得到目标系统镜像。管理机在接收到管理员发送的针对目标系统镜像的更新请求后,发送系统更新指令至物理机;系统更新指令用于指示物理机获取目标系统镜像,以完成系统更新。
[0051] 参见图2,图2是本申请实施例提供的系统更新设备500的结构示意图,图2所示的系统更新设备500包括:至少一个处理器510、存储器550、至少一个网络接口520和用户接口530。系统更新设备500中的各个组件通过总线系统540耦合在一起。可理解,总线系统540用于实现这些组件之间的连接通信。总线系统540除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统540。
[0052] 处理器510可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
[0053] 用户接口530包括使得能够呈现媒体内容的一个或多个输出装置531,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口530还包括一个或多个输入装置532,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
[0054] 存储器550包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器550旨在包括任意适合类型的存储器。存储器550可选地包括在物理位置上远离处理器510的一个或多个存储设备。
[0055] 在本申请的一些实施例中,存储器550能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
[0056] 操作系统551,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
[0057] 网络通信模块552,用于经由一个或多个(有线或无线)网络接口520到达其他计算设备,示例性的网络接口520包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
[0058] 显示模块553,用于经由一个或多个与用户接口530相关联的输出装置531(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
[0059] 输入处理模块554,用于对一个或多个来自一个或多个输入装置532之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
[0060] 在本申请的一些实施例中,本申请实施例提供的系统更新装置可以采用软硬件结合的方式实现,作为示例,本申请实施例提供的系统更新装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的系统更新方法。
[0061] 本申请实施例可以借助于云技术(Cloud Technology)实现,云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
[0062] 云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、以及应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,例如,教育系统的门户网站。
[0063] 作为示例,管理机200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。物理机400以及管理机200可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不做限制。
[0064] 在本申请的一些实施例中,本申请实施例提供的系统更新装置可以采用软件方式实现,图2示出了存储在存储器550中的系统更新装置555,其可以是程序和插件等形式的软件,在系统更新设备500为管理机时,包括以下软件模块:同步模块、第一发送模块和第二发送模块;在系统更新设备500为物理机时,包括以下软件模块:第一接收模块、第二接收模块、获取模块和更新模块。这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。
[0065] 将在下文中说明各个模块的功能。
[0066] 在另一些实施例中,本申请实施例提供的装置可以采用硬件方式实现,作为示例,本申请实施例提供的装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的系统更新方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable  Logic  Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
[0067] 将结合本申请实施例提供的管理机的示例性应用和实施,在本申请实施例中,将以管理机为执行主体说明本申请实施例提供的系统更新方法。
[0068] 参见图3,图3是本申请实施例提供的系统更新方法的一个可选的流程示意图,将结合图3示出的步骤进行说明。
[0069] 在步骤301中,响应于针对初始系统镜像的同步请求,将存储于管理机的存储设备上的初始系统镜像同步至物理机的本地存储设备。
[0070] 在本申请的一些实施例中,管理机可以通过交互式设备接收管理员发送的针对初始系统镜像的同步请求,该同步请求用于请求初始系统镜像从管理机的存储设备向物理机的本地存储设备同步。
[0071] 其中,该物理机为无盘物理机集群中的任意一个无盘物理机节点,该物理机在启动及工作过程中,运行的操作系统均位于该物理机的内存中。该物理机的本地存储设备为位于物理机中的本地磁盘,该本地存储设备包括但不限于是各种SSD(Solid State Drive,固态驱动器)盘、NVME(Non-Volatile Memory express,非易失性存储器)盘、Flash(闪存)盘、RAID(Redundant Arrays of Independent Disks,磁盘阵列)、USB(Universal Serial Bus,通用串行总线)等。
[0072] 该管理机为该无盘物理机集群中的控制设备,用于生成该初始系统镜像,并将生成的初始系统镜像存储至该管理机对应的存储设备,其中该管理机的存储设备可以是存储型的物理机,也可以是云计算中的各种存储节点,可以是管理机中共享出去的本地磁盘。其中,该物理机的存储设备包括但不限于是各种NFS(Network File System,网络文件系统)、GPFS(General Parallel File System,共享文件系统)、HDFS(Hadoop Distributed File System,分布式文件系统)、SAN(Storage Area Network,存储区域网络)、NAS(Network Attached Storage,网络附属存储)等。
[0073] 在本申请的一些实施例中,可以采用rsync方法将存储于管理机的存储设备上的初始系统镜像同步至物理机的本地存储设备。
[0074] 在本申请的一些实施例中,该同步请求用于将初始镜像文件同步至物理机集群中多个物理机,管理机在接收到该同步请求之后,会判断是否满足同步条件,在满足同步条件的情况下,完成初始系统镜像从管理机的存储设备向物理机的本地存储设备同步过程。其中,该同步条件包括以下至少之一:物理机的工作负载低于预设的负载阈值;管理机的存储设备与物理机的本地存储设备之间通信信道的信道质量量化值达到预设的信道阈值。
[0075] 在该同步条件包括物理机的工作负载低于预设的负载阈值的情况下,管理机在接收到该同步请求之后,会获取该物理机集群中各物理机的工作负载,将工作负载低于负载阈值的物理机对应的同步任务放入执行队列,并行执行该执行队列中的同步任务,将工作负载未低于负载阈值的物理机对应的同步任务放入等待队列,并实时监测该等待队列中各同步任务对应的物理机的工作负载,将工作负载低于负载阈值的物理机对应的同步任务放入执行队列。
[0076] 在该同步条件包括管理机的存储设备与物理机的本地存储设备之间通信信道的信道质量量化值达到预设的信道阈值的情况下,管理机在接收到该同步请求之后,会获取管理机的存储设备与该物理机集群中各物理机的本地存储设备之间通信信道的信道质量量化值,将达到预设的信道阈值的物理机对应的同步任务放入执行队列,并行执行该执行队列中的同步任务,将信道质量量化值未达到预设的信道阈值的物理机对应的同步任务放入等待队列,并实时监测该等待队列中各同步任务对应的信道质量量化值,将信道质量量化值达到预设的信道阈值的物理机对应的同步任务放入执行队列。
[0077] 在本申请的一些实施例中,该同步请求还携带时间时限,该时间时限用于指示管理机在该时间时限内完成该物理机集群中每一物理机的同步任务。
[0078] 需要说明的是,在步骤301将初始系统镜像从管理机的存储设备同步至物理机的本地存储设备的过程中,并不会影响物理机的工作状态。
[0079] 在步骤302中,发送配置指令至物理机;配置指令用于指示物理机在本地存储设备上对初始系统镜像进行配置,得到目标系统镜像。
[0080] 在本申请的一些实施例中,在将初始系统镜像同步至该物理机的本次存储设备之后,需要在本地存储设备中完成对该初始系统镜像的配置过程,以得到该目标系统镜像。
[0081] 其中,物理机可以使用chroot方式在本地存储设备的初始系统镜像中运行配置脚本。该配置脚本用于对该初始系统镜像中的至少一个应用程序进行配置,例如,修改该应用程序的配置文件,添加对应的操作账户等。
[0082] 在本申请的一些实施例中,该配置脚本可以位于该初始系统镜像中,在物理机接收到该配置指令后,从该初始系统镜像中获取该配置脚本,并基于该配置脚本对该初始系统镜像中的应用程序进行配置,以得到该目标系统镜像;该配置脚本该可以位于管理机的存储设备中,该配置脚本与该初始镜像文件存在对应关系,在物理机接收到该配置指令后,可以在该管理机的存储设备中获取与该初始镜像文件对应的配置脚本,并基于该配置脚本对该初始系统镜像中的应用程序进行配置,以得到该目标系统镜像。
[0083] 在本申请的一些实施例中,物理机可以在配置完成之后,即得到该目标系统镜像之后,向该管理机发送配置完成消息,管理机可以通过该配置完成消息确定该本地存储设备中的镜像配置进度,并展示给管理员。在该物理机集群中包括多个需要该初始系统镜像且需要进行配置得到目标系统镜像的物理机的情况下,管理机可以根据需要配置的物理机的数量与接收到的配置完成消息的数量,确定该物理机集群中整体的配置进度,以便管理员根据该配置进度发出针对目标系统镜像的更新请求。
[0084] 需要说明的是,在步骤302中的在物理机的本地存储设备对初始系统镜像进行配置的过程中,由于物理机是通过内存运行当前操作系统,并进行工作,而配置过程在本地存储设备中,因此并不会影响物理机的工作状态。
[0085] 在步骤303中,响应于针对目标系统镜像的更新请求,发送系统更新指令至物理机;系统更新指令用于指示物理机获取目标系统镜像,以完成系统更新。
[0086] 在本申请的一些实施例中,在接收到管理员发送的针对该目标系统镜像的更新请求后,管理机会发送系统更新指令至对应的物理机,物理机在接收到该更新请求后,会检测本地存储设备中的初始系统镜像是否完成配置过程。在本地存储设备中的初始系统镜像已经配置为目标系统镜像的情况下,直接获取该目标系统镜像,并加载到内存中,以完成系统更新。在挂载到内存之后,物理机还会启动该目标系统镜像中已经配置好的至少一个应用程序,进而使得物理机进入对应的工作状态。
[0087] 在本申请的一些实施例中,管理机在接收到该更新请求,且发送系统更新指令至物理机之后,物理机可以与该管理机建立通信连接。其中,该物理机可以在预启动执行环境(Preboot Execution Environment,PXE)下与管理机建立通信连接,并接收管理机通过网络协议服务下发的系统启动文件。
[0088] 在本申请的一些实施例中,在接收到管理员发送的针对该目标系统镜像的更新请求后,需要进行系统更新的多个物理机可能会存在至少一个物理机并未完成初始系统镜像的配置过程,该至少一个未完成配置过程的物理机可以在完成配置过程之后获取该目标系统镜像,以完成系统更新。
[0089] 在本申请的一些实施例中,管理机会接收各个需要更新的物理机发送的配置完成消息,在接收到管理员发送的更新请求后,可能未接收到至少一个物理机的配置完成消息。此时,可以先发送系统更新指令至已发送配置完成消息的物理机,以使对应的物理机完成系统更新;同时,监测其余物理机的配置进度,在接收到其余物理机发送的配置完成消息后,发送系统更新指令至该物理机。
[0090] 通过本申请实施例对于图3的上述示例性实施可知,本申请实施例通过在进行系统更新之前,先将初始系统镜像同步至物理机的本地存储设备中,相对于相关技术中接收批量更新指令后同时从管理机下载系统镜像至各物理机的方案,可以避免同时下载镜像时的网络拥堵情况,本申请通过先同步初始系统镜像至物理机本地存储设备的方案可以省去系统更新过程中的镜像下载时间,降低了系统更新过程中的耗时,提升了系统更新效率;同时,本申请实施例通过在物理机的本地磁盘中对该初始系统镜像进行配置,得到配置后的目标系统镜像,在对物理机进行更新的过程中,直接基于配置后的目标系统镜像进行系统更新,相对于相关技术中在物理机加载初始系统镜像后进行配置的方案,本申请可以省去系统更新过程中的对初始系统镜像的配置时间,降低了系统更新过程中的耗时,提升了系统更新效率。
[0091] 参见图4,图4是本申请实施例提供的系统更新方法的一个可选的流程示意图,基于图3,图3中的步骤301之前还包括步骤401至步骤404,步骤301可以更新为步骤405,将结合图4示出的步骤进行说明。
[0092] 在步骤401中,接收针对初始系统镜像的生成请求。
[0093] 在本申请的一些实施例中,该管理机所处的物理机集群中存在多种不同服务类型的物理机,对不同服务类型的物理机,其对应的操作系统可能不同,操作系统的版本也可能不同。因此,上述针对初始系统镜像的生成请求,可以是针对该物理机集群中所有物理机的系统镜像生成请求,也可以只是针对该物理机集群中部分物理机的系统镜像生成请求。
[0094] 在步骤402中,响应于生成请求,根据镜像定义数据对镜像源文件进行处理,得到初始系统镜像。
[0095] 在本申请的一些实施例中,该镜像定义数据可以确定该初始系统镜像的文件系统结构、软件列表、驱动列表、配置脚本和状态标签。通过该镜像定义数据可以对镜像源文件中的软件包、驱动包进行筛选,并对文件系统结构进行变更,对配置文件进行修改,进而实现了初始系统镜像的自定义,生成符合要求的初始系统镜像。
[0096] 在步骤403中,将初始系统镜像发送至管理机的存储设备。
[0097] 在本申请的一些实施例中,在生成该初始系统镜像之后,可以将该初始系统镜像存储至该管理机的存储设备中。
[0098] 在步骤404中,生成与初始系统镜像对应的状态标签;状态标签用于确定初始系统镜像的存储位置。
[0099] 在本申请的一些实施例中,在将该初始系统镜像存储至管理机的存储设备之后,会根据该初始镜像文件在该管理机的存储设备中的位置,生成对应的状态标签。该状态标签除了包括初始镜像文件在该管理机的存储设备中的位置之外,还包括该初始系统镜像的版本、MD5值和状态。
[0100] 在步骤405中,响应于针对初始系统镜像的同步请求,根据状态标签将初始系统镜像批量同步至物理机集群中的多个物理机的本地存储设备。
[0101] 在本申请的一些实施例中,对于该物理机集群中的大量物理机,需要切换至该目标系统的物理机的数量也是庞大的,因此,在接收到针对该初始系统镜像的同步请求时,需要将该初始系统镜像同步至多个物理机的本地存储设备中。此时,需要根据该初始系统镜像对应的状态标签,确定该初始系统镜像的存储位置,根据该存储位置,将该初始系统镜像批量同步至多个物理机的本地存储设备中。
[0102] 通过本申请实施例对于图4的上述示例性实施可知,本申请实施例可以为物理机生成定制化的初始镜像文件,由于定制化了初始系统镜像,可以减少物理机后续对该初始系统镜像的配置过程,进而减少了物理机的计算压力,也减少了配置耗时,进一步的提升了系统更新效率。
[0103] 参见图5,图5是本申请实施例提供的系统更新方法的一个可选的流程示意图,基于图4,图4中的步骤402可以更新为步骤501至步骤504,将结合图5示出的步骤进行说明。
[0104] 在步骤501中,响应于生成请求,获取所述镜像源文件和镜像定义数据。
[0105] 在本申请的一些实施例中,该镜像源文件为操作系统厂商提供的原始系统的镜像文件,包括软件包、驱动包、内核、系统启动镜像和描述文件等。其中,该软件包为操作系统厂商预装在该镜像源文件中的多个软件的集合;该驱动包为操作系统厂商预装在该镜像源文件中的多个驱动的集合;该描述文件为操作系统中自带的一些信息文件:比如pxe或grub文件样例,镜像的版本信息等信息文件。
[0106] 在本申请的一些实施例中,该镜像定义数据可以为包含各种定制化信息的数据结构,可以包括文件系统结构、软件列表、驱动列表、配置脚本、状态标签等。
[0107] 在步骤502中,根据镜像定义数据中的文件系统结构为初始系统镜像创建文件系统。
[0108] 在步骤503中,根据镜像定义数据中的配置数据,对文件系统进行配置处理。
[0109] 在本申请的一些实施例中,可以通过以下之一的步骤实现上述根据镜像定义数据中的配置数据,对文件系统进行配置处理的步骤:在步骤5031中,根据镜像定义数据中的软件列表在镜像源文件中的软件包中获取目标软件,并安装目标软件。在步骤5032中,根据镜像定义数据中的驱动列表在镜像源文件中的驱动包中获取目标驱动,并加载目标驱动。在步骤5033中,根据镜像定义数据中的基本配置脚本生成目标配置脚本;目标配置脚本用于指示物理机根据目标配置脚本对初始系统镜像进行配置,得到目标系统镜像。
[0110] 在步骤504中,根据经过配置处理的文件系统生成初始系统镜像。
[0111] 在本申请的一些实施例中,可以通过压缩工具对经过配置处理的文件系统进行压缩,进而得到该初始系统镜像。
[0112] 其中,该压缩工具可以为lzma格式的压缩工具,以生成lzma格式的初始系统镜像。例如,可以通过下述指令实现压缩过程:“find  . | cpio -c -o | xz -9 --format=lzma > diskless-root.img”
[0113] 通过本申请实施例对于图5的上述示例性实施可知,本申请实施例可以根据镜像源文件和镜像定义数据,生成定制化的初始系统镜像,相比于原始的镜像源文件中的原始系统,本申请生成的定制化的初始系统镜像在满足物理机实现特定功能的前提之下,尽可能的减少了初始系统镜像的大小,减少了初始系统镜像同步过程中的数据量,提高了同步效率,并且,由于定制化了初始系统镜像,可以减少物理机后续对该初始系统镜像的配置过程,进而减少了物理机的计算压力,也减少了配置耗时,进一步的提升了系统更新效率。
[0114] 参见图6,图6是本申请实施例提供的系统更新方法的一个可选的流程示意图,基于图4及图5,以基于图4为例,在步骤401之后,还包括步骤601,在步骤303之后,还包括步骤602,将结合图6示出的步骤进行说明。
[0115] 在步骤601中,响应于生成请求,生成目标系统镜像对应的系统启动文件;系统启动文件包括内核和目标启动镜像文件。
[0116] 在本申请的一些实施例中,可以通过以下方式实现上述生成目标系统镜像对应的系统启动文件:在步骤6011中,从镜像源文件中提取内核和启动镜像文件;解压启动镜像文件;将镜像加载脚本插入解压后的启动镜像文件,并压缩,得到目标启动镜像文件;镜像加载脚本用于获取目标系统镜像并挂载到内存。
[0117] 其中,目标启动镜像文件相对于镜像源文件中的启动镜像文件,在被物理机加载的过程中,可以指示物理机调用镜像加载脚本,并通过该镜像加载脚本在本地存储设备中获取对应的目标系统镜像。
[0118] 在步骤602中,发送内核和目标启动镜像文件至物理机,以使物理机加载内核和目标启动镜像文件,并执行目标启动镜像文件中的镜像加载脚本。
[0119] 在本申请的一些实施例中,管理机在预启动执行环境(Preboot Execution Environment,PXE)下与物理机建立通信连接之后,可以发送步骤601中生成的系统启动文件至物理机,即将上述内核和目标启动镜像文件发送至物理机。
[0120] 其中,物理机在接收到该内核和目标启动镜像文件后,可以先加载该内核,加载该目标启动镜像文件。在加载该目标启动镜像文件的过程中,会运行初始化的init脚本,该init脚本可以调用该镜像加载脚本。
[0121] 通过本申请实施例对于图6的上述示例性实施可知,本申请实施例可以生成定制化的目标启动镜像,通过该目标启动镜像,可以在物理机启动的过程中,直接通过加载该目标启动镜像执行对应的镜像加载脚本,直接在本地存储设备中获取对应的目标系统镜像,提高了系统更新效率。
[0122] 将结合本申请实施例提供的物理机的示例性应用和实施,在本申请实施例中,将以物理机为执行主体说明本申请实施例提供的系统更新方法。
[0123] 参见图7,图7是本申请实施例提供的系统更新方法的一个可选的流程示意图,将结合图7示出的步骤进行说明。
[0124] 在步骤701中,接收管理机发送的系统更新指令。
[0125] 在本申请的一些实施例中,在物理机接收到该管理机发送的系统更新指令之前,需要的目标系统镜像已经存储于该物理机的本地存储设备中,并且,该目标系统镜像已经完成了配置过程。
[0126] 在步骤702中,响应于系统更新指令,接收管理机发送的系统启动文件。
[0127] 在本申请的一些实施例中,根据该系统更新指令,该物理机可以与该管理机建立通信连接。其中,该物理机可以在预启动执行环境(Preboot Execution Environment,PXE)下与管理机建立通信连接,并接收管理机通过网络协议服务下发的系统启动文件。该网络服务协议包括但不限于是简单文件传输协议(trivial file transfer protocol,TFTP)、动态主机配置协议(dynamic host configuration protocol,DHCP)、超文本传输协议(hyper text transfer protocol,HTTP)和DNS(域名系统服务协议)。
[0128] 在本申请的一些实施例中,物理机可以接收管理机根据DHCP服务分配的动态网络协议地址;物理机还可以接收管理机通过TFTP服务或HTTP服务下发的系统启动文件。
[0129] 在步骤703中,基于系统启动文件,在物理机的本地存储设备中获取目标系统镜像;目标系统镜像是物理机在本地存储设备上对管理机上的初始系统镜像进行配置后生成的。
[0130] 在本申请的一些实施例中,该系统启动文件包含获取目标系统镜像的脚本。物理机在获取到该系统启动文件后,会加载该系统启动文件,并执行该获取目标系统镜像的脚本,以在本地存储设备中获取该目标系统镜像。根据上述实施例可知,目标系统镜像是物理机在本地存储设备上对管理机上的初始系统镜像进行配置后生成的。
[0131] 在步骤704中,根据目标系统镜像完成系统更新。
[0132] 在本申请的一些实施例中,物理机在获取到该目标系统镜像后,可以进行重启并基于该目标系统镜像进入对应的目标系统中。此时,该物理机已经完成了从原始系统向该目标系统的切换过程。
[0133] 在本申请的一些实施例中,物理机在进入该目标系统之后,还会启动该目标系统镜像中已经经过配置的应用程序,将该应用程序启动之后,该物理机进入工作状态。
[0134] 通过本申请实施例对于图7的上述示例性实施可知,本申请实施例通过预先将需要的目标系统镜像已经存储于物理机的本地存储设备中,相对于相关技术中接收批量更新指令后同时从管理机下载系统镜像至各物理机的方案,可以避免同时下载镜像时的网络拥堵情况,本申请通过先同步初始系统镜像至物理机本地存储设备的方案可以省去系统更新过程中的镜像下载时间,降低了系统更新过程中的耗时,提升了系统更新效率;同时,本申请实施例中的物理机直接基于配置后的目标系统镜像进行系统更新,相对于相关技术中在物理机加载初始系统镜像后进行配置的方案,本申请可以省去系统更新过程中的对初始系统镜像的配置时间,降低了系统更新过程中的耗时,提升了系统更新效率。
[0135] 参见图8,图8是本申请实施例提供的系统更新方法的一个可选的流程示意图,基于图7,图7中的步骤703可以更新为步骤801至步骤802,步骤704可以更新为步骤803,将结合图8示出的步骤进行说明。
[0136] 在步骤801中,加载系统启动文件中的内核和目标启动镜像文件,并执行目标启动镜像文件中的镜像加载脚本。
[0137] 在本申请的一些实施例中,该系统启动文件中包括内核和目标启动镜像文件。由上述实施例可知,该内核为镜像源文件中的内核,该目标启动镜像文件中已经被插入了镜像加载脚本。其中,该镜像加载脚本用于指示物理机在本地存储设备中获取对应的目标系统镜像。
[0138] 在本申请的一些实施例中,物理机可以先加载该内核,加载该目标启动镜像文件。在加载该目标启动镜像文件的过程中,会运行初始化的init脚本,该init脚本可以调用该镜像加载脚本。
[0139] 在步骤802中,通过镜像加载脚本在本地存储设备中获取目标系统镜像。
[0140] 在本申请的一些实施例中,物理机在执行该镜像加载脚本的过程中,可以根据该镜像加载脚本的指示,在本地存储设备中获取该目标系统镜像。其中,该镜像加载脚本可以携带该目标系统镜像的标签,物理机在执行该镜像加载脚本的过程中,可以根据该标签在该本次存储设备中查找匹配的系统镜像作为目标系统镜像。该镜像加载脚本还可以指示该物理机在本次存储设备中获取最新的系统镜像作为该目标系统镜像。
[0141] 在步骤803中,通过镜像加载脚本解压目标系统镜像,并通过内核切换工具将解压后的目标系统镜像挂载到内存中,以完成系统更新。
[0142] 在本申请的一些实施例中,该镜像加载脚本还用于指示该物理机解压该目标系统镜像,并通过内核切换工具直接将解压后的目标系统镜像挂载到内存中,此时,已经完成物理机从原始系统到目标系统的更新过程。其中,该内核切换工具可以为Kexec工具,通过Kexec工具可以跳过由系统固件(BIOS或UEFI)执行的引导加载阶段和硬件初始化阶段,直接将新的内核加载到主内存并立即开始执行,进而避免了物理机的硬件重启,减少了系统的更新耗时,提高系统的更新效率。
[0143] 通过本申请实施例对于图8的上述示例性实施可知,本申请实施例通过内核切换工具将解压后的目标系统镜像挂载到内存中,避免了物理机的硬件重启,减少了系统的更新耗时,提高系统的更新效率。
[0144] 下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
[0145] 请参阅图9,图9是本申请实施例提供的系统更新方法的一个可选的流程示意图,将结合图9示出的步骤进行说明。
[0146] 在步骤901中,管理机发起更新操作系统的过程。其中,该管理机可以响应于管理员的更新操作请求,向物理机集群中的各个物理机发起系统更新的过程。
[0147] 在步骤902和步骤903中,物理机进入PXE引导过程,管理机通过DHCP/TFTP/DNS等服务与物理机建立连接。
[0148] 在步骤904和步骤905中,管理机准备内核(kernel)和启动镜像文件(initrd),并发送至物理机,物理机接收该内核和启动镜像文件并运行。其中,该内核和启动镜像文件是在操作系统厂商的系统镜像文件里面的,直接解压系统镜像文件可以得到kernel和initrd。
[0149] 在步骤906中,管理机制作目标系统镜像(diskless镜像),并压缩,得到目标系统镜像压缩包。
[0150] 在步骤907中,物理机从管理机中获取该目标系统镜像压缩包。
[0151] 在步骤908中,物理机解压该目标系统镜像压缩包。
[0152] 在步骤909中,物理机切换到该目标系统镜像。其中,物理机可以将该目标系统镜像加载到自身的内存以完成系统的切换。
[0153] 在步骤910中,管理机准备该物理机对应的配置脚本及文件。
[0154] 在步骤911中,物理机从管理机中获取该配置脚本及文件。
[0155] 在步骤912中,物理机运行该配置脚本,以完成对自身目标系统的配置。
[0156] 在步骤913中,物理机启动应用程序。在启动完应用程序后,物理机已经可以继续执行对应的功能,完成目标系统镜像对应的系统更新过程。
[0157] 通过上述系统更新方法可以完成物理机集群中大量物理机的系统更新过程。
[0158] 申请人在研究中发现,上述系统更新过程中存在一些技术问题:
[0159] (1)一个使用无盘物理机节点的大规模物理机集群中(大于5000台物理机的集群),整个集群(包括所有的无盘物理机节点)的启动速度慢,所有节点要从存放操作系统的管理机或者服务器上同时下载操作系统镜像(2G-10G),网络带宽是启动的瓶颈。
[0160] (2)每台物理机节点在加载操作系统镜像后,要执行应用程序配置,因为无盘物理机节点是无状态的,需要针对无盘物理机节点的应用程序进行配置,这个过程又需要花费5~10分钟的时间。其中,无盘物理机节点的角色不同,对应的配置也不相同,比如:存储节点、计算节点、网络节点,而且每种节点中,可能包含主(master)节点、服务(service)节点,从属(slave)节点,各个功能的无盘物理机节点的配置不同。
[0161] 本申请实施例提供一个由Diskless(无盘)镜像生成模块、镜像同步配置模块和镜像加载模块组成的分布式架构系统,来加速大规模Diskless物理机集群更新操作系统。其中:
[0162] Diskless镜像生成模块,运行在管理机,用于生成新的Diskless镜像,并把镜像存放到共享存储;定制化Initrd(启动镜像文件),把镜像加载模块的入口脚本放进Initrd中。
[0163] 镜像同步配置模块,用于接收管理员在管理机发起远程批量镜像同步及配置操作,在每台Diskless节点,找到共享存储中特定镜像,把镜像同步到Diskless节点的本地磁盘(比如Rsync方法),用Kexec方法(比如chroot)启动并配置新镜像。
[0164] 镜像加载模块:包含在定制的Initrd中,在Diskless节点(物理机)需要更新镜像时,从管理节点发起批量从网络重启集群,各个物理机加载Initrd,运行镜像加载模块,该模块利用Kexec方法直接从本地磁盘启动配置好的操作系统镜像,实现快速更新整个物理机机群的操作系统。
[0165] 在本申请的一些实施例中,请参阅图10,图10是本申请实施例提供的分布式系统的一个可选的架构示意图。其中,该分布式系统1000包括管理机1001,至少一个共享存储1002(管理机的存储设备)和N个物理机1003(图中示出了物理机1及物理机N),每一物理机
1003包括本地磁盘1004和内存系统1005。
[0166] 其中,管理机1001是整个物理机集群的总控节点,是整个集群的DNS server、DHCP server和TFTP server,可以对集群中所有物理机1003发起批量操作的指令。
[0167] 共享存储1002可以是存储型物理机,也可以是云计算中的各种存储节点,也可以是管理机1001共享出去的磁盘。共享存储1002中存储了很多镜像,比如不同OS的,或者同一OS对应的不同的定制化的镜像;对于不同的节点,可以选择相同镜像,也可以选择不同镜像。共享存储1002可以是与每一个物理机1003一一对应,也可以是正对所有物理机1003,每台物理机1003可以同时使用这块共享存储,共享存储1002与物理机1003之间是通过网络连接。
[0168] 每台物理机1003安装一个本地磁盘1004,用于存放需要更新的操作系统镜像。当有生成新镜像需求时,管理员在管理机1001发起初始系统镜像制作过程和镜像同步配置过程,生成的新的初始系统镜像会同步到每台物理机1003的本地磁盘1004,此过程不影响物理机1003的工作状态。
[0169] 在系统更新的过程中,管理机1001生成初始系统镜像,并将该初始系统镜像同步至该至少一个共享存储1002中,物理机1003从该共享存储1002中获取该初始系统镜像,并存储于本地磁盘1004中,并在本地磁盘1004中对该初始系统镜像进行配置,得到经过配置后的目标系统镜像。在需要物理机1003进行系统更新时,物理机1003在本地磁盘1004中获取该目标系统镜像,并加载至内存系统1005,此时,由于该目标系统镜像已经完成了配置,因此,在加载至内存之后,物理机1003已经完成系统更新。
[0170] 在本申请的一些实施例中,请参阅图11,图11是本申请实施例提供的镜像生成方法的一个可选的流程示意图。将结合图11示出的步骤进行说明。
[0171] 在步骤1101中,管理机基于镜像源文件和镜像定义数据发起生成初始系统镜像的过程,并行执行步骤1107和步骤1102。
[0172] 其中,该镜像源文件包括软件包、内核、启动镜像文件和描述文件等;该初始系统镜像包括文件系统结构、软件列表、驱动列表、基本配置脚本和状态标签。
[0173] 在步骤1102中,管理机在镜像中创建文件系统。
[0174] 基于创建的文件系统,在步骤1103中,管理机安装软件包。
[0175] 在步骤1104中,管理机加载驱动。
[0176] 在步骤1105中,管理机压缩打包以形成初始系统镜像。
[0177] 在本申请的一些实施例中,管理机用Chroot方式,根据文件系统结构创建文件系统,根据软件包列表从操作系统源文件获得软件包进行安装,根据驱动表加载驱动,根据基本配置脚本修改配置和执行配置脚本。压缩打包完成初始系统镜像的制作。
[0178] 在步骤1106中,管理机将该初始系统镜像放入共享存储(管理机的存储设备)中。
[0179] 在步骤1107中,管理机解压启动镜像文件。其中,管理机可以在该镜像源文件中获取内核和系统启动镜像。
[0180] 在步骤1108中,管理机在解压后的启动镜像文件中的init脚本中加入镜像加载脚本。
[0181] 在步骤1109中,管理机对加入镜像加载脚本的启动镜像文件,得到目标启动镜像文件。
[0182] 在步骤1106和步骤1109均完成之后,执行步骤1110,更新镜像定义数据中的状态标签。
[0183] 通过本申请实施例对于图11的上述示例性实施可知,本申请可以根据镜像定义数据生成符合需求的定制化初始系统镜像和目标启动镜像文件,可以减少镜像后续的配置时间,提升了物理机集群的整体系统更新效率。
[0184] 在本申请的一些实施例中,请参阅图12,图12是本申请实施例提供的镜像同步配置方法的一个可选的流程示意图。将结合图12示出的步骤进行说明。
[0185] 在步骤1201中,管理机发起批量同步该初始系统镜像。
[0186] 在步骤1202中,管理机在镜像定义数据中找到状态标签正确的镜像在共享存储中的位置。
[0187] 在步骤1203中,管理机在共享存储中查找到对应的镜像
[0188] 在步骤1204中,管理机删除物理机本地磁盘旧镜像。
[0189] 在步骤1205中,管理机同步新镜像到本地磁盘。
[0190] 在步骤1206中,管理机在本地磁盘执行配置脚本,配置镜像。
[0191] 在本申请的一些实施例中,请参阅图13,图13是本申请实施例提供的系统更新方法的一个可选的流程示意图。将结合图13示出的步骤进行说明。
[0192] 在步骤1301中,管理机发起更新操作系统过程。
[0193] 在步骤1302和步骤1303中,物理机进入PXE引导过程,管理机通过DHCP/TFTP/DNS等服务与物理机建立连接。
[0194] 在步骤1304和步骤1305中,管理机将图11中从镜像源文件中获取的内核和生成的目标启动镜像文件发送至物理机,物理机接收该内核和目标启动镜像文件并运行。
[0195] 在步骤1306中,管理机在运行目标启动镜像文件的过程中,会通过该目标启动镜像文件中的镜像加载脚本从本地磁盘中将目标系统镜像加载到内存中。
[0196] 在步骤1307中,管理机启动应用程序。在启动完应用程序后,物理机已经可以继续执行对应的功能,完成目标系统镜像对应的系统更新过程。
[0197] 通过本申请实施例提供的系统更新方法,可以提前生成初始系统镜像并存储与管理机的存储设备中,并把管理机的存储设备中初始系统镜像同步到本地磁盘并进行配置,而不是每次下载初始系统镜像然后进行配置,节省了每次下载操作系统的时间和每次在内存中继续配置操作系统所用的时间。在本申请中,镜像生成过程和镜像同步配置过程,物理机均处于正常的生产状态,这两个过程不影响物理机的工作状态。
[0198] 通过本申请实施例提供的系统更新方法,把管理机的存储设备中初始系统镜像同步到物理机的本地磁盘的过程,可以选择在本物理机和网络的闲时状态执行,避免了现有技术方案中所有物理机同时下载操作系统镜像,同时占用网络带宽带来的启动瓶颈。并且本申请中使用Kexec方法直接从本地磁盘启动配置好的目标系统镜像,这个软启动过程很快,这个过程不用执行硬件重启。
[0199] 下面继续说明本申请实施例提供的系统更新装置555的实施为软件模块的示例性结构,在本申请的一些实施例中,如图2所示,在所述系统更新设备500为管理机的情况下,存储在存储器550的系统更新装置555中的软件模块可以包括:
[0200] 同步模块,用于响应于针对初始系统镜像的同步请求,将存储于管理机的存储设备上的初始系统镜像同步至物理机的本地存储设备;
[0201] 第一发送模块,用于发送配置指令至物理机;配置指令用于指示物理机在本地存储设备上对初始系统镜像进行配置,得到目标系统镜像;
[0202] 第二发送模块,用于响应于针对目标系统镜像的更新请求,发送系统更新指令至物理机;系统更新指令用于指示物理机获取目标系统镜像,以完成系统更新。
[0203] 在本申请的一些实施例中,系统更新装置555还包括生成模块,该生成模块用于接收针对初始系统镜像的生成请求;响应于生成请求,根据镜像定义数据对镜像源文件进行处理,得到初始系统镜像;将初始系统镜像发送至管理机的存储设备;生成与初始系统镜像对应的状态标签;状态标签用于确定初始系统镜像的存储位置。
[0204] 在本申请的一些实施例中,该第一发送模块还用于根据状态标签将初始系统镜像批量同步至物理机集群中的多个物理机的本地存储设备。
[0205] 在本申请的一些实施例中,所述生成模块还用于获取镜像源文件和镜像定义数据;根据镜像定义数据中的文件系统结构为初始系统镜像创建文件系统;根据镜像定义数据中的配置数据,对文件系统进行配置处理;根据经过配置处理的文件系统生成初始系统镜像。
[0206] 在本申请的一些实施例中,所述根据镜像定义数据中的配置数据,对文件系统进行配置处理,包括以下至少之一:根据镜像定义数据中的软件列表在镜像源文件中的软件包中获取目标软件,并安装目标软件;根据镜像定义数据中的驱动列表在镜像源文件中的驱动包中获取目标驱动,并加载目标驱动;根据镜像定义数据中的基本配置脚本生成目标配置脚本;目标配置脚本用于指示物理机根据目标配置脚本对初始系统镜像进行配置,得到目标系统镜像。
[0207] 在本申请的一些实施例中,所述生成模块还用于响应于生成请求,生成目标系统镜像对应的系统启动文件;系统启动文件包括内核和目标启动镜像文件。
[0208] 在本申请的一些实施例中,所述生成模块还用于从镜像源文件中提取内核和启动镜像文件;解压启动镜像文件;将镜像加载脚本插入解压后的启动镜像文件,并压缩,得到目标启动镜像文件;镜像加载脚本用于获取目标系统镜像并挂载到内存。
[0209] 在本申请的一些实施例中,所述第二发送模块还用于发送内核和目标启动镜像文件至物理机,以使物理机加载内核和目标启动镜像文件,并执行目标启动镜像文件中的镜像加载脚本。
[0210] 在本申请的一些实施例中,如图2所示,在所述系统更新设备500为物理机的情况下,存储在存储器550的系统更新装置555中的软件模块可以包括:
[0211] 第一接收模块,用于接收管理机发送的系统更新指令;
[0212] 第二接收模块,用于响应于系统更新指令,接收管理机发送的系统启动文件;
[0213] 获取模块,用于基于系统启动文件,在物理机的本地存储设备中获取目标系统镜像;目标系统镜像是物理机在本地存储设备上对管理机上的初始系统镜像进行配置后生成的;
[0214] 更新模块,用于根据目标系统镜像完成系统更新。
[0215] 在本申请的一些实施例中,所述获取模块,还用于加载内核和目标启动镜像文件,并执行目标启动镜像文件中的镜像加载脚本;通过镜像加载脚本在本地存储设备中获取目标系统镜像。
[0216] 在本申请的一些实施例中,所述更新模块,还用于通过镜像加载脚本解压目标系统镜像,并通过内核切换工具将解压后的目标系统镜像挂载到内存中,以完成系统更新。
[0217] 本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的方法。
[0218] 本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的方法,例如,如图3至图9、图11至图13示出的方法。
[0219] 在本申请的一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
[0220] 在本申请的一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
[0221] 作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper Text Markup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
[0222] 作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
[0223] 综上所述,通过本申请实施例能够实现以下技术效果:
[0224] (1)本申请实施例通过在进行系统更新之前,先将初始系统镜像同步至物理机的本地存储设备中,相对于相关技术中接收批量更新指令后同时从管理机下载系统镜像至各物理机的方案,可以避免同时下载镜像时的网络拥堵情况,本申请通过先同步初始系统镜像至物理机本地存储设备的方案可以省去系统更新过程中的镜像下载时间,降低了系统更新过程中的耗时,提升了系统更新效率;同时,本申请实施例通过在物理机的本地磁盘中对该初始系统镜像进行配置,得到配置后的目标系统镜像,在对物理机进行更新的过程中,直接基于配置后的目标系统镜像进行系统更新,相对于相关技术中在物理机加载初始系统镜像后进行配置的方案,本申请可以省去系统更新过程中的对初始系统镜像的配置时间,降低了系统更新过程中的耗时,提升了系统更新效率。
[0225] (2)本申请实施例可以为物理机生成定制化的初始镜像文件,由于定制化了初始系统镜像,可以减少物理机后续对该初始系统镜像的配置过程,进而减少了物理机的计算压力,也减少了配置耗时,进一步的提升了系统更新效率。
[0226] (3)本申请实施例可以根据镜像源文件和镜像定义数据,生成定制化的初始系统镜像,相比于原始的镜像源文件中的原始系统,本申请生成的定制化的初始系统镜像在满足物理机实现特定功能的前提之下,尽可能的减少了初始系统镜像的大小,减少了初始系统镜像同步过程中的数据量,提高了同步效率。
[0227] (4)本申请实施例可以生成定制化的目标启动镜像,通过该目标启动镜像,可以在物理机启动的过程中,直接通过加载该目标启动镜像执行对应的镜像加载脚本,直接在本地存储设备中获取对应的目标系统镜像,提高了系统更新效率。
[0228] (5)本申请实施例通过预先将需要的目标系统镜像已经存储于物理机的本地存储设备中,相对于相关技术中接收批量更新指令后同时从管理机下载系统镜像至各物理机的方案,可以避免同时下载镜像时的网络拥堵情况,本申请通过先同步初始系统镜像至物理机本地存储设备的方案可以省去系统更新过程中的镜像下载时间,降低了系统更新过程中的耗时,提升了系统更新效率;同时,本申请实施例中的物理机直接基于配置后的目标系统镜像进行系统更新,相对于相关技术中在物理机加载初始系统镜像后进行配置的方案,本申请可以省去系统更新过程中的对初始系统镜像的配置时间,降低了系统更新过程中的耗时,提升了系统更新效率。
[0229] (6)本申请实施例通过内核切换工具将解压后的目标系统镜像挂载到内存中,避免了物理机的硬件重启,减少了系统的更新耗时,提高系统的更新效率。
[0230] 以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。