CN105159842B - 存储系统数据写时拷贝的处理方法和处理装置 - Google Patents

存储系统数据写时拷贝的处理方法和处理装置 Download PDF

Info

Publication number
CN105159842B
CN105159842B CN201510548601.0A CN201510548601A CN105159842B CN 105159842 B CN105159842 B CN 105159842B CN 201510548601 A CN201510548601 A CN 201510548601A CN 105159842 B CN105159842 B CN 105159842B
Authority
CN
China
Prior art keywords
data block
logical
data
block
overlapping
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
CN201510548601.0A
Other languages
English (en)
Other versions
CN105159842A (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.)
Inspur Beijing Electronic Information Industry Co Ltd
Original Assignee
Inspur Beijing Electronic Information Industry 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 Inspur Beijing Electronic Information Industry Co Ltd filed Critical Inspur Beijing Electronic Information Industry Co Ltd
Priority to CN201510548601.0A priority Critical patent/CN105159842B/zh
Publication of CN105159842A publication Critical patent/CN105159842A/zh
Application granted granted Critical
Publication of CN105159842B publication Critical patent/CN105159842B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了一种存储系统数据写时拷贝的处理方法和处理装置。处理方法包括:提取重叠程度小的数据块,将重叠程度小的数据块拆分,直到拆分后的数据块变成重叠程度大的数据块,为待写入数据块分配新数据块,将数据复制到分配的新数据块中,将待写入数据块更新到新数据块中,为分配的新数据块建立逻辑/物理地址映射关系,刷写到磁盘,回收有重叠的所有的数据块。本发明通过设置具有大小不同的多个数据块的数据组织方式,并在采用写时拷贝方式更新数据时对较大的数据块进行拆分,实现了为写入数据分配大小合适的数据块,不仅降低了数据写时拷贝产生的写惩罚,而且提升了存储空间利用率,不会出现严重的碎片化和性能降低。

Description

存储系统数据写时拷贝的处理方法和处理装置
技术领域
本发明涉及存储技术领域,特别涉及一种存储系统数据写时拷贝的处理方法和处理装置。
背景技术
存储系统的一个重要功能,就是将系统中多个物理磁盘空间组织成连续的逻辑存储空间提供给上层应用。目前,现有技术的通常做法是将多个物理磁盘空间合并成一个统一的逻辑地址空间,再从该逻辑地址空间划分一部分形成逻辑卷的地址空间,并将逻辑卷提供给上层应用。采用这种空间管理方式就要求存储系统维护物理磁盘空间到逻辑存储空间的地址映射关系,为了实现物理/逻辑地址映射,现有存储系统通常采用两种数据组织方式:定长块组织方式和变长块组织方式。
定长块组织方式是将物理磁盘空间划分成一定大小的定长块,同时将逻辑空间也划分成同样大小的定长块,建立物理/逻辑地址映射关系的过程主要是建立逻辑块与物理块的对应关系。
变长块组织方式的基本单位是区段,区段的大小不定。建立物理/逻辑地址映射关系的过程是根据IO请求需要写入数据的大小,创建对应大小的区段,再从物理磁盘空间中分配对应大小的空间,建立地址对应关系,从而建立物理/逻辑地址的映射。
定长块和变长块两种组织方式在数据块更新时都能采用写时拷贝COW(Copy onWrite)方式更新。COW是指更新一个已经建立地址映射关系的数据块或数据区段时,重新分配一个新的数据块或数据区段,建立地址映射关系后将原数据块或数据区段内容拷贝到新的数据块或数据区段中,再将待更新数据写入到新分配的数据块或数据区段中,接下来更新元数据,用新分配的数据块或数据区段替换原有数据块或数据区段,最后释放旧的数据块或数据区段。
实际使用中,定长块和变长块两种组织方式各有优缺点。变长块组织方式的优点是大块顺序请求性能较好,存储空间利用率高,不会产生空间浪费现象;但缺点是采用写时拷贝方式更新数据时,对小块随机写请求的支持较差,存在严重的碎片化和性能降低。定长块组织方式的优点是磁盘碎片较少,对随机小块写请求支持较好;但缺点是采用写时拷贝方式更新数据时,需要把旧的数据块内容全部读取出来,再写入新的数据块中,会产生写惩罚(write penalty)。此外,如果写请求的数据块小于定长块大小时,会存在存储空间的浪费。
发明内容
为了解决上述技术问题,本发明提供一种存储系统数据写时拷贝的处理方法和处理装置,有效克服现有技术写时拷贝存在写惩罚、存储空间浪费和碎片化的缺陷。
为了达到本发明目的,本发明提供了一种存储系统数据写时拷贝的处理方法,包括:
提取数据块的逻辑地址与待写入数据块的逻辑地址有重叠的数据块;
判断数据块的重叠程度,提取重叠程度小的数据块;
将重叠程度小的数据块拆分,直到拆分后的数据块变成重叠程度大的数据块;
为待写入数据块分配新数据块,新数据块的逻辑地址范围是与待写入数据块的逻辑地址有重叠的所有的数据块的逻辑地址范围之和;
将有重叠的所有的数据块的数据复制到分配的新数据块中,将待写入数据块更新到新数据块中;
为分配的新数据块建立逻辑/物理地址映射关系,刷写到磁盘,回收有重叠的所有的数据块。
进一步地,存储系统采用卷逻辑地址/池逻辑地址、池逻辑地址/磁盘物理地址的两级地址映射,所述存储系统的逻辑磁盘被划分为大小不同的多个数据块,每个数据块的大小为磁盘扇区大小的2的整数次幂倍,数据块大小的最大值是用户设定的存储系统数据块大小;所述存储系统的存储池被划分为大小不同的多个池逻辑块,大小相同的池逻辑块与数据块相对应;所述存储系统的逻辑卷被划分为大小不同的多个卷逻辑块,大小相同的卷逻辑块与池逻辑块相对应。
进一步地,所述重叠程度小的数据块是指,重叠的逻辑地址范围小于等于数据块的逻辑地址范围的二分之一,所述重叠程度大的数据块是指,重叠的逻辑地址范围大于数据块的逻辑地址范围的二分之一。
进一步地,还包括:
存储系统维护IO请求的队列,将队列中地址范围相邻的写请求合并;
根据写请求的逻辑地址范围,在缓存中查找是否存在逻辑地址与写请求逻辑地址范围重叠的数据块的缓存;如果未查找到,从数据块地址映射关系的元数据中查找,将找到的数据块读取到缓存中;
判断找到的数据块的逻辑地址与待写入数据块的逻辑地址是否存在重叠。
进一步地,如果查找到,且数据块的缓存状态为脏,将其刷写到磁盘上。为了达到本发明目的,本发明提供了一种存储系统数据写时拷贝的处理装置,包括:
提取模块,用于提取数据块的逻辑地址与待写入数据块的逻辑地址有重叠的数据块,并发送给拆分模块;
拆分模块,用于判断数据块的重叠程度,将重叠程度小的数据块拆分,直到拆分后的数据块变成重叠程度大的数据块,将与待写入数据块有重叠的所有的数据块发送给分配模块和处理模块;
分配模块,用于为待写入数据块分配新数据块,新数据块的逻辑地址范围是与待写入数据块的逻辑地址有重叠的所有的数据块的逻辑地址范围之和,将新数据块发送给处理模块;
处理模块,用于将与待写入数据块有重叠的所有的数据块的数据复制到分配的新数据块中,将待写入数据块更新到新数据块中,为分配的新数据块建立逻辑/物理地址映射关系,刷写到磁盘,回收有重叠的所有的数据块。
进一步地,存储系统采用卷逻辑地址/池逻辑地址、池逻辑地址/磁盘物理地址的两级地址映射,所述存储系统的逻辑磁盘被划分为大小不同的多个数据块,每个数据块的大小为磁盘扇区大小的2的整数次幂倍,数据块大小的最大值是用户设定的存储系统数据块大小;所述存储系统的存储池被划分为大小不同的多个池逻辑块,大小相同的池逻辑块与数据块相对应;所述存储系统的逻辑卷被划分为大小不同的多个卷逻辑块,大小相同的卷逻辑块与池逻辑块相对应。
进一步地,所述重叠程度小的数据块是指,重叠的逻辑地址范围小于等于数据块的逻辑地址范围的二分之一,所述重叠程度大的数据块是指,重叠的逻辑地址范围大于数据块的逻辑地址范围的二分之一。
进一步地,还包括:
维护模块,用于维护IO请求的队列,将队列中地址范围相邻的写请求合并,将合并后的写请求发送给查找模块;
查找模块,用于根据写请求的逻辑地址范围,在缓存中查找是否存在逻辑地址与写请求逻辑地址范围重叠的数据块的缓存;如果未查找到,从数据块地址映射关系的元数据中查找,将找到的数据块读取到缓存中,并发送给判断模块;
判断模块,用于判断找到的数据块的逻辑地址与待写入数据块的逻辑地址是否存在重叠,将判断结果发送给提取模块。
进一步地,所述查找模块还用于,如果查找到,且数据块的缓存状态为脏,将其刷写到磁盘上。
本发明提供了一种存储系统数据写时拷贝的处理方法和处理装置,通过设置具有大小不同的多个数据块的数据组织方式,并在采用写时拷贝方式更新数据时对较大的数据块进行拆分,实现了为写入数据分配大小合适的数据块。与现有技术定长块数据组织方式相比,本发明不仅降低了数据写时拷贝产生的写惩罚,而且提升了存储空间利用率;与现有技术变长块数据组织方式相比,本发明不会出现严重的碎片化和性能降低。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为本发明存储系统数据组织方式的示意图;
图2为本发明存储系统数据写时拷贝的处理方法的处理流程图;
图3a~图3d为本发明存储系统数据写时拷贝的处理方法的示意图;
图4为本发明存储系统数据写时拷贝的处理装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1为本发明存储系统数据组织方式的示意图。本发明采用的数据组织方式是:以数据块为单位,采用卷逻辑地址/池逻辑地址、池逻辑地址/磁盘物理地址的两级地址映射,将不同大小的数据块组织在一起。
如图1所示,逻辑磁盘10、11和12分别被划分为大小不同的多个数据块,每个数据块的大小为磁盘扇区大小的2的整数次幂倍,所有数据块的最大值是用户设定的存储系统数据块大小,逻辑磁盘10、11和12的下层物理设备可以是单块物理磁盘、固态硬盘SSD或者多块物理磁盘组成的磁盘阵列RAID。例如,用户设定的存储系统数据块大小为64KB,则将64KB作为数据块大小的最大值,逻辑磁盘中同时存在32KB、16KB、8KB和4KB等大小的数据块。图1所示数据组织方式中,数据块101和102属于逻辑磁盘10,数据块111属于逻辑磁盘11,数据块121属于逻辑磁盘12。其中,数据块111大小是数据块101和121大小的2倍,是数据块102大小的4倍。
如图1所示,存储池20是存储系统中将多个磁盘的物理地址空间组织成的地址连续的逻辑地址空间。图1所示数据组织方式中,在存储池20中,池逻辑块201、202、203和204的池逻辑地址是连续的,但池逻辑块大小不同,分别对应于数据块101、数据块111、数据块102和数据块121的磁盘物理地址,即每个大小相同的池逻辑块与数据块对应。实际使用中,存储池20也可以是记录磁盘物理地址到统一连续的逻辑地址的映射关系的元数据信息。
如图1所示,逻辑卷30和31用于存储系统提供上层应用,逻辑卷30和31从存储池20池逻辑地址空间中分配地址范围,构成逻辑卷内的连续地址空间。图1所示数据组织方式中,逻辑卷30中的卷逻辑块301、302和逻辑卷31中的卷逻辑块311和312,其卷内地址是连续的,但卷逻辑块大小不同,分别对应于池逻辑块201、203、202和204的池逻辑地址,即每个大小相同的卷逻辑块与池逻辑块对应。
本发明提出了一种具有多个大小不同的数据块的数据组织方式,不同大小的数据块单独进行管理,包括数据块的分配、回收、创建/删除地址映射、合并等操作,对于上层的写IO请求,可以根据待写入数据的大小,分配最适合的数据块,不仅可以降低写时拷贝方式更新数据时引起的写惩罚,而且可以减少空间浪费,同时不会产生较多的碎片。
图2为本发明存储系统数据写时拷贝的处理方法的处理流程图,图3为本发明存储系统数据写时拷贝的处理方法的示意图。本发明的设计构思是,在采用写时拷贝方式更新数据时,通过对较大的数据块进行拆分,实现为写入数据分配大小相匹配的数据块,以降低数据写时拷贝产生的写惩罚,提升存储空间利用率,且不会产生碎片化。如图2和图3所示,本发明存储系统数据写时拷贝的处理方法包括:
步骤11、提取数据块的逻辑地址与待写入数据块的逻辑地址有重叠的数据块。
当待写入数据块的逻辑地址与数据块的逻辑地址出现重叠时,该重叠可以是完全重叠,也可以是部分重叠,完全重叠是指待写入数据块的逻辑地址包含了数据块的全部逻辑地址,部分重叠是指待写入数据块的逻辑地址仅包含数据块的部分逻辑地址。
如图3a所示,待写入数据块501的逻辑地址与数据块601、602和603的逻辑地址有重叠。其中,待写入数据块501的逻辑地址包含了数据块602的全部逻辑地址,属于完全重叠,待写入数据块501的逻辑地址包含数据块601和603的部分逻辑地址,属于部分重叠。
步骤12、判断数据块的重叠程度,提取重叠程度小的数据块。
在数据块完全重叠时,整体数据块必须全部进行拷贝,不涉及数据复制量和内存占用的考虑。在数据块部分重叠时,如果数据块重叠程度小,即数据块的逻辑地址与待写入数据的逻辑地址仅有小部分重叠,此时如果将整个数据块全部进行拷贝,则会增加不必要的内存占用和数据复制量,进而对性能造成影响。在数据块部分重叠时,如果数据块重叠程度大,即数据块的逻辑地址与待写入数据的逻辑地址是大部分重叠,此时将整个数据块全部进行拷贝,虽会增加一定的内存和数据复制量,但因对性能影响较小,仍可以采用整体数据块全部进行拷贝的处理。
步骤13、将重叠程度小的数据块拆分,直到拆分后的数据块变成重叠程度大的数据块。
本发明中,重叠程度大是指,重叠的逻辑地址范围大于数据块的逻辑地址范围的二分之一,数据块重叠程度小是指,重叠的逻辑地址范围小于等于数据块的逻辑地址范围的二分之一。也就是说,如果数据块的逻辑地址的重叠量比半个数据块的逻辑地址还小的话,说明该数据块存在拆分成2个数据块的可能,拆分成2个数据块后的其中1个数据块存在重叠,如果拆分后的数据块仍属于重叠程度小的数据块,则继续拆分,直到拆分后的数据块属于重叠程度大的数据块,即拆分后的数据块不需要继续拆分。对于重叠程度大的数据块,如果将该数据块拆分成2个数据块,势必使得拆分后的2个数据块均存在重叠,因此不需要拆分。
如图3b所示,对待写入数据块501进行写时拷贝时,由于数据块602是完全重叠,数据块603属于重叠程度大,因此数据块602和603整块复制,不再对其做拆分。由于数据块601属于重叠程度小,因此需要对数据块601进行必要的拆分,以减少内存占用和数据复制量。先将数据块601拆分成2个数据块,由于其中一个有重叠的数据块仍属于重叠程度小,将该数据块继续拆分成2个数据块,直到其中一个有重叠的数据块属于重叠程度大,则拆分结束。拆分的结果是,数据块601被拆分成大小不同的三个数据块,数据块6011、6012和6013,数据块6011的大小是原数据块601的二分之一,数据块6012和6013的大小是第一次拆分后数据块6011的二分之一,即是原数据块601的四分之一,其中仅数据块6013需要进行拷贝操作。
步骤14、为待写入数据块分配新数据块,新数据块的逻辑地址范围是与待写入数据块的逻辑地址有重叠的所有的数据块的逻辑地址范围之和。
由于与待写入数据块的逻辑地址有重叠的所有的数据块要么属于完全重叠,要么属于大部分重叠,因此拷贝操作中的数据复制量已经达到最小程度,按照这些数据块大小分配的新数据块的大小是最合适的。
如图3c所示,为待写入数据块501分配大小合适的新数据块701,新分配的数据块701的逻辑地址范围为数据块6013、602和603的逻辑地址范围之和。
步骤15、先将有重叠的所有的数据块的数据复制到分配的新数据块中,然后将待写入数据块更新到新数据块中。
如图3d所示,先将需要进行数据复制的数据块6013、602和603中的数据复制到分配的新数据块701中,再将待写入数据块501更新到新数据块701中。
步骤16、为分配的新数据块建立逻辑/物理地址映射关系,刷写到磁盘,回收有重叠的所有的数据块。
最后,将分配的新数据块701建立逻辑/物理地址映射关系后刷写到磁盘,并将数据块6013、602和603进行回收,即完成了一次对写请求数据的写时拷贝操作。实际应用中,为新数据块701建立逻辑/物理地址映射关系可以在步骤14的分配新数据块时同时执行。
本发明提供了一种存储系统数据写时拷贝的处理方法,通过设置具有大小不同的多个数据块的数据组织方式,并在采用写时拷贝方式更新数据时对较大的数据块进行拆分,实现了为写入数据分配大小合适的数据块。与现有技术定长块数据组织方式相比,本发明不仅降低了数据写时拷贝产生的写惩罚,而且提升了存储空间利用率;与现有技术变长块数据组织方式相比,本发明不会出现严重的碎片化和性能降低。本发明能够应用到NAS、SAN等多种具有存储资源管理的产品中,具有广阔的应用前景。
实际上,本发明存储系统数据写时拷贝的处理方法是综合了现有定长块和变长块两种数据组织方式的各自优势,对大小不同的数据块单独进行管理,包括数据块的分配、回收、创建/删除地址映射、合并等操作,对于上层的写IO请求,根据待写入数据的大小,分配最适合的数据块,在降低因数据写时拷贝带来的写惩罚同时提高了空间利用率,并且避免变长块数据组织方式带来的碎片化严重的问题,避免了现有定长块和变长块两种数据组织方式的各自缺陷。
采用本发明的多种大小的数据块进行数据的写时拷贝处理时,由于存在对较大数据块进行拆分的操作,在存储系统实际应用过程中,存储空间中的数据块大小会逐渐趋向于待写入数据块的大小。这是因为,对于大于待写入数据块大小的数据块,在进行写时拷贝操作时会对其进行拆分,而写时拷贝时分配的新数据块大小总是为满足待写入数据块大小的最小的数据块。因此,随着写时拷贝过程的进行,逐渐将较大的数据块拆分,而新增加的数据块大小与待写入数据块大小最接近,达到了系统中数据块大小变化趋向于写请求数据长度的效果。
采用本发明存储系统数据写时拷贝的处理方法进行数据的写时拷贝处理时,虽然存在数据块的拆分操作,但却不会产生较多的碎片。这是因为,对于较小的数据块,在对其进行写时拷贝操作时会将多个较小的数据块替换成一个近似待写入数据块大小的较大数据块,因此在系统应用过程中能够将数据块的数量控制在合理的范围内。
实际应用中,步骤11之前还可以包括:
步骤1、存储系统维护IO请求的队列,将队列中地址范围相邻的写请求合并。
在顺序IO模式下,将多个连续写请求合并成一个大的写请求,可以在减少数据块分配次数的同时,能够提高数据存储的顺序性。连续写请求是指多个写请求所访问的多逻辑地址范围相邻,中间无地址空洞也无重叠。
步骤2、根据写请求的逻辑地址范围,在缓存中查找是否存在逻辑地址与写请求逻辑地址范围重叠的数据块的缓存;如果查找到,且数据块的缓存状态为脏,将其刷写到磁盘上,结束;如果未查找到,从数据块地址映射关系的元数据中查找,将找到的数据块读取到缓存中。
对于存在于缓存中的数据块,在进行写时拷贝方式更新时不需要从磁盘中读取数据。
步骤3、判断找到的数据块的逻辑地址与待写入数据块的逻辑地址是否存在重叠;如果不存在重叠,则根据待写入数据块的大小,分配一个或多个新数据块用于写时拷贝,将待写入数据块写入分配的新数据块,为分配的新数据块建立逻辑/物理地址映射关系,刷写到磁盘;如果存在重叠,则执行步骤11。
对于查找到的数据块不存在重叠,说明写请求对该地址范围写数据不是覆盖写,无需进行数据的写时拷贝。
在前述技术方案基础上,本发明还提供了一种存储系统数据写时拷贝的处理装置,图4为本发明存储系统数据写时拷贝的处理装置的结构示意图。如图4所示,本发明处理装置包括提取模块、拆分模块、分配模块和处理模块,其中,
提取模块,用于提取数据块的逻辑地址与待写入数据块的逻辑地址有重叠的数据块,并这些数据块发送给拆分模块;
拆分模块,与提取模块连接,用于判断数据块的重叠程度,将重叠程度小的数据块拆分,直到拆分后的数据块变成重叠程度大的数据块,将逻辑地址与待写入数据块的逻辑地址有重叠的所有的数据块发送给分配模块和处理模块;
分配模块,与拆分模块连接,用于为待写入数据块分配新数据块,新数据块的逻辑地址范围是逻辑地址与待写入数据块的逻辑地址有重叠的所有的数据块的逻辑地址范围之和,将新数据块发送给处理模块;
处理模块,与拆分模块和分配模块连接,用于将逻辑地址与待写入数据块有重叠的所有的数据块的数据复制到分配的新数据块中,将待写入数据块更新到新数据块中,为分配的新数据块建立逻辑/物理地址映射关系,刷写到磁盘,回收有重叠的所有的数据块。
进一步地,本发明处理装置还包括维护模块、查找模块和判断模块,其中,
维护模块,用于维护IO请求的队列,将队列中地址范围相邻的写请求合并,将合并后的写请求发送给查找模块;
查找模块,与维护模块连接,用于根据写请求的逻辑地址范围,在缓存中查找是否存在逻辑地址与写请求逻辑地址范围重叠的数据块的缓存;如果未查找到,从数据块地址映射关系的元数据中查找,将找到的数据块读取到缓存中,并发送给判断模块;如果查找到,且数据块的缓存状态为脏,将其刷写到磁盘上;
判断模块,与维护模块和提取模块连接,用于判断找到的数据块的逻辑地址与待写入数据块的逻辑地址是否存在重叠,将判断结果发送给提取模块。
本发明处理装置上述技术方案中,存储系统采用卷逻辑地址/池逻辑地址、池逻辑地址/磁盘物理地址的两级地址映射,存储系统采用的数据组织方式如图1所示。存储系统的逻辑磁盘被划分为大小不同的多个数据块,每个数据块的大小为磁盘扇区大小的2的整数次幂倍,数据块的大小的最大值是用户设定的存储系统数据块大小;存储系统的存储池被划分为大小不同的多个池逻辑块,大小相同的池逻辑块与数据块相对应;存储系统的逻辑卷被划分为大小不同的多个卷逻辑块,大小相同的卷逻辑块与池逻辑块相对应。
本发明处理装置上述技术方案中,重叠程度小的数据块是指,重叠的逻辑地址范围小于等于数据块的逻辑地址范围的二分之一,重叠程度大的数据块是指,重叠的逻辑地址范围大于数据块的逻辑地址范围的二分之一。
虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

Claims (8)

1.一种存储系统数据写时拷贝的处理方法,其特征在于,包括:
提取数据块的逻辑地址与待写入数据块的逻辑地址有重叠的数据块;
判断数据块的重叠程度,提取重叠程度小的数据块;
将重叠程度小的数据块拆分,直到拆分后的数据块变成重叠程度大的数据块;
为待写入数据块分配新数据块,新数据块的逻辑地址范围是与待写入数据块的逻辑地址有重叠的所有的数据块的逻辑地址范围之和;
将有重叠的所有的数据块的数据复制到分配的新数据块中,将待写入数据块更新到新数据块中;
为分配的新数据块建立逻辑/物理地址映射关系,刷写到磁盘,回收有重叠的所有的数据块;
其中,所述重叠程度小的数据块是指,重叠的逻辑地址范围小于等于数据块的逻辑地址范围的二分之一,所述重叠程度大的数据块是指,重叠的逻辑地址范围大于数据块的逻辑地址范围的二分之一。
2.根据权利要求1所述的方法,其特征在于,存储系统采用卷逻辑地址/池逻辑地址、池逻辑地址/磁盘物理地址的两级地址映射,所述存储系统的逻辑磁盘被划分为大小不同的多个数据块,每个数据块的大小为磁盘扇区大小的2的整数次幂倍,数据块大小的最大值是用户设定的存储系统数据块大小;所述存储系统的存储池被划分为大小不同的多个池逻辑块,大小相同的池逻辑块与数据块相对应;所述存储系统的逻辑卷被划分为大小不同的多个卷逻辑块,大小相同的卷逻辑块与池逻辑块相对应。
3.根据权利要求1或2所述的方法,其特征在于,还包括:
存储系统维护IO请求的队列,将队列中地址范围相邻的写请求合并;
根据写请求的逻辑地址范围,在缓存中查找是否存在逻辑地址与写请求逻辑地址范围重叠的数据块的缓存;如果未查找到,从数据块地址映射关系的元数据中查找,将找到的数据块读取到缓存中;
判断找到的数据块的逻辑地址与待写入数据块的逻辑地址是否存在重叠。
4.根据权利要求3所述的方法,其特征在于,
如果查找到,且查找到的数据块的缓存状态为脏,将其刷写到磁盘上。
5.一种存储系统数据写时拷贝的处理装置,其特征在于,包括:
提取模块,用于提取数据块的逻辑地址与待写入数据块的逻辑地址有重叠的数据块,并发送给拆分模块;
拆分模块,用于判断数据块的重叠程度,将重叠程度小的数据块拆分,直到拆分后的数据块变成重叠程度大的数据块,将与待写入数据块有重叠的所有的数据块发送给分配模块和处理模块;
分配模块,用于为待写入数据块分配新数据块,新数据块的逻辑地址范围是与待写入数据块的逻辑地址有重叠的所有的数据块的逻辑地址范围之和,将新数据块发送给处理模块;
处理模块,用于将与待写入数据块有重叠的所有的数据块的数据复制到分配的新数据块中,将待写入数据块更新到新数据块中,为分配的新数据块建立逻辑/物理地址映射关系,刷写到磁盘,回收有重叠的所有的数据块;
其中,所述重叠程度小的数据块是指,重叠的逻辑地址范围小于等于数据块的逻辑地址范围的二分之一,所述重叠程度大的数据块是指,重叠的逻辑地址范围大于数据块的逻辑地址范围的二分之一。
6.根据权利要求5所述的处理装置,其特征在于,存储系统采用卷逻辑地址/池逻辑地址、池逻辑地址/磁盘物理地址的两级地址映射,所述存储系统的逻辑磁盘被划分为大小不同的多个数据块,每个数据块的大小为磁盘扇区大小的2的整数次幂倍,数据块大小的最大值是用户设定的存储系统数据块大小;所述存储系统的存储池被划分为大小不同的多个池逻辑块,大小相同的池逻辑块与数据块相对应;所述存储系统的逻辑卷被划分为大小不同的多个卷逻辑块,大小相同的卷逻辑块与池逻辑块相对应。
7.根据权利要求5或6所述的处理装置,其特征在于,还包括:
维护模块,用于维护IO请求的队列,将队列中地址范围相邻的写请求合并,将合并后的写请求发送给查找模块;
查找模块,用于根据写请求的逻辑地址范围,在缓存中查找是否存在逻辑地址与写请求逻辑地址范围重叠的数据块的缓存;如果未查找到,从数据块地址映射关系的元数据中查找,将找到的数据块读取到缓存中,并发送给判断模块;
判断模块,用于判断找到的数据块的逻辑地址与待写入数据块的逻辑地址是否存在重叠,将判断结果发送给提取模块。
8.根据权利要求7所述的处理装置,其特征在于,所述查找模块还用于,如果查找到,且查找到的数据块的缓存状态为脏,将其刷写到磁盘上。
CN201510548601.0A 2015-08-31 2015-08-31 存储系统数据写时拷贝的处理方法和处理装置 Active CN105159842B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510548601.0A CN105159842B (zh) 2015-08-31 2015-08-31 存储系统数据写时拷贝的处理方法和处理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510548601.0A CN105159842B (zh) 2015-08-31 2015-08-31 存储系统数据写时拷贝的处理方法和处理装置

Publications (2)

Publication Number Publication Date
CN105159842A CN105159842A (zh) 2015-12-16
CN105159842B true CN105159842B (zh) 2018-03-27

Family

ID=54800704

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510548601.0A Active CN105159842B (zh) 2015-08-31 2015-08-31 存储系统数据写时拷贝的处理方法和处理装置

Country Status (1)

Country Link
CN (1) CN105159842B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108021333B (zh) * 2016-11-03 2021-08-24 阿里巴巴集团控股有限公司 随机读写数据的系统、装置及方法
CN107291396B (zh) * 2017-06-27 2018-04-13 北京华云网际科技有限公司 分布式块存储系统中的io数据的写入方法和装置
CN107357536B (zh) * 2017-07-28 2020-07-07 郑州云海信息技术有限公司 分布式存储系统数据修改写方法及系统
KR102435890B1 (ko) * 2017-08-17 2022-08-25 삼성전자주식회사 스토리지 장치의 어드레스 맵핑 방법 및 동작 방법
CN109710191B (zh) * 2018-12-27 2022-04-26 新华三技术有限公司 一种数据存储方法和装置
CN111831297B (zh) * 2019-04-17 2021-10-26 中兴通讯股份有限公司 零差分升级方法及装置
CN112612722A (zh) * 2020-12-28 2021-04-06 深圳忆联信息系统有限公司 变长的数据管理方法、装置、计算机设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1279785A (zh) * 1997-09-23 2001-01-10 依科技术股份有限公司 采用多端口存储器的智能数据总线接口
CN102043687A (zh) * 2009-10-20 2011-05-04 杭州华三通信技术有限公司 实现数据快照的首写拷贝装置及控制方法
CN103975303A (zh) * 2011-12-07 2014-08-06 英特尔公司 用于预链接软件以改善虚拟系统中的存储器去重的技术

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1279785A (zh) * 1997-09-23 2001-01-10 依科技术股份有限公司 采用多端口存储器的智能数据总线接口
CN102043687A (zh) * 2009-10-20 2011-05-04 杭州华三通信技术有限公司 实现数据快照的首写拷贝装置及控制方法
CN103975303A (zh) * 2011-12-07 2014-08-06 英特尔公司 用于预链接软件以改善虚拟系统中的存储器去重的技术

Also Published As

Publication number Publication date
CN105159842A (zh) 2015-12-16

Similar Documents

Publication Publication Date Title
CN105159842B (zh) 存储系统数据写时拷贝的处理方法和处理装置
CN104298610B (zh) 资料储存系统及其管理方法
CN106502587B (zh) 硬盘数据管理方法和硬盘控制装置
CN104899156B (zh) 一种面向大规模社交网络的图数据存储及查询方法
CN105589812B (zh) 磁盘碎片整理方法、装置及主机
CN104331478B (zh) 一种自精简存储系统数据一致性管理方法
CN104461393B (zh) 一种闪存存储器的混合映射方法
CN105930282B (zh) 一种用于nand flash的数据缓存方法
Wu et al. eNVy: a non-volatile, main memory storage system
CN104317742B (zh) 一种优化空间管理的自动精简配置方法
CN106527969B (zh) 一种寿命均衡的NandFlash存储器读写方法
CN107193758A (zh) 一种固态硬盘的映射表管理方法及固态硬盘
CN102221982B (zh) 块级虚拟化存储设备上实现重复数据删除的方法及系统
CN106201916B (zh) 一种面向ssd的非易失缓存方法
CN106250320A (zh) 一种数据一致性及磨损均衡的内存文件系统管理方法
CN102663115A (zh) 基于页面染色技术的内存数据库访问优化方法
JPH08249159A (ja) ディスク制御装置
CN102449607A (zh) 具有多个闪存封装的存储系统
KR20100089229A (ko) 플래시 메모리의 주소 매핑에 의한 데이터 관리 방법 및 장치
CN105930097B (zh) 一种消除局部并行中小写操作的分布校验式磁盘阵列
CN106527973A (zh) 一种数据重复删除的方法及装置
CN102646069A (zh) 一种延长固态盘使用寿命的方法
TW201135738A (en) Erase command caching to improve erase performance on flash memory
KR101481633B1 (ko) 플래시 메모리 기반 세가지 상태를 가지는 버퍼 관리 장치 및 방법
CN106095342A (zh) 一种动态可变长条带的瓦记录磁盘阵列构建方法及系统

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