CN113946275B - 一种缓存管理方法及装置、存储介质 - Google Patents

一种缓存管理方法及装置、存储介质 Download PDF

Info

Publication number
CN113946275B
CN113946275B CN202010682503.7A CN202010682503A CN113946275B CN 113946275 B CN113946275 B CN 113946275B CN 202010682503 A CN202010682503 A CN 202010682503A CN 113946275 B CN113946275 B CN 113946275B
Authority
CN
China
Prior art keywords
cache
mirror image
mirror
state
creation
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
CN202010682503.7A
Other languages
English (en)
Other versions
CN113946275A (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.)
China Mobile Communications Group Co Ltd
China Mobile Suzhou Software Technology Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Suzhou Software 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 China Mobile Communications Group Co Ltd, China Mobile Suzhou Software Technology Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN202010682503.7A priority Critical patent/CN113946275B/zh
Publication of CN113946275A publication Critical patent/CN113946275A/zh
Application granted granted Critical
Publication of CN113946275B publication Critical patent/CN113946275B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • 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/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明实施例公开了一种缓存管理方法及装置、存储介质,方法包括:在获取到目标镜像的情况下,利用目标镜像对存储后端集群中的每个存储后端分别进行镜像缓存创建;轮询存储后端集群的镜像缓存创建状态;在镜像缓存创建状态为可用态的情况下,将目标镜像的镜像状态设置为运行态,完成镜像缓存;可用态表征存储后端集群全部实现镜像缓存。通过实施上述方案,缓存管理装置在获取到镜像的情况下,自动利用镜像针对每个存储后端创建镜像缓存,提高了镜像缓存的灵活性,从而保证在调度到不同的存储后端的情况下,都有直接可用的镜像缓存以及时提供相应服务。

Description

一种缓存管理方法及装置、存储介质
技术领域
本发明涉及电子通信技术领域,尤其涉及一种缓存管理方法及装置、存储介质。
背景技术
云计算平台(OpenStack)是一系列开源项目的组合,主要使用池化虚拟资源来构建和管理私有云及公有云。
OpenStack提供的计算服务,为终端用户提供可操作的虚拟机资源。通常情况下,系统盘是一块持久化的块存储卷,其创建流程为:首先,从镜像服务节点下载镜像数据到存储服务节点,之后,存储服务节点对镜像数据进行格式转换,最后,将转换格式得到的数据写入块存储系统卷。
在公有云和混合云的大规模场景下,如果多用户同时下发创建系统卷的请求,镜像下载、格式转换和数据注入都将成为性能瓶颈点,因此,形成了现有的镜像缓存技术方案,其主要流程为:首先,首次在存储后端创建系统卷时,依次通过镜像下载、格式转换和数据注入创建目标系统卷,并通过存储的克隆功能克隆出缓存卷,之后,将缓存卷作为镜像在存储后端的镜像缓存,最后,后续如果是相同镜像在相同存储后端进行系统卷创建,可以直接通过镜像缓存克隆出目标系统卷。
然而,现有的镜像缓存技术,对于一个新镜像,在创建系统卷时仅在选定的一个存储后端创建缓存镜像,其它后端不创建,如果每次调度到的后端不同,则每次仍然需要进行镜像下载、格式转换和数据注入,灵活性较差,难以及时提供相应服务。
发明内容
为解决上述技术问题,本发明实施例期望提供一种缓存管理方法及装置、存储介质,缓存管理装置在获取到镜像的情况下,自动利用镜像针对每个存储后端创建镜像缓存,提高了镜像缓存的灵活性,从而保证在调度到不同的存储后端的情况下,都有直接可用的镜像缓存以及时提供相应服务。
本发明的技术方案是这样实现的:
本发明实施例提供了一种缓存管理方法,所述方法包括:
在获取到目标镜像的情况下,利用所述目标镜像对存储后端集群中的每个存储后端分别进行镜像缓存创建;
轮询所述存储后端集群的镜像缓存创建状态;
在所述镜像缓存创建状态为可用态的情况下,将所述目标镜像的镜像状态设置为运行态,完成镜像缓存;所述可用态表征所述存储后端集群全部实现镜像缓存。
在上述方法中,所述利用所述目标镜像对存储后端集群中的每个存储后端分别进行镜像缓存创建之前,所述方法还包括:
根据所述目标镜像的镜像标识,获取所述目标镜像的镜像信息;
在基于所述镜像信息确定所述目标镜像正常运行的情况下,获取所述目标镜像的可用镜像缓存信息和创建中镜像缓存信息;
获取可用存储后端信息和卷类型列表;
基于所述可用镜像缓存信息、所述创建中镜像缓存信息、所述可用存储后端信息和所述卷类型列表,确定出所述存储后端集群。
在上述方法中,所述利用所述目标镜像对存储后端集群中的每个存储后端分别进行镜像缓存创建,包括:
获取初始卷大小,以及第一存储后端的卷类型;所述第一存储后端为所述存储后端集群中任一存储后端;
利用内部租户,根据所述第一存储后端、所述初始卷大小和所述卷类型,创建块存储数据,并根据所述块存储数据创建镜像缓存表信息;
基于所述镜像缓存表信息、所述块存储数据和所述目标镜像,对所述第一存储后端进行镜像缓存创建。
在上述方法中,所述轮询所述存储后端集群的镜像缓存创建状态,包括:
在存在创建中镜像缓存的情况下,确定所述镜像缓存创建状态为创建态;
在不存在所述创建中镜像缓存,且所述存储后端集群中存在处于未创建状态的存储后端的情况下,确定所述镜像缓存创建状态为故障态;
在不存在所述创建中镜像缓存,且所述存储后端集群中不存在处于所述未创建状态的存储后端的情况下,确定所述镜像缓存创建状态为所述可用态。
在上述方法中,所述轮询所述存储后端集群的镜像缓存创建状态之后,所述方法还包括:
在所述镜像缓存创建状态为所述创建态的情况下,等待预设时长;
在经过所述预设时长后,重新确定所述镜像缓存创建状态。
在上述方法中,所述轮询所述存储后端集群的镜像缓存创建状态之后,所述方法还包括:
在所述镜像缓存创建状态为所述故障态,或者,确定所述镜像缓存创建状态的时长超过预设时长,将所述目标镜像设置为错误态,并进行镜像缓存清理。
在上述方法中,所述在所述镜像缓存创建状态为可用态的情况下,将所述目标镜像的镜像状态设置为运行态,完成镜像缓存之后,所述方法还包括:
在接收到删除指令的情况下,删除所述目标镜像,以及所述存储后端集群中每个存储后端中已创建的缓存镜像。
在上述方法中,所述在所述镜像缓存创建状态为可用态的情况下,将所述目标镜像的镜像状态设置为运行态,完成镜像缓存之后,所述方法还包括:
在新增加第二存储后端,且接收到针对所述第二存储后端的缓存创建指令的情况下,根据所述缓存创建指令,利用所述目标镜像对所述第二存储后端进行镜像缓存创建。
本发明实施例提供了一种缓存管理装置,所述装置包括:
镜像缓存创建接口,用于在获取到目标镜像的情况下,利用所述目标镜像对存储后端集群中的每个存储后端分别进行镜像缓存创建;
镜像缓存获取接口,用于轮询所述存储后端集群的镜像缓存创建状态;
在所述镜像缓存创建状态为可用态的情况下,将所述目标镜像的镜像状态设置为运行态,完成镜像缓存;所述可用态表征所述存储后端集群全部实现镜像缓存。
在上述装置中,所述镜像缓存创建接口,还用于根据所述目标镜像的镜像标识,获取所述目标镜像的镜像信息;在基于所述镜像信息确定所述目标镜像正常运行的情况下,获取所述目标镜像的可用镜像缓存信息和创建中镜像缓存信息;获取可用存储后端信息和卷类型列表;基于所述可用镜像缓存信息、所述创建中镜像缓存信息、所述可用存储后端信息和所述卷类型列表,确定出所述存储后端集群。
在上述装置中,所述镜像缓存创建接口,具体用于获取初始卷大小,以及第一存储后端的卷类型;所述第一存储后端为所述存储后端集群中任一存储后端;利用内部租户,根据所述第一存储后端、所述初始卷大小和所述卷类型,创建块存储数据,并根据所述块存储数据创建镜像缓存表信息;基于所述镜像缓存表信息、所述块存储数据和所述目标镜像,对所述第一存储后端进行镜像缓存创建。
在上述装置中,所述镜像缓存获取接口,具体用于在存在创建中镜像缓存的情况下,确定所述镜像缓存创建状态为创建态;在不存在所述创建中镜像缓存,且所述存储后端集群中存在处于未创建状态的存储后端的情况下,确定所述镜像缓存创建状态为故障态;在不存在所述创建中镜像缓存,且所述存储后端集群中不存在处于所述未创建状态的存储后端的情况下,确定所述镜像缓存创建状态为所述可用态。
在上述装置中,所述镜像缓存获取接口,还用于在所述镜像缓存创建状态为所述创建态的情况下,等待预设时长;在经过所述预设时长后,重新确定所述镜像缓存创建状态。
在上述装置中,还包括镜像缓存删除接口,
在所述镜像缓存创建状态为所述故障态,或者,确定所述镜像缓存创建状态的时长超过预设时长,所述镜像缓存获取接口,用于将所述目标镜像设置为错误态,所述镜像缓存删除接口,用于进行镜像缓存清理。
在上述装置中,所述镜像缓存删除接口,还用于在接收到删除指令的情况下,删除所述目标镜像,以及所述存储后端集群中每个存储后端中已创建的缓存镜像。
在上述装置中,所述镜像缓存创建接口,还用于在新增加第二存储后端,且接收到针对所述第二存储后端的缓存创建指令的情况下,根据所述缓存创建指令,利用所述目标镜像对所述第二存储后端进行镜像缓存创建。
本发明实施例提供了一种缓存管理装置,所述装置包括:处理器、存储器和通信总线;
所述通信总线,用于实现所述处理器和所述存储器之间的通信连接;
所述处理器,用于执行所述存储器中存储的程序,以实现上述方法。
本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可以被一个或者多个处理器执行,以实现上述方法。
本发明实施例提供了一种缓存管理方法,在获取到目标镜像的情况下,利用目标镜像对存储后端集群中的每个存储后端分别进行镜像缓存创建;轮询存储后端集群的镜像缓存创建状态;在镜像缓存创建状态为可用态的情况下,将目标镜像的镜像状态设置为运行态,完成镜像缓存;可用态表征存储后端集群全部实现镜像缓存。本发明实施例提供的技术方案,缓存管理装置在获取到镜像的情况下,自动利用镜像针对每个存储后端创建镜像缓存,提高了镜像缓存的灵活性,从而保证在调度到不同的存储后端的情况下,都有可用的镜像缓存以及时提供相应服务。
附图说明
图1为本发明实施例提供的一种缓存管理方法的流程示意图;
图2为本发明实施例提供的一种确定存储后端集群的流程示意图;
图3为本发明实施例提供的一种创建镜像缓存的流程示意图;
图4为本发明实施例提供的一种缓存管理方法的框架示意图;
图5为本发明实施例提供的一种缓存管理装置的结构示意图一;
图6为本发明实施例提供的一种缓存管理装置的结构示意图二。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
本发明实施例提供了一种缓存管理方法,通过缓存管理装置实现,缓存管理装置可以包括镜像缓存创建接口、镜像缓存获取接口和镜像缓存删除接口。图1为本发明实施例提供的一种缓存管理方法的流程示意图。如图1所示,缓存管理方法主要包括以下步骤:
S101、在获取到目标镜像的情况下,利用目标镜像对存储后端集群中的每个存储后端分别进行镜像缓存创建。
在本申请的实施例中,缓存管理装置的镜像缓存创建接口在获取到目标进行的情况下,利用目标镜像对存储后端集群中的每个存储后端分别进行镜像缓存创建。
需要说明的是,在本申请的实施例中,目标镜像为用户根据实际需求创建的镜像数据,用户可以将目标镜像进行上传,从而镜像缓存创建接口可以获取到目标镜像,并进一步进行镜像缓存的创建。具体的目标镜像可以根据实际需求设置,本申请实施例不作限定。
可以理解的是,在本申请的实施例中,镜像缓存创建接口是针对存储后端集群中的每个存储后端,均自动进行目标镜像的缓存创建,而在此之前,镜像缓存创建接口,需要先确定存储后端集群。
图2为本发明实施例提供的一种确定存储后端集群的流程示意图。如图2所示,主要包括以下步骤:
S201、根据目标镜像的镜像标识,获取目标镜像的镜像信息。
在本发明的实施例中,镜像缓存创建接口可以获取到目标镜像的镜像标识,进一步的,利用镜像标识获取目标镜像的进行信息。
需要说明的是,在本发明的实施例中,镜像缓存创建接口在获取目标镜像的镜像信息之前,还可以获取内部租户,如果未获取到,则表示未配置内部租户,异常退出,不执行后续镜像缓存的步骤。其中,内部租户是缓存镜像的专用管理租户,可以保证缓存镜像与用户之间的隔离。
需要说明的是,在本发明的实施例中,目标镜像的镜像标识,是目标镜像的唯一识别标志,在目标镜像创建时即生成。镜像缓存创建接口根据镜像标识可以获取到目标镜像的镜像信息,该镜像信息可以包括:镜像状态、镜像格式、镜像容器格式、是否支持共享和镜像链接信息等。具体的目标镜像的镜像标识和目标镜像的镜像信息,本申请实施例不作限定。
S202、在基于镜像信息确定目标镜像运行状态正常的情况下,获取目标镜像的可用镜像缓存信息和创建中镜像缓存信息。
在本申请的实施例中,镜像缓存创建接口在获取到目标镜像的镜像信息之后,可以进行目标镜像运行状态的判断,从而在确定目标镜像正常运行的情况下,进一步获取目标镜像的可用镜像缓存信息和创建中镜像缓存信息。
需要说明的是,在本发明的实施例中,目标镜像的镜像信息中包括镜像状态,如果镜像状态不是运行态(active)或缓存态(caching),表示目标镜像运行异常,则不能进行后续步骤,相应的,如果镜像状态为active或caching,则确定目标镜像正常运行。目标镜像上传过程在调用镜像缓存创建接口之前,会将镜像状态由存储态(saving)更新为caching,表示目标镜像正在进行缓存。
需要说明的是,在本发明的实施例中,缓存管理方法应用于OpenStack,其包括块存储组件(Cinder),镜像缓存创建接口可以从Cinder的镜像缓存表获取目标镜像的可用镜像缓存信息和创建中镜像缓存信息。
具体的,在本发明的实施例中,镜像缓存创建接口获取目标镜像的可用镜像缓存信息和创建中镜像缓存信息,包括:首先,从Cinder的镜像缓存表获取目标镜像的全量数据;其次,遍历全量数据,进行业务处理;最后,返回可用镜像缓存信息和创建中镜像缓存信息。
需要说明的是,镜像缓存创建接口遍历全量数据,进行业务处理,包括以下步骤:根据卷标识获取镜像缓存卷,其中,在未获取到镜像缓存卷的情况下,表示被删除,则清空镜像缓存表的信息,继续遍历;在卷状态为下载或创建的情况下,表示其为正在创建中的镜像缓存卷,将其添加到创建镜像缓存信息中,并继续遍历;在卷状态为错误的情况下,表示镜像缓存卷创建过程中,对该就按镜像删除并清理可能存在的镜像下载的缓存文件,并继续遍历;在卷状态为删除中,表示该镜像缓存卷正在删除,并继续遍历;在卷状态不是可用的情况下,表示该镜像缓存卷被人为在底层处理过,重置成其他不可用状态,无法使用,则将其添加到不可识别的信息中,并继续遍历,此外,针对不可以识别镜像缓存卷存在的情况下,输出警告日志,提示需要手动处理;在卷状态是可用的情况下,可以进一步对处于可用的镜像缓存卷处理,包括:第一,判断镜像缓存卷是否过期,具体判断标准为镜像下载时间和镜像更新时间是否相同,如果不同表示镜像缓存卷已经过期,删除镜像缓存卷,并继续遍历;第二,判断可用镜像缓存信息中是否存在同一存储后端已经存在了缓存,如果不存在,将镜像缓存卷添加到可用镜像缓存信息中,并继续遍历,如果存在,保留最近使用的镜像缓存卷,删除另一个镜像缓存卷,并继续遍历。
S203、获取可用存储后端信息和卷类型列表。
在本发明的实施例中,镜像缓存创建接口可以获取当前存储环境下所有可用存储后端信息和卷类型列表。
具体的,在本发明的实施例中,镜像缓存创建接口可以获取当前存储环境下所有可用存储后端的详细信息,将其组装成一个键为卷后端名称,值为可用存储后端列表的字典,作为可用存储后端信息。
具体的,在本发明的实施例中,镜像缓存创建接口可以获取配置的卷类型列表,该列表表示所有需要创建镜像缓存的目标卷类型和卷类型对应的所有后端。
S204、基于可用镜像缓存信息、创建中镜像缓存信息、可用存储后端信息和卷类型列表,确定出存储后端集群。
在本发明的实施例中,镜像缓存创建接口基于可用镜像缓存信息、创建中镜像缓存信息、可用存储后端信息和卷类型列表,确定出存储后端集群。
具体的,在本发明的实施例中,镜像缓存创建接口可以遍历卷类型列表,镜像以下业务处理:根据配置的卷类型名称或者标识获取卷类型,其中,在卷类型不存在的情况下,输出错误日志,表示无法创建缓存,并继续遍历;在卷类型存在的情况下,从中获取卷后端名称,如果未获取到,输出错误日志,表示无法创建缓存,并继续遍历,如果获取到相应的卷后端名称,则根据卷后端名称从可用存储后端信息中获取到相应的可用存储后端列表,如果列表为空,则标识该卷类型不存在对应的可用存储后端,无法创建缓存,并继续遍历,如果不为空,则该列表和卷类型列表中为该卷类型配置的存储后端是否相同,如果不相同,输出错误日志,即配置的需要缓存的存储后端与当前环境实际存在的可用存储后端不匹配,无法创建缓存,如果相同,则对可用存储后端列表中的可用存储后端进行检查,以确定存储后端集群。
具体的,在本申请的实施例中,镜像缓存创建接口对可用存储后端列表中的可用存储后端进行检查,针对其中每个可用存储后端执行以下步骤:如果可用存储后端在可用镜像缓存信息和创建中镜像缓存信息中,表示该可用存储后端不需检查和创建,不作为存储后端集群中的一个存储后端,否则,判断可用存储后端是否能够正常使用镜像缓存功能,如果未启用镜像缓存功能,输出错误日志,表示无法创建缓存,不作为存储后端集群中的一个存储后端,如果能够正常使用镜像缓存功能,则为可用存储后端配置表征可进行缓存创建的标识,同时将其确定为存储后端集群中的一个存储后端。
图3为本发明实施例提供的一种创建镜像缓存的流程示意图。如图3所示,主要包括以下步骤:
S301、获取初始卷大小,以及第一存储后端的卷类型;第一存储后端为存储后端集群中任一存储后端。
在本发明的实施例中,镜像缓存创建节点可以获取初始卷大小,以及第一存储后端的卷类型。
需要说明的是,在本发明的实施例中,初始卷大小可以预先设置为1,后续可以根据目标镜像的大小进行扩容。
需要说明的是,在本发明的实施例中,镜像缓存创建节点还可以获取内部租户信息,进行检查,从而在获取失败时异常退出,不进行镜像缓存创建。
S302、利用内部租户,根据第一存储后端、初始卷大小和卷类型,创建块存储数据,并根据块存储数据创建镜像缓存表信息。
在本发明的实施例中,镜像缓存创建节点利用内部租户,根据第一存储后端、初始卷大小和卷类型,创建块存储数据,并根据块存储数据创建镜像缓存表信息。
需要说明的是,在本发明的实施例中,镜像缓存创建节点如果创建块存储数据失败,则异常退出。
S303、基于镜像缓存表信息、块存储数据和目标镜像,对第一存储后端进行镜像缓存创建。
在本发明的实施例中,镜像缓存创建接口,基于镜像缓存表信息、块存储数据和目标镜像,对第一存储后端进行镜像缓存创建。
需要说明的是,在本发明的实施例中,镜像缓存创建接口可以采用现有的镜像缓存创建方法开始创建镜像缓存,在此不再赘述。
需要说明的是,在本发明的实施例中,镜像缓存创建接口在开始对第一存储后端进行镜像缓存之后,还可以将已创建的镜像缓存信息添加到创建中镜像缓存信息中,将第一存储后端添加到创建中后端列表中,即可以明确当前在哪些存储后端上进行镜像缓存创建。
需要说明的是,在本发明的实施例中,如果创建中镜像缓存信息不为空,则表示当前有待创建完成的镜像缓存,此时,进行缓存创建接口还可以执行监控处理。
具体的,在本发明的实施例中,镜像缓存创建接口执行监控处理主要包括以下步骤:第一步,通过协程方式开启监控子线程,第二步,进入轮询阶段,包括:1)等待一段时长,默认是600s,测试过程可以适当调短该值;2)遍历创建中镜像缓存信息:根据卷标识获取镜像缓存卷,如果卷不存在,表示卷已经被删除,需要清理相应存储后端可能存在的镜像下载的缓存文件,添加到待清理后端列表中;如果卷状态为下载中或创建中,不进行清理,将它添加到创建中后端列表中;其他任何状态都表示镜像缓存创建结束或者出现异常,需要清理可能存在的镜像下载的缓存文件,添加到待清理后端列表中;3)如果创建中后端列表不为空,则继续轮询并置空创建中后端列表;4)如果没有创建中镜像缓存,则表示可以开始清理镜像下载的缓存文件。第三步,进入清理阶段:到所有待清理后端列表去清理镜像下载的缓存文件。
S102、轮询存储后端集群的镜像缓存创建状态。
在本发明的实施例中,镜像缓存创建接口在开始对存储后端集群进行镜像缓存创建之后,镜像缓存获取接口可以轮询存储后端集群的镜像缓存创建状态。
具体的,在本发明的实施例中,镜像缓存获取接口轮询存储后端集群的镜像缓存创建状态,包括:在存在创建中镜像缓存的情况下,确定镜像缓存创建状态为创建态;在不存在创建中镜像缓存,且存储后端集群中存在处于未创建状态的存储后端的情况下,确定镜像缓存创建状态为故障态;在不存在创建中镜像缓存,且存储后端集群中不存在处于未创建状态的存储后端的情况下,确定镜像缓存创建状态为可用态。
需要说明的是,在本发明的实施例中,镜像缓存获取接口与镜像缓存创建接口一样,也可以获取创建中后端列表、可用镜像缓存信息和创建中镜像缓存信息等,从而基于这些信息确定是否存在创建中镜像缓存,以及是否存在处于未创建状态的存储后端,并进一步确定镜像缓存创建状态。
S103、在镜像缓存创建状态为可用态的情况下,将目标镜像的镜像状态设置为运行态,完成镜像缓存。
可以理解的是,在本发明的实施例中,镜像缓存获取接口在镜像缓存创建状态为可用态的情况下,即表示所有的存储后端集群均完成镜像缓存的创建,因此,将目标镜像的镜像状态设置为运行态,完成镜像缓存。
需要说明的是,在本发明的实施例中,镜像缓存获取接口在轮询存储后端集群的镜像缓存创建状态之后,还包括:在镜像缓存创建状态为创建态的情况下,等待预设时长;在经过预设时长后,重新确定镜像缓存创建状态。
需要说明的是,在本发明的实施例中,在镜像缓存创建状态为故障态,或者,确定镜像缓存创建状态的时长超过预设时长,镜像缓存获取接口将目标镜像设置为错误态,镜像缓存删除接口进行镜像缓存清理。
需要说明的是,在本发明的实施例中,在镜像缓存创建状态为可用态的情况下,镜像缓存获取接口将目标镜像的镜像状态设置为运行态,完成镜像缓存之后,镜像缓存删除接口还可以执行以下步骤:在接收到删除指令的情况下,删除目标镜像,以及存储后端集群中每个存储后端中已创建的缓存镜像。
需要说明的是,在本发明的实施例中,在镜像缓存创建状态为可用态的情况下,将目标镜像的镜像状态设置为运行态,完成镜像缓存之后,镜像缓存创建接口还可以执行以下步骤:在新增加第二存储后端,且接收到针对第二存储后端的缓存创建指令的情况下,根据缓存创建指令,利用目标镜像对第二存储后端进行镜像缓存创建。
需要说明的是,在本发明的实施例中,镜像缓存创建接口对第二存储后端创建镜像缓存的方式与存储后端集群完全一致,在此不再赘述。
图4为本发明实施例提供的一种缓存管理方法的框架示意图。如图4所示,在本发明的实施例中,操作的入口是镜像上传,当镜像数据上传成功后,即可进行镜像缓存的创建,轮询镜像缓存创建状态,并根据镜像缓存创建状态执行相应操作,此外,在触发镜像删除操作,即接收到用户的删除指令时,删除镜像的同时进行镜像缓存的清除。
需要说明的是,现有技术如果每次调度到的后端不同,则每次都需要进行镜像下载,格式转换和数据注入,并发情况下耗时长,失败率高,在一定程度上影响业务性能。在本发明的实施例中,镜像可用后,后续的所有系统卷创建全部通过存储集群内部克隆完成,该操作通常在秒级别;另一方面,后续存储后端集群与服务节都将不进行数据输入输出交互,避免影响业务性能。此外,现有技术则需要等待后续创建调度到某一后端才进行缓存的创建,灵活性差,且创建时又会存在耗时长,输入输出冲高问题。在本发明的实施例中,存储后端扩容后,可以在扩容变更窗口相同时间内完成扩容集群的镜像缓存创建。
本发明实施例提供了一种缓存管理方法,在获取到目标镜像的情况下,利用目标镜像对存储后端集群中的每个存储后端分别进行镜像缓存创建;轮询存储后端集群的镜像缓存创建状态;在镜像缓存创建状态为可用态的情况下,将目标镜像的镜像状态设置为运行态,完成镜像缓存;可用态表征存储后端集群全部实现镜像缓存。本发明实施例提供的技术方案,缓存管理装置在获取到镜像的情况下,自动利用镜像针对每个存储后端创建镜像缓存,提高了镜像缓存的灵活性,从而保证在调度到不同的存储后端的情况下,都有直接可用的镜像缓存以及时提供相应服务。
本发明实施例提供了一种缓存管理装置。图5为本发明实施例提供的一种缓存管理装置的结构示意图一。如图5所示,所述装置包括:
镜像缓存创建接口501,用于在获取到目标镜像的情况下,利用所述目标镜像对存储后端集群中的每个存储后端分别进行镜像缓存创建;
镜像缓存获取接口502,用于轮询所述存储后端集群的镜像缓存创建状态;在所述镜像缓存创建状态为可用态的情况下,将所述目标镜像的镜像状态设置为运行态,完成镜像缓存;所述可用态表征所述存储后端集群全部实现镜像缓存。
可选的,所述镜像缓存创建接口501,还用于根据所述目标镜像的镜像标识,获取所述目标镜像的镜像信息;在基于所述镜像信息确定所述目标镜像正常运行的情况下,获取所述目标镜像的可用镜像缓存信息和创建中镜像缓存信息;获取可用存储后端信息和卷类型列表;基于所述可用镜像缓存信息、所述创建中镜像缓存信息、所述可用存储后端信息和所述卷类型列表,确定出所述存储后端集群。
可选的,所述镜像缓存创建接口501,具体用于获取初始卷大小,以及第一存储后端的卷类型;所述第一存储后端为所述存储后端集群中任一存储后端;利用内部租户,根据所述第一存储后端、所述初始卷大小和所述卷类型,创建块存储数据,并根据所述块存储数据创建镜像缓存表信息;基于所述镜像缓存表信息、所述块存储数据和所述目标镜像,对所述第一存储后端进行镜像缓存创建。
可选的,所述镜像缓存获取接口502,具体用于在存在创建中镜像缓存的情况下,确定所述镜像缓存创建状态为创建态;在不存在所述创建中镜像缓存,且所述存储后端集群中存在处于未创建状态的存储后端的情况下,确定所述镜像缓存创建状态为故障态;在不存在所述创建中镜像缓存,且所述存储后端集群中不存在处于所述未创建状态的存储后端的情况下,确定所述镜像缓存创建状态为所述可用态。
可选的,所述镜像缓存获取接口502,还用于在所述镜像缓存创建状态为所述创建态的情况下,等待预设时长;在经过所述预设时长后,重新确定所述镜像缓存创建状态。
可选的,所述装置还包括镜像缓存删除接口503,
在所述镜像缓存创建状态为所述故障态,或者,确定所述镜像缓存创建状态的时长超过预设时长,所述镜像缓存获取接口502,用于将所述目标镜像设置为错误态,所述镜像缓存删除接口503,用于进行镜像缓存清理。
可选的,所述镜像缓存删除接口503,还用于在接收到删除指令的情况下,删除所述目标镜像,以及所述存储后端集群中每个存储后端中已创建的缓存镜像。
可选的,所述镜像缓存创建接口501,还用于在新增加第二存储后端,且接收到针对所述第二存储后端的缓存创建指令的情况下,根据所述缓存创建指令,利用所述目标镜像对所述第二存储后端进行镜像缓存创建。
图6为本发明实施例提供的一种缓存管理装置的结构示意图二。如图6所示,所述装置包括:处理器601、存储器602和通信总线603;
所述通信总线603,用于实现所述处理器601和所述存储器602之间的通信连接;
所述处理器601,用于执行所述存储器602中存储的程序,以实现上述方法。
本发明实施例提供了一种缓存管理装置,在获取到目标镜像的情况下,利用目标镜像对存储后端集群中的每个存储后端分别进行镜像缓存创建;轮询存储后端集群的镜像缓存创建状态;在镜像缓存创建状态为可用态的情况下,将目标镜像的镜像状态设置为运行态,完成镜像缓存;可用态表征存储后端集群全部实现镜像缓存。本发明实施例提供的缓存管理装置,在获取到镜像的情况下,自动利用镜像针对每个存储后端创建镜像缓存,提高了镜像缓存的灵活性,从而保证在调度到不同的存储后端的情况下,都有直接可用的镜像缓存以及时提供相应服务。
本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可以被一个或者多个处理器执行,以实现上述缓存管理方法。计算机可读存储介质可以是易失性存储器(volatile memory),例如随机存取存储器(Random-Access Memory,RAM);或者非易失性存储器(non-volatile memory),例如只读存储器(Read-Only Memory,ROM),快闪存储器(flash memory),硬盘(Hard DiskDrive,HDD)或固态硬盘(Solid-State Drive,SSD);也可以是包括上述存储器之一或任意组合的各自设备,如移动电话、计算机、平板设备、个人数字助理等。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (10)

1.一种缓存管理方法,其特征在于,所述方法包括:
在获取到目标镜像的情况下,根据所述目标镜像的镜像标识,获取所述目标镜像的镜像信息;在基于所述镜像信息确定所述目标镜像正常运行的情况下,获取所述目标镜像的可用镜像缓存信息和创建中镜像缓存信息;获取可用存储后端信息和卷类型列表;基于所述可用镜像缓存信息、所述创建中镜像缓存信息、所述可用存储后端信息和所述卷类型列表,确定出存储后端集群;利用所述目标镜像对所述存储后端集群中的每个存储后端分别进行镜像缓存创建;
轮询所述存储后端集群的镜像缓存创建状态;
在所述镜像缓存创建状态为可用态的情况下,将所述目标镜像的镜像状态设置为运行态,完成镜像缓存;所述可用态表征所述存储后端集群全部实现镜像缓存。
2.根据权利要求1所述的方法,其特征在于,所述利用所述目标镜像对所述存储后端集群中的每个存储后端分别进行镜像缓存创建,包括:
获取初始卷大小,以及第一存储后端的卷类型;所述第一存储后端为所述存储后端集群中任一存储后端;
利用内部租户,根据所述第一存储后端、所述初始卷大小和所述卷类型,创建块存储数据,并根据所述块存储数据创建镜像缓存表信息;
基于所述镜像缓存表信息、所述块存储数据和所述目标镜像,对所述第一存储后端进行镜像缓存创建。
3.根据权利要求1所述的方法,其特征在于,所述轮询所述存储后端集群的镜像缓存创建状态,包括:
在存在创建中镜像缓存的情况下,确定所述镜像缓存创建状态为创建态;
在不存在所述创建中镜像缓存,且所述存储后端集群中存在处于未创建状态的存储后端的情况下,确定所述镜像缓存创建状态为故障态;
在不存在所述创建中镜像缓存,且所述存储后端集群中不存在处于所述未创建状态的存储后端的情况下,确定所述镜像缓存创建状态为所述可用态。
4.根据权利要求3所述的方法,其特征在于,所述轮询所述存储后端集群的镜像缓存创建状态之后,所述方法还包括:
在所述镜像缓存创建状态为所述创建态的情况下,等待预设时长;
在经过所述预设时长后,重新确定所述镜像缓存创建状态。
5.根据权利要求3所述的方法,其特征在于,所述轮询所述存储后端集群的镜像缓存创建状态之后,所述方法还包括:
在所述镜像缓存创建状态为所述故障态,或者,确定所述镜像缓存创建状态的时长超过预设时长,将所述目标镜像设置为错误态,并进行镜像缓存清理。
6.根据权利要求1所述的方法,其特征在于,所述在所述镜像缓存创建状态为可用态的情况下,将所述目标镜像的镜像状态设置为运行态,完成镜像缓存之后,所述方法还包括:
在接收到删除指令的情况下,删除所述目标镜像,以及所述存储后端集群中每个存储后端中已创建的缓存镜像。
7.根据权利要求1所述的方法,其特征在于,所述在所述镜像缓存创建状态为可用态的情况下,将所述目标镜像的镜像状态设置为运行态,完成镜像缓存之后,所述方法还包括:
在新增加第二存储后端,且接收到针对所述第二存储后端的缓存创建指令的情况下,根据所述缓存创建指令,利用所述目标镜像对所述第二存储后端进行镜像缓存创建。
8.一种缓存管理装置,其特征在于,所述装置包括:
镜像缓存创建接口,用于在获取到目标镜像的情况下,根据所述目标镜像的镜像标识,获取所述目标镜像的镜像信息;在基于所述镜像信息确定所述目标镜像正常运行的情况下,获取所述目标镜像的可用镜像缓存信息和创建中镜像缓存信息;获取可用存储后端信息和卷类型列表;基于所述可用镜像缓存信息、所述创建中镜像缓存信息、所述可用存储后端信息和所述卷类型列表,确定出存储后端集群;利用所述目标镜像对所述存储后端集群中的每个存储后端分别进行镜像缓存创建;
镜像缓存获取接口,用于轮询所述存储后端集群的镜像缓存创建状态;在所述镜像缓存创建状态为可用态的情况下,将所述目标镜像的镜像状态设置为运行态,完成镜像缓存;所述可用态表征所述存储后端集群全部实现镜像缓存。
9.一种缓存管理装置,其特征在于,所述装置包括:处理器、存储器和通信总线;
所述通信总线,用于实现所述处理器和所述存储器之间的通信连接;
所述处理器,用于执行所述存储器中存储的程序,以实现权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可以被一个或者多个处理器执行,以实现权利要求1-7任一项所述的方法。
CN202010682503.7A 2020-07-15 2020-07-15 一种缓存管理方法及装置、存储介质 Active CN113946275B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010682503.7A CN113946275B (zh) 2020-07-15 2020-07-15 一种缓存管理方法及装置、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010682503.7A CN113946275B (zh) 2020-07-15 2020-07-15 一种缓存管理方法及装置、存储介质

Publications (2)

Publication Number Publication Date
CN113946275A CN113946275A (zh) 2022-01-18
CN113946275B true CN113946275B (zh) 2024-04-09

Family

ID=79326201

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010682503.7A Active CN113946275B (zh) 2020-07-15 2020-07-15 一种缓存管理方法及装置、存储介质

Country Status (1)

Country Link
CN (1) CN113946275B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114827055B (zh) * 2022-04-25 2023-08-01 北京百度网讯科技有限公司 数据镜像的方法、装置、电子设备及交换机集群

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102629941A (zh) * 2012-03-20 2012-08-08 武汉邮电科学研究院 云计算系统中虚拟机镜像缓存的方法
CN102841759A (zh) * 2012-05-10 2012-12-26 天津兆民云计算科技有限公司 一种针对超大规模虚拟机集群的存储系统
WO2016095233A1 (zh) * 2014-12-19 2016-06-23 北京麓柏科技有限公司 一种非易失性缓存实现方法及装置
CN106506587A (zh) * 2016-09-23 2017-03-15 中国人民解放军国防科学技术大学 一种基于分布式存储的Docker镜像下载方法
CN106603592A (zh) * 2015-10-15 2017-04-26 中国电信股份有限公司 一种用于基于服务模型的应用集群迁移的方法和迁移装置
CN107181826A (zh) * 2017-07-14 2017-09-19 长沙开雅电子科技有限公司 一种新型集群存储缓存数据同步实现方法
CN109391664A (zh) * 2017-08-11 2019-02-26 中国电信股份有限公司 用于多集群容器部署的系统和方法
CN110442431A (zh) * 2019-08-12 2019-11-12 安徽赛福贝特信息技术有限公司 一种云计算系统中虚拟机的创建方法
CN110704156A (zh) * 2019-08-16 2020-01-17 北京奇艺世纪科技有限公司 一种Docker镜像构建方法及装置
CN111324415A (zh) * 2019-10-28 2020-06-23 烽火通信科技股份有限公司 一种虚拟机镜像缓存创建方法、系统及计算机可读介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7337214B2 (en) * 2002-09-26 2008-02-26 Yhc Corporation Caching, clustering and aggregating server
US20050063216A1 (en) * 2003-09-24 2005-03-24 Wilkins Virgil V. System and method for providing efficient redundancy mirroring communications in an n-way scalable network storage system
US8667098B2 (en) * 2010-12-03 2014-03-04 Hitachi, Ltd. Cluster storage setting method, system, and management system
US8832372B2 (en) * 2012-05-24 2014-09-09 Netapp, Inc. Network storage systems having clustered raids for improved redundancy and load balancing
IN2014DE00743A (zh) * 2014-03-13 2015-09-18 Netapp Inc
US9772947B2 (en) * 2015-06-29 2017-09-26 International Business Machines Corporation Client voting-inclusive in-memory data grid (IMDG) cache management
US11175831B2 (en) * 2016-10-14 2021-11-16 Netapp, Inc. Read and write load sharing in a storage array via partitioned ownership of data blocks

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102629941A (zh) * 2012-03-20 2012-08-08 武汉邮电科学研究院 云计算系统中虚拟机镜像缓存的方法
CN102841759A (zh) * 2012-05-10 2012-12-26 天津兆民云计算科技有限公司 一种针对超大规模虚拟机集群的存储系统
WO2016095233A1 (zh) * 2014-12-19 2016-06-23 北京麓柏科技有限公司 一种非易失性缓存实现方法及装置
CN106603592A (zh) * 2015-10-15 2017-04-26 中国电信股份有限公司 一种用于基于服务模型的应用集群迁移的方法和迁移装置
CN106506587A (zh) * 2016-09-23 2017-03-15 中国人民解放军国防科学技术大学 一种基于分布式存储的Docker镜像下载方法
CN107181826A (zh) * 2017-07-14 2017-09-19 长沙开雅电子科技有限公司 一种新型集群存储缓存数据同步实现方法
CN109391664A (zh) * 2017-08-11 2019-02-26 中国电信股份有限公司 用于多集群容器部署的系统和方法
CN110442431A (zh) * 2019-08-12 2019-11-12 安徽赛福贝特信息技术有限公司 一种云计算系统中虚拟机的创建方法
CN110704156A (zh) * 2019-08-16 2020-01-17 北京奇艺世纪科技有限公司 一种Docker镜像构建方法及装置
CN111324415A (zh) * 2019-10-28 2020-06-23 烽火通信科技股份有限公司 一种虚拟机镜像缓存创建方法、系统及计算机可读介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Shared_memory_mirroring_for_reducing_communication_overhead_on_commodity_networks;Bruce Palmer;2003 Proceedings IEEE International Conference on Cluster Computing;20040108;1-9 *
一种用于虚拟集群的镜像按需分发框架;刘圣卓;《计算机工程与应用》;20160115;1-6 *
大规模虚拟网络镜像分发优化策略研究;胡尧;《中国优秀硕士学位论文全文数据库-信息科技辑》;20190115;1-62 *

Also Published As

Publication number Publication date
CN113946275A (zh) 2022-01-18

Similar Documents

Publication Publication Date Title
US9965188B2 (en) Memory cleaning method and apparatus, and terminal device
US20180285216A1 (en) Virtual Machine Recovery Method and Virtual Machine Management Device
US20140379656A1 (en) System and Method for Maintaining a Cluster Setup
WO2018076755A1 (zh) 一种升级包下发方法及装置
WO2020140634A1 (zh) 存储空间优化方法、装置、计算机设备及存储介质
CN110908681A (zh) 一种软件升级的方法和装置
CN113946275B (zh) 一种缓存管理方法及装置、存储介质
CN109033430A (zh) 一种虚拟机镜像文件存储方法及装置
CN115202686A (zh) 虚拟化系统的升级方法、装置、电子设备及存储介质
CN111770153A (zh) 一种对象下载方法、装置及电子设备和存储介质
CN102609454B (zh) 一种分布式文件系统中的副本管理方法
CN112579550B (zh) 一种分布式文件系统的元数据信息同步方法及系统
CN107783826B (zh) 一种虚拟机迁移方法、装置及系统
US9921918B1 (en) Cloud-based data backup and management
CN104104701A (zh) 在线服务的配置更新的方法和系统
CN112463170A (zh) 云平台上制作镜像的方法、装置、设备及存储介质
WO2021012562A1 (zh) 区块链数据清理方法、装置、计算机设备和存储介质
CN113641693B (zh) 流式计算系统的数据处理方法及装置、电子设备和介质
CN115357336A (zh) 容器组的在线扩容方法、装置、终端设备与介质
CN114879977A (zh) 应用部署方法、装置及存储介质
CN111080250B (zh) 流程回退补偿方法、装置、存储介质及电子设备
CN109101253B (zh) 云计算系统中主机的管理方法和装置
CN113934437A (zh) 云手机安装应用的方法、系统和客户端云手机
CN108920628B (zh) 一种适配大数据平台的分布式文件系统访问方法及装置
CN114968963A (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