CN112995257B - 基于云存储架构的缓存扩容方法、装置以及存储介质 - Google Patents
基于云存储架构的缓存扩容方法、装置以及存储介质 Download PDFInfo
- Publication number
- CN112995257B CN112995257B CN201911291598.3A CN201911291598A CN112995257B CN 112995257 B CN112995257 B CN 112995257B CN 201911291598 A CN201911291598 A CN 201911291598A CN 112995257 B CN112995257 B CN 112995257B
- Authority
- CN
- China
- Prior art keywords
- cache
- data
- block group
- area
- block
- 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
Images
Classifications
-
- 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
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0896—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
-
- 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/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种基于云存储架构的缓存扩容方法、装置以及存储介质,其中的方法包括:对缓存介质进行格式化处理,生成缓存并在缓存中设置管理区和块组;对块组进行格式化处理,以使块组包含元数据区和数据区;将全部块组的数据区组成连续的、提供给客户端使用的逻辑地址空间;当接收在线扩容指令时,格式化新增的块组并修改管理区内的管理数据。本公开的方法、装置以及存储介质,通过在格式化时以块组方式划分缓存,在扩容时以块组为单位进行扩容,解决传统扩容只能通过增加块组分块数目的低效率和离线扩容问题,达到在客户端业务不中断的前提下,实现缓存高效在线扩容,且不产生额外的数据迁移。
Description
技术领域
本发明涉及云计算技术领域,尤其涉及一种基于云存储架构的缓存扩容方法、装置以及存储介质。
背景技术
目前,在云存储架构设计中,通过缓存加速数据的访问来提高系统性能。由于缓存大小的限制,缓存数据具有时效性,过期的数据将被清理出缓存。随着业务系统数据量的增长,缓存命中率逐渐降低,导致系统性能下降。为了保证系统性能不下降,往往需要中断系统后通过增大缓存容量来提高缓存命中率,但现有的扩容方法无法满足对于必须7*24小时不间断工作的业务场景。
发明内容
有鉴于此,本发明要解决的一个技术问题是提供一种基于云存储架构的缓存扩容方法、装置以及存储介质。
根据本公开的一个方面,提供一种基于云存储架构的缓存扩容方法,包括:对缓存介质进行格式化处理,生成缓存并在所述缓存中设置管理区和块组;其中,所述管理区用于存放管理数据;对所述块组进行格式化处理,以使所述块组包含元数据区和数据区;其中,所述元数据区用于存放块组管理数据;所述数据区包括多个数据分块,用于存储业务数据;将全部所述块组的数据区组成连续的、提供给客户端使用的逻辑地址空间;当接收在线扩容指令时,格式化新增的块组并修改所述管理区内的管理数据。
可选地,在格式化所述新增的块组之后,通过对所述客户端设置写锁,使得所述客户端停止使用所述新增的块组以及已有的块组;在修改所述管理区内的管理数据之后,通过对所述客户端解除所述写锁,以使所述客户端能够使用所述新增的块组以及已有的块组。
可选地,获取预设的缓存格式化参数,其中,所述缓存格式化参数包括:块组中的数据分块大小、块组中的数据分块数目、第一缓存容量;基于所述缓存格式化参数对所述缓存介质进行格式化处理,并对所述块组进行格式化处理。
可选地,所述管理数据包括:缓存唯一标识、块组数目、缓存文件大小、缓存文件头部长度、空闲链表长度、空闲链表。
可选地,在所述元数据区内设置目录区和日志区;其中,所述目录区用于存放目录条目,所述目录条目的数量与所述数据分块数目相等,所述目录条目包含数据分块名称、数据状态;所述日志区用于存放日志条目,所述日志条目的数量与所述数据分块数目相等,所述日志条目包含I/O操作的偏移量与长度。
可选地,所述将全部所述块组的数据区组成连续的、提供给客户端使用的逻辑地址空间包括:将与全部新增的块组的数据区相对应的块组序号与数据分块序号加入所述空闲链表,组成连续的所述逻辑地址空间;其中,通过所述块组序号与所述数据分块序号标识数据分块的存储位置信息。
可选地,所述当接收在线扩容指令时,格式化新增的块组并修改所述管理区内的管理数据包括:当接收在线扩容指令时,按照预设的块组中的数据分块大小、块组中的数据分块数目和新增容量计算新增的块组数目,格式化新增的块组;其中,所述新增容量=所述在线扩容指令指示的第二缓存容量-所述第一缓存容量。
可选地,所述缓存介质包括:块设备、内存。
根据本公开的另一方面,提供一种基于云存储架构的缓存扩容装置,包括:缓存处理模块,用于对缓存介质进行格式化处理,生成缓存并在所述缓存中设置管理区和块组;其中,所述管理区用于存放管理数据;对所述块组进行格式化处理,以使所述块组包含元数据区和数据区;其中,所述元数据区用于存放块组管理数据;所述数据区包括多个数据分块,用于存储业务数据;数据区组合模块,用于将全部所述块组的数据区组成连续的、提供给客户端使用的逻辑地址空间;块组新增模块,用于当接收在线扩容指令时,格式化新增的块组并修改所述管理区内的管理数据。
可选地,所述块组新增模块,还用于在格式化所述新增的块组之后,通过对所述客户端设置写锁,使得所述客户端停止使用所述新增的块组以及已有的块组;在修改所述管理区内的管理数据之后,通过对所述客户端解除所述写锁,以使所述客户端能够使用所述新增的块组以及已有的块组。
可选地,所述缓存处理模块,用于获取预设的缓存格式化参数,其中,所述缓存格式化参数包括:块组中的数据分块大小、块组中的数据分块数目、第一缓存容量;基于所述缓存格式化参数对所述缓存介质进行格式化处理,并对所述块组进行格式化处理。
可选地,所述管理数据包括:缓存唯一标识、块组数目、缓存文件大小、缓存文件头部长度、空闲链表长度、空闲链表。
可选地,所述缓存处理模块,用于在所述元数据区内设置目录区和日志区;其中,所述目录区用于存放目录条目,所述目录条目的数量与所述数据分块数目相等,所述目录条目包含数据分块名称、数据状态;所述日志区用于存放日志条目,所述日志条目的数量与所述数据分块数目相等,所述日志条目包含I/O操作的偏移量与长度。
可选地,所述数据区组合模块,用于将与全部新增的块组的数据区相对应的块组序号与数据分块序号加入所述空闲链表,组成连续的所述逻辑地址空间。其中,通过所述块组序号与所述数据分块序号标识数据分块的存储位置信息。
可选地,所述块组新增模块,还用于当接收在线扩容指令时,按照预设的块组中的数据分块大小、块组中的数据分块数目和新增容量计算新增的块组数目,格式化新增的块组;其中,所述新增容量=所述在线扩容指令指示的第二缓存容量-所述第一缓存容量。
根据本公开的又一方面,提供一种基于云存储架构的缓存扩容装置,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如上所述的方法。
根据本公开的再一方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述指令被处理器执行如上所述的方法。
本公开的基于云存储架构的缓存扩容方法、装置以及存储介质,实现云存储架构下缓存的在线扩容,通过在格式化时以块组方式划分缓存,在扩容时以块组为单位进行扩容的方法,解决传统扩容只能通过增加块组分块数目的低效率和离线扩容问题,达到在客户端业务不中断的前提下,实现缓存高效在线扩容,且不产生额外的数据迁移。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为根据本公开的基于云存储架构的缓存扩容方法的一个实施例的流程示意图;
图2为根据本公开的基于云存储架构的缓存扩容方法的一个实施例中的新增缓存使用的流程示意图;
图3为缓存扩容前的数据结构示意图;
图4为缓存扩容后的数据结构示意图;
图5为根据本公开的基于云存储架构的缓存扩容装置的一个实施例的模块示意图;
图6为根据本公开的基于云存储架构的缓存扩容装置的另一个实施例的模块示意图。
具体实施方式
下面参照附图对本公开进行更全面的描述,其中说明本公开的示例性实施例。下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
下文中的“第一”、“第二”等仅用于描述上相区别,并没有其他特殊的含义。
图1为根据本公开的基于云存储架构的缓存扩容方法的一个实施例的流程示意图,如图1所示:
步骤101,对缓存介质进行格式化处理,生成缓存并在缓存中设置管理区和块组;其中,管理区用于存放管理数据。
缓存能够改善读、写数据的性能。当本地接收到云端的读指令时,开始读取数据,可以把正在读取的本地硬盘上存储的数据(包括正在读取的簇的下一个或者几个簇中的数据)读到缓存中。当需要读取下一个或者几个簇中的数据的时候,直接获取缓存中的数据。
当本地接收到云端的写指令之后,将需要写入数据先暂时存储在缓存里,然后发送一个“数据已写入”的信号给云端,云端继续执行下面的工作,而硬盘则在空闲(不进行读取或写入的时候)时再将缓存中的数据写入到盘片上。如果某些数据会经常需要访问,缓存会读取数据并存储,再次读取数据时可以直接从缓存中获取、传输。
缓存介质可以有多种,包括:块设备、内存等,缓存也可以为缓存文件。对缓存介质等进行格式化处理可以采用现有的多种格式化方法,在缓存中设置管理区和块组。
步骤102,对块组进行格式化处理,以使块组包含元数据区和数据区;其中,元数据区用于存放块组管理数据;数据区包括多个数据分块,用于存储业务数据。
对块组进行格式化处理可以采用现有的多种格式化方法,块组包含元数据区和数据区。
步骤103,将全部块组的数据区组成连续的、提供给客户端使用的逻辑地址空间。将所有块组的数据区组成连续的逻辑地址空间供客户端使用,客户端可以为云服务客户端等。
步骤104,当接收在线扩容指令时,格式化新增的块组并修改管理区内的管理数据。
图2为根据本公开的基于云存储架构的缓存扩容方法的一个实施例中的新增缓存使用的流程示意图,如图2所示:
步骤201,在格式化新增的块组之后,通过对客户端设置写锁,使得客户端停止使用新增的块组以及已有的块组。
步骤202,在修改管理区内的管理数据之后,通过对客户端解除写锁,以使客户端能够使用新增的块组以及已有的块组。
当获取对缓存在线扩容的指令时,格式化新增的块组。通过设置写锁阻塞客户端在扩容过程中使用缓存,修改管理区内的管理数据的相关参数(缓存大小、块组数目等),待修改完成后解除对客户端的写锁,可实现在不中断客户端业务的情况下对缓存的在线扩容,同时在扩容过程中,不需要移动缓存中的已有数据,减少了I/O的额外消耗。
上述实施例中的基于云存储架构的缓存扩容方法,实现云存储架构下缓存的在线扩容,通过在格式化时以块组方式划分缓存,在扩容时以块组为单位进行扩容的方法,解决传统扩容只能通过增加块组分块数目的低效率和离线扩容问题,达到在客户端业务不中断的前提下,实现缓存高效在线扩容,且不产生额外的数据迁移。
在一个实施例中,获取预设的缓存格式化参数,缓存格式化参数包括:块组中的数据分块大小、块组中的数据分块数目、第一缓存容量等;基于缓存格式化参数对缓存介质进行格式化处理,并和对块组进行格式化处理。
管理数据包括:缓存唯一标识、块组数目、缓存文件大小、缓存文件头部长度、空闲链表长度、空闲链表等。在元数据区内设置目录区和日志区;其中,目录区用于存放目录条目,目录条目的数量与数据分块数目相等,目录条目包含数据分块名称、数据状态等;日志区用于存放日志条目,日志条目的数量与数据分块数目相等,日志条目包含I/O操作的偏移量与长度等。
例如,在初始格式化缓存的过程中,将缓存起始一段空间设置为存放管理数据的管理区,其他空间根据块组大小划分为多个块组。格式化块组,每个块组包含用于管理块组数据的元数据区与用于存储数据的数据区。不同的使用场景对应不同的元数据区数据结构,例如,对于使用块设备做缓存的应用中,元数据中包含每个数据分块缓存的数据名称、操作日志等;数据区包含多个数据分块,数据区大小=块组中的数据分块数目*块组中的数据分块大小,块组大小=元数据区大小+数据区大小,第一缓存容量=块组大小+管理区大小。
将全部块组的数据区组成连续的、提供给客户端使用的逻辑地址空间可以采用多种方法。例如,将与全部新增的块组的数据区相对应的块组序号与数据分块序号加入空闲链表,组成连续的逻辑地址空间,其中,通过块组序号与数据分块序号标识数据分块的存储位置信息。
格式化新增的块组并修改管理区内的管理数据可以采用多种方法。例如,当接收在线扩容指令时,按照预设的块组中的数据分块大小、块组中的数据分块数目和新增容量计算新增的块组数目,格式化新增的块组;新增容量=在线扩容指令指示的第二缓存容量-第一缓存容量。
在一个实施例中,在企业数据云迁移实例中,客户端可通过挂载基于FUSE用户自定义文件系统实现的虚拟块设备实现数据向云端迁移。为了提高云迁移效率,通过指定大小的本地缓存文件缓存热数据。设置缓存格式化参数,缓存格式化参数包括:块组中的数据分块大小(例如为1M等)、块组中的数据分块数目(例如为10240等)、第一缓存容量(例如为100G等)。
定义位于缓存文件头部的管理区的数据结构,管理区存放的管理数据包含:缓存唯一标识、块组数目、缓存文件大小、缓存文件头部长度、空闲链表长度、空闲链表(通过块组序号与分块序号标识空闲分块的物理位置)等。定义块组的数据结构,包含元数据区(可以包含目录区、日志区)、数据区等。目录区包含多个目录条目,条目数与块组中的数据分块数目(10240)相等,每个目录条目包含缓存数据分块名称(block_num)、数据分块的数据状态(clean或dirty)、数据md5值等。日志区包含多个日志条目,条目数与块组中的数据分块数目(10240)相等,每个日志条目包含I/O操作的偏移量与长度;数据区包含多个数据分块条目,条目数与块组中分块数目(10240)相等,每个数据分块条目长度等于数据分块大小(1M)。
如图3所示,按照缓存文件头部的管理区的数据结构与块组的数据结构格式化缓存文件,将存储介质划分为10个块组,每个块组存储10G数据。更新缓存文件头部的管理区的管理数据,将所有块组的数据区对应的块组序号与分块序号加入空闲链表,组成连续的逻辑地址空间。
客户端写入数据到缓存时,优先通过数据的block_num判断数据是否已经在缓存中,如果数据不在缓存中,则从空闲链表取出数据分块的逻辑地址信息,用以在此数据分块中存储数据,并将数据的block_num加入到哈希表中。如果数据在缓存中,直接通过数据对应的块组序号与分块序号查询数据。客户端读取数据的方法类似。
在接收到扩容指令时(例如缓存大小扩容至120G),网关冻结缓存文件,阻塞客户端读写操作。如图4所示,新增容量=在线扩容指令指示的第二缓存容量(120G)-第一缓存容量(100G),计算新增容量(20G)对应的块组数目,并按照块组数据结构格式化新增的块组空间。更新缓存文件头部的管理区的管理数据等(块组数目、缓存文件大小、空闲链表长度、空闲链表)。解除冻结的缓存文件,恢复客户端读写操作,完成缓存的在线扩容。
在现有技术中,在云存储架构下缓存扩容时,首先需要停止业务系统;其次,根据缓存大小准备一个新的缓存介质(块设备、内存、文件);最后将旧的缓存数据复制到新的缓存介质下,达到缓存扩容的目的。该种方法主要有以下缺点:1、扩容造成客户端业务中断,无法支持7*24小时不间断的业务场景;2、需要参照新的大小准备缓存介质,且产生额外的数据迁移,当缓存数据量比较大时,扩容性能低下。
上述实施例中的基于云存储架构的缓存扩容方法,通过将云存储架构下缓存起始一段空间设置为存放管理数据的管理区,其他空间根据块组大小划分为多个块组,块组内部划分为元数据区与数据区。在接收到缓存扩容指令时,以块组为单位进行扩容,实现了在客户端业务不中断的前提下,高效的完成扩容且扩容过程中不产生额外的数据迁移的目的。
在一个实施例中,本公开提供一种基于云存储架构的缓存扩容装置50,包括:缓存处理模块51、数据区组合模块52、块组新增模块53。缓存处理模块51对缓存介质进行格式化处理,生成缓存并在缓存中设置管理区和块组;其中,管理区用于存放管理数据。缓存处理模块51对块组进行格式化处理,以使块组包含元数据区和数据区;其中,元数据区用于存放块组管理数据;数据区包括多个数据分块,用于存储业务数据。
数据区组合模块52将全部块组的数据区组成连续的、提供给客户端使用的逻辑地址空间。块组新增模块53当接收在线扩容指令时,格式化新增的块组并修改管理区内的管理数据。
块组新增模块53在格式化新增的块组之后,通过对客户端设置写锁,使得客户端停止使用新增的块组以及已有的块组。块组新增模块53在修改管理区内的管理数据之后,通过对客户端解除写锁,以使客户端能够使用新增的块组以及已有的块组。
在一个实施例中,缓存处理模块51获取预设的缓存格式化参数,其中,缓存格式化参数包括:块组中的数据分块大小、块组中的数据分块数目、第一缓存容量。缓存处理模块51基于缓存格式化参数对缓存介质进行格式化处理,并和对块组进行格式化处理。管理数据包括:缓存唯一标识、块组数目、缓存文件大小、缓存文件头部长度、空闲链表长度、空闲链表等。
缓存处理模块51在元数据区内设置目录区和日志区;其中,目录区用于存放目录条目,目录条目的数量与数据分块数目相等,目录条目包含数据分块名称、数据状态;日志区用于存放日志条目,日志条目的数量与数据分块数目相等,日志条目包含I/O操作的偏移量与长度。
数据区组合模块52将与全部新增的块组的数据区相对应的块组序号与数据分块序号加入空闲链表,组成连续的逻辑地址空间。其中,通过块组序号与数据分块序号标识数据分块的存储位置信息。
块组新增模块53当接收在线扩容指令时,按照预设的块组中的数据分块大小、块组中的数据分块数目和新增容量计算新增的块组数目,格式化新增的块组;其中,新增容量=在线扩容指令指示的第二缓存容量-第一缓存容量。
图6为根据本公开的基于云存储架构的缓存扩容装置的另一个实施例的模块示意图。如图6所示,该装置可包括存储器61、处理器62、通信接口63以及总线64。存储器61用于存储指令,处理器62耦合到存储器61,处理器62被配置为基于存储器61存储的指令执行实现上述的基于云存储架构的缓存扩容方法。
存储器61可以为高速RAM存储器、非易失性存储器(non-volatilememory)等,存储器61也可以是存储器阵列。存储器61还可能被分块,并且块可按一定的规则组合成虚拟卷。处理器62可以为中央处理器CPU,或专用集成电路ASIC(Application SpecificIntegrated Circuit),或者是被配置成实施本公开的基于云存储架构的缓存扩容方法的一个或多个集成电路。
在一个实施例中,本公开提供一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,指令被处理器执行如上任一实施例中的方法。
上述实施例中提供的基于云存储架构的缓存扩容方法、装置以及存储介质,实现云存储架构下缓存的在线扩容,通过在格式化时以块组方式划分缓存,在扩容时以块组为单位进行扩容的方法,解决传统扩容只能通过增加块组分块数目的低效率和离线扩容问题,达到在客户端业务不中断的前提下,实现缓存高效在线扩容,且不产生额外的数据迁移。
本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本公开的较佳实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (15)
1.一种基于云存储架构的缓存扩容方法,包括:
对缓存介质进行格式化处理,生成缓存并在所述缓存中设置管理区和块组;其中,所述管理区用于存放管理数据;
对所述块组进行格式化处理,以使所述块组包含元数据区和数据区;其中,所述元数据区用于存放块组管理数据;所述数据区包括多个数据分块,用于存储业务数据;
将全部所述块组的数据区组成连续的、提供给客户端使用的逻辑地址空间;
当接收在线扩容指令时,格式化新增的块组并修改所述管理区内的管理数据;
其中,在格式化所述新增的块组之后,通过对所述客户端设置写锁,使得所述客户端停止使用所述新增的块组以及已有的块组;在修改所述管理区内的管理数据之后,通过对所述客户端解除所述写锁,以使所述客户端能够使用所述新增的块组以及已有的块组。
2.如权利要求1所述的方法,还包括:
获取预设的缓存格式化参数,其中,所述缓存格式化参数包括:块组中的数据分块大小、块组中的数据分块数目、第一缓存容量;
基于所述缓存格式化参数对所述缓存介质进行格式化处理,并对所述块组进行格式化处理。
3.如权利要求2所述的方法,其中,
所述管理数据包括:缓存唯一标识、块组数目、缓存文件大小、缓存文件头部长度、空闲链表长度、空闲链表。
4.如权利要求3所述的方法,还包括:
在所述元数据区内设置目录区和日志区;
其中,所述目录区用于存放目录条目,所述目录条目的数量与所述数据分块数目相等,所述目录条目包含数据分块名称、数据状态;
所述日志区用于存放日志条目,所述日志条目的数量与所述数据分块数目相等,所述日志条目包含I/O操作的偏移量与长度。
5.如权利要求4所述的方法,所述将全部所述块组的数据区组成连续的、提供给客户端使用的逻辑地址空间包括:
将与全部新增的块组的数据区相对应的块组序号与数据分块序号加入所述空闲链表,组成连续的所述逻辑地址空间;
其中,通过所述块组序号与所述数据分块序号标识数据分块的存储位置信息。
6.如权利要求5所述的方法,所述当接收在线扩容指令时,格式化新增的块组并修改所述管理区内的管理数据包括:
当接收在线扩容指令时,按照预设的块组中的数据分块大小、块组中的数据分块数目和新增容量计算新增的块组数目,格式化新增的块组;其中,所述新增容量=所述在线扩容指令指示的第二缓存容量-所述第一缓存容量。
7.如权利要求1-6任一项所述的方法,其中,
所述缓存介质包括:块设备、内存。
8.一种基于云存储架构的缓存扩容装置,包括:
缓存处理模块,用于对缓存介质进行格式化处理,生成缓存并在所述缓存中设置管理区和块组;其中,所述管理区用于存放管理数据;对所述块组进行格式化处理,以使所述块组包含元数据区和数据区;其中,所述元数据区用于存放块组管理数据;所述数据区包括多个数据分块,用于存储业务数据;
数据区组合模块,用于将全部所述块组的数据区组成连续的、提供给客户端使用的逻辑地址空间;
块组新增模块,用于当接收在线扩容指令时,格式化新增的块组并修改所述管理区内的管理数据;
其中,所述块组新增模块,还用于在格式化所述新增的块组之后,通过对所述客户端设置写锁,使得所述客户端停止使用所述新增的块组以及已有的块组;在修改所述管理区内的管理数据之后,通过对所述客户端解除所述写锁,以使所述客户端能够使用所述新增的块组以及已有的块组。
9.如权利要求8所述的装置,其中,
所述缓存处理模块,用于获取预设的缓存格式化参数,其中,所述缓存格式化参数包括:块组中的数据分块大小、块组中的数据分块数目、第一缓存容量;基于所述缓存格式化参数对所述缓存介质进行格式化处理,并对所述块组进行格式化处理。
10.如权利要求9所述的装置,其中,
所述管理数据包括:缓存唯一标识、块组数目、缓存文件大小、缓存文件头部长度、空闲链表长度、空闲链表。
11.如权利要求10所述的装置,其中,
所述缓存处理模块,用于在所述元数据区内设置目录区和日志区;
其中,所述目录区用于存放目录条目,所述目录条目的数量与所述数据分块数目相等,所述目录条目包含数据分块名称、数据状态;所述日志区用于存放日志条目,所述日志条目的数量与所述数据分块数目相等,所述日志条目包含I/O操作的偏移量与长度。
12.如权利要求11所述的装置,其中,
所述数据区组合模块,用于将与全部新增的块组的数据区相对应的块组序号与数据分块序号加入所述空闲链表,组成连续的所述逻辑地址空间;其中,通过所述块组序号与所述数据分块序号标识数据分块的存储位置信息。
13.如权利要求12所述的装置,其中,
所述块组新增模块,还用于当接收在线扩容指令时,按照预设的块组中的数据分块大小、块组中的数据分块数目和新增容量计算新增的块组数目,格式化新增的块组;其中,所述新增容量=所述在线扩容指令指示的第二缓存容量-所述第一缓存容量。
14.一种基于云存储架构的缓存扩容装置,包括:
存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如权利要求1至7中任一项所述的方法。
15.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述指令被处理器执行如权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911291598.3A CN112995257B (zh) | 2019-12-16 | 2019-12-16 | 基于云存储架构的缓存扩容方法、装置以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911291598.3A CN112995257B (zh) | 2019-12-16 | 2019-12-16 | 基于云存储架构的缓存扩容方法、装置以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112995257A CN112995257A (zh) | 2021-06-18 |
CN112995257B true CN112995257B (zh) | 2022-08-02 |
Family
ID=76343100
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911291598.3A Active CN112995257B (zh) | 2019-12-16 | 2019-12-16 | 基于云存储架构的缓存扩容方法、装置以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112995257B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115766627A (zh) * | 2022-11-09 | 2023-03-07 | 上海航天计算机技术研究所 | 一种星载高速交换存储一体化缓存控制方法及装置 |
CN115562595B (zh) * | 2022-12-06 | 2023-02-28 | 苏州浪潮智能科技有限公司 | 一种卷创建方法及装置、卷读写方法及装置、电子设备 |
CN116599841B (zh) * | 2023-07-18 | 2023-10-13 | 联通沃音乐文化有限公司 | 一种大规模云存储系统扩容方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102096557A (zh) * | 2010-12-31 | 2011-06-15 | 成都市华为赛门铁克科技有限公司 | 一种独立磁盘冗余阵列的扩容方法、装置及系统 |
CN103823641A (zh) * | 2014-03-13 | 2014-05-28 | 深圳市迪菲特科技股份有限公司 | 一种在线扩容的虚拟卷系统及其实现方法 |
CN106933493A (zh) * | 2015-12-30 | 2017-07-07 | 伊姆西公司 | 用于缓存盘阵列扩容的方法及设备 |
CN108008913A (zh) * | 2016-10-27 | 2018-05-08 | 杭州海康威视数字技术股份有限公司 | 一种基于管理节点的扩容方法、装置及存储系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150293705A1 (en) * | 2014-04-11 | 2015-10-15 | Seagate Technology Llc | Formatting and capacity expansion in a data storage device |
-
2019
- 2019-12-16 CN CN201911291598.3A patent/CN112995257B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102096557A (zh) * | 2010-12-31 | 2011-06-15 | 成都市华为赛门铁克科技有限公司 | 一种独立磁盘冗余阵列的扩容方法、装置及系统 |
CN103823641A (zh) * | 2014-03-13 | 2014-05-28 | 深圳市迪菲特科技股份有限公司 | 一种在线扩容的虚拟卷系统及其实现方法 |
CN106933493A (zh) * | 2015-12-30 | 2017-07-07 | 伊姆西公司 | 用于缓存盘阵列扩容的方法及设备 |
CN108008913A (zh) * | 2016-10-27 | 2018-05-08 | 杭州海康威视数字技术股份有限公司 | 一种基于管理节点的扩容方法、装置及存储系统 |
Non-Patent Citations (1)
Title |
---|
内存缓存系统在云平台下的设计与实现;赵帅;《中国优秀硕士学位论文》;20180930;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112995257A (zh) | 2021-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108810041B (zh) | 一种分布式缓存系统的数据写入及扩容方法、装置 | |
CN112995257B (zh) | 基于云存储架构的缓存扩容方法、装置以及存储介质 | |
US11301379B2 (en) | Access request processing method and apparatus, and computer device | |
US11232073B2 (en) | Method and apparatus for file compaction in key-value store system | |
CN107798130A (zh) | 一种分布式存储的快照方法 | |
US20180300236A1 (en) | Access request processing method and apparatus, and computer system | |
CN111443874B (zh) | 基于内容感知的固态盘内存缓存管理方法、设备及固态盘 | |
CN115794669A (zh) | 一种扩展内存的方法、装置及相关设备 | |
CN113608701A (zh) | 一种存储系统中数据管理方法和固态硬盘 | |
CN113867627A (zh) | 一种存储系统性能优化方法及系统 | |
CN113885809B (zh) | 数据管理系统及方法 | |
CN116755625A (zh) | 一种数据处理方法、装置、设备及可读存储介质 | |
CN106095331B (zh) | 一种固定大文件内部资源的控制方法 | |
CN107430546B (zh) | 一种文件更新方法及存储设备 | |
US11860840B2 (en) | Update of deduplication fingerprint index in a cache memory | |
CN114077517A (zh) | 数据处理的方法、设备及系统 | |
CN114647388B (zh) | 一种分布式块存储系统和管理方法 | |
CN110795031A (zh) | 一种基于全闪存储的数据重删方法、装置和系统 | |
CN114785662B (zh) | 一种存储管理方法、装置、设备及机器可读存储介质 | |
CN103491124A (zh) | 一种对彩信数据进行处理的方法及分布式缓存系统 | |
CN113867626A (zh) | 一种存储系统性能优化方法、系统、设备和存储介质 | |
CN115904211A (zh) | 一种存储系统、数据处理方法及相关设备 | |
CN102591792B (zh) | 一种内存数据的存储方法 | |
CN112988034B (zh) | 一种分布式系统数据写入方法及装置 | |
CN117539409B (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 |