CN110704162A - 物理机共享容器镜像的方法、装置、设备及存储介质 - Google Patents

物理机共享容器镜像的方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN110704162A
CN110704162A CN201910926465.2A CN201910926465A CN110704162A CN 110704162 A CN110704162 A CN 110704162A CN 201910926465 A CN201910926465 A CN 201910926465A CN 110704162 A CN110704162 A CN 110704162A
Authority
CN
China
Prior art keywords
container
mirror image
image
file system
file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910926465.2A
Other languages
English (en)
Other versions
CN110704162B (zh
Inventor
倪勋
谢永吉
李雨轩
张宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201910926465.2A priority Critical patent/CN110704162B/zh
Publication of CN110704162A publication Critical patent/CN110704162A/zh
Application granted granted Critical
Publication of CN110704162B publication Critical patent/CN110704162B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/128Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances

Abstract

本申请公开了物理机共享容器镜像的方法、装置、设备及存储介质,涉及云计算技术领域。具体实现方案为:通过共享容器镜像的各个物理机均挂载同一分布式文件系统,响应于对容器镜像的拉取指令,确定预先挂载的分布式文件系统中是否存在容器镜像的镜像文件,若分布式文件系统中不存在容器镜像的镜像文件,则拉取容器镜像的镜像文件,并将容器镜像的镜像文件存储到分布式文件系统中,从而将容器镜像的镜像文件通过分布式文件系统共享给其他物理机,只需在分布式文件系统中存储容器镜像的镜像文件,实现各个物理机共享分布式文件系统中存储的容器镜像的镜像文件,无需各物理机分别存储容器镜像的镜像文件,节省了各物理机的存储空间。

Description

物理机共享容器镜像的方法、装置、设备及存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及云计算技术。
背景技术
Containerd是一个开源的容器服务器,对于上层基于containerd提供容器运行时接口,下层基于kata containers实现轻量虚拟化功能的场景,通常部署多台物理机,每台物理机上可以有多个虚拟机,一个虚拟机可以运行多个容器,也就是一台物理机上可以启动多个容器,各个物理机使用同样的容器镜像。
通常容器镜像存储通常是基于分层文件系统来实现,即容器镜像在物理机上以目录的形式呈现,需要通过目录共享技术(例如9pfs,virtiofs等)将物理机本地用于存放容器镜像的目录或者块设备共享给kata containers的轻量级虚拟机使用,但是无法实现物理机之间容器镜像的共享,需要在每个物理机分别存储容器镜像,造成物理机存储空间的浪费。
发明内容
本申请提供一种物理机共享容器镜像的方法、装置、设备及存储介质,用以解决现有技术中无法实现物理机之间容器镜像的共享,需要在每个物理机分别存储容器镜像,造成物理机存储空间的浪费的问题。
本申请的一个实施例提供一种物理机共享容器镜像的方法,包括:
响应于对容器镜像的拉取指令,确定预先挂载的分布式文件系统中是否存在所述容器镜像的镜像文件,其中共享容器镜像的各个物理机均挂载所述分布式文件系统;若所述分布式文件系统中不存在所述容器镜像的镜像文件,则拉取所述容器镜像的镜像文件,并将所述容器镜像的镜像文件存储到所述分布式文件系统中,以实现各个物理机共享分布式文件系统中存储的容器镜像的镜像文件,无需各物理机分别存储容器镜像的镜像文件,节省了各物理机的存储空间。
基于上述物理机共享容器镜像的方法,可选的,若所述分布式文件系统中存在所述容器镜像的镜像文件,则从所述分布式文件系统中获取所述容器镜像的镜像文件,以实现各个物理机共享分布式文件系统中存储的容器镜像的镜像文件,无需各物理机分别存储容器镜像的镜像文件,节省了各物理机的存储空间。
基于上述物理机共享容器镜像的方法,可选的,所述响应于对容器镜像的拉取指令,确定预先挂载的分布式文件系统中是否存在所述容器镜像的镜像文件之前,还包括:预先挂载同一分布式文件系统,并将用于存放容器镜像的镜像文件的路径配置为所述分布式文件系统的路径,以实现各个物理机共享分布式文件系统中存储的容器镜像的镜像文件,无需各物理机分别存储容器镜像的镜像文件,节省了各物理机的存储空间。
基于上述物理机共享容器镜像的方法,可选的,所述拉取所述容器镜像的镜像文件,并将所述容器镜像的镜像文件存储到所述分布式文件系统中之后,还包括:响应于所述容器镜像对应容器的启动运行指令,生成所述镜像文件的快照文件;将所述快照文件存储到所述分布式文件系统上,以实现在对应的容器运行过程中,将对所述容器镜像的镜像文件的修改保存到对应的快照文件中,而不直接修改各个物理机共享的原始的镜像文件,提高了各个物理机共享容器镜像的可靠性。
基于上述物理机共享容器镜像的方法,可选的,所述将所述快照文件存储到所述分布式文件系统上之后,还包括:将所述快照文件虚拟成轻量级虚拟机的磁盘并挂载给所述轻量级虚拟机,以实现在对应的容器运行过程中,将对所述容器镜像的镜像文件的修改保存到对应的快照文件中,而不直接修改各个物理机共享的原始的镜像文件,提高了各个物理机共享容器镜像的可靠性。
基于上述物理机共享容器镜像的方法,可选的,所述将所述快照文件虚拟成轻量级虚拟机的磁盘并挂载给所述轻量级虚拟机之后,还包括:在所述容器镜像对应容器运行过程中,响应于对所述容器镜像的修改操作,根据对所述容器镜像的修改操作更新所述分布式文件系统上的所述快照文件,以实现在对应的容器运行过程中,将对所述容器镜像的镜像文件的修改保存到对应的快照文件中,而不直接修改各个物理机共享的原始的镜像文件,提高了各个物理机共享容器镜像的可靠性。
基于上述物理机共享容器镜像的方法,可选的,所述将所述快照文件虚拟成轻量级虚拟机的磁盘并挂载给所述轻量级虚拟机之后,还包括:响应于对所述容器的删除指令,将所述快照文件从所述分布式文件系统上删除,以减少分布式文件系统上存储空间的浪费。
基于上述物理机共享容器镜像的方法,可选的,拉取所述容器镜像的qcow2镜像文件;将所述qcow2镜像文件存储到所述分布式文件系统中,以基于qcow2实现拉取容器镜像。
基于上述物理机共享容器镜像的方法,可选的,所述快照文件为qcow2快照文件。
本申请的另一个实施例提供一种物理机共享容器镜像的装置,包括:
分布式文件系统管理模块,用于响应于对容器镜像的拉取指令,确定预先挂载的分布式文件系统中是否存在所述容器镜像的镜像文件,其中共享容器镜像的各个物理机均挂载所述分布式文件系统;
镜像共享模块,用于若所述分布式文件系统中不存在所述容器镜像的镜像文件,则拉取所述容器镜像的镜像文件,并将所述容器镜像的镜像文件存储到所述分布式文件系统中。
本申请的另一个实施例提供一种电子设备,包括:
至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述所述的物理机共享容器镜像的方法。
本申请的另一个实施例提供一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行上述所述的物理机共享容器镜像的方法。
上述申请中的一个实施例具有如下优点或有益效果:
通过共享容器镜像的各个物理机均挂载同一所述分布式文件系统,响应于对容器镜像的拉取指令,确定预先挂载的分布式文件系统中是否存在所述容器镜像的镜像文件,若所述分布式文件系统中不存在所述容器镜像的镜像文件,则拉取所述容器镜像的镜像文件,并将所述容器镜像的镜像文件存储到所述分布式文件系统中,从而将容器镜像的镜像文件通过分布式文件系统共享给其他物理机,只需在分布式文件系统中存储容器镜像的镜像文件,实现各个物理机共享分布式文件系统中存储的容器镜像的镜像文件,无需各物理机分别存储容器镜像的镜像文件,节省了各物理机的存储空间。
上述可选方式所具有的其他效果将在下文中结合具体实施例加以说明。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是可以实现本申请实施例的物理机共享容器镜像的方法的场景图;
图2是根据本申请第一实施例的物理机共享容器镜像的方法流程图;
图3是根据本申请第二实施例的物理机共享容器镜像的方法流程图;
图4是根据本申请的物理机共享容器镜像的方法的系统框架示意图;
图5是根据本申请第三实施例的物理机共享容器镜像的装置的结构示意图;
图6是用来实现本申请实施例的物理机共享容器镜像的方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
本申请所涉及的术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。在以下各实施例的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。
Containerd是一个开源的容器服务器,本申请具体应用于上层基于containerd提供容器运行时接口,下层基于kata containers实现轻量虚拟化功能的场景。本申请的物理机共享容器镜像的方法应用于如图1所示的系统架构的场景,物理机共享容器镜像的方法的执行主体为该系统架构中需要共享容器镜像的各台物理机。如图1所示,该系统架构包括多台物理机11,12,13和物理机外部的容器镜像源20。其中,每台物理机上可以有多个轻量级虚拟机,一个轻量级虚拟机可以运行多个容器,也就是一台物理机上可以启动多个容器,各个物理机使用同样的容器镜像。各台物理机可以通过网络与外部的容器镜像源交互,以从容器镜像源拉取所需的容器镜像并运行容器。另外,图1中物理机的数量,容器镜像源的数量,以及每台物理机上轻量级虚拟机的数量仅仅是示意性的,此处对于系统架构中物理机的数量以及容器镜像源的数量不做具体限定。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
本申请第一实施例提供了一种物理机共享容器镜像的方法。图2是根据本申请第一实施例的物理机共享容器镜像的方法流程图,如图2所示,该方法具体步骤如下:
步骤S101、响应于对容器镜像的拉取指令,确定预先挂载的分布式文件系统中是否存在容器镜像的镜像文件,其中共享容器镜像的各个物理机均挂载分布式文件系统。
本实施例中,为了实现各个物理机之间容器镜像的共享,需要共享容器镜像的物理机挂载有同一分布式文件系统,也就是各个物理机可以共享同一分布式文件系统中存储的文件。
对于任一物理机,在需要拉取容器镜像时,首先查找已挂载的分布式文件系统中是否已经存储了待拉取的容器镜像的镜像文件;如果分布式文件系统中已经存储了待拉取的容器镜像的镜像文件,则执行步骤S103;如果分布式文件系统中还未存储待拉取的容器镜像的镜像文件,则执行步骤S102。
步骤S102、若分布式文件系统中不存在容器镜像的镜像文件,则拉取容器镜像的镜像文件,并将容器镜像的镜像文件存储到分布式文件系统中。
如果在分布式文件系统中查找到了待拉取的容器镜像的镜像文件,说明该物理机当前所需要的容器镜像的镜像文件还未被该物理机和其他物理机拉取过。
该步骤中,该物理机从容器镜像源拉取该容器镜像的镜像文件,并存储到分布式文件系统中,以将拉取的容器镜像的镜像文件共享给其他物理机。
步骤S103、若分布式文件系统中存在容器镜像的镜像文件,则从分布式文件系统中获取容器镜像的镜像文件。
如果在分布式文件系统中查找到了待拉取的容器镜像的镜像文件,说明该物理机当前所需要的容器镜像的镜像文件已经被拉取到了分布式文件系统中,可能是其他物理机拉取了该容器镜像的镜像文件并存储到了分布式文件系统中,也可能是该物理机拉取过了该容器镜像的镜像文件并存储到了分布式文件系统中,总之该物理机所需的容器镜像的镜像文件已经存储在了分布式文件系统中。
该步骤中,该物理机直接从分布式文件系统中获取该容器镜像的镜像文件即可。
本实施例通过共享容器镜像的各个物理机均挂载同一分布式文件系统,响应于对容器镜像的拉取指令,确定预先挂载的分布式文件系统中是否存在容器镜像的镜像文件,若分布式文件系统中不存在容器镜像的镜像文件,则拉取容器镜像的镜像文件,并将容器镜像的镜像文件存储到分布式文件系统中,从而将容器镜像的镜像文件通过分布式文件系统共享给其他物理机,只需在分布式文件系统中存储容器镜像的镜像文件,实现各个物理机共享分布式文件系统中存储的容器镜像的镜像文件,无需各物理机分别存储容器镜像的镜像文件,节省了各物理机的存储空间。
图3是根据本申请第二实施例的物理机共享容器镜像的方法流程图。在本申请第一实施例的基础上,本申请的第二实施例中,需要共享容器镜像的各个物理机预先挂载同一分布式文件系统,并将用于存放容器镜像的镜像文件的路径配置为分布式文件系统的路径,以实现各个物理机之间容器镜像的共享。如图3所示,该方法具体步骤如下:
步骤S201、预先挂载同一分布式文件系统,并将用于存放容器镜像的镜像文件的路径配置为分布式文件系统的路径。
本实施例中,为了实现各个物理机之间容器镜像的共享,需要共享的各物理机预先挂载同一分布式文件系统,以使各个物理机可以共享同一分布式文件系统中存储的文件。
具体的,在各个物理机上挂载具有同一预设路径的分布式文件系统,以实现各个物理机共享同一分布式文件系统;然后将用于存放容器镜像的镜像文件的路径配置为该分布式文件系统的路径,也就是将用于存放容器镜像的镜像文件的路径配置为预设路径。
其中,预设路径是预先指定一个路径,可以由技术人员根据实际应用场景进行设定,本实施例此处不做具体限定。
另外,分布式文件系统可以是Hadoop分布式文件系统(Hadoop Distributed FileSystem,简称HDFS),或者其他现有的任意一种分布式文件系统,本实施例此处不做具体限定。
步骤S202、响应于对容器镜像的拉取指令,确定预先挂载的分布式文件系统中是否存在容器镜像的镜像文件。
本实施例中,共享容器镜像的各个物理机均挂载了同一分布式文件系统。
物理机在需要拉取容器镜像时,首先查找已挂载的分布式文件系统中是否已经存储了待拉取的容器镜像的镜像文件;如果分布式文件系统中已经存储了待拉取的容器镜像的镜像文件,则执行步骤S204;如果分布式文件系统中还未存储待拉取的容器镜像的镜像文件,则执行步骤S203。
步骤S203、若分布式文件系统中不存在容器镜像的镜像文件,则拉取容器镜像的镜像文件,并将容器镜像的镜像文件存储到分布式文件系统中。
如果在分布式文件系统中查找到了待拉取的容器镜像的镜像文件,说明该物理机当前所需要的容器镜像的镜像文件还未被该物理机和其他物理机拉取过。
该步骤中,该物理机从容器镜像源拉取该容器镜像的镜像文件,并存储到分布式文件系统中,以将拉取的容器镜像的镜像文件共享给其他物理机。
本实施例中,拉取容器镜像的镜像文件并将容器镜像的镜像文件存储到分布式文件系统中,具体可以采用如下方式实现:
拉取容器镜像的qcow2镜像文件,将qcow2镜像文件存储到分布式文件系统中。
其中,qcow2是集各种技术为一体的超级镜像格式,支持内部快照、加密、压缩等一系列功能,访问性能也不断提高。
具体的,物理机上可以创建一个镜像代理虚拟机,该镜像代理虚拟机的磁盘可以通过所在物理机上的qcow2文件虚拟出来,例如可以通过virtio-blk或者virtio-scsi等技术虚拟磁盘。
在需要拉取容器镜像的qcow2镜像文件时,物理机创建qcow2文件,并启动带有qcow2文件的虚拟磁盘的镜像代理虚拟机,将qcow2文件的虚拟磁盘挂载到镜像代理虚拟机中指定的第一镜像目录。如图4所示,物理机通过远程过程调用(Remote Procedure Call,简称RPC)通知镜像代理虚拟机内的镜像代理服务从容器镜像源拉取容器镜像的qcow2镜像文件,并将拉取到的qcow2镜像文件存入镜像代理虚拟机中指定的第一镜像目录,也就是将qcow2镜像文件拉入到qcow2文件对应的磁盘的目录。然后,物理机将qcow2镜像文件存储到分布式文件系统中。另外,图4中物理机的数量,一台物理机中轻量级虚拟机的数量仅仅是示意性的,此处不做具体限定。
步骤S204、若分布式文件系统中存在容器镜像的镜像文件,则从分布式文件系统中获取容器镜像的镜像文件。
示例性的,分布式文件系统中存储的容器镜像的镜像文件可以是qcow2文件。
如果在分布式文件系统中查找到了待拉取的容器镜像的镜像文件,说明该物理机当前所需要的容器镜像的镜像文件已经被拉取到了分布式文件系统中,可能是其他物理机拉取了该容器镜像的镜像文件并存储到了分布式文件系统中,也可能是该物理机拉取过了该容器镜像的镜像文件并存储到了分布式文件系统中,总之该物理机所需的容器镜像的镜像文件已经存储在了分布式文件系统中。
该步骤中,该物理机直接从分布式文件系统中获取该容器镜像的镜像文件即可。
作为一种可能的实施方式,物理机在获取到所需容器镜像的镜像文件之后,还可以通过步骤S205-S208,生成镜像文件的快照文件,将快照文件存储到分布式文件系统,并将快照文件虚拟成轻量级虚拟机的磁盘并挂载给轻量级虚拟机,这样,可以实现在对应的容器运行过程中,将对容器镜像的镜像文件的修改保存到对应的快照文件中,而不直接修改各个物理机共享的原始的镜像文件,提高了各个物理机共享容器镜像的可靠性。
步骤S205、响应于容器镜像对应容器的启动运行指令,生成镜像文件的快照文件,将快照文件存储到分布式文件系统上。
在容器镜像对应容器的启动运行时,物理机根据获取到的容器镜像的镜像文件,生成镜像文件的快照文件,并将快照文件存储到分布式文件系统上。
可选的,镜像文件可以是qcow2镜像文件,快照文件为对qcow2镜像文件做快照得到的qcow2快照文件。
步骤S206、将快照文件虚拟成轻量级虚拟机的磁盘并挂载给轻量级虚拟机。
在将镜像文件的快照文件存储到分布式文件系统上之后,物理机将快照文件虚拟成轻量级虚拟机的磁盘并挂载给轻量级虚拟机。
示例性的,如图4所示,物理机可以通过virtio-blk或者virtio-scsi等技术将容器镜像的快照文件虚拟成轻量级虚拟机的磁盘,并将快照文件虚拟的磁盘挂载到轻量级虚拟机中指定的第二镜像目录,以使得轻量级虚拟机可以使用该容器镜像的快照文件。通过virtio-blk或者virtio-scsi等技术将快照文件虚拟成轻量级虚拟机的磁盘并挂载给轻量级虚拟机,相较于9pfs目录共享技术,能够提高容器的IO速度。
步骤S207、在容器镜像对应容器运行过程中,响应于对容器镜像的修改操作,根据对容器镜像的修改操作更新分布式文件系统上的快照文件。
由于分布式文件系统中容器镜像的镜像文件由各个物理机共享,因此,不允许任意一台物理机随意修改容器镜像的镜像文件。
本实施例中,在容器镜像对应容器运行过程中,在需要修改容器镜像时,响应于对容器的镜像修改操作,不直接修改容器镜像文件,而是根据对容器的修改操作更新分布式文件系统上的快照文件;也即是,根据对容器的修改操作,将对容器镜像的镜像文件的修改保存到对应的快照文件中,而不对容器镜像的原始的镜像文件做修改。
步骤S208、响应于对容器的删除指令,将快照文件从分布式文件系统上删除。
在需要删除一个容器时,将分布式文件系统上该容器对应的快照文件删除,以减少分布式文件系统上存储空间的浪费。
本实施例通过预先挂载同一分布式文件系统,并将用于存放容器镜像的镜像文件的路径配置为分布式文件系统的路径,实现各个物理机均挂载同一分布式文件系统;进一步通过响应于对容器镜像的拉取指令,确定预先挂载的分布式文件系统中是否存在容器镜像的镜像文件,若分布式文件系统中不存在容器镜像的镜像文件,则拉取容器镜像的镜像文件,并将容器镜像的镜像文件存储到分布式文件系统中,从而将容器镜像的镜像文件通过分布式文件系统共享给其他物理机,只需在分布式文件系统中存储容器镜像的镜像文件,实现各个物理机共享分布式文件系统中存储的容器镜像的镜像文件,无需各物理机分别存储容器镜像的镜像文件,节省了各物理机的存储空间;进一步的,物理机在获取到所需容器镜像的镜像文件之后,通过生成镜像文件的快照文件,将快照文件存储到分布式文件系统,并将快照文件虚拟成轻量级虚拟机的磁盘并挂载给轻量级虚拟机,实现在对应的容器运行过程中,将对容器镜像的镜像文件的修改保存到对应的快照文件中,而不直接修改各个物理机共享的原始的镜像文件,提高了各个物理机共享容器镜像的可靠性。
本申请第三实施例提供了一种物理机共享容器镜像的装置。图5是根据本申请第三实施例的物理机共享容器镜像的装置的结构示意图。如图5所示,该物理机共享容器镜像的装置30包括:分布式文件系统管理模块301和镜像共享模块302。
具体的,分布式文件系统管理模块301用于响应于对容器镜像的拉取指令,确定预先挂载的分布式文件系统中是否存在容器镜像的镜像文件,其中共享容器镜像的各个物理机均挂载分布式文件系统。
镜像共享模块302用于若分布式文件系统中不存在容器镜像的镜像文件,则拉取容器镜像的镜像文件,并将容器镜像的镜像文件存储到分布式文件系统中。
另外,镜像共享模块302还用于若分布式文件系统中存在容器镜像的镜像文件,则从分布式文件系统中获取容器镜像的镜像文件。
本申请实施例提供的装置可以具体用于执行上述第一实施例所提供的方法实施例,具体功能此处不再赘述。
本实施例通过共享容器镜像的各个物理机均挂载同一分布式文件系统,响应于对容器镜像的拉取指令,确定预先挂载的分布式文件系统中是否存在容器镜像的镜像文件,若分布式文件系统中不存在容器镜像的镜像文件,则拉取容器镜像的镜像文件,并将容器镜像的镜像文件存储到分布式文件系统中,从而将容器镜像的镜像文件通过分布式文件系统共享给其他物理机,只需在分布式文件系统中存储容器镜像的镜像文件,实现各个物理机共享分布式文件系统中存储的容器镜像的镜像文件,无需各物理机分别存储容器镜像的镜像文件,节省了各物理机的存储空间。
本申请第四实施例提供了一种物理机共享容器镜像的装置。在上述第三实施例的基础上,本实施例中,分布式文件系统管理模块还用于:
预先挂载同一分布式文件系统,并将用于存放容器镜像的镜像文件的路径配置为分布式文件系统的路径。
可选的,镜像共享模块还用于:
响应于容器镜像对应容器的启动运行指令,生成镜像文件的快照文件;将快照文件存储到分布式文件系统上。
可选的,镜像共享模块还用于:
将快照文件虚拟成轻量级虚拟机的磁盘并挂载给轻量级虚拟机。
可选的,镜像共享模块还用于:
在容器镜像对应容器运行过程中,响应于对容器镜像的修改操作,根据对容器镜像的修改操作更新分布式文件系统上的快照文件。
可选的,镜像共享模块还用于:
响应于对容器的删除指令,将快照文件从分布式文件系统上删除。
可选的,镜像共享模块还用于:
拉取容器镜像的qcow2镜像文件;将qcow2镜像文件存储到分布式文件系统中。
可选的,快照文件为qcow2快照文件。
本申请实施例提供的装置可以具体用于执行上述第二实施例所提供的方法实施例,具体功能此处不再赘述。
本实施例通过预先挂载同一分布式文件系统,并将用于存放容器镜像的镜像文件的路径配置为分布式文件系统的路径,实现各个物理机均挂载同一分布式文件系统;进一步通过响应于对容器镜像的拉取指令,确定预先挂载的分布式文件系统中是否存在容器镜像的镜像文件,若分布式文件系统中不存在容器镜像的镜像文件,则拉取容器镜像的镜像文件,并将容器镜像的镜像文件存储到分布式文件系统中,从而将容器镜像的镜像文件通过分布式文件系统共享给其他物理机,只需在分布式文件系统中存储容器镜像的镜像文件,实现各个物理机共享分布式文件系统中存储的容器镜像的镜像文件,无需各物理机分别存储容器镜像的镜像文件,节省了各物理机的存储空间;进一步的,物理机在获取到所需容器镜像的镜像文件之后,通过生成镜像文件的快照文件,将快照文件存储到分布式文件系统,并将快照文件虚拟成轻量级虚拟机的磁盘并挂载给轻量级虚拟机,实现在对应的容器运行过程中,将对容器镜像的镜像文件的修改保存到对应的快照文件中,而不直接修改各个物理机共享的原始的镜像文件,提高了各个物理机共享容器镜像的可靠性。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图6所示,是根据本申请实施例的物理机共享容器镜像的方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图6所示,该电子设备包括:一个或多个处理器Y01、存储器Y02,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图6中以一个处理器Y01为例。
存储器Y02即为本申请所提供的非瞬时计算机可读存储介质。其中,存储器存储有可由至少一个处理器执行的指令,以使至少一个处理器执行本申请所提供的物理机共享容器镜像的方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的物理机共享容器镜像的方法。
存储器Y02作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的物理机共享容器镜像的方法对应的程序指令/模块(例如,附图5所示的分布式文件系统管理模块301和镜像共享模块302)。处理器Y01通过运行存储在存储器Y02中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的物理机共享容器镜像的方法。
存储器Y02可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据物理机共享容器镜像的电子设备的使用所创建的数据等。此外,存储器Y02可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器Y02可选包括相对于处理器Y01远程设置的存储器,这些远程存储器可以通过网络连接至物理机共享容器镜像的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
物理机共享容器镜像的方法的电子设备还可以包括:输入装置Y03和输出装置Y04。处理器Y01、存储器Y02、输入装置Y03和输出装置Y04可以通过总线或者其他方式连接,图6中以通过总线连接为例。
输入装置Y03可接收输入的数字或字符信息,以及产生与物理机共享容器镜像的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置Y04可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
本实施例通过共享容器镜像的各个物理机均挂载同一分布式文件系统,响应于对容器镜像的拉取指令,确定预先挂载的分布式文件系统中是否存在容器镜像的镜像文件,若分布式文件系统中不存在容器镜像的镜像文件,则拉取容器镜像的镜像文件,并将容器镜像的镜像文件存储到分布式文件系统中,从而将容器镜像的镜像文件通过分布式文件系统共享给其他物理机,只需在分布式文件系统中存储容器镜像的镜像文件,实现各个物理机共享分布式文件系统中存储的容器镜像的镜像文件,无需各物理机分别存储容器镜像的镜像文件,节省了各物理机的存储空间。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

Claims (15)

1.一种物理机共享容器镜像的方法,其特征在于,包括:
响应于对容器镜像的拉取指令,确定预先挂载的分布式文件系统中是否存在所述容器镜像的镜像文件,其中共享容器镜像的各个物理机均挂载所述分布式文件系统;
若所述分布式文件系统中不存在所述容器镜像的镜像文件,则拉取所述容器镜像的镜像文件,并将所述容器镜像的镜像文件存储到所述分布式文件系统中。
2.根据权利要求1所述的方法,其特征在于,所述响应于对容器镜像的拉取指令,确定预先挂载的分布式文件系统中是否存在所述容器镜像的镜像文件之后,还包括:
若所述分布式文件系统中存在所述容器镜像的镜像文件,则从所述分布式文件系统中获取所述容器镜像的镜像文件。
3.根据权利要求1或2所述的方法,其特征在于,所述响应于对容器镜像的拉取指令,确定预先挂载的分布式文件系统中是否存在所述容器镜像的镜像文件之前,还包括:
预先挂载同一分布式文件系统,并将用于存放容器镜像的镜像文件的路径配置为所述分布式文件系统的路径。
4.根据权利要求1所述的方法,其特征在于,所述拉取所述容器镜像的镜像文件,并将所述容器镜像的镜像文件存储到所述分布式文件系统中之后,还包括:
响应于所述容器镜像对应容器的启动运行指令,生成所述镜像文件的快照文件;
将所述快照文件存储到所述分布式文件系统上。
5.根据权利要求4所述的方法,其特征在于,所述将所述快照文件存储到所述分布式文件系统上之后,还包括:
将所述快照文件虚拟成轻量级虚拟机的磁盘并挂载给所述轻量级虚拟机。
6.根据权利要求5所述的方法,其特征在于,所述将所述快照文件虚拟成轻量级虚拟机的磁盘并挂载给所述轻量级虚拟机之后,还包括:
在所述容器镜像对应容器运行过程中,响应于对所述容器镜像的修改操作,根据对所述容器镜像的修改操作更新所述分布式文件系统上的所述快照文件。
7.根据权利要求5所述的方法,其特征在于,所述将所述快照文件虚拟成轻量级虚拟机的磁盘并挂载给所述轻量级虚拟机之后,还包括:
响应于对所述容器的删除指令,将所述快照文件从所述分布式文件系统上删除。
8.根据权利要求4-7任一项所述的方法,其特征在于,所述拉取所述容器镜像的镜像文件,并将所述容器镜像的镜像文件存储到所述分布式文件系统中,包括:
拉取所述容器镜像的qcow2镜像文件;
将所述qcow2镜像文件存储到所述分布式文件系统中。
9.根据权利要求8所述的方法,其特征在于,所述快照文件为qcow2快照文件。
10.一种物理机共享容器镜像的装置,其特征在于,包括:
分布式文件系统管理模块,用于响应于对容器镜像的拉取指令,确定预先挂载的分布式文件系统中是否存在所述容器镜像的镜像文件,其中共享容器镜像的各个物理机均挂载所述分布式文件系统;
镜像共享模块,用于若所述分布式文件系统中不存在所述容器镜像的镜像文件,则拉取所述容器镜像的镜像文件,并将所述容器镜像的镜像文件存储到所述分布式文件系统中。
11.根据权利要求10所述的装置,其特征在于,所述镜像共享模块还用于:
若所述分布式文件系统中存在所述容器镜像的镜像文件,则从所述分布式文件系统中获取所述容器镜像的镜像文件。
12.根据权利要求10或11所述的装置,其特征在于,所述分布式文件系统管理模块还用于:
预先挂载同一分布式文件系统,并将用于存放容器镜像的镜像文件的路径配置为所述分布式文件系统的路径。
13.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-9中任一项所述的方法。
14.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-9中任一项所述的方法。
15.一种物理机共享容器镜像的方法,其特征在于,包括:
预先挂载同一分布式文件系统,并将用于存放容器镜像的路径配置为所述分布式文件系统的路径,其中共享容器镜像的各个物理机均挂载所述分布式文件系统;
在需要拉取容器镜像时,将容器镜像拉取到所述分布式文件系统中。
CN201910926465.2A 2019-09-27 2019-09-27 物理机共享容器镜像的方法、装置、设备及存储介质 Active CN110704162B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910926465.2A CN110704162B (zh) 2019-09-27 2019-09-27 物理机共享容器镜像的方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910926465.2A CN110704162B (zh) 2019-09-27 2019-09-27 物理机共享容器镜像的方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN110704162A true CN110704162A (zh) 2020-01-17
CN110704162B CN110704162B (zh) 2022-09-20

Family

ID=69196861

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910926465.2A Active CN110704162B (zh) 2019-09-27 2019-09-27 物理机共享容器镜像的方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN110704162B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111522602A (zh) * 2020-04-22 2020-08-11 展讯通信(上海)有限公司 通信装置的启动方法
CN111610976A (zh) * 2020-04-08 2020-09-01 曙光信息产业(北京)有限公司 异构应用移植方法、装置和计算机设备
CN112799780A (zh) * 2021-01-15 2021-05-14 中国银联股份有限公司 容器镜像共享方法、装置、服务器、设备及介质
WO2024045541A1 (zh) * 2022-08-31 2024-03-07 华为技术有限公司 启动容器的方法、装置、计算节点、共享存储设备
WO2024066904A1 (zh) * 2022-09-29 2024-04-04 华为技术有限公司 一种容器创建方法、系统及节点

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105260265A (zh) * 2015-09-23 2016-01-20 浪潮(北京)电子信息产业有限公司 一种融合快照实现方法及系统
CN105740048A (zh) * 2016-01-26 2016-07-06 华为技术有限公司 一种镜像管理方法、装置及系统
CN107431720A (zh) * 2015-12-31 2017-12-01 华为技术有限公司 镜像部署方法和装置
CN109344006A (zh) * 2018-09-26 2019-02-15 郑州云海信息技术有限公司 一种镜像管理方法及镜像管理模块

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105260265A (zh) * 2015-09-23 2016-01-20 浪潮(北京)电子信息产业有限公司 一种融合快照实现方法及系统
CN107431720A (zh) * 2015-12-31 2017-12-01 华为技术有限公司 镜像部署方法和装置
CN105740048A (zh) * 2016-01-26 2016-07-06 华为技术有限公司 一种镜像管理方法、装置及系统
CN109344006A (zh) * 2018-09-26 2019-02-15 郑州云海信息技术有限公司 一种镜像管理方法及镜像管理模块

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111610976A (zh) * 2020-04-08 2020-09-01 曙光信息产业(北京)有限公司 异构应用移植方法、装置和计算机设备
CN111610976B (zh) * 2020-04-08 2023-04-07 中科曙光(南京)计算技术有限公司 异构应用移植方法、装置和计算机设备
CN111522602A (zh) * 2020-04-22 2020-08-11 展讯通信(上海)有限公司 通信装置的启动方法
CN112799780A (zh) * 2021-01-15 2021-05-14 中国银联股份有限公司 容器镜像共享方法、装置、服务器、设备及介质
WO2024045541A1 (zh) * 2022-08-31 2024-03-07 华为技术有限公司 启动容器的方法、装置、计算节点、共享存储设备
WO2024066904A1 (zh) * 2022-09-29 2024-04-04 华为技术有限公司 一种容器创建方法、系统及节点

Also Published As

Publication number Publication date
CN110704162B (zh) 2022-09-20

Similar Documents

Publication Publication Date Title
CN110704162B (zh) 物理机共享容器镜像的方法、装置、设备及存储介质
US9292215B2 (en) Managing virtual hard disk snapshots
JP7167222B2 (ja) アプレットデータの取得方法、装置、機器及び記憶媒体
CN111159592B (zh) 搜索结果页生成方法、装置、电子设备及存储介质
CN110659246B (zh) 基于容器的文件挂载方法、装置及电子设备
CN111666585A (zh) 子应用访问的方法、装置、电子设备以及可读存储介质
CN111694857B (zh) 存储资源数据的方法、装置、电子设备及计算机可读介质
US20210191780A1 (en) Method and apparatus for processing development machine operation task, device and storage medium
CN111813742A (zh) 文件管理方法、装置、设备和介质
US11294651B2 (en) Code execution method, device, and rendering apparatus
CN111881387A (zh) 用于小程序的数据处理方法、装置、设备和介质
CN112084395A (zh) 搜索方法、搜索装置、电子设备和存储介质
US9058239B2 (en) Hypervisor subpartition as concurrent upgrade
CN111966471B (zh) 访问方法、装置、电子设备及计算机存储介质
CN112565356B (zh) 数据存储方法、装置以及电子设备
CN110545324A (zh) 数据处理方法、装置、系统、网络设备和存储介质
CN111966877B (zh) 前端服务方法、装置、设备及存储介质
CN111563253B (zh) 智能合约运行方法、装置、设备及存储介质
CN111767059B (zh) 深度学习模型的部署方法、装置、电子设备和存储介质
CN111782357A (zh) 标签控制方法及装置、电子设备和可读存储介质
US9588831B2 (en) Preventing recurrence of deterministic failures
CN110908675A (zh) 运行环境获取方法、装置和电子设备
CN115576565A (zh) 应用程序的部署方法、装置、电子设备及存储介质
US11243650B2 (en) Accessing window of remote desktop application
CN112379945A (zh) 用于运行应用的方法、装置、设备以及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant