CN108604231B - 镜像处理方法以及计算设备 - Google Patents

镜像处理方法以及计算设备 Download PDF

Info

Publication number
CN108604231B
CN108604231B CN201680003034.3A CN201680003034A CN108604231B CN 108604231 B CN108604231 B CN 108604231B CN 201680003034 A CN201680003034 A CN 201680003034A CN 108604231 B CN108604231 B CN 108604231B
Authority
CN
China
Prior art keywords
mirror
layer
mirror image
image
copy
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.)
Active
Application number
CN201680003034.3A
Other languages
English (en)
Other versions
CN108604231A (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.)
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN108604231A publication Critical patent/CN108604231A/zh
Application granted granted Critical
Publication of CN108604231B publication Critical patent/CN108604231B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/51Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/24Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Image Processing (AREA)
  • Processing Or Creating Images (AREA)
  • Facsimiles In General (AREA)

Abstract

本申请提供了镜像处理方法,用于减轻镜像集合中各镜像的访问压力。该镜像处理方法包括:获取镜像集合中各镜像层的被访问次数;确定一个或多个第一镜像层,第一镜像层是镜像集合中被访问次数大于第一阈值,且具有两个或两个以上的子镜像层的镜像层;生成第一镜像层的副本;将第一镜像层的部分子镜像层修改为第一镜像层的副本的子镜像层。

Description

镜像处理方法以及计算设备
技术领域
本发明涉及计算机技术领域,尤其涉及镜像处理方法以及用于该镜像处理方法的计算设备。
背景技术
容器(英文:container)技术是一种基于操作系统的轻量级虚拟技术,容器运行于操作系统之上的用户空间,一个主机上的容器共用能够操作系统内核。容器技术的核心之一即镜像(英文:image)的使用。
容器技术中使用的镜像由镜像层组成,每一个镜像层包括在该镜像层的父镜像层(英文:parent image layer)的基础上进行的各种修改,因此一个完整的镜像包括其所需的全部镜像层。用户可以制作并发布自己的镜像,也可以从镜像仓库中下载所需的镜像,将镜像下载至主机上之后,根据下载的镜像可以启动该镜像对应的容器。
用户在访问某个镜像时,需要访问该镜像所包括的所有镜像层,以获得完整的镜像数据。当某个镜像层的子镜像层数目过多时,该镜像层的访问压力会变得很大,影响整个镜像的性能。
发明内容
本申请提供了镜像处理方法,用于减轻镜像集合中各镜像的访问压力。本申请还提供了相关的计算设备。
本申请第一方面提供了一种镜像处理方法,适用于部署有镜像集合的计算设备。其中,镜像集合包括基础镜像,以及通过对基础镜像叠加P个镜像层得到的镜像,P为正整数。每个镜像层具有父镜像层。该镜像处理方法包括:获取镜像集合中各镜像层的被访问次数。根据各镜像层的被访问次数确定第一镜像层,其中第一镜像层的被访问次数大于第一阈值。生成第一镜像层的副本。将第一镜像层的子镜像层修改为第一镜像层的副本的子镜像层。被修改的子镜像层可以是第一镜像层的子镜像层中的一部分。
通过这样的方法,使得被修改的子镜像层的父镜像层由第一镜像层变为第一镜像层的副本,当用户再次访问该被修改的子镜像层时,会访问到第一镜像层的副本,而不会再访问到第一镜像层。这样就实现了将第一镜像层的部分访问流量分流到第一镜像层的副本上,减少了第一镜像层的访问压力。
可选的,镜像集合中每个镜像层具有镜像层ID,每个镜像层还记录有父镜像层ID。计算设备具体通过如下方式生成第一镜像层的副本:拷贝第一镜像层,得到第一镜像层的副本,并为第一镜像层的副本配置镜像层ID。计算设备通过如下方式将第一镜像层的子镜像层修改为第一镜像层的副本的子镜像层:将第一镜像层的子镜像层的父镜像ID修改为第一镜像层的副本的镜像层ID。
可选的,计算设备在获取各镜像层的被访问次数之后,还根据各镜像层的被访问次数确定第二镜像层,第二镜像层的被访问次数小于第二阈值,且镜像集合中还包括第二镜像层的副本。计算设备将第二镜像层的子镜像层修改为第二镜像层的副本的子镜像层,然后删除第二镜像层。通过对访问压力小的镜像层进行删除操作,精简了镜像集合中的镜像层个数,简化了镜像集合的拓扑结构,节约了存储资源。
本申请第二方面提供了一种镜像处理方法,适用于在计算设备集群中作为管理节点的计算设备。其中,该计算设备集群还包括共享存储,计算设备集群中每个计算设备均可以访问共享存储上部署的镜像集合,镜像集合包括基础镜像,以及通过对基础镜像叠加P个镜像层得到的镜像,P为正整数。每个镜像层具有父镜像层。该镜像处理方法包括:获取镜像集合中各镜像层的被访问次数。根据各镜像层的被访问次数确定第三镜像层,其中第三镜像层的被访问次数大于第三阈值。生成第三镜像层的副本。将第三镜像层的子镜像层修改为第三镜像层的副本的子镜像层。被修改的子镜像层可以是第一镜像层的子镜像层中的一部分。
通过这样的方法,使得被修改的子镜像层的父镜像层由第三镜像层变为第三镜像层的副本,当用户再次访问该被修改的子镜像层时,会访问到第三镜像层的副本,而不会再访问到第三镜像层。这样就实现了将第三镜像层的部分访问流量分流到第三镜像层的副本上,减少了第三镜像层的访问压力。
可选的,作为管理节点的计算设备可以通过如下方式获取各镜像层的被访问次数:获取计算设备集群中各计算设备发送的访问信息,每个访问信息中包括计算设备集群中一个计算设备访问镜像集合中各镜像层的次数。统计计算设备集群中各计算设备发送的访问信息,即可得到镜像集合中各镜像层的被访问次数。
可选的,镜像集合中每个镜像层具有镜像层ID,每个镜像层还记录有父镜像层ID。计算设备通过如下方式生成第三镜像层的副本:拷贝第三镜像层,得到第三镜像层的副本,并为第三镜像层的副本配置镜像层ID。计算设备具体通过如下方式将第三镜像层的子镜像层修改为第三镜像层的副本的子镜像层:将第三镜像层的子镜像层的父镜像ID修改为第三镜像层的副本的镜像层ID。
可选的,计算设备在获取各镜像层的被访问次数之后,还根据各镜像层的被访问次数确定第四镜像层,第四镜像层的被访问次数小于第四阈值,且镜像集合中还包括第四镜像层的副本。计算设备将第四镜像层的子镜像层修改为第四镜像层的副本的子镜像层,然后删除第四镜像层。通过对访问压力小的镜像层进行删除操作,精简了镜像集合中的镜像层个数,简化了镜像集合的拓扑结构,节约了存储资源。
本申请第三方面提供了一种计算设备,该计算设备上部署有镜像集合。其中,镜像集合包括基础镜像,以及通过对基础镜像叠加P个镜像层得到的镜像,P为正整数。每个镜像层具有父镜像层。该计算设备包括处理器、存储器和通信接口,通过调用存储器中的程序代码,处理器用于:获取镜像集合中各镜像层的被访问次数。根据各镜像层的被访问次数确定第一镜像层,其中第一镜像层的被访问次数大于第一阈值。生成第一镜像层的副本。将第一镜像层的子镜像层修改为第一镜像层的副本的子镜像层。被修改的子镜像层可以是第一镜像层的子镜像层中的一部分。
通过将被修改的子镜像层的父镜像层由第一镜像层变为第一镜像层的副本,使得用户再次访问该被修改的子镜像层时,会访问到第一镜像层的副本,而不会再访问到第一镜像层。这样就实现了将第一镜像层的部分访问流量分流到第一镜像层的副本上,减少了第一镜像层的访问压力。
可选的,镜像集合中每个镜像层具有镜像层ID,每个镜像层还记录有父镜像层ID。处理器用于通过如下方式生成第一镜像层的副本:拷贝第一镜像层,得到第一镜像层的副本,并为第一镜像层的副本配置镜像层ID。处理器具体用于通过如下方式将第一镜像层的子镜像层修改为第一镜像层的副本的子镜像层:将第一镜像层的子镜像层的父镜像ID修改为第一镜像层的副本的镜像层ID。
可选的,处理器在获取各镜像层的被访问次数之后,还用于:根据各镜像层的被访问次数确定第二镜像层,第二镜像层的被访问次数小于第二阈值,且镜像集合中还包括第二镜像层的副本。将第二镜像层的子镜像层修改为第二镜像层的副本的子镜像层,然后删除第二镜像层。通过对访问压力小的镜像层进行删除操作,能够精简镜像集合中的镜像层个数,简化了镜像集合的拓扑结构,节约了存储资源。
本申请第四方面提供了一种计算设备,在计算设备集群中作为管理节点。其中,该计算设备集群还包括共享存储,计算设备集群中每个计算设备均可以访问共享存储上部署的镜像集合,镜像集合包括基础镜像,以及通过对基础镜像叠加P个镜像层得到的镜像,P为正整数。每个镜像层具有父镜像层。该计算设备包括处理器、存储器和通信接口,通过调用存储器中的程序代码,处理器用于:获取镜像集合中各镜像层的被访问次数。根据各镜像层的被访问次数确定第三镜像层,其中第三镜像层的被访问次数大于第三阈值。生成第三镜像层的副本。将第三镜像层的子镜像层修改为第三镜像层的副本的子镜像层。被修改的子镜像层可以是第一镜像层的子镜像层中的一部分。
通过将被修改的子镜像层的父镜像层由第三镜像层变为第三镜像层的副本,使得用户再次访问该被修改的子镜像层时,会访问到第三镜像层的副本,而不会再访问到第三镜像层。这样就实现了将第三镜像层的部分访问流量分流到第三镜像层的副本上,减少了第三镜像层的访问压力。
可选的,处理器用于通过如下方式获取各镜像层的被访问次数:获取计算设备集群中各计算设备发送的访问信息,每个访问信息中包括计算设备集群中一个计算设备访问镜像集合中各镜像层的次数。统计计算设备集群中各计算设备发送的访问信息,即可得到镜像集合中各镜像层的被访问次数。
可选的,镜像集合中每个镜像层具有镜像层ID,每个镜像层还记录有父镜像层ID。处理器用于通过如下方式生成第三镜像层的副本:拷贝第三镜像层,得到第三镜像层的副本,并为第三镜像层的副本配置镜像层ID。处理器具体用于通过如下方式将第三镜像层的子镜像层修改为第三镜像层的副本的子镜像层:将第三镜像层的子镜像层的父镜像ID修改为第三镜像层的副本的镜像层ID。
可选的,处理器在获取各镜像层的被访问次数之后,还用于:根据各镜像层的被访问次数确定第四镜像层,第四镜像层的被访问次数小于第四阈值,且镜像集合中还包括第四镜像层的副本。将第四镜像层的子镜像层修改为第四镜像层的副本的子镜像层,然后删除第四镜像层。通过处理器对访问压力小的镜像层进行删除操作,能够精简镜像集合中的镜像层个数,简化镜像集合的拓扑结构,节约存储资源。
本申请第五方面提供了一种存储介质,该存储介质中存储了程序代码,该程序代码被计算设备运行时,执行本申请第一方面提供的镜像处理方法。该存储介质包括但不限于快闪存储器、硬盘(英文:hard disk drive,缩写:HDD)或固态硬盘(英文:solid statedrive,缩写:SSD)。
本申请第六方面提供了一种计算机程序产品,该计算机程序产品包括指令,当该计算机程序产品被计算机执行时,该计算机执行上述第一方面所提供的镜像处理方法。该计算机程序产品可以为一个软件安装包。
附图说明
图1为镜像集合拓扑结构的一个示意图;
图2(a)为镜像集合的一种部署方式的示意图;
图2(b)为镜像集合的另一种部署方式的示意图;
图2(c)为镜像集合的另一种部署方式的示意图;
图3为本申请提供的镜像处理方法的一个实施例流程图;
图4为本申请提供的镜像处理方法的另一个实施例流程图;
图5为本申请提供的计算设备一个实施例结构图。
具体实施方式
本申请提供了镜像处理方法,用于减轻镜像集合中各镜像的访问压力。本申请还提供了相关的计算设备,以下将分别进行描述。
镜像是根文件系统(英文:root filesystem)的修改以及对应的容器运行时参数的有序集合,用于支撑容器的运行。镜像能够为容器提供文件系统视角,但是镜像不包括操作系统内核。多个镜像的集合称为镜像集合。
镜像集合包括基础镜像(英文:base image),镜像集合中的其他镜像则通过在基础镜像上叠加一个或多个镜像层来得到。用户在访问镜像集合时,一般是以镜像为粒度来进行访问。其中,叠加的镜像层中包括对镜像进行修改的增量数据。举例来说,在基础镜像上叠加P个镜像层,即可得到镜像A。该P个镜像层中保存有镜像A相对于基础镜像的增量数据。若用户要访问镜像A,则需要从该P个镜像层中的最上层镜像层开始,依次向下读取每个镜像层直至基础镜像,这样才完成了镜像A的访问。
镜像集合中的每个镜像层通过镜像标识(英文:缩写:ID)进行识别,每个镜像层ID全局唯一。镜像层ID可以由一个64字符的十六进制的字符串构成。此外,每个镜像的最上层镜像层还具有镜像标签(英文:tag),用于标识镜像的版本,例如Mysql:5.6。
镜像是只读文件,镜像的改写也通过镜像层的叠加来实现。举例来说,若用户要对镜像A进行改写,则在镜像A的基础上再叠加Q个镜像层得到镜像B。镜像B可以视为镜像A的一个新版本。该Q个镜像层中保存有镜像B相对于镜像A的增量数据。由于镜像B是基于镜像A得到,故镜像B继承了镜像A的功能,并通过该Q个镜像层新增功能或对镜像A的功能进行改进。
镜像层之间通过父子关系相关联。以镜像A相对于基础镜像所叠加的P个镜像层为例:该P个镜像层中相邻的两个镜像层之间具有父子关系。且按照从上往下的顺序,第N+1个镜像层是第N个镜像层的父镜像层,第N个镜像层是第N+1个镜像层的子镜像层,1≤N<P。此外,第P个镜像层的父镜像是基础镜像。
镜像集合中各镜像层之间通过父子关系相关联,得到了镜像集合的拓扑图,如图1所示。图1中两个镜像层之间的连线表示父子关系,连线下方的镜像层是上方的镜像层的父镜像层,连线上方的镜像层是下方的镜像层的子镜像层。从图1可以看出,镜像集合中的每个镜像层可以是某个/某些镜像层的父镜像层,也可以是某个镜像层的子镜像层。每个父镜像层可以有多个子镜像层,每个子镜像层只能有一个父镜像层。除了基础镜像之外,每个镜像层都有父镜像层。
镜像集合中各镜像层的父子关系需要通过一定的方式来记录。在一些方式中,每个镜像层均包括父镜像字段,用于记录自己的父镜像层的镜像层ID(为了便于描述,以下简称父镜像层ID)。这样根据镜像集合中每个镜像层的父镜像层ID,就能够获取整个镜像集合的拓扑图。
镜像集合还可以通过镜像层关系列表来记录各镜像层之间的父子关系。与使用父镜像层ID进行记录相比,使用镜像层关系列表来记录镜像层之间的父子关系更为简便直接,有利于提高父子关系的查询效率。
镜像集合还可以通过镜像关系列表来记录各镜像之间的父子关系。当需要查询该镜像集合中,是否有某一镜像的全部父镜像的情况下,使用关系列表来记录镜像之间的父子关系更为简便直接,有利于提高镜像的查询效率。
计算设备包括处理器、存储器、通信接口等硬件模块。处理器可以为中央处理器(英文:central processing unit,缩写:CPU),硬件芯片或CPU和硬件芯片的组合。存储器可以为易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM);也可以为非易失性存储器(英文:non-volatile memory),例如只读存储器(英文:read-only memory,缩写:ROM),快闪存储器(英文:flash memory),HDD或固态硬盘SSD;存储器也可以为包括上述种类的存储器的任意组合。
镜像集合可以部署在单台计算设备上,如图2(a)所示。其中,镜像集合保存在各个计算设备本地的存储器中,具体可以由计算设备通过网络从远程的镜像仓库(英文:imagehub)中下载到本地的存储器中,也可以由计算设备主动创建。计算设备的处理器运行存储器中的不同镜像,以支持不同类型的容器的使用。
镜像集合也可以如图2(b)部署在多台计算设备构成的集群中的每台计算设备本地的存储器中。图2(b)中,每台计算设备独立对本地保存的镜像进行处理,其处理方法与单台计算设备的处理方法基本相同,图2(b)所示的集群场景所适用的镜像处理方法可以参考图2(a)的相关描述。
在计算设备集群中,相同的镜像可以部署在不同计算设备上,使得该镜像对应的容器不会因为某一主机的故障而全部停止运行。随着集群规模的扩大,镜像集合中镜像个数的增多,各计算设备保存相同的镜像会浪费大量的存储空间。针对该问题,在本申请的还提供了另一场景,该场景中计算设备集群还包括共享存储,镜像集合不再部署在各计算设备内,而是部署在共享存储中,请参阅图2(c)。各计算设备通过通信接口访问共享存储,获取所需的镜像到本地的存储器中,以供容器的使用。使用共享存储能够减少各个计算设备保存相同的镜像造成的存储空间浪费。
共享存储可以是分布式文件系统,或是其他类型的共享存储设备,例如存储域网络(英文:storage area network,缩写:SAN)。各计算设备共同访问该共享存储,即每个计算设备均可以执行以下操作:访问共享存储中的镜像、通过网络从镜像仓库中下载镜像到共享存储、删除共享存储中的镜像、生成镜像的副本并将生成的镜像的副本添加到共享存储中、生成新的镜像添加到共享存储中等。
在图2(c)所示的场景中,由于各计算设备均可以访问共享存储,故在计算集群中还需要设置管理节点来对各个计算设备进行调度管理。
计算集群中的每个计算设备上部署有镜像信息列表,该镜像信息列表中记录有共享存储中所包括的镜像。当某个计算设备执行下载镜像到共享存储、删除共享存储中的镜像、生成新的镜像添加到共享存储中等操作导致共享存储中的镜像发生变化时,该计算设备更新本地的镜像信息列表,并通知管理节点更新集群中其它计算设备上的镜像信息列表,以保证各个计算设备本地保存的镜像信息列表的一致性。
图2(a)~图2(c)介绍了本申请的多个应用场景,下面将针对各场景介绍本申请提供的镜像处理方法。
单机场景下的镜像处理方法
下面将介绍适用于图2(a)所示的单台计算设备的镜像处理方法,请参阅图3,包括:
301、获取镜像集合中各镜像层的被访问次数。
用户可以通过各种指令对镜像集合中的镜像进行访问。用户在访问镜像时,会依次读取到该镜像所包括的镜像层,直至基础镜像。计算设备获取镜像集合中各镜像层的被访问次数。
计算设备可以是获取单位时间内各镜像层的被访问次数,即统计各镜像层的被访问频率。计算设备也可以统计指定时间段(如最近的某个时间段)内各镜像层的被访问次数。
302、确定一个或多个第一镜像层。
计算设备根据对镜像集合中各镜像层的被访问次数的统计结果,确定第一镜像层。其中,第一镜像层是镜像集合中被访问次数大于第一阈值,且具有两个或两个以上的子镜像层的镜像层。
镜像集合中满足条件1被访问次数大于第一阈值,且具有两个或两个以上的子镜像层”的镜像层可以是一个或多个,故第一镜像层的个数可以是一个,也可以是两个或两个以上。
对于镜像集合中的全部镜像层,第一阈值可以为全局统一的值。此外,由于访问镜像集合的子镜像层势必要访问该子镜像层所继承的所有镜像层,故处于底层的镜像层的被访问次数一定多于处于上层的镜像层。因此,第一阈值也可以不是全局统一的值,可以为不同的镜像层设置不同的第一阈值,例如上层镜像层的第一阈值较小,下层镜像层的第一阈值较大。
303、生成第一镜像层的副本。
计算设备确定了第一镜像层后,生成第一镜像层的副本。具体的,计算设备可以拷贝第一镜像层,得到第一镜像层的副本,并为第一镜像层分配全局唯一的镜像层ID。
本步骤中,计算设备可以仅为第一镜像层生成一个副本,也可以为第一镜像层生成多个副本。举例来说,若第一镜像层的被访问次数较小,则生成一个副本;若第一镜像层的被访问次数较大,则生成多个副本。本申请对计算设备生成第一镜像层的副本的个数不做限定。
可以理解的,第一镜像层的副本与第一镜像层包括相同的内容,故其具有与第一镜像层相同的父镜像层,即第一镜像层的副本与第一镜像层具有相同的父镜像层ID字段。此外,若计算设备中还保存有用于记录镜像层之间的父子关系的镜像层关系列表,则应将第一镜像层的副本添加到该镜像层关系列表中,并在镜像层关系列表中记录其父镜像层。
可选的,若第一镜像层具有镜像tag,则计算设备还可以为第一镜像层的副本分配镜像tag,由于第一镜像层与其副本属于同一版本,故第一镜像层的副本的镜像tag应与第一镜像层的镜像tag相同。
在本申请中,各镜像层与其副本的地位是平等的。举例来说,若镜像集合原本具有镜像层m,此后生成了镜像层m的副本为镜像层k,则除了认为镜像层k是镜像层m的副本之外,镜像层m也可以认为是镜像层k的副本。为了便于描述,本申请仅采用“第一镜像层”“第一镜像层的副本”的表述对两个镜像层进行区别,并不对这两个镜像层的地位做任何限定,实际上“第一镜像层”也可以视为1第一镜像层的副本”的副本。
304、将第一镜像层的部分子镜像层修改为第一镜像层的副本的子镜像层。
计算设备将第一镜像层的部分子镜像层修改为第一镜像层的副本的子镜像层。具体的,计算设备修改该部分子镜像层的父镜像层ID字段,将其由第一镜像层的镜像层ID修改为第一镜像层的副本的镜像层ID,使得该部分子镜像层的父镜像层由第一镜像层变为第一镜像层的副本。
此外,若计算设备中还包括用于记录镜像层之间的父子关系的镜像层关系列表,则应将镜像层关系列表所记录的该部分子镜像层的父镜像层由第一镜像层修改为第一镜像层的副本。
该部分子镜像层的父镜像层变为第一镜像层的副本后,当用户再次访问该部分子镜像层时,会访问到第一镜像层的副本,而不会再访问到第一镜像层。这样就实现了将第一镜像层的部分访问流量分流到第一镜像层的副本上,减少了第一镜像层的访问压力。
可选的,本实施例提供的镜像处理方法还包括如下步骤:
305、确定一个或多个第二镜像层。
计算设备根据镜像集合中各镜像的被访问次数,确定第二镜像层。其中,第二镜像层是镜像集合中被访问次数小于第二阈值,且具有副本的镜像层。
镜像集合中满足条件“被访问次数小于第二阈值,且具有副本”的镜像层可以是一个或多个,故第二镜像层的个数可以是一个,也可以是两个或两个以上。
对于镜像集合而言,第二阈值可以是全局统一的值,也以不是全局统一的值。举例来说,计算设备可以设置上层镜像层的第二阈值较小,下层镜像层的第二阈值较大。
此外,由于第一阈值用于选择访问压力大的第一镜像层,第二阈值用于选择访问压力小的第二镜像层,故第二阈值应小于第一阈值。
可选的,镜像层和镜像层的副本应具有相同的镜像tag,故计算设备可以通过识别相同的镜像tag来确定具有副本的镜像层。计算设备也可以通过其它方式来确定具有副本的镜像层,本实施例中不做限定。
在步骤301中,计算设备统计了镜像集合中各镜像层的被访问次数,本步骤中,计算设备可以直接使用其在步骤301中统计得到的各镜像层的被访问次数。在这种情况下,步骤305与步骤302~304之间没有特定的先后顺序,步骤305只需要位于步骤301之后即可。
当然,计算设备也可以在步骤305中也执行统计各镜像层的被访问次数的操作,这样步骤305与步骤301~304之间都没有特定的先后顺序。且若步骤305在步骤304之后,则步骤305中确定的第二镜像层可以包括一个或多个第一镜像层或第一镜像层的副本。
306、将第二镜像层的全部子镜像层修改为第二镜像层的副本的子镜像层。
计算设备将第二镜像层的全部子镜像层修改为第二镜像层的副本的子镜像层。具体的,计算设备修改第二镜像层的全部子镜像层的父镜像层ID字段,将其由第二镜像层的镜像层ID修改为第二镜像层的副本的镜像层ID,使得第二镜像层的子镜像层的父镜像层变为第二镜像层的副本。
此外,若计算设备中还包括用于记录镜像层之间的父子关系的镜像层关系列表,则应将镜像层关系列表所记录的这些子镜像层的父镜像层由第二镜像层修改为第二镜像层的副本。
此外,若第二镜像层具有多个副本,则计算设备可以将第二镜像层的子镜像层修改为其中的一个副本的子镜像层,也可以修改为该多个副本中的两个或两个以上副本的子镜像层。举例来说,计算设备可以将第二镜像层的子镜像层平均的修改为各副本的子镜像层;或将第二镜像层的大部分子镜像层修改为访问压力小的副本的子镜像层,将第二镜像层的小部分子镜像层修改为访问压力大的副本的子镜像层。
307、删除第二镜像层。
第二镜像层的被访问次数小于第二阈值,说明第二镜像层的访问压力小。计算设备在将第二镜像层的全部子镜像修改为第二镜像层的副本的子镜像后,删除第二镜像层。
此外,若计算设备中还包括镜像层关系列表,则应删除镜像层关系列表中第二镜像层的相关记录。
步骤306与307与步骤301~304之间没有特定的先后顺序,步骤306与307只需要位于步骤305之后即可。
步骤305~307中,计算设备对访问压力小的镜像层进行了删除操作。这样就精简了镜像集合中的镜像层个数,简化了镜像集合的拓扑结构,节约了存储资源。
集群场景下的镜像处理方法
图2(b)展示了将镜像集合部署在计算设备集群的应用场景。该计算设备集群中,各计算设备对本地保存的镜像集合进行处理,处理方法参考图2(a)所示的镜像处理方法。
集群+共享存储场景下的镜像处理方法
下面将介绍适用于图2(c)所示的共享存储场景的镜像处理方法,请参阅图4。本实施例提供的方法适用于计算设备集群中的管理节点,该管理节点可以是实体的物理设备,如服务器。该管理节点也可以是运行于某一计算设备上的虚拟机。
401、获取镜像集合中各镜像层的被访问次数。
管理节点获取部署在共享存储上的镜像集合中各镜像层的被访问次数。具体的,可以由管理节点直接获取共享存储中各镜像层的被访问次数;也可以由集群中的各计算设备分别记录自身访问镜像集合中各镜像层的次数,然后上报给管理节点,管理节点统计各节点访问镜像集合中各镜像层的次数,得到镜像集合中各镜像层的被访问次数。
管理节点可以是统计单位时间内各镜像层的被访问次数,即统计各镜像层的被访问频率。管理节点也可以统计指定时间段(如最近的某个时间段)内各镜像层的被访问次数。
402、确定一个或多个第三镜像层。其中,第三镜像层是镜像集合中被访问次数大于第三阈值,且具有两个或两个以上的子镜像层的镜像层。
403、生成第三镜像层的副本。
404、将第三镜像层的部分子镜像层修改为第三镜像层的副本的子镜像层。
步骤402~404与步骤302~304基本相同,其区别仅在于镜像集合的部署方式。故步骤402~404可以参考步骤302~304的相关描述,此处不做赘述。
此外,在步骤403中管理节点生成了第三镜像层的副本之后,管理节点还可以将第三镜像层的副本的信息发送到各计算设备上保存的镜像层关系列表中。
管理节点将第三镜像层的部分子镜像层修改为第三镜像层的副本的子镜像层后,当用户再次访问该部分子镜像层时,会访问到第三镜像层的副本,而不会再访问到第三镜像层。这样就实现了将第三镜像层的访问分流到第三镜像层的副本上,减少了第三镜像层的访问压力。
可选的,本实施例提供的镜像处理方法还包括如下步骤:
405、确定一个或多个第四镜像层。其中,第四镜像层是镜像集合中被访问次数小于第四阈值,且具有副本的镜像层。
406、将第四镜像层的全部子镜像层修改为第四镜像层的副本的子镜像层。
407、删除第四镜像层。
步骤405~407与步骤305~307基本相同,其区别仅在于镜像集合的部署方式。故步骤405~407可以参考步骤305~307的相关描述,此处不做赘述。
此外,在步骤407中管理节点删除第四镜像之后,管理节点还需要在各结算设备上保存的镜像层关系列表中删除第四镜像层的相关信息。
步骤405~407中,管理节点对访问压力小的镜像层进行了删除操作。这样就精简了镜像集合中的镜像层个数,简化了镜像集合的拓扑结构,节约了共享存储的存储资源。
上面的实施例介绍了本申请提供的镜像处理方法,下面将介绍用于实现上述镜像处理方法的计算设备,请参阅图5。本申请提供的计算设备500包括:处理器501、存储器502、通信接口503。可选的,还包括总线504。处理器501、存储器502和通信接口503可以通过总线504实现彼此之间的通信连接。当然,也可以通过无线传输等其他手段实现通信。
在通过软件来实现本申请提供的技术方案时,用于实现本申请图3或图4所提供的镜像处理方法的程序代码可以保存在存储器502中,并由处理器501来执行。
通信接口503可以是有线接口,例如光纤分布式数据接口(英文:FiberDistributed Data Interface,简称:FDDI)、以太网(英文:Ethernet)接口。通信接口503也可以是无线接口,例如无线局域网接口。
处理器501通过调用存储器502的程序代码,用于执行图3或图4所示的镜像处理方法。
在图2(a)或图2(b)所示的场景下,通过调用存储器502的程序代码,处理器501具体用于执行图3对应的镜像处理方法。
在图2(c)所示的场景下,计算设备500也即管理节点(管理节点为实体的物理设备),或运行了管理节点的物理设备(管理节点为运行于物理设备上的虚拟机)。通过调用存储器502的程序代码,处理器501具体用于执行图4对应的镜像处理方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,模块或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以集成在一个处理单元中,也可以是各单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、SSD、磁碟或者光盘等各种可以存储程序代码的介质。

Claims (14)

1.一种镜像处理方法,其特征在于,适用于部署有镜像集合的计算设备,所述镜像集合包括基础镜像,以及通过对所述基础镜像叠加P个镜像层得到的镜像,P为正整数,每个镜像层具有父镜像层,所述镜像处理方法包括:
获取所述镜像集合中各镜像层的被访问次数;
根据所述镜像集合中各镜像层的被访问次数确定第一镜像层,其中,所述第一镜像层的被访问次数大于第一阈值;
生成所述第一镜像层的副本;
将所述第一镜像层的子镜像层修改为所述第一镜像层的副本的子镜像层。
2.根据权利要求1所述的镜像处理方法,其特征在于,每个镜像层配置有镜像层ID,每个镜像层还记录有父镜像层ID;
所述生成所述第一镜像层的副本包括:
拷贝所述第一镜像层,得到所述第一镜像层的副本,并为所述第一镜像层的副本配置镜像层ID;
所述将所述第一镜像层的子镜像层修改为所述第一镜像层的副本的子镜像层包括:
将所述第一镜像层的子镜像层的父镜像层ID修改为所述第一镜像层的副本的镜像层ID。
3.根据权利要求1或2所述的镜像处理方法,其特征在于,所述方法在所述获取所述镜像集合中各镜像层的被访问次数之后还包括:
根据所述镜像集合中各镜像层的被访问次数确定第二镜像层,其中,所述第二镜像层的被访问次数小于第二阈值,所述镜像集合还包括所述第二镜像层的副本;
将所述第二镜像层的子镜像层修改为所述第二镜像层的副本的子镜像层;
删除所述第二镜像层。
4.一种镜像处理方法,其特征在于,适用于计算设备集群中的管理节点,所述计算设备集群还包括共享存储,所述计算设备集群中的每个计算设备均能访问所述共享存储上部署的镜像集合,所述镜像集合包括基础镜像,以及通过对所述基础镜像叠加P个镜像层得到的镜像,P为正整数,每个镜像层具有父镜像层,所述镜像处理方法包括:
获取所述镜像集合中各镜像层的被访问次数;
根据所述镜像集合中各镜像层的被访问次数确定第三镜像层,其中,所述第三镜像层的被访问次数大于第三阈值;
生成所述第三镜像层的副本;
将所述第三镜像层的子镜像层修改为所述第三镜像层的副本的子镜像层。
5.根据权利要求4所述的镜像处理方法,其特征在于,所述获取所述镜像集合中各镜像层的被访问次数包括:
获取所述计算设备集群中的各个计算设备发送的访问信息,每个访问信息中包括所述计算设备集群中的计算设备访问所述镜像集合中各镜像层的次数;
统计所述计算设备集群中的各个计算设备发送的访问信息,获取所述镜像集合中各镜像层的被访问次数。
6.根据权利要求4或5所述的镜像处理方法,其特征在于,每个镜像层配置有镜像层ID,每个镜像层还记录有父镜像层ID;
所述生成所述第三镜像层的副本包括:
拷贝所述第三镜像层,得到所述第三镜像层的副本,并为所述第三镜像层的副本配置镜像层ID;
所述将所述第三镜像层的子镜像层修改为所述第三镜像层的副本的子镜像层包括:
将所述第三镜像层的子镜像层的父镜像层ID修改为所述第三镜像层的副本的镜像层ID。
7.根据权利要求4至6中任一项所述的镜像处理方法,其特征在于,所述方法在统计所述镜像集合中各镜像层的被访问次数之后还包括:
根据所述镜像集合中各镜像层的被访问次数确定第四镜像层,其中,所述第四镜像层的被访问次数小于第四阈值,所述镜像系统还包括所述第四镜像层的副本;
将所述第四镜像层的子镜像层修改为所述第四镜像层的副本的子镜像层;
删除所述第四镜像层。
8.一种计算设备,其特征在于,所述计算设备包括处理器、存储器和通信接口,所述存储设备中存储有镜像集合和程序代码,所述镜像集合包括基础镜像,以及通过对所述基础镜像叠加P个镜像层得到的镜像,P为正整数,每个镜像层具有父镜像层,通过调用所述程序代码,所述处理器用于:
获取所述镜像集合中各镜像层的被访问次数;
根据所述镜像集合中各镜像层的被访问次数确定第一镜像层,其中,所述第一镜像层的被访问次数大于第一阈值;
生成所述第一镜像层的副本;
将所述第一镜像层的子镜像层修改为所述第一镜像层的副本的子镜像层。
9.根据权利要求8所述的计算设备,其特征在于,每个镜像层配置有镜像层ID,每个镜像层还记录有父镜像层ID;
所述处理器还用于:
拷贝所述第一镜像层,得到所述第一镜像层的副本,并为所述第一镜像层的副本配置镜像层ID;
所述将所述第一镜像层的子镜像层修改为所述第一镜像层的副本的子镜像层包括:
将所述第一镜像层的子镜像层的父镜像层ID修改为所述第一镜像层的副本的镜像层ID。
10.根据权利要求8或9所述的计算设备,其特征在于,所述处理器还用于:
根据所述镜像集合中各镜像层的被访问次数确定第二镜像层,其中,所述第二镜像层的被访问次数小于第二阈值,所述镜像集合还包括所述第二镜像层的副本;
将所述第二镜像层的子镜像层修改为所述第二镜像层的副本的子镜像层;
删除所述第二镜像层。
11.一种计算设备,用于管理计算设备集群,其特征在于,所述计算设备集群还包括共享存储,所述计算设备集群中的每个计算设备均能访问所述共享存储上部署的镜像集合,所述镜像集合包括基础镜像,以及通过对所述基础镜像叠加P个镜像层得到的镜像,P为正整数,每个镜像层具有父镜像层,所述计算设备包括处理器、存储器和通信接口,通过调用所述存储器中的程序代码,所述处理器用于:
获取所述镜像集合中各镜像层的被访问次数;
根据所述镜像集合中各镜像层的被访问次数确定第三镜像层,其中,所述第三镜像层的被访问次数大于第三阈值;
生成所述第三镜像层的副本;
将所述第三镜像层的子镜像层修改为所述第三镜像层的副本的子镜像层。
12.根据权利要求11所述的计算设备,其特征在于,所述处理器还用于:
获取所述计算设备集群中的各个计算设备发送的访问信息,每个访问信息中包括所述计算设备集群中的计算设备访问所述镜像集合中各镜像层的次数;
统计所述计算设备集群中的各个计算设备发送的访问信息,获取所述镜像集合中各镜像层的被访问次数。
13.根据权利要求11或12所述的计算设备,其特征在于,每个镜像层配置有镜像层ID,每个镜像层还记录有父镜像层ID;
所述处理器还用于:
拷贝所述第三镜像层,得到所述第三镜像层的副本,并为所述第三镜像层的副本配置镜像层ID;
所述将所述第三镜像层的子镜像层修改为所述第三镜像层的副本的子镜像层包括:
将所述第三镜像层的子镜像层的父镜像层ID修改为所述第三镜像层的副本的镜像层ID。
14.根据权利要求11至13中任一项所述的计算设备,其特征在于,所述处理器还用于:
根据所述镜像集合中各镜像层的被访问次数确定第四镜像层,其中,所述第四镜像层的被访问次数小于第四阈值,所述镜像系统还包括所述第四镜像层的副本;
将所述第四镜像层的子镜像层修改为所述第四镜像层的副本的子镜像层;
删除所述第四镜像层。
CN201680003034.3A 2016-12-13 2016-12-13 镜像处理方法以及计算设备 Active CN108604231B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2016/109686 WO2018107361A1 (zh) 2016-12-13 2016-12-13 镜像处理方法以及计算设备

Publications (2)

Publication Number Publication Date
CN108604231A CN108604231A (zh) 2018-09-28
CN108604231B true CN108604231B (zh) 2022-01-14

Family

ID=62557707

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680003034.3A Active CN108604231B (zh) 2016-12-13 2016-12-13 镜像处理方法以及计算设备

Country Status (3)

Country Link
US (1) US11080909B2 (zh)
CN (1) CN108604231B (zh)
WO (1) WO2018107361A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10614117B2 (en) * 2017-03-21 2020-04-07 International Business Machines Corporation Sharing container images between mulitple hosts through container orchestration
US10970258B2 (en) 2018-02-23 2021-04-06 Red Hat, Inc. Managing container-image layers
CN114936066A (zh) * 2022-04-15 2022-08-23 支付宝(杭州)信息技术有限公司 镜像堆叠方法、装置、设备、介质及程序产品

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102081580A (zh) * 2011-02-24 2011-06-01 华中科技大学 一种磁盘数据保护方法
CN102185928A (zh) * 2011-06-01 2011-09-14 广州杰赛科技股份有限公司 一种在云计算系统创建虚拟机的方法及云计算系统
CN102708060A (zh) * 2012-05-14 2012-10-03 华为技术有限公司 一种镜像文件访问方法、装置及系统
CN103136108A (zh) * 2011-12-05 2013-06-05 慧荣科技股份有限公司 快闪存储装置及其数据读取方法
CN105516223A (zh) * 2014-09-25 2016-04-20 中国电信股份有限公司 虚拟存储系统及其实现方法、服务器和虚拟机监控器

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8910235B2 (en) * 2007-12-20 2014-12-09 Dell Products L.P. Policy based provisioning of shared boot images
CN102193807B (zh) * 2010-03-19 2015-04-29 联想(北京)有限公司 一种镜像文件升级的方法、服务器及计算机网络系统
US10430298B2 (en) * 2010-10-28 2019-10-01 Microsoft Technology Licensing, Llc Versatile in-memory database recovery using logical log records
CN102929884B (zh) * 2011-08-10 2016-05-04 阿里巴巴集团控股有限公司 一种收缩虚拟磁盘镜像文件的方法及装置
CN103186554B (zh) * 2011-12-28 2016-11-23 阿里巴巴集团控股有限公司 分布式数据镜像方法及存储数据节点
CN103218248B (zh) * 2013-03-25 2016-12-28 华为技术有限公司 一种虚拟机镜像的更新方法、服务器和桌面云系统
CN104079605A (zh) * 2013-03-29 2014-10-01 鸿富锦精密工业(深圳)有限公司 一种机群部署系统及机群部署方法
KR20150033162A (ko) * 2013-09-23 2015-04-01 삼성전자주식회사 컴포지터, 이를 포함하는 시스템온칩 및 이의 구동 방법
CN105094924B (zh) * 2015-08-21 2018-06-26 华为技术有限公司 镜像文件的导入方法及装置
US10061520B1 (en) * 2016-06-22 2018-08-28 EMC IP Holding Company LLC Accelerated data access operations
CN106202429A (zh) * 2016-07-13 2016-12-07 武大吉奥信息技术有限公司 基于混合容器与虚拟化主机的gis云服务提供方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102081580A (zh) * 2011-02-24 2011-06-01 华中科技大学 一种磁盘数据保护方法
CN102185928A (zh) * 2011-06-01 2011-09-14 广州杰赛科技股份有限公司 一种在云计算系统创建虚拟机的方法及云计算系统
CN103136108A (zh) * 2011-12-05 2013-06-05 慧荣科技股份有限公司 快闪存储装置及其数据读取方法
CN102708060A (zh) * 2012-05-14 2012-10-03 华为技术有限公司 一种镜像文件访问方法、装置及系统
CN105516223A (zh) * 2014-09-25 2016-04-20 中国电信股份有限公司 虚拟存储系统及其实现方法、服务器和虚拟机监控器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
云计算中虚拟镜像管理的研究与实现;刘明惠;《中国优秀硕士学位论文全文数据库 信息科技辑》;20160215(第02期);第I139-161页 *

Also Published As

Publication number Publication date
US11080909B2 (en) 2021-08-03
US20180322675A1 (en) 2018-11-08
CN108604231A (zh) 2018-09-28
WO2018107361A1 (zh) 2018-06-21

Similar Documents

Publication Publication Date Title
US11442625B2 (en) Multiple read data paths in a storage system
US10671285B2 (en) Tier based data file management
CN107247778B (zh) 用于实施可扩展数据存储服务的系统和方法
US9965207B2 (en) Maintenance of cloned computer data
CN108604231B (zh) 镜像处理方法以及计算设备
CN109885577A (zh) 数据处理方法、装置、终端及存储介质
US11237761B2 (en) Management of multiple physical function nonvolatile memory devices
US9201609B2 (en) Efficient replication of changes to a byte-addressable persistent memory over a network
US9798483B2 (en) Object storage power consumption optimization
US9395930B2 (en) Information processing system, control method of information processing system, and recording medium
CN113110918A (zh) 读写速率管控方法、装置、节点设备及存储介质
US11176089B2 (en) Systems and methods for implementing dynamic file systems
US9020993B2 (en) Download management of discardable files
US10635637B1 (en) Method to use previously-occupied inodes and associated data structures to improve file creation performance
US11531642B2 (en) Synchronous object placement for information lifecycle management
CN110008178B (zh) 分布式文件系统元数据的组织方法及装置
JP5972455B2 (ja) 情報を削除する方法
US11451627B2 (en) System and method for content management with intelligent data store access across distributed stores
CN113568567B (zh) 利用索引物件来进行简易存储服务无缝迁移的方法、主装置以及存储服务器
CN113950676A (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
TR01 Transfer of patent right

Effective date of registration: 20220210

Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province

Patentee after: Huawei Cloud Computing Technologies Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right