CN103761053A - 一种数据处理方法和装置 - Google Patents

一种数据处理方法和装置 Download PDF

Info

Publication number
CN103761053A
CN103761053A CN201310744146.2A CN201310744146A CN103761053A CN 103761053 A CN103761053 A CN 103761053A CN 201310744146 A CN201310744146 A CN 201310744146A CN 103761053 A CN103761053 A CN 103761053A
Authority
CN
China
Prior art keywords
data
data block
capacity
block
target
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
CN201310744146.2A
Other languages
English (en)
Other versions
CN103761053B (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.)
Guangdong Gaohang Intellectual Property Operation Co ltd
Yuying School Yongnian District Handan City
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
Priority to CN201310744146.2A priority Critical patent/CN103761053B/zh
Publication of CN103761053A publication Critical patent/CN103761053A/zh
Application granted granted Critical
Publication of CN103761053B publication Critical patent/CN103761053B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种数据处理方法,应用于存储系统中,存储系统的存储空间被划分为多个存储区域,各存储区域包含至少一个数据块的集合,各数据块的集合包括多个容量不同的数据块,所述方法包括:接收主机发送的携带数据卷的标识、逻辑地址和待写入数据的写数据请求;根据数据卷的标识和逻辑地址确定增量数据,增量数据是指待写入数据相对于逻辑地址中原来存储的数据中发生变化的数据;根据数据卷的标识确定数据卷对应的快照数据所在的目标存储区域;在目标存储区域中确定目标数据块的集合;在目标数据块的集合中确定目标数据块;将增量数据写入目标数据块中。本发明实施例将同一快照分配在尽可能集中的存储空间,有利于提高读取效率。

Description

一种数据处理方法和装置
技术领域
本发明涉及计算机领域,具体地涉及一种数据处理方法和装置。
背景技术
随着计算机技术的普及,人们越来越多地使用计算机进行日常工作的处理,有时我们需要长时间地做一项工作,不断地更新其所对应的数据。为了对数据进行保护,方便恢复操作的进行,通常采用快照的方式对每次数据的更新进行备份。
目前快照通常包括两种方式,一种是全拷贝的快照方式,另一种是对增量数据进行拷贝的快照方式。其中,全拷贝快照方式是指:当待保存的数据更新时,将待保存的数据的全部都保存,包括更新的部分和未更新的部分,每次保存对应数据的一个全拷贝快照。由于全拷贝快照对未更新的数据部分也进行了保存,所以全拷贝快照占用的空间比较多,尤其当更新的数据比较小、而且待保存的数据更新频繁时,容易造成存储空间的大量浪费。
对增量数据进行拷贝的快照方式是指:当待保存的数据更新时,只保存需要更新的那部分数据即增量数据,其余未更新数据不用保存,因此,采用对增量数据进行拷贝的方式对数据进行备份时,可以节省存储空间。
采用后一种快照方式频繁对数据进行备份时,每次保存只需保存增量数据即可,当进行数据恢复时,利用更新后的数据结合快照的增量数据进行,当删除快照时,释放为快照的增量数据分配的存储空间。
目前,采用的对增量数据进行拷贝的快照方式,通常采用首次适配First-fit算法为快照对应的增量数据分配存储空间。First-fit算法分配存储空间时,将存储空间中首个与增量数据容量相同的空闲区域分配给增量数据,这种方法分配虽然简单,但是该方法不区分是为哪个快照分配的存储空间,当有多个快照需要分配存储空间时,采用First-fit算法分配存储空间时,不同的快照按照请求的时间顺序分配连续的存储空间,但是对于同一快照,为其分配的存储空间比较分散、不连续,读取时效率低。
发明内容
本发明实施例公开了一种数据处理方法和装置,能够有效的提高快照的读取效率。
本发明实施例第一方面提供了一种数据处理方法,所述方法应用于存储系统中,所述存储系统的存储空间被划分为多个存储区域,每个存储区域包含至少一个数据块的集合,每个数据块的集合包括多个容量不同的数据块,所述方法包括:
接收主机发送的写数据请求,所述写数据请求携带数据卷的标识、逻辑地址和待写入数据;
根据所述数据卷的标识和所述逻辑地址确定增量数据,所述增量数据是指所述待写入数据相对于所述逻辑地址中原来存储的数据中发生变化的数据;
根据所述数据卷的标识确定所述数据卷对应的快照数据所在的目标存储区域;
在所述目标存储区域中确定目标数据块的集合;
在所述目标数据块的集合中确定目标数据块;
将所述增量数据写入所述目标数据块中。
在本发明实施例第一方面的第一种可能的实现方式中,所述目标数据块的集合是所述数据卷对应的最近一次的快照数据所在的数据块的集合。
在本发明实施例第一方面的第二种可能的实现方式中,所述目标数据块的集合是所述目标存储区域中存储快照数据最多的数据块的集合。
结合本发明实施例第一方面或者第一方面的第一种可能的实现方式或者第一方面的第二种可能的实现方式,在本发明实施例第一方面的第三种可能的实现方式中,将所述目标数据块的集合中包含的多个数据块按照容量从小到大的规则进行排序,其中,容量最小的两个数据块的容量相同,其余各个数据块的容量是前一个数据块的容量的两倍;
所述在所述目标数据块的集合中确定目标数据块包括:
根据所述增量数据的大小在所述排序后的目标数据块的集合中包含的数据块中查找所述目标数据块,所述目标数据块的容量大于等于所述增量数据的大小。
结合本发明实施例第一方面的第三种可能的实现方式,在本发明实施例第一方面的第四种可能的实现方式中,当目标数据块的容量与所述容量最小的数据块的容量相同,并且所述容量最小的两个数据块均已写入其他增量数据时;
将与所述容量最小的两个数据块相邻的数据块拆分成第一子数据块和第子二数据块,其中,所述与所述容量最小的两个数据块相邻的数据块的容量是所述容量最小的数据块的容量的两倍,所述第一子数据块和第二子数据块的容量相同,所述目标数据块是所述第一子数据块。
结合本发明实施例第一方面的,在本发明实施例第一方面的第五种可能的实现方式中,所述方法还包括:
接收所述主机发送的删除快照请求,所述删除快照请求用于指示删除所述目标数据块中存储的增量数据;
根据所述删除快照请求,删除所述目标数据块中存储的增量数据并释放所述目标数据块中保存所述增量数据的空间为可用空间。
结合本发明实施例第一方面的第五种可能的实现方式,在本发明实施例第一方面的第六种可能的实现方式中,所述方法还包括:判断所述目标数据块的容量是否和所述数据块的集合中的其他空闲的数据块的容量相同;
若是,则将所述释放存储空间后的目标数据块与所述数据块的集合中与所述目标数据块容量相同的空闲的数据块进行合并;
判断所述合并后的数据块的容量是否和所述数据块的集合中的其他空闲的数据块的容量相同,如果是,则继续进行合并,依此类推。
本发明实施例第二方面提供了一种数据处理装置,所述数据处理装置应用在存储系统中,所述存储系统的存储空间被划分为多个存储区域,每个存储区域包含至少一个数据块的集合,每个数据块的集合包括多个容量不同的数据块,所述数据处理装置为主机的写数据请求分配数据块,包括接收单元、分配单元、和写入单元,其中,
所述接收单元,用于接收主机发送的写数据请求,所述写数据请求携带数据卷的标识、逻辑地址和待写入数据;
所述分配单元,用于根据所述数据卷的标识和所述逻辑地址确定增量数据,所述增量数据是指所述待写入数据相对于所述逻辑地址中原来存储的数据中发生变化的数据;根据所述数据卷的标识确定所述数据卷对应的快照数据所在的目标存储区域;在所述目标存储区域中确定目标数据块的集合;在所述目标数据块的集合中确定目标数据块;
所述写入单元,用于将所述增量数据写入所述目标数据块中。
在本发明实施例第二方面的第一种可能的实现方式中,所述目标数据块的集合是所述数据卷对应的最近一次的快照数据所在的数据块的集合,或者是所述目标存储区域中存储快照数据最多的数据块的集合;
所述目标数据块的集合中包含的多个数据块按照容量从小到大的规则进行排序,其中,容量最小的两个数据块的容量相同,其余各个数据块的容量是前一个数据块的容量的两倍;
所述分配单元用于根据所述增量数据的大小在所述排序后的目标数据块的集合中包含的数据块中查找所述目标数据块,所述目标数据块的大小大于等于所述增量数据的大小。
结合本发明实施例第二方面的第一种可能的实现方式,在本发明实施例第二方面的第二种可能的实现方式中,所述分配单元,具体用于,当目标数据块的容量与所述容量最小的数据块的容量相同,并且所述容量最小的两个数据块均已写入其他增量数据时;
将与所述容量最小的两个数据块相邻的数据块拆分成第一子数据块和第子二数据块,其中,所述与所述容量最小的两个数据块相邻的数据块的容量是所述容量最小的数据块的容量的两倍,所述第一子数据块和第二子数据块的容量相同,选取目标数据块为所述第一子数据块。
结合本发明实施例第二方面的第二种可能的实现方式,在本发明实施例第二方面的第三种可能的实现方式中,所述数据处理装置还包括:删除模块;
所述删除模块,用于接收所述主机发送的删除快照请求,所述删除快照请求用于指示删除所述目标数据块中存储的增量数据;以及根据所述删除快照请求,删除所述目标数据块中存储的增量数据并释放所述目标数据块中保存所述增量数据的空间为可用空间。
结合本发明实施例第二方面的第三种可能的实现方式,在本发明实施例第二方面的第四种可能的实现方式中,所述删除模块,还用于判断所述目标数据块的容量是否和所述数据块的集合中的其他空闲的数据块的容量相同;若是,则将所述释放存储空间后的目标数据块与所述数据块的集合中与所述目标数据块容量相同的空闲的数据块进行合并;判断所述合并后的数据块的容量是否和所述数据块的集合中的其他空闲的数据块的容量相同,如果是,则继续进行合并,依此类推。
在本发明实施例中,可以对同一快照分配尽可能集中的空间,有利于提高读取效率。并且通过多次分配和释放后,本发明实施例提供的方法可以减少碎片。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例的应用场景示意图;
图2是本发明实施例公开的一种数据处理方法的流程图;
图3是本发明实施例公开的一种存储空间分配示意图;
图4是本发明实施例公开的一种数据处理装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种数据处理方法,可以对同一快照分配尽可能集中的空间,有利于提高读取效率。
本发明实施例提供的数据处理方法可以在存储系统上实现,图1为本发明实施例的一个应用场景,该应用场景是包括主机、存储网关设备和存储设备的存储系统。
图1中的主机可以包括当前技术已知的任何计算设备,如服务器、台式计算机等等。在主机内部,安装有操作系统以及其他应用程序。
图1中的存储网关设备是指具有虚拟化的存储网关设备,具有虚拟化的存储网关设备是主机与存储设备之间的中间设备,通过映射或者抽象的方式屏蔽了存储设备中不同物理磁盘的复杂性和差异性,这样用户可以对所有存储设备进行统一管理和资源调度。
图1中的存储设备可以包括当前技术已知的存储设备,如独立磁盘冗余阵列(Redundant Arrays of Inexpensive Disks,RAID)、磁盘簇(Just a Bunch OfDisks,JBOD)、直接存取存储器(Direct Access Storage Device,DASD)的一个或多个互连的磁盘驱动器,诸如磁带库、一个或多个存储单元的磁带存储设备等。
下面对本发明实施例数据处理方法进行介绍。
如图2所示,该数据处理方法可以包括以下步骤。
S101、接收主机发送的写数据请求,所述写数据请求携带数据卷的标识、逻辑地址和待写入数据。
S102、确定目标数据块。具体地,根据数据卷的标识和逻辑地址确定增量数据,增量数据是指待写入数据相对于逻辑地址中原来存储的数据中发生变化的数据;根据数据卷的标识确定数据卷对应的快照数据所在的目标存储区域;在目标存储区域中确定目标数据块的集合;在目标数据块的集合中确定目标数据块。
数据卷是指由所述存储设备的物理存储空间映射而成的一段逻辑存储空间,例如逻辑单元号(Logic Unit Number,LUN),每个数据卷都有一个唯一的标识,例如ID。根据所述数据卷的ID可以唯一确定一个数据卷。
逻辑地址是指所述待写入数据待写入所述数据卷的位置信息,例如逻辑块地址(Logic Block Address,LBA)。
根据所述数据卷的ID以及LBA可以确定所述待写入数据待写入所述存储设备的位置。此外,所述写数据请求中还可以包括所述待写入数据的长度,在此不作限定。
增量数据是指待写入数据相对于逻辑地址中原来存储的数据中发生变化的数据。
需要说明的是,本实施例中,存储空间被划分为多个存储区域,每个存储区域包含至少一个数据块的集合,每个数据块的集合包括多个容量不同的数据块。请参见图3,图3是存储空间分配的一个示意图。该存储空间包括三个存储区域,即第一存储区域、第二存储区域及第三存储区域。每个存储区域包括至少一个数据块的集合,比如第一存储区域包括三个数据块的集合,分别是:第一数据块的集合、第二数据块的集合和第三数据块的集合;每个数据块的集合包括至少一个数据块,如图2所示,第一数据块的集合包括四个数据块,即第一数据块、第二数据块、第三数据块和第四数据块。假设第一数据块及第二数据块的容量都为J1,J1是第一数据块及第二数据块的容量大小,则第三数据块的容量为2*J1,第四数据块的容量为4*J1。当然,存储空间的分配不限于图2中所示。
为了描述方便,在本发明实施例中,将所述增量数据将要写入的数据块称为目标数据块,将所述目标数据块所在的数据块的集合称为目标数据块的集合,将所述目标数据的集合所在的存储区域称为目标存储区域。
为了更合理地分配存储空间,可以对一段时间内的写数据请求进行统计,根据统计结果来设计磁盘空间的具体结构。比如,当某种容量的增量数据比较多时,分配第一数据块的容量与其匹配的数据块集合的数量就多一些。
一种可选的实施方式是选取数据卷对应的最近一次的快照数据所在的数据块的集合作为目标数据块的集合。另一种可选的实施方式是选取目标存储区域中存储快照数据最多的数据块的集合作为目标数据块的集合。使得对同一快照集中分配存储空间。
需要说明的是,在本发明实施例中,快照是数据在某个时间点(拷贝开始的时间点)的映像。快照的目的是为数据卷创建一个在特定时间点的状态视图,通过这个视图只可以看到数据卷在创建时刻的数据,在此时间点之后数据卷的修改(有新的数据写入),不会反映在快照视图中。对存储设备进行快照处理时是以数据卷为单位实施的。例如,每隔一段预设的时间,对存储设备中一个数据卷的数据进行快照处理。因此,前面描述的数据卷对应的最近一次的快照数据是指在最近一次时间间隔前对所述数据卷进行的快照处理所得到的快照数据。
在目标数据块的集合中确定目标数据块包括:当增量数据的大小与各数据块的容量都不相同时,选取容量大于增量数据的数据块作为目标数据块。
当目标数据块的容量为J1即与容量最小的数据块的容量相同,若容量最小的第一数据块和第二数据块均已写入其他增量数据时,将与所述容量最小的两个数据块相邻的数据块即第三数据块拆分成容量相同的第一子数据块和第二子数据块,第一子数据块和第二子数据块的容量都为J1,选取第一子数据块作为确定的目标数据块。当然如果第一数据块未写入数据,则选取第一数据块作为确定的目标数据块;如果第一数据块写入了数据,第二数据块未写入数据,则选取第二数据块作为确定的目标数据块。当然如果第一数据块、第二数据块和第三数据块都已写入了数据,且第四数据块没有写入数据,则将第四数据块进行如上拆分,选取拆分后的一个子数据块作为确定的目标数据块。
如果目标数据块的集合中没有足够的剩余空间分配给目标数据,则在同一存储区域中选取相邻的存储块的集合作为目标数据块的集合,然后在新选取的目标数据块的集合中选取目标数据块。
在一种可选的实施方式中,可以采用链表的方式对目标数据块的集合中的可用空间进行管理。每个存储块的集合具有个数与其数据块个数相同的链表,按照序号依次命名各链表。其中,第一链表记录所述目标数据块的集合中所有的容量等于第一数据块的容量即J1的可用空间,第二链表记录所述目标数据块的集合中所有的容量为两倍第一数据块的容量即2*J1的可用空间,依此类推,下一链表对应所述目标数据块的集合中所有的容量为前一链表对应的容量两倍的可用空间。
在所述目标数据块的集合中选取目标数据块,包括如下步骤:
根据增量数据首先确定目标数据块的容量,如果目标数据块的集合中包括容量与增量数据的大小相同的数据块时,则目标数据块的容量为增量数据的大小;如果目标数据块的集合中没有容量与增量数据的大小相同的数据块时,则选取容量大于且最接近增量数据的大小的数据块的容量作为目标数据块的容量,假设目标数据块的容量为A。
判断容量与目标数据块的容量A相同的可用空间对应的链表是否为空,
如果不为空,则将所述链表中最后一个节点从链表中删除,并将所述节点对应的可用空间A确定为保存增量数据的空间,该可用空间所在的数据块为目标数据块;
如果为空,则检索下一链表即对应可用空间的大小为2A的链表,判断下一链表是否为空,如果下一链表为空,则继续检索下一链表的下一链表即对应可用空间的大小为4A的链表,依此类推,直至检索到某个链表不为空为止,该不为空的链表为被选取的链表,然后将所述被选取的链表的最后一个节点从被选取的链表中删除,同时,将所述被删除的节点对应的可用空间等分,分成第一子空间和第二子空间,然后在所述被选取的链表的上一链表中添加一个新节点,所述添加的新节点对应的可用空间为所述第二子空间;同时判断所述第一子空间的容量与前面确定的目标数据块的容量是否相同,如果相同,则将第一子空间确定为保存增量数据的空间,该第一子空间所在的数据块为目标数据块;如果第一子空间的容量大于前面确定的目标数据块的容量,则继续等分所述第一子空间,分成第三子空间和第四子空间,然后在所述被选取的链表的上一链表的上一链表中添加一个新节点,所述新添加的节点对应的可用空间为所述第四子空间;同时判断第三子空间的容量与前面确定的目标数据块的容量是否相同,如果相同,则将第三子空间确定为保存增量数据的空间,该第三子空间所在的数据块为目标数据块;依此类推,直至选取某个等分后的子空间的容量与前面确定的目标数块的大小相等的子空间作为保存增量数据的空间,同时在容量与前面确定的目标数据块的大小对应链表中添加一个新的节点,所述添加的新的节点对应最后一次等分后的另一子空间。
S103、将增量数据写入所述目标数据块中。
本实施例可以为同一快照的各增量数据分配尽可能集中的存储空间,有利于提高读取的效率。
进一步地,当接收到主机发送的删除快照请求时,所述删除快照请求用于指示删除所述快照对应的目标数据块中存储的增量数据;
根据所述删除快照请求,删除所述快照对应的目标数据块中存储的增量数据并释放所述目标数据块中保存所述增量数据的空间为可用空间。
具体地,判断所述目标数据块的容量是否和其所在的数据块的集合中的其他数据块的容量相同;若是,则将所述释放存储空间后的目标数据块与所述数据块的集合中与所述目标数据块容量相同的数据块进行合并;
判断所述合并后的数据块的容量是否和所述数据块的集合中的其他数据块的容量相同,如果是,则继续进行合并,依此类推。有利于为后续写数据请求提供大容量的可用空间。
在一种可选的实施方式中,可以采用链表的方式对目标数据块的集合中可用空间进行管理。接收删除所述虚拟快照的请求,
根据所述请求,释放为所述增量数据分配的空间A。
所述释放为所述增量数据分配的空间包括:
判断对应可用空间的容量大小为A的链表是否为空;
如果为空,在所述链表中添加一个节点,该节点对应的可用空间是为所述增量数据分配的空间;如果不为空,则继续判断所述为增量数据分配的空间与所述链表中最后一个节点对应的可用空间在磁盘上是否为连续;如果连续,则将所述链表中最后一个节点从所述链表中删除,在所述链表的下一链表即对应可用空间的容量为2A的链表中添加一个新节点,该添加的新节点对应的可用空间是所述为增量数据分配的空间和前面所述链表的最后一个节点所对应的可用空间合并后的区域,则继续释放该区域;如果不连续,则在所述链表中添加一个新的节点,该添加的新节点对应的可用空间为所述为增量数据分配的空间;依此类推,直至某个下一链表中不存在某个节点,该节点对应的可用空间与待释放的区域的容量相同且地址连续为止,在容量与需要释放的区域的容量相同的对应链表中添加一个新节点,该添加的新节点对应的可用空间为所述需要释放的区域。
本发明实施例提供的方法由于为同一快照分配的空间比较集中,释放时又将容量相同的空间进行了合并,所以该方法还可以减少磁盘碎片。
请参阅图4,图4是本发明实施例公开的一种数据处理装置的结构示意图。包括接收模块,分配模块和写入模块。
其中,接收单元,用于接收主机发送的写数据请求,所述写数据请求携带数据卷的标识、逻辑地址和待写入数据;
分配单元,用于根据所述数据卷的标识和所述逻辑地址确定增量数据,所述增量数据是指所述待写入数据相对于所述逻辑地址中原来存储的数据中发生变化的数据;根据所述数据卷的标识确定所述数据卷对应的快照数据所在的目标存储区域;在所述目标存储区域中确定目标数据块的集合;在所述目标数据块的集合中确定目标数据块;在一种可选的实施方式中,分配单元采用链表的方式对目标数据块的集合中的可用空间进行管理。每个存储块的集合具有个数与其数据块个数相同的链表,按照序号依次命名各链表。其中,第一链表记录所述目标数据块的集合中所有的容量等于第一数据块的容量即J1的可用空间,第二链表记录所述目标数据块的集合中所有的容量为两倍第一数据块的容量即2*J1的可用空间,依此类推,下一链表对应所述目标数据块的集合中所有的容量为前一链表对应的容量两倍的可用空间。
在所述目标数据块的集合中选取目标数据块,包括如下步骤:
根据增量数据首先确定目标数据块的容量,如果目标数据块的集合中包括容量与增量数据的大小相同的数据块时,则目标数据块的容量为增量数据的大小;如果目标数据块的集合中没有容量与增量数据的大小相同的数据块时,则选取容量大于且最接近增量数据的大小的数据块的容量作为目标数据块的容量,假设目标数据块的容量为A。
判断容量与目标数据块的容量A相同的可用空间对应的链表是否为空,
如果不为空,则将所述链表中最后一个节点从链表中删除,并将所述节点对应的可用空间A确定为保存增量数据的空间,该可用空间所在的数据块为目标数据块;
如果为空,则检索下一链表即对应可用空间的大小为2A的链表,判断下一链表是否为空,如果下一链表为空,则继续检索下一链表的下一链表即对应可用空间的大小为4A的链表,依此类推,直至检索到某个链表不为空为止,该不为空的链表为被选取的链表,然后将所述被选取的链表的最后一个节点从被选取的链表中删除,同时,将所述被删除的节点对应的可用空间等分,分成第一子空间和第二子空间,然后在所述被选取的链表的上一链表中添加一个新节点,所述添加的新节点对应的可用空间为所述第二子空间;同时判断所述第一子空间的容量与前面确定的目标数据块的容量是否相同,如果相同,则将第一子空间确定为保存增量数据的空间,该第一子空间所在的数据块为目标数据块;如果第一子空间的容量大于前面确定的目标数据块的容量,则继续等分所述第一子空间,分成第三子空间和第四子空间,然后在所述被选取的链表的上一链表的上一链表中添加一个新节点,所述新添加的节点对应的可用空间为所述第四子空间;同时判断第三子空间的容量与前面确定的目标数据块的容量是否相同,如果相同,则将第三子空间确定为保存增量数据的空间,该第三子空间所在的数据块为目标数据块;依此类推,直至选取某个等分后的子空间的容量与前面确定的目标数块的大小相等的子空间作为保存增量数据的空间,同时在容量与前面确定的目标数据块的大小对应链表中添加一个新的节点,所述添加的新的节点对应最后一次等分后的另一子空间。
写入单元,用于将所述增量数据写入所述目标数据块中。
在一种可选的实施方式中,所述目标数据块的集合是所述数据卷对应的最近一次的快照数据所在的数据块的集合,另一种可选的实施方式是,目标存储区域中存储快照数据最多的数据块的集合作为目标数据块的集合。
所述目标数据块的集合中包含的多个数据块按照容量从小到大的规则进行排序,其中,容量最小的两个数据块的容量相同,其余各个数据块的容量是前一个数据块的容量的两倍;
所述分配单元用于根据所述增量数据的大小在所述排序后的目标数据块的集合中包含的数据块中查找所述目标数据块,所述目标数据块的容量大于等于所述增量数据的大小。
在本发明的另一实施例中,数据处理装置还包括删除模块,用于接收所述主机发送的删除快照请求,所述删除快照请求用于指示删除所述目标数据块中存储的增量数据;以及根据所述删除快照请求,删除所述目标数据块中存储的增量数据并释放所述目标数据块中保存所述增量数据的空间为可用空间。删除模块,还用于判断所述目标数据块的容量是否和所述数据块的集合中的其他空闲的数据块的容量相同;若是,则将所述释放存储空间后的目标数据块与所述数据块的集合中与所述目标数据块容量相同的空闲的数据块进行合并;判断所述合并后的数据块的容量是否和所述数据块的集合中的其他空闲的数据块的容量相同,如果是,则继续进行合并,依此类推。
一种可选的实施方式是在一种可选的实施方式中,可以采用链表的方式对目标数据块的集合中可用空间进行管理。接收删除所述虚拟快照的请求,
根据所述请求,释放为所述增量数据分配的空间A。
所述释放为所述增量数据分配的空间包括:
判断对应可用空间的容量大小为A的链表是否为空;
如果为空,在所述链表中添加一个节点,该节点对应的可用空间是为所述增量数据分配的空间;
如果不为空,则继续判断所述为增量数据分配的空间与所述链表中最后一个节点对应的可用空间在磁盘上是否为连续;如果连续,则将所述链表中最后一个节点从所述链表中删除,在所述链表的下一链表即对应可用空间的容量为2A的链表中添加一个新节点,该添加的新节点对应的可用空间是所述为增量数据分配的空间和前面所述链表的最后一个节点所对应的可用空间合并后的区域,则继续释放该区域;如果不连续,则在所述链表中添加一个新的节点,该添加的新节点对应的可用空间为所述为增量数据分配的空间;依此类推,直至某个下一链表中不存在某个节点,该节点对应的可用空间与待释放的区域的容量相同且地址连续为止,在容量与需要释放的区域的容量相同的对应链表中添加一个新节点,该添加的新节点对应的可用空间为所述需要释放的区域。
本发明实施例提供的方法由于为同一快照分配的空间比较集中,释放时又将容量相同的空间进行了合并,所以该方法还可以减少磁盘碎片。
本发明实施例进一步公开了一种计算机存储介质,该计算机存储介质存储有程序,该程序执行时包括如图2所示方法的全部步骤。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令服务器、虚拟化网关、桌面操作系统或者其他操作系统以及存储设备等相关的硬件来完成,该程序可以存储于服务器、虚拟化网关、磁盘空间管理装置等具有的计算机可读存储介质中,并被服务器、虚拟化网关、磁盘空间管理装置中的至少一个处理器来执行,以实现为快照的增量数据分配或释放空间。其中,所述存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
以上对本发明实施例公开的数据处理方法、装置和系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (12)

1.一种数据处理方法,其特征在于,所述方法应用于存储系统中,所述存储系统的存储空间被划分为多个存储区域,每个存储区域包含至少一个数据块的集合,每个数据块的集合包括多个容量不同的数据块,所述方法包括:
接收主机发送的写数据请求,所述写数据请求携带数据卷的标识、逻辑地址和待写入数据;
根据所述数据卷的标识和所述逻辑地址确定增量数据,所述增量数据是指所述待写入数据相对于所述逻辑地址中原来存储的数据中发生变化的数据;
根据所述数据卷的标识确定所述数据卷对应的快照数据所在的目标存储区域;
在所述目标存储区域中确定目标数据块的集合;
在所述目标数据块的集合中确定目标数据块;
将所述增量数据写入所述目标数据块中。
2.根据权利要求1所述的数据处理方法,其特征在于,所述目标数据块的集合是所述数据卷对应的最近一次的快照数据所在的数据块的集合。
3.根据权利要求1所述的数据处理方法,其特征在于,所述目标数据块的集合是所述目标存储区域中存储快照数据最多的数据块的集合。
4.根据权利要求1-3任一所述的数据处理方法,其特征在于,还包括:将所述目标数据块的集合中包含的多个数据块按照容量从小到大的规则进行排序,其中,容量最小的两个数据块的容量相同,其余各个数据块的容量是前一个数据块的容量的两倍;
所述在所述目标数据块的集合中确定目标数据块包括:
根据所述增量数据的大小在所述排序后的目标数据块的集合中包含的数据块中查找所述目标数据块,所述目标数据块的容量大于等于所述增量数据的大小。
5.根据权利要求4所述的数据处理方法,其特征在于,还包括:
当目标数据块的容量与所述容量最小的数据块的容量相同,并且所述容量最小的两个数据块均已写入其他增量数据时;
将与所述容量最小的两个数据块相邻的数据块拆分成第一子数据块和第子二数据块,其中,所述与所述容量最小的两个数据块相邻的数据块的容量是所述容量最小的数据块的容量的两倍,所述第一子数据块和第二子数据块的容量相同,所述目标数据块是所述第一子数据块。
6.根据权利要求1所述的数据处理方法,其特征在于,还包括:
接收所述主机发送的删除快照请求,所述删除快照请求用于指示删除所述目标数据块中存储的增量数据;
根据所述删除快照请求,删除所述目标数据块中存储的增量数据并释放所述目标数据块中保存所述增量数据的空间为可用空间。
7.根据权利要求6所述的数据处理方法,其特征在于,还包括:
判断所述目标数据块的容量是否和所述数据块的集合中的其他空闲的数据块的容量相同;
若是,则将所述释放存储空间后的目标数据块与所述数据块的集合中与所述目标数据块容量相同的空闲的数据块进行合并;
判断所述合并后的数据块的容量是否和所述数据块的集合中的其他空闲的数据块的容量相同,如果是,则继续进行合并,依此类推。
8.一种数据处理装置,其特征在于,所述数据处理装置应用在存储系统中,所述存储系统的存储空间被划分为多个存储区域,每个存储区域包含至少一个数据块的集合,每个数据块的集合包括多个容量不同的数据块,所述数据处理装置为主机的写数据请求分配数据块,所述数据处理装置包括接收单元、分配单元、和写入单元,其中,
所述接收单元,用于接收主机发送的写数据请求,所述写数据请求携带数据卷的标识、逻辑地址和待写入数据;
所述分配单元,用于根据所述数据卷的标识和所述逻辑地址确定增量数据,所述增量数据是指所述待写入数据相对于所述逻辑地址中原来存储的数据中发生变化的数据;根据所述数据卷的标识确定所述数据卷对应的快照数据所在的目标存储区域;在所述目标存储区域中确定目标数据块的集合;在所述目标数据块的集合中确定目标数据块;
所述写入单元,用于将所述增量数据写入所述目标数据块中。
9.根据权利要去8所述的数据处理装置,其特征在于,所述目标数据块的集合是所述数据卷对应的最近一次的快照数据所在的数据块的集合,或者是所述目标存储区域中存储快照数据最多的数据块的集合;
所述目标数据块的集合中包含的多个数据块按照容量从小到大的规则进行排序,其中,容量最小的两个数据块的容量相同,其余各个数据块的容量是前一个数据块的容量的两倍;
所述分配单元用于根据所述增量数据的大小在所述排序后的目标数据块的集合中包含的数据块中查找所述目标数据块,所述目标数据块的容量大于等于所述增量数据的大小。
10.根据权利要求9所述的数据处理装置,其特征在于,
所述分配单元,具体用于,当目标数据块的容量与所述容量最小的数据块的容量相同,并且所述容量最小的两个数据块均已写入其他增量数据时;
将与所述容量最小的两个数据块相邻的数据块拆分成第一子数据块和第子二数据块,其中,所述与所述容量最小的两个数据块相邻的数据块的容量是所述容量最小的数据块的容量的两倍,所述第一子数据块和第二子数据块的容量相同,选取目标数据块是所述第一子数据块。
11.根据权利要求10所述的数据处理装置,其特征在于,所述数据处理装置还包括:删除模块;
所述删除模块,用于接收所述主机发送的删除快照请求,所述删除快照请求用于指示删除所述目标数据块中存储的增量数据;以及根据所述删除快照请求,删除所述目标数据块中存储的增量数据并释放所述目标数据块中保存所述增量数据的空间为可用空间。
12.根据权利要求11所述的数据处理装置,其特征在于,
所述删除模块,还用于判断所述目标数据块的容量是否和所述数据块的集合中的其他空闲的数据块的容量相同;若是,则将所述释放存储空间后的目标数据块与所述数据块的集合中与所述目标数据块容量相同的空闲的数据块进行合并;判断所述合并后的数据块的容量是否和所述数据块的集合中的其他空闲的数据块的容量相同,如果是,则继续进行合并,依此类推。
CN201310744146.2A 2013-12-30 2013-12-30 一种数据处理方法和装置 Active CN103761053B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310744146.2A CN103761053B (zh) 2013-12-30 2013-12-30 一种数据处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310744146.2A CN103761053B (zh) 2013-12-30 2013-12-30 一种数据处理方法和装置

Publications (2)

Publication Number Publication Date
CN103761053A true CN103761053A (zh) 2014-04-30
CN103761053B CN103761053B (zh) 2017-08-25

Family

ID=50528298

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310744146.2A Active CN103761053B (zh) 2013-12-30 2013-12-30 一种数据处理方法和装置

Country Status (1)

Country Link
CN (1) CN103761053B (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016045096A1 (zh) * 2014-09-26 2016-03-31 华为技术有限公司 一种文件迁移方法、装置和存储设备
WO2017000821A1 (zh) * 2015-06-29 2017-01-05 华为技术有限公司 存储系统、存储管理装置、存储器、混合存储装置及存储管理方法
CN106527963A (zh) * 2015-09-11 2017-03-22 株式会社东芝 存储器系统及主机装置
CN106657097A (zh) * 2016-12-29 2017-05-10 浙江大华技术股份有限公司 一种数据发送方法及装置
CN106649412A (zh) * 2015-11-04 2017-05-10 阿里巴巴集团控股有限公司 一种数据处理方法和设备
CN107239412A (zh) * 2017-06-19 2017-10-10 杭州宏杉科技股份有限公司 基于Thin‑LUN的存储空间配置方法、数据写入方法及存储设备
WO2017185579A1 (zh) * 2016-04-26 2017-11-02 杭州海康威视数字技术股份有限公司 一种数据存储方法及装置
CN107817947A (zh) * 2016-09-14 2018-03-20 北京金山云网络技术有限公司 一种数据存储方法、装置及系统
WO2018086466A1 (zh) * 2016-11-11 2018-05-17 华为技术有限公司 数据处理方法和存储管理系统
CN110018985A (zh) * 2017-11-08 2019-07-16 阿里巴巴集团控股有限公司 快照删除方法、装置及系统
CN110018986A (zh) * 2017-11-08 2019-07-16 阿里巴巴集团控股有限公司 异常快照识别方法及装置
CN111240890A (zh) * 2018-11-29 2020-06-05 阿里巴巴集团控股有限公司 数据处理方法、快照处理方法、装置及计算设备
CN111831620A (zh) * 2019-04-16 2020-10-27 伊姆西Ip控股有限责任公司 用于存储管理的方法、设备和计算机程序产品
US11012366B2 (en) 2016-12-09 2021-05-18 Zhejiang Dahua Technology Co., Ltd. Methods and systems for data transmission
CN114928580A (zh) * 2022-04-12 2022-08-19 深圳市优必选科技股份有限公司 数据增量发送方法、接收方法、终端设备及存储介质
CN116301670A (zh) * 2023-05-25 2023-06-23 极限数据(北京)科技有限公司 一种数据分区方法及数据处理方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978893A (en) * 1996-06-19 1999-11-02 Apple Computer, Inc. Method and system for memory management
CN101295276A (zh) * 2008-06-20 2008-10-29 中国科学院计算技术研究所 一种磁盘级数据备份系统和方法
US20090216988A1 (en) * 2008-02-27 2009-08-27 Michael Palladino Low overhead memory management system and method
CN102063385A (zh) * 2010-12-23 2011-05-18 深圳市金宏威实业发展有限公司 一种内存管理方法和系统
CN102479118A (zh) * 2010-11-30 2012-05-30 英业达集团(天津)电子技术有限公司 数据块的增量备份方法
CN102521143A (zh) * 2011-12-14 2012-06-27 瑞斯康达科技发展股份有限公司 一种堆数据处理方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978893A (en) * 1996-06-19 1999-11-02 Apple Computer, Inc. Method and system for memory management
US20090216988A1 (en) * 2008-02-27 2009-08-27 Michael Palladino Low overhead memory management system and method
CN101295276A (zh) * 2008-06-20 2008-10-29 中国科学院计算技术研究所 一种磁盘级数据备份系统和方法
CN102479118A (zh) * 2010-11-30 2012-05-30 英业达集团(天津)电子技术有限公司 数据块的增量备份方法
CN102063385A (zh) * 2010-12-23 2011-05-18 深圳市金宏威实业发展有限公司 一种内存管理方法和系统
CN102521143A (zh) * 2011-12-14 2012-06-27 瑞斯康达科技发展股份有限公司 一种堆数据处理方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张宇等: "一种在存储子系统中实现依赖快照的技术", 《一种在存储子系统中实现依赖快照的技术 *

Cited By (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10417186B2 (en) 2014-09-26 2019-09-17 Huawei Technologies Co., Ltd. File migration method and apparatus, and storage device
CN105637491A (zh) * 2014-09-26 2016-06-01 华为技术有限公司 一种文件迁移方法、装置和存储设备
WO2016045096A1 (zh) * 2014-09-26 2016-03-31 华为技术有限公司 一种文件迁移方法、装置和存储设备
CN105637491B (zh) * 2014-09-26 2017-06-20 华为技术有限公司 一种文件迁移方法、装置和存储设备
WO2017000821A1 (zh) * 2015-06-29 2017-01-05 华为技术有限公司 存储系统、存储管理装置、存储器、混合存储装置及存储管理方法
CN106326132A (zh) * 2015-06-29 2017-01-11 华为技术有限公司 存储系统、存储管理装置、存储器、混合存储装置及存储管理方法
CN106326132B (zh) * 2015-06-29 2020-03-27 华为技术有限公司 存储系统、存储管理装置、存储器、混合存储装置及存储管理方法
CN106527963A (zh) * 2015-09-11 2017-03-22 株式会社东芝 存储器系统及主机装置
CN106527963B (zh) * 2015-09-11 2019-09-27 东芝存储器株式会社 存储器系统及主机装置
CN106649412B (zh) * 2015-11-04 2021-05-04 阿里巴巴集团控股有限公司 一种数据处理方法和设备
US10789226B2 (en) 2015-11-04 2020-09-29 Alibaba Group Holding Limited Method and apparatus for data processing
CN106649412A (zh) * 2015-11-04 2017-05-10 阿里巴巴集团控股有限公司 一种数据处理方法和设备
WO2017185579A1 (zh) * 2016-04-26 2017-11-02 杭州海康威视数字技术股份有限公司 一种数据存储方法及装置
CN107817947A (zh) * 2016-09-14 2018-03-20 北京金山云网络技术有限公司 一种数据存储方法、装置及系统
CN107817947B (zh) * 2016-09-14 2021-03-26 北京金山云网络技术有限公司 一种数据存储方法、装置及系统
WO2018086466A1 (zh) * 2016-11-11 2018-05-17 华为技术有限公司 数据处理方法和存储管理系统
US11012366B2 (en) 2016-12-09 2021-05-18 Zhejiang Dahua Technology Co., Ltd. Methods and systems for data transmission
US11570120B2 (en) 2016-12-09 2023-01-31 Zhejiang Dahua Technology Co., Ltd. Methods and systems for data transmission
CN106657097B (zh) * 2016-12-29 2019-11-19 浙江大华技术股份有限公司 一种数据发送方法及装置
CN106657097A (zh) * 2016-12-29 2017-05-10 浙江大华技术股份有限公司 一种数据发送方法及装置
CN107239412B (zh) * 2017-06-19 2020-07-07 杭州宏杉科技股份有限公司 基于Thin-LUN的存储空间配置方法、数据写入方法及存储设备
CN107239412A (zh) * 2017-06-19 2017-10-10 杭州宏杉科技股份有限公司 基于Thin‑LUN的存储空间配置方法、数据写入方法及存储设备
CN110018986A (zh) * 2017-11-08 2019-07-16 阿里巴巴集团控股有限公司 异常快照识别方法及装置
CN110018985A (zh) * 2017-11-08 2019-07-16 阿里巴巴集团控股有限公司 快照删除方法、装置及系统
CN110018985B (zh) * 2017-11-08 2022-10-28 阿里巴巴集团控股有限公司 快照删除方法、装置及系统
CN110018986B (zh) * 2017-11-08 2022-10-28 阿里巴巴集团控股有限公司 异常快照识别方法及装置
CN111240890A (zh) * 2018-11-29 2020-06-05 阿里巴巴集团控股有限公司 数据处理方法、快照处理方法、装置及计算设备
CN111240890B (zh) * 2018-11-29 2023-05-26 阿里巴巴集团控股有限公司 数据处理方法、快照处理方法、装置及计算设备
CN111831620A (zh) * 2019-04-16 2020-10-27 伊姆西Ip控股有限责任公司 用于存储管理的方法、设备和计算机程序产品
CN111831620B (zh) * 2019-04-16 2024-04-19 伊姆西Ip控股有限责任公司 用于存储管理的方法、设备和计算机程序产品
CN114928580A (zh) * 2022-04-12 2022-08-19 深圳市优必选科技股份有限公司 数据增量发送方法、接收方法、终端设备及存储介质
CN114928580B (zh) * 2022-04-12 2023-06-02 深圳市优必选科技股份有限公司 数据增量发送方法、接收方法、终端设备及存储介质
CN116301670A (zh) * 2023-05-25 2023-06-23 极限数据(北京)科技有限公司 一种数据分区方法及数据处理方法
CN116301670B (zh) * 2023-05-25 2023-09-05 极限数据(北京)科技有限公司 一种数据分区方法及数据处理方法

Also Published As

Publication number Publication date
CN103761053B (zh) 2017-08-25

Similar Documents

Publication Publication Date Title
CN103761053A (zh) 一种数据处理方法和装置
US10031675B1 (en) Method and system for tiering data
US8909887B1 (en) Selective defragmentation based on IO hot spots
US9250808B2 (en) Data storage and moving of relatively infrequently accessed data among storage of different types
CN110858124B (zh) 数据迁移方法及装置
US9251049B2 (en) Data storage space recovery system and method
US10031703B1 (en) Extent-based tiering for virtual storage using full LUNs
US7873600B2 (en) Storage control device to backup data stored in virtual volume
US8533420B2 (en) Thin provisioned space allocation
CN103761190B (zh) 数据处理方法及装置
EP2302500A2 (en) Application and tier configuration management in dynamic page realloction storage system
EP2360571A2 (en) Reduction of I/O latency for writable copy-on-write snapshot function
US20080016121A1 (en) Method, an apparatus and a system for managing a snapshot storage pool
US8694563B1 (en) Space recovery for thin-provisioned storage volumes
EP2254036A2 (en) Storage apparatus and data copy method
US10254993B2 (en) Selecting first data sets in a first storage group to swap with second data sets in a second storage group
CN103020174A (zh) 相似性分析方法、装置及系统
AU2012352178A1 (en) Working set swapping using a sequentially ordered swap file
US10365845B1 (en) Mapped raid restripe for improved drive utilization
WO2011036015A1 (en) Data storage using bitmaps
JP4225206B2 (ja) 記憶装置の複製データ格納システムと複製データ格納プログラム
US11461287B2 (en) Managing a file system within multiple LUNS while different LUN level policies are applied to the LUNS
US8938596B2 (en) Storage apparatus, control apparatus, and storage apparatus control method
US11513702B2 (en) Placement of metadata on data storage drives in a first storage enclosure of a data storage system
US11947799B1 (en) Systems and methods for using the TRIM command with solid state devices

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200116

Address after: 056000 south end of Xinming Road, Linmingguan Town, Yongnian District, Handan City, Hebei Province

Patentee after: Yuying school, Yongnian District, Handan City

Address before: 510000 unit 2414-2416, building, No. five, No. 371, Tianhe District, Guangdong, China

Patentee before: GUANGDONG GAOHANG INTELLECTUAL PROPERTY OPERATION Co.,Ltd.

Effective date of registration: 20200116

Address after: 510000 unit 2414-2416, building, No. five, No. 371, Tianhe District, Guangdong, China

Patentee after: GUANGDONG GAOHANG INTELLECTUAL PROPERTY OPERATION Co.,Ltd.

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

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.