CN112286625B - 一种基于云平台多用户的镜像缓存状态管理方法及系统 - Google Patents
一种基于云平台多用户的镜像缓存状态管理方法及系统 Download PDFInfo
- Publication number
- CN112286625B CN112286625B CN202010955238.5A CN202010955238A CN112286625B CN 112286625 B CN112286625 B CN 112286625B CN 202010955238 A CN202010955238 A CN 202010955238A CN 112286625 B CN112286625 B CN 112286625B
- Authority
- CN
- China
- Prior art keywords
- mirror image
- image record
- state
- buffer area
- record
- 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
Links
- 238000007726 management method Methods 0.000 title claims abstract description 30
- 230000009471 action Effects 0.000 claims abstract description 25
- 238000000034 method Methods 0.000 claims abstract description 20
- 230000008569 process Effects 0.000 claims description 16
- 230000008859 change Effects 0.000 claims description 3
- 230000007246 mechanism Effects 0.000 abstract description 10
- 238000012217 deletion Methods 0.000 abstract description 7
- 230000037430 deletion Effects 0.000 abstract description 7
- 238000005457 optimization Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 5
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5682—Policies or rules for updating, deleting or replacing the stored data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及云计算平台技术领域,提供一种基于云平台多用户的镜像缓存状态管理方法及系统,方法包括:当有镜像创建卷的操作动作时,判断缓冲区中是否存在待镜像创建卷所对应的镜像记录;当判定缓冲区中存在镜像记录时,依次对待镜像创建卷所对应的镜像记录的各个状态进行判断,并依据判断结果控制镜像记录读取计数器的加减动作,同时设置缓冲区中镜像记录的状态;当未有镜像记录时,控制在缓冲区中创建镜像记录,并设置创建的镜像记录的状态,从而实现优化云平台创建镜像卷的镜像缓存机制,加入镜像缓存状态管理机制,同时实现云平台在多用户高并发场景下的镜像创建卷流程优化,避免出现不完整镜像卷以及误删情况的发生。
Description
技术领域
本发明属于云计算平台技术领域,尤其涉及一种基于云平台多用户的镜像缓存状态管理方法及系统。
背景技术
云计算平台也称为云平台,是指基于硬件资源和软件资源的服务,提供计算、网络和存储能力。 OpenStack 是一个开源的云计算管理平台项目,同时也是目前市场上应用最为广泛的云计算平台之一,具有很大的商业潜力,当前国内多家云平台服务商使用OpenStack架构开发云平台。
当前OpenStack云平台在创建镜像卷的过程中,虽然实现了镜像缓存到本地存储节点的机制,当前机制对于低并发场景下可用,但是一旦用于多用户高并发的场景,就会产生以下两大严重问题:
(1)当一个镜像被一个用户首次使用,在进行缓存的过程中,同时其他用户也请求使用该镜像,此时发现缓存空间内已经有该镜像,镜像ID一致。但是该镜像的数据还未被完整的缓存下来,就被其他用户直接视为已经被缓存,且缓存命中,直接用于创建镜像卷,很明显这会导致创建的镜像卷也是有问题的,这个镜像卷作为镜像盘启动虚拟机也会失败;
(2)镜像缓存的缓存空间容量都是有限的。当缓存空间使用接近峰值时,在创建镜像卷的过程中,如果需要缓存新的镜像,而缓存空间的剩余空间容量不足以缓存该新镜像,镜像缓存机制就会将已经缓存的镜像按照使用频率排序,将使用频率最低的镜像删除,再次计算是否可以缓存新的镜像,不够的话,继续删除,直到剩余空间足够缓存此新镜像。这个逻辑在单用户场景下没有问题,但是处于多用户高并发场景下,此逻辑可能会遇到这样的问题,当需要缓存镜像A,而缓存空间不够,系统去删除使用频率最低的一个镜像B时,这个镜像B正处于镜像导入卷的过程中,即此时镜像B正在被另外一个用户使用,此时当前用户的操作会直接导致镜像B被删除,进而导致正在使用镜像B的用户的创建镜像卷操作失败。上述问题虽然不是必然发生,但是在多用户高并发场景下还是会出现的,一旦出现就直接导致镜像卷创建失败。
发明内容
针对现有技术中的缺陷,本发明提供了一种基于云平台多用户的镜像缓存状态管理方法,旨在解决在多用户高并发场景下的镜像创建卷过程中,出现不完整镜像卷以及误删情况的问题。
本发明所提供的技术方案是:一种基于云平台多用户的镜像缓存状态管理方法,所述方法包括下述步骤:
当有镜像创建卷的操作动作时,判断缓冲区中是否存在待镜像创建卷所对应的镜像记录;
当判定所述缓冲区中存在镜像记录时,依次对待镜像创建卷所对应的镜像记录的各个状态进行判断,并依据判断结果控制镜像记录读取计数器的加减动作,同时设置所述缓冲区中镜像记录的状态,其中,所述待镜像创建卷所对应的镜像记录的状态包括可用、缓存中和读取中;
当判定所述缓冲区未有镜像记录时,控制在所述缓冲区中创建镜像记录,并设置创建的镜像记录的状态。
作为一种改进的方案,所述当有镜像创建卷的操作动作时,判断缓冲区中是否存在待镜像创建卷所对应的镜像记录的步骤之前还包括下述步骤:
对创建卷过程中所涉及的镜像记录进行状态配置,其中:
镜像记录状态为可用,表示镜像有一个完整的数据,且没有其他用户正在读取使用镜像;
镜像记录为缓存中,表示所述缓冲区中没有镜像记录,正在将镜像从远端镜像仓库下载到本地缓冲区中;
镜像记录为读取中,表示镜像记录正在被读取使用。
作为一种改进的方案,所述当判定所述缓冲区中存在镜像记录时,依次对待镜像创建卷所对应的镜像记录的各个状态进行判断,并依据判断结果控制镜像记录读取计数器的加减动作,同时设置所述缓冲区中镜像记录的状态的步骤具体包括下述步骤:
当判定所述缓冲区中存在镜像记录时,判断所述缓冲区中的所述镜像记录的状态是否为可用;
当判定所述缓冲区中的所述镜像记录的状态为可用时,将所述缓冲区中的所述镜像记录的状态设置为读取中,并控制所述镜像记录读取计数器计数加一;
当判定所述缓冲区中的所述镜像记录的状态为不可用时,判断所述缓冲区的镜像记录的状态是否为缓存中;
当判定所述缓冲区的镜像记录的状态为缓存中时,控制等待镜像记录的下载缓存;
判断在预设的时间阈值内镜像记录的状态是否变更为可用状态;
当判定在预设的时间阈值内镜像记录的状态未变更为可用状态时,删除所述缓冲区中的所述镜像记录,并执行所述控制在所述缓冲区中创建镜像记录,并设置创建的镜像记录的状态的步骤;
当判定在预设的时间阈值内镜像记录的状态变更为可用状态时,执行所述将所述缓冲区中的所述镜像记录的状态设置为读取中,并控制所述镜像记录读取计数器计数加一的步骤;
当判定所述缓冲区的镜像记录的状态不是缓存中时,判定镜像记录的状态为读取中,且执行控制所述镜像记录读取计数器计数加一的步骤。
作为一种改进的方案,所述当判定所述缓冲区未有镜像记录时,控制在所述缓冲区中创建镜像记录,并设置创建的镜像记录的状态的步骤具体包括下述步骤:
当判定所述缓冲区未有镜像记录时,控制将镜像从远端镜像仓库下载到本地缓冲区中;
当将镜像从远端镜像仓库下载到本地缓冲区的过程中,将下载到本地缓冲区中的镜像记录的状态设置为缓存中;
判断本地缓冲区的缓存目录剩余空间是否足够;
当本地缓冲区的缓存目录剩余空间足够时,将镜像记录下载到缓冲区中,并将镜像记录的状态设置为读取中;
当本地缓冲区的缓存目录剩余空间不足时,将缓冲区中的镜像记录列表中使用频率较低的镜像删除,将下载的镜像记录保存至对应位置。
作为一种改进的方案,所述将所述缓冲区中的所述镜像记录的状态设置为读取中,并控制所述镜像记录读取计数器计数加一的步骤之后还包括下述步骤:
当镜像卷创建完成时,将所述镜像记录读取计数器计数减一;
判断当前所述镜像记录读取计数器是否为0;
当当前所述镜像记录读取计数器为0时,将对应的镜像记录的状态设置为可用;
当当前所述镜像记录读取计数器非0时,控制跳过状态设置。
本发明的另一目的在于提供一种基于云平台多用户的镜像缓存状态管理系统,所述系统包括:
缓冲区判断模块,用于当有镜像创建卷的操作动作时,判断缓冲区中是否存在待镜像创建卷所对应的镜像记录;
镜像缓存状态管理模块,用于当判定所述缓冲区中存在镜像记录时,依次对待镜像创建卷所对应的镜像记录的各个状态进行判断,并依据判断结果控制镜像记录读取计数器的加减动作,同时设置所述缓冲区中镜像记录的状态,其中,所述待镜像创建卷所对应的镜像记录的状态包括可用、缓存中和读取中;
镜像记录创建模块,用于当判定所述缓冲区未有镜像记录时,控制在所述缓冲区中创建镜像记录,并设置创建的镜像记录的状态。
作为一种改进的方案,所述系统还包括:
镜像记录状态设置模块,用于对创建卷过程中所涉及的镜像记录进行状态配置,其中:
镜像记录状态为可用,表示镜像有一个完整的数据,且没有其他用户正在读取使用镜像;
镜像记录为缓存中,表示所述缓冲区中没有镜像记录,正在将镜像从远端镜像仓库下载到本地缓冲区中;
镜像记录为读取中,表示镜像记录正在被读取使用。
作为一种改进的方案,所述镜像缓存状态管理模块具体包括:
可用状态判断模块,用于当判定所述缓冲区中存在镜像记录时,判断所述缓冲区中的所述镜像记录的状态是否为可用;
第一镜像记录状态设置模块,用于当判定所述缓冲区中的所述镜像记录的状态为可用时,将所述缓冲区中的所述镜像记录的状态设置为读取中;
计数器加一模块,用于控制所述镜像记录读取计数器计数加一;
缓存中状态判断模块,用于当判定所述缓冲区中的所述镜像记录的状态为不可用时,判断所述缓冲区的镜像记录的状态是否为缓存中;
等待控制模块,用于当判定所述缓冲区的镜像记录的状态为缓存中时,控制等待镜像记录的下载缓存;
变更判断模块,用于判断在预设的时间阈值内镜像记录的状态是否变更为可用状态;
第一镜像记录删除模块,用于当判定在预设的时间阈值内镜像记录的状态未变更为可用状态时,删除所述缓冲区中的所述镜像记录,并执行所述镜像记录创建模块控制在所述缓冲区中创建镜像记录,并设置创建的镜像记录的状态的步骤;
读取中状态判定模块,用于当判定所述缓冲区的镜像记录的状态不是缓存中时,判定镜像记录的状态为读取中,且执行所述计数器加一模块控制所述镜像记录读取计数器计数加一的步骤;
当判定在预设的时间阈值内镜像记录的状态变更为可用状态时,执行所述镜像记录状态设置模块将所述缓冲区中的所述镜像记录的状态设置为读取中,并控制所述镜像记录读取计数器计数加一的步骤。
作为一种改进的方案,所述镜像记录创建模块具体包括:
下载模块,用于当判定所述缓冲区未有镜像记录时,控制将镜像从远端镜像仓库下载到本地缓冲区中;
第二镜像记录状态设置模块,用于当将镜像从远端镜像仓库下载到本地缓冲区的过程中,将下载到本地缓冲区中的镜像记录的状态设置为缓存中;
剩余空间判断模块,用于判断本地缓冲区的缓存目录剩余空间是否足够;
第三镜像记录状态设置模块,用于当本地缓冲区的缓存目录剩余空间足够时,将镜像记录下载到缓冲区中,并将镜像记录的状态设置为读取中;
第二镜像记录删除模块,用于当本地缓冲区的缓存目录剩余空间不足时,将缓冲区中的镜像记录列表中使用频率较低的镜像删除,将下载的镜像记录保存至对应位置。
作为一种改进的方案,所述系统还包括:
计数器减一模块,用于当镜像卷创建完成时,将所述镜像记录读取计数器计数减一;
计数器判断模块,用于判断当前所述镜像记录读取计数器是否为0;
第四镜像记录状态设置模块,用于当当前所述镜像记录读取计数器为0时,将对应的镜像记录的状态设置为可用;
跳过控制模块,用于当当前所述镜像记录读取计数器非0时,控制跳过状态设置。
在本发明实施例中,当有镜像创建卷的操作动作时,判断缓冲区中是否存在待镜像创建卷所对应的镜像记录;当判定所述缓冲区中存在镜像记录时,依次对待镜像创建卷所对应的镜像记录的各个状态进行判断,并依据判断结果控制镜像记录读取计数器的加减动作,同时设置缓冲区中镜像记录的状态;当判定缓冲区未有镜像记录时,控制在缓冲区中创建镜像记录,并设置创建的镜像记录的状态,从而实现优化OpenStack云平台创建镜像卷的镜像缓存机制,加入镜像缓存状态管理机制,同时实现云平台在多用户高并发场景下的镜像创建卷流程优化,避免出现不完整镜像卷以及误删情况的发生。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。
图1是本发明提供的基于云平台多用户的镜像缓存状态管理方法的实现流程图;
图2是本发明提供的当判定所述缓冲区中存在镜像记录时,依次对待镜像创建卷所对应的镜像记录的各个状态进行判断,并依据判断结果控制镜像记录读取计数器的加减动作,同时设置所述缓冲区中镜像记录的状态的实现流程图;
图3是本发明提供的当判定所述缓冲区未有镜像记录时,控制在所述缓冲区中创建镜像记录,并设置创建的镜像记录的状态的实现流程图;
图4是本发明提供的基于云平台多用户的镜像缓存状态管理系统的结构框图;
图5是本发明提供的镜像缓存状态管理模块的结构框图;
图6是本发明提供的镜像记录创建模块的结构框图。
具体实施方式
下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的、技术方案,因此只作为示例,而不能以此来限制本发明的保护范围。
图1是本发明提供的基于云平台多用户的镜像缓存状态管理方法的实现流程图,其具体包括下述步骤:
在步骤S101中,当有镜像创建卷的操作动作时,判断缓冲区中是否存在待镜像创建卷所对应的镜像记录,是则执行步骤S102,否则执行步骤S103;
在步骤S102中,当判定所述缓冲区中存在镜像记录时,依次对待镜像创建卷所对应的镜像记录的各个状态进行判断,并依据判断结果控制镜像记录读取计数器的加减动作,同时设置所述缓冲区中镜像记录的状态,其中,所述待镜像创建卷所对应的镜像记录的状态包括可用、缓存中和读取中;
在步骤S103中,当判定所述缓冲区未有镜像记录时,控制在所述缓冲区中创建镜像记录,并设置创建的镜像记录的状态。
在本发明实施例中,创建镜像卷是OpenStack云平台里的一个常规操作,其流程就是从远程镜像仓库下载镜像到存储节点本地,然后将此镜像导入到卷,来完成一个镜像卷的创建,最后再将下载的镜像再删除。创建的镜像卷可以用于作为系统盘启动虚拟机;
镜像缓存的定义为:创建镜像卷需要从远程镜像仓库下载镜像,使用后就删除了,在多用户高并发场景下,这样效率较低,于是在存储节点专门开辟了一部分存储空间用户缓存使用频率较高的部分镜像,使得用户在创建镜像卷的时候,如果已经缓存在本地存储节点,则无需再次从远程镜像仓库下载,从而提高创建镜像卷的效率。
在本发明实施例中,当有镜像创建卷的操作动作时,判断缓冲区中是否存在待镜像创建卷所对应的镜像记录的步骤之前还包括下述步骤:
对创建卷过程中所涉及的镜像记录进行状态配置,其中:
镜像记录状态为可用,表示镜像有一个完整的数据,且没有其他用户正在读取使用镜像;
镜像记录为缓存中,表示所述缓冲区中没有镜像记录,正在将镜像从远端镜像仓库下载到本地缓冲区中;
镜像记录为读取中,表示镜像记录正在被读取使用。
在本发明实施例中,如图2所示,当判定所述缓冲区中存在镜像记录时,依次对待镜像创建卷所对应的镜像记录的各个状态进行判断,并依据判断结果控制镜像记录读取计数器的加减动作,同时设置所述缓冲区中镜像记录的状态的步骤具体包括下述步骤:
在步骤S201中,当判定所述缓冲区中存在镜像记录时,判断所述缓冲区中的所述镜像记录的状态是否为可用,是则执行步骤S202,否则执行步骤S203;
在步骤S202中,当判定所述缓冲区中的所述镜像记录的状态为可用时,将所述缓冲区中的所述镜像记录的状态设置为读取中,并控制所述镜像记录读取计数器计数加一;
在步骤S203中,当判定所述缓冲区中的所述镜像记录的状态为不可用时,判断所述缓冲区的镜像记录的状态是否为缓存中,是则执行步骤S204,否则执行步骤S208;
在步骤S204中,当判定所述缓冲区的镜像记录的状态为缓存中时,控制等待镜像记录的下载缓存;
在步骤S205中,判断在预设的时间阈值内镜像记录的状态是否变更为可用状态,是而则执行步骤S206,否则执行步骤S207;
其中,该预设的时间阈值可以是1小时,当然也可以是其他时间段,在此不再赘述。
在步骤S206中,当判定在预设的时间阈值内镜像记录的状态未变更为可用状态时,删除所述缓冲区中的所述镜像记录,并执行所述控制在所述缓冲区中创建镜像记录,并设置创建的镜像记录的状态的步骤;
其中,该步骤中删除的镜像记录为下载失败或者其他故障的镜像记录,重新执行下载的步骤,在此不再赘述。
在步骤S207中,当判定在预设的时间阈值内镜像记录的状态变更为可用状态时,执行所述将所述缓冲区中的所述镜像记录的状态设置为读取中,并控制所述镜像记录读取计数器计数加一的步骤。
在步骤S208中,当判定所述缓冲区的镜像记录的状态不是缓存中时,判定镜像记录的状态为读取中,且执行控制所述镜像记录读取计数器计数加一的步骤。
在该实施例中,在执行步骤S205,判断在预设的时间阈值内镜像记录的状态是否变更为可用状态时,此时,镜像记录的状态也有可能是读取中;
此时,则控制等待另一预设时间阈值,当镜像记录的状态由读取中变化为可用时,继续执行步骤S206,在此不再赘述。
在本发明实施例中,如图3所示,当判定所述缓冲区未有镜像记录时,控制在所述缓冲区中创建镜像记录,并设置创建的镜像记录的状态的步骤具体包括下述步骤:
在步骤S301中,当判定所述缓冲区未有镜像记录时,控制将镜像从远端镜像仓库下载到本地缓冲区中;
在步骤S302中,当将镜像从远端镜像仓库下载到本地缓冲区的过程中,将下载到本地缓冲区中的镜像记录的状态设置为缓存中;
在步骤S303中,判断本地缓冲区的缓存目录剩余空间是否足够,是则执行步骤S304,否则执行步骤S305;
在步骤S304中,当本地缓冲区的缓存目录剩余空间足够时,将镜像记录下载到缓冲区中,并将镜像记录的状态设置为读取中;
在步骤S305中,当本地缓冲区的缓存目录剩余空间不足时,将缓冲区中的镜像记录列表中使用频率较低的镜像删除,将下载的镜像记录保存至对应位置。
在该实施例中,上述镜像记录读取计数器的每一次加一动作就会对镜像记录的总使用记录进行加一,从而形成一个镜像记录列表,该列表中记载了所有镜像记录的使用频率,在此不再赘述。
其中,当待删除的镜像记录的状态为读取中时,则挑过该删除动作,并继续执行将缓冲区中的镜像记录列表中使用频率较低的镜像删除的步骤,即重新查找使用频率较低,进行删除替换,在此不再赘述。
在本发明实施例中,将所述缓冲区中的所述镜像记录的状态设置为读取中,并控制所述镜像记录读取计数器计数加一的步骤之后还包括下述步骤:
(1)当镜像卷创建完成时,将所述镜像记录读取计数器计数减一;
(2)判断当前所述镜像记录读取计数器是否为0,是则执行步骤(3),否则执行步骤(4);
(3)当当前所述镜像记录读取计数器为0时,将对应的镜像记录的状态设置为可用;
(4)当当前所述镜像记录读取计数器非0时,控制跳过状态设置。
在本发明实施例中,在原有基本镜像缓存逻辑的基础上,通过加入镜像缓存状态管理策略,实现了镜像缓存功能在多用户高并发场景下的应用,其具有如下效果:
(1)解决了在多用户高并发场景下,创建镜像卷出现不完整的情况;
(2)解决了在多用户高并发场景下,由于缓存空间不足,误删正在导入卷的镜像,避免了镜像卷创建失败的情况;
(3)防止镜像下载卡死现象,如果1小时内未下载完成,将触发重新下载;
(4)极大的提高用户使用体验。
图4示出了本发明提供的基于云平台多用户的镜像缓存状态管理系统的结构框图,为了便于说明,图中仅给出了与本发明实施例相关的部分。
基于云平台多用户的镜像缓存状态管理系统包括:
缓冲区判断模块11,用于当有镜像创建卷的操作动作时,判断缓冲区中是否存在待镜像创建卷所对应的镜像记录;
镜像缓存状态管理模块12,用于当判定所述缓冲区中存在镜像记录时,依次对待镜像创建卷所对应的镜像记录的各个状态进行判断,并依据判断结果控制镜像记录读取计数器的加减动作,同时设置所述缓冲区中镜像记录的状态,其中,所述待镜像创建卷所对应的镜像记录的状态包括可用、缓存中和读取中;
镜像记录创建模块13,用于当判定所述缓冲区未有镜像记录时,控制在所述缓冲区中创建镜像记录,并设置创建的镜像记录的状态。
在该实施例中,所述系统还包括:
镜像记录状态设置模块14,用于对创建卷过程中所涉及的镜像记录进行状态配置,其中:
镜像记录状态为可用,表示镜像有一个完整的数据,且没有其他用户正在读取使用镜像;
镜像记录为缓存中,表示所述缓冲区中没有镜像记录,正在将镜像从远端镜像仓库下载到本地缓冲区中;
镜像记录为读取中,表示镜像记录正在被读取使用。
在本发明实施例中,如图5所示,镜像缓存状态管理模块12具体包括:
可用状态判断模块15,用于当判定所述缓冲区中存在镜像记录时,判断所述缓冲区中的所述镜像记录的状态是否为可用;
第一镜像记录状态设置模块16,用于当判定所述缓冲区中的所述镜像记录的状态为可用时,将所述缓冲区中的所述镜像记录的状态设置为读取中;
计数器加一模块17,用于控制所述镜像记录读取计数器计数加一;
缓存中状态判断模块18,用于当判定所述缓冲区中的所述镜像记录的状态为不可用时,判断所述缓冲区的镜像记录的状态是否为缓存中;
等待控制模块19,用于当判定所述缓冲区的镜像记录的状态为缓存中时,控制等待镜像记录的下载缓存;
变更判断模块20,用于判断在预设的时间阈值内镜像记录的状态是否变更为可用状态;
第一镜像记录删除模块21,用于当判定在预设的时间阈值内镜像记录的状态未变更为可用状态时,删除所述缓冲区中的所述镜像记录,并执行所述镜像记录创建模块控制在所述缓冲区中创建镜像记录,并设置创建的镜像记录的状态的步骤;
读取中状态判定模块22,用于当判定所述缓冲区的镜像记录的状态不是缓存中时,判定镜像记录的状态为读取中,且执行所述计数器加一模块控制所述镜像记录读取计数器计数加一的步骤;
当判定在预设的时间阈值内镜像记录的状态变更为可用状态时,执行所述镜像记录状态设置模块将所述缓冲区中的所述镜像记录的状态设置为读取中,并控制所述镜像记录读取计数器计数加一的步骤。
在本发明实施例中,如图6所示,镜像记录创建模块13具体包括:
下载模块23,用于当判定所述缓冲区未有镜像记录时,控制将镜像从远端镜像仓库下载到本地缓冲区中;
第二镜像记录状态设置模块24,用于当将镜像从远端镜像仓库下载到本地缓冲区的过程中,将下载到本地缓冲区中的镜像记录的状态设置为缓存中;
剩余空间判断模块25,用于判断本地缓冲区的缓存目录剩余空间是否足够;
第三镜像记录状态设置模块26,用于当本地缓冲区的缓存目录剩余空间足够时,将镜像记录下载到缓冲区中,并将镜像记录的状态设置为读取中;
第二镜像记录删除模块27,用于当本地缓冲区的缓存目录剩余空间不足时,将缓冲区中的镜像记录列表中使用频率较低的镜像删除,将下载的镜像记录保存至对应位置。
在本发明实施例中,结合图5所示,所述系统还包括:
计数器减一模块28,用于当镜像卷创建完成时,将所述镜像记录读取计数器计数减一;
计数器判断模块29,用于判断当前所述镜像记录读取计数器是否为0;
第四镜像记录状态设置模块30,用于当当前所述镜像记录读取计数器为0时,将对应的镜像记录的状态设置为可用;
跳过控制模块31,用于当当前所述镜像记录读取计数器非0时,控制跳过状态设置。
其中,上述各个模块的功能如上述方法实施例所记载,在此不再赘述。
在本发明实施例中,当有镜像创建卷的操作动作时,判断缓冲区中是否存在待镜像创建卷所对应的镜像记录;当判定缓冲区中存在镜像记录时,依次对待镜像创建卷所对应的镜像记录的各个状态进行判断,并依据判断结果控制镜像记录读取计数器的加减动作,同时设置缓冲区中镜像记录的状态;当未有镜像记录时,控制在缓冲区中创建镜像记录,并设置创建的镜像记录的状态,从而实现优化云平台创建镜像卷的镜像缓存机制,加入镜像缓存状态管理机制,同时实现云平台在多用户高并发场景下的镜像创建卷流程优化,避免出现不完整镜像卷以及误删情况的发生。
以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。
Claims (6)
1.一种基于云平台多用户的镜像缓存状态管理方法,其特征在于,所述方法包括下述步骤:
当有镜像创建卷的操作动作时,判断缓冲区中是否存在待镜像创建卷所对应的镜像记录;
当判定所述缓冲区中存在镜像记录时,依次对待镜像创建卷所对应的镜像记录的各个状态进行判断,并依据判断结果控制镜像记录读取计数器的加减动作,同时设置所述缓冲区中镜像记录的状态,其中,所述待镜像创建卷所对应的镜像记录的状态包括可用、缓存中和读取中;
当判定所述缓冲区未有镜像记录时,控制在所述缓冲区中创建镜像记录,并设置创建的镜像记录的状态;
所述当有镜像创建卷的操作动作时,判断缓冲区中是否存在待镜像创建卷所对应的镜像记录的步骤之前还包括下述步骤:
对创建卷过程中所涉及的镜像记录进行状态配置,其中:
镜像记录状态为可用,表示镜像有一个完整的数据,且没有其他用户正在读取使用镜像;
镜像记录为缓存中,表示所述缓冲区中没有镜像记录,正在将镜像从远端镜像仓库下载到本地缓冲区中;
镜像记录为读取中,表示镜像记录正在被读取使用;
所述当判定所述缓冲区中存在镜像记录时,依次对待镜像创建卷所对应的镜像记录的各个状态进行判断,并依据判断结果控制镜像记录读取计数器的加减动作,同时设置所述缓冲区中镜像记录的状态的步骤具体包括下述步骤:
当判定所述缓冲区中存在镜像记录时,判断所述缓冲区中的所述镜像记录的状态是否为可用;
当判定所述缓冲区中的所述镜像记录的状态为可用时,将所述缓冲区中的所述镜像记录的状态设置为读取中,并控制所述镜像记录读取计数器计数加一;
当判定所述缓冲区中的所述镜像记录的状态为不可用时,判断所述缓冲区的镜像记录的状态是否为缓存中;
当判定所述缓冲区的镜像记录的状态为缓存中时,控制等待镜像记录的下载缓存;
判断在预设的时间阈值内镜像记录的状态是否变更为可用状态;
当判定在预设的时间阈值内镜像记录的状态未变更为可用状态时,删除所述缓冲区中的所述镜像记录,并执行所述控制在所述缓冲区中创建镜像记录,并设置创建的镜像记录的状态的步骤;
当判定在预设的时间阈值内镜像记录的状态变更为可用状态时,执行所述将所述缓冲区中的所述镜像记录的状态设置为读取中,并控制所述镜像记录读取计数器计数加一的步骤;
当判定所述缓冲区的镜像记录的状态不是缓存中时,判定镜像记录的状态为读取中,且执行控制所述镜像记录读取计数器计数加一的步骤。
2.根据权利要求1所述的基于云平台多用户的镜像缓存状态管理方法,其特征在于,所述当判定所述缓冲区未有镜像记录时,控制在所述缓冲区中创建镜像记录,并设置创建的镜像记录的状态的步骤具体包括下述步骤:
当判定所述缓冲区未有镜像记录时,控制将镜像从远端镜像仓库下载到本地缓冲区中;
当将镜像从远端镜像仓库下载到本地缓冲区的过程中,将下载到本地缓冲区中的镜像记录的状态设置为缓存中;
判断本地缓冲区的缓存目录剩余空间是否能够缓存所述镜像记录;
当本地缓冲区的缓存目录剩余空间能够缓存所述镜像记录时,将镜像记录下载到缓冲区中,并将镜像记录的状态设置为读取中;
当本地缓冲区的缓存目录剩余空间不能够缓存所述镜像记录时,将缓冲区中的镜像记录列表中使用频率较低的镜像删除,将下载的镜像记录保存至对应位置。
3.根据权利要求2所述的基于云平台多用户的镜像缓存状态管理方法,其特征在于,所述将所述缓冲区中的所述镜像记录的状态设置为读取中,并控制所述镜像记录读取计数器计数加一的步骤之后还包括下述步骤:
当镜像卷创建完成时,将所述镜像记录读取计数器计数减一;
判断当前所述镜像记录读取计数器是否为0;
当当前所述镜像记录读取计数器为0时,将对应的镜像记录的状态设置为可用;
当当前所述镜像记录读取计数器非0时,控制跳过状态设置。
4.一种基于云平台多用户的镜像缓存状态管理系统,其特征在于,所述系统包括:
缓冲区判断模块,用于当有镜像创建卷的操作动作时,判断缓冲区中是否存在待镜像创建卷所对应的镜像记录;
镜像缓存状态管理模块,用于当判定所述缓冲区中存在镜像记录时,依次对待镜像创建卷所对应的镜像记录的各个状态进行判断,并依据判断结果控制镜像记录读取计数器的加减动作,同时设置所述缓冲区中镜像记录的状态,其中,所述待镜像创建卷所对应的镜像记录的状态包括可用、缓存中和读取中;
镜像记录创建模块,用于当判定所述缓冲区未有镜像记录时,控制在所述缓冲区中创建镜像记录,并设置创建的镜像记录的状态;
所述系统还包括:
镜像记录状态设置模块,用于对创建卷过程中所涉及的镜像记录进行状态配置,其中:
镜像记录状态为可用,表示镜像有一个完整的数据,且没有其他用户正在读取使用镜像;
镜像记录为缓存中,表示所述缓冲区中没有镜像记录,正在将镜像从远端镜像仓库下载到本地缓冲区中;
镜像记录为读取中,表示镜像记录正在被读取使用;
所述镜像缓存状态管理模块具体包括:
可用状态判断模块,用于当判定所述缓冲区中存在镜像记录时,判断所述缓冲区中的所述镜像记录的状态是否为可用;
第一镜像记录状态设置模块,用于当判定所述缓冲区中的所述镜像记录的状态为可用时,将所述缓冲区中的所述镜像记录的状态设置为读取中;
计数器加一模块,用于控制所述镜像记录读取计数器计数加一;
缓存中状态判断模块,用于当判定所述缓冲区中的所述镜像记录的状态为不可用时,判断所述缓冲区的镜像记录的状态是否为缓存中;
等待控制模块,用于当判定所述缓冲区的镜像记录的状态为缓存中时,控制等待镜像记录的下载缓存;
变更判断模块,用于判断在预设的时间阈值内镜像记录的状态是否变更为可用状态;
第一镜像记录删除模块,用于当判定在预设的时间阈值内镜像记录的状态未变更为可用状态时,删除所述缓冲区中的所述镜像记录,并执行所述镜像记录创建模块控制在所述缓冲区中创建镜像记录,并设置创建的镜像记录的状态的步骤;
读取中状态判定模块,用于当判定所述缓冲区的镜像记录的状态不是缓存中时,判定镜像记录的状态为读取中,且执行所述计数器加一模块控制所述镜像记录读取计数器计数加一的步骤;
当判定在预设的时间阈值内镜像记录的状态变更为可用状态时,执行所述镜像记录状态设置模块将所述缓冲区中的所述镜像记录的状态设置为读取中,并控制所述镜像记录读取计数器计数加一的步骤。
5.根据权利要求4所述的基于云平台多用户的镜像缓存状态管理系统,其特征在于,所述镜像记录创建模块具体包括:
下载模块,用于当判定所述缓冲区未有镜像记录时,控制将镜像从远端镜像仓库下载到本地缓冲区中;
第二镜像记录状态设置模块,用于当将镜像从远端镜像仓库下载到本地缓冲区的过程中,将下载到本地缓冲区中的镜像记录的状态设置为缓存中;
剩余空间判断模块,用于判断本地缓冲区的缓存目录剩余空间是否能够缓存所述镜像记录;
第三镜像记录状态设置模块,用于当本地缓冲区的缓存目录剩余空间能够缓存所述镜像记录时,将镜像记录下载到缓冲区中,并将镜像记录的状态设置为读取中;
第二镜像记录删除模块,用于当本地缓冲区的缓存目录剩余空间不能够缓存所述镜像记录时,将缓冲区中的镜像记录列表中使用频率较低的镜像删除,将下载的镜像记录保存至对应位置。
6.根据权利要求5所述的基于云平台多用户的镜像缓存状态管理系统,其特征在于,所述系统还包括:
计数器减一模块,用于当镜像卷创建完成时,将所述镜像记录读取计数器计数减一;
计数器判断模块,用于判断当前所述镜像记录读取计数器是否为0;
第四镜像记录状态设置模块,用于当当前所述镜像记录读取计数器为0时,将对应的镜像记录的状态设置为可用;
跳过控制模块,用于当当前所述镜像记录读取计数器非0时,控制跳过状态设置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010955238.5A CN112286625B (zh) | 2020-09-11 | 2020-09-11 | 一种基于云平台多用户的镜像缓存状态管理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010955238.5A CN112286625B (zh) | 2020-09-11 | 2020-09-11 | 一种基于云平台多用户的镜像缓存状态管理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112286625A CN112286625A (zh) | 2021-01-29 |
CN112286625B true CN112286625B (zh) | 2022-07-08 |
Family
ID=74419858
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010955238.5A Active CN112286625B (zh) | 2020-09-11 | 2020-09-11 | 一种基于云平台多用户的镜像缓存状态管理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112286625B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100312960A1 (en) * | 2009-06-08 | 2010-12-09 | Lsi Corporation | Method and apparatus for protecting the integrity of cached data in a direct-attached storage (das) system |
CN104679608A (zh) * | 2015-02-09 | 2015-06-03 | 广州杰赛科技股份有限公司 | 一种基础设施虚拟化平台构建方法及其镜像管理结构 |
CN111324415A (zh) * | 2019-10-28 | 2020-06-23 | 烽火通信科技股份有限公司 | 一种虚拟机镜像缓存创建方法、系统及计算机可读介质 |
-
2020
- 2020-09-11 CN CN202010955238.5A patent/CN112286625B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100312960A1 (en) * | 2009-06-08 | 2010-12-09 | Lsi Corporation | Method and apparatus for protecting the integrity of cached data in a direct-attached storage (das) system |
CN104679608A (zh) * | 2015-02-09 | 2015-06-03 | 广州杰赛科技股份有限公司 | 一种基础设施虚拟化平台构建方法及其镜像管理结构 |
CN111324415A (zh) * | 2019-10-28 | 2020-06-23 | 烽火通信科技股份有限公司 | 一种虚拟机镜像缓存创建方法、系统及计算机可读介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112286625A (zh) | 2021-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11023448B2 (en) | Data scrubbing method and apparatus, and computer readable storage medium | |
US11243922B2 (en) | Method, apparatus, and storage medium for migrating data node in database cluster | |
CN107832100B (zh) | 一种apk插件的加载方法及其终端 | |
CN107943718B (zh) | 一种清理缓存文件的方法和装置 | |
WO2020140634A1 (zh) | 存储空间优化方法、装置、计算机设备及存储介质 | |
EP3816783B1 (en) | Method and device for data migration | |
CN103024329B (zh) | 一种监控录像的存储管理方法 | |
CN101673192B (zh) | 时序化的数据处理方法、装置及系统 | |
US11579777B2 (en) | Data writing method, client server, and system | |
JP2006351004A (ja) | 携帯端末機のメモリ管理方法 | |
CN101866357A (zh) | 一种三态内容寻址存储器的表项更新方法及装置 | |
CN110750211B (zh) | 一种存储空间的管理方法及装置 | |
CN109739933A (zh) | 存储空间释放方法、装置、终端及计算机可读存储介质 | |
CN110333876A (zh) | 一种数据清除方法及控制设备 | |
CN110209341B (zh) | 一种数据写入方法、装置和存储设备 | |
US9395930B2 (en) | Information processing system, control method of information processing system, and recording medium | |
CN112286625B (zh) | 一种基于云平台多用户的镜像缓存状态管理方法及系统 | |
WO2024113543A1 (zh) | 数据处理方法、系统、装置、非易失性可读存储介质及电子设备 | |
CN112799588A (zh) | 使用外部存储加载容器集群应用数据时的数据存储方法 | |
CN114116649A (zh) | 一种实现文件存储QoS的方法及系统 | |
CN113867626A (zh) | 一种存储系统性能优化方法、系统、设备和存储介质 | |
CN111625500A (zh) | 文件快照方法及装置、电子设备和存储介质 | |
CN104461382A (zh) | 运行多个文件系统的文件服务器的内部写方法和服务器 | |
CN112559115A (zh) | 一种容器镜像的删除方法、装置及设备 | |
CN116126735B (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 |