CN111124258A - 全闪存阵列的数据存储方法、装置、设备及可读存储介质 - Google Patents
全闪存阵列的数据存储方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN111124258A CN111124258A CN201811287610.9A CN201811287610A CN111124258A CN 111124258 A CN111124258 A CN 111124258A CN 201811287610 A CN201811287610 A CN 201811287610A CN 111124258 A CN111124258 A CN 111124258A
- Authority
- CN
- China
- Prior art keywords
- data
- metadata
- layer
- log
- capacity layer
- 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
Links
- 238000013500 data storage Methods 0.000 title claims abstract description 54
- 238000000034 method Methods 0.000 title claims abstract description 54
- 230000009467 reduction Effects 0.000 claims abstract description 39
- 230000002159 abnormal effect Effects 0.000 claims description 22
- 238000013144 data compression Methods 0.000 claims description 22
- 238000005516 engineering process Methods 0.000 claims description 21
- 230000008569 process Effects 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 10
- 238000011010 flushing procedure Methods 0.000 claims description 9
- 238000001514 detection method Methods 0.000 claims description 4
- 230000001680 brushing effect Effects 0.000 claims description 2
- 230000000694 effects Effects 0.000 abstract description 3
- 238000007906 compression Methods 0.000 description 19
- 230000006835 compression Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 7
- 239000007787 solid Substances 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 3
- 230000006837 decompression Effects 0.000 description 2
- 238000013467 fragmentation Methods 0.000 description 2
- 238000006062 fragmentation reaction Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000005201 scrubbing Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
- G06F3/0641—De-duplication techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种全闪存阵列的数据存储方法,包括:检测全闪存阵列性能层中缓存的数据量是否大于预定阈值;若是,则通过数据缩减方式批量将性能层中的缓存数据回写至容量层,并生成批量操作的元数据日志;将所述元数据日志落盘至所述容量层。可见,为了避免将数据缩容方法应用在SSD缓存时带来频繁的IO操作,在本方案中,采取批量操作的方式减少频繁的IO操作,该批量操作不仅仅包括将缓存数据通过数据缩减方式批量处理并回写至容量层,还包括将生成的元数据记录成元数据日志,进而批量落盘至容量层,提高SSD缓存性能。本发明还公开了一种全闪存阵列的数据存储装置、设备及计算机可读存储介质,同样能实现上述技术效果。
Description
技术领域
本发明涉及数据存储技术领域,更具体地说,涉及一种全闪存阵列的数据存储方法、装置、设备及计算机可读存储介质。
背景技术
目前,全闪存阵列被广泛用于机械硬盘的缓存,这主要因为闪存固态盘具有良好的随机IO性能,而传统的机械硬盘在随机IO性能的支持方面表现不佳,具体来说,该全闪存阵列主要采用闪存固态盘(Solid State Drives,SSD)作为存储介质,全闪存阵列的物理架构分为容量层sata SSD和性能层pcie SSD,这里的性能层又称写缓存,这主要是由于SSD读写性能不对称决定的,读速度远高于写入速度,同时性能层pcie SSD耐用性更强,所以部署性能更好的pcie SSD作为性能层,可以保障全闪存阵列有良好的写入带宽和时延等性能。目前存储系统部署全闪存设备成为普遍趋势,以全面提升存储系统的整体性能。
然而,考虑到SSD的成本远远贵于现在的机械硬盘,而同时在当下云计算和虚拟化环境下,存储系统存在大量的重复冗余数据,因此可以通过数据缩容方法扩展SSD存储系统的逻辑存储空间,提升SSD的设备使用率,达到降低SSD成本的目的。该数据缩容方法可包括数据去重技术和压缩技术,但是,将数据去重和压缩技术应实时应用在SSD缓存时,会带来频繁的IO操作,从而影响SSD缓存性能效果。
因此,如何在应用数据缩容方法时节省存储空间,并同时提高SSD缓存性能,是本领域技术人员需要解决的问题。
发明内容
本发明的目的在于提供一种全闪存阵列的数据存储方法、装置、设备及计算机可读存储介质,以在应用数据缩容方法时提高SSD缓存性能。
为实现上述目的,本发明实施例提供了如下技术方案:
一种全闪存阵列的数据存储方法,包括:
检测全闪存阵列性能层中缓存的数据量是否大于预定阈值;
若是,则通过数据缩减方式批量将性能层中的缓存数据回写至容量层,并生成批量操作的元数据日志;
将所述元数据日志落盘至所述容量层。
其中,所述通过数据缩减方式批量将性能层中的缓存数据回写至容量层,包括:
利用数据去重技术对所述性能层中的缓存数据进行数据去重;
利用数据压缩技术对数据去重后生成的非重复数据进行数据压缩,并回写至所述容量层。
其中,所述将所述元数据日志落盘至所述容量层,包括:
将所述元数据日志落盘至所述容量层的数据区域;
将所述数据区域中的元数据日志回刷至所述容量层的元数据数据库。
其中,本方案还包括:
若在数据存储过程中出现系统异常情况,则判断所述系统异常情况是否发生在所述元数据日志落盘至所述容量层之前;
若是,则重新执行所述通过数据缩减方式批量将性能层中的缓存数据回写至容量层,并生成批量操作的元数据日志;将所述元数据日志落盘至所述容量层的步骤;
若否,则判断所述元数据日志是否成功回刷至所述容量层的元数据数据库;若未成功回刷至所述容量层的元数据数据库,则将所述元数据日志继续回刷至所述容量层的元数据数据库。
一种全闪存阵列的数据存储装置,包括:
数据量检测模块,用于检测全闪存阵列性能层中缓存的数据量是否大于预定阈值;
数据存储模块,用于在数据量大于预定阈值时,通过数据缩减方式批量将性能层中的缓存数据回写至容量层;
日志生成模块,用于在使用数据缩减方式批量将性能层中的缓存数据回写至容量层的过程中,生成批量操作的元数据日志;
日志落盘模块,用于将所述元数据日志落盘至所述容量层。
其中,所述数据存储模块,包括:
数据去重单元,用于利用数据去重技术对所述性能层中的缓存数据进行数据去重;
数据压缩单元,用于利用数据压缩技术对数据去重后生成的非重复数据进行数据压缩,并回写至所述容量层。
其中,所述日志落盘模块,包括:
日志落盘单元,用于将所述元数据日志落盘至所述容量层的数据区域;
日志回刷单元,用于将所述数据区域中的元数据日志回刷至所述容量层的元数据数据库。
其中,还包括系统异常处理模块;所述系统异常处理模块包括:
判断单元,用于在数据存储过程中出现系统异常情况时,判断所述系统异常情况是否发生在所述元数据日志落盘至所述容量层之前;
第一处理单元,用于在所述系统异常情况发生在所述元数据日志落盘至所述容量层之前时,重新通过数据缩减方式批量将性能层中的缓存数据回写至容量层,并生成批量操作的元数据日志;将所述元数据日志落盘至所述容量层;
第二处理单元,用于在所述系统异常情况发生在所述元数据日志落盘至所述容量层之后时,判断所述元数据日志是否成功回刷至所述容量层的元数据数据库;若未成功回刷至所述容量层的元数据数据库,则将所述元数据日志继续回刷至所述容量层的元数据数据库。
一种全闪存阵列的数据存储设备,包括:
存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如上述全闪存阵列的数据存储方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述全闪存阵列的数据存储方法的步骤。
通过以上方案可知,本发明实施例提供的一种全闪存阵列的数据存储方法,包括:检测全闪存阵列性能层中缓存的数据量是否大于预定阈值;若是,则通过数据缩减方式批量将性能层中的缓存数据回写至容量层,并生成批量操作的元数据日志;将所述元数据日志落盘至所述容量层。
可见,为了避免将数据缩容方法应用在SSD缓存时带来频繁的IO操作,在本方案中,采取批量操作的方式减少频繁的IO操作,该批量操作不仅仅包括将缓存数据通过数据缩减方式批量处理后回写至容量层,还包括将生成的元数据记录成元数据日志,进而批量落盘至容量层,提高SSD缓存性能。
本发明还公开了一种全闪存阵列的数据存储装置、设备及计算机可读存储介质,同样能实现上述技术效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的一种全闪存阵列的数据存储方法流程示意图;
图2为本发明实施例公开的数据存储方案整体示意图;
图3为本发明实施例公开的另一种全闪存阵列的数据存储方法流程示意图;
图4为本发明实施例公开的全闪存阵列的批量数据去重压缩流程图;
图5为本发明实施例公开的一种数据逻辑组织关系图;
图6为本发明实施例公开的一种全闪存阵列的数据存储装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种全闪存阵列的数据存储方法、装置、设备及计算机可读存储介质,以在应用数据缩容方法时节省存储空间,并同时提高SSD缓存性能。
参见图1,本发明实施例提供的一种全闪存阵列的数据存储方法,包括:
S101、检测全闪存阵列性能层中缓存的数据量是否大于预定阈值;
若是,则执行S102;若否,则继续执行S101;
在本实施例中,将全闪存阵列以闪存固态盘SSD为例进行描述;参见图2,为本实施例提供的数据存储方案整体示意图;通过该图可以看出,内存向SSD发送写请求时,是将写请求发送至SSD性能层,因此,与写请求对应的数据会首先缓存在性能层中;需要说明的是,在本方案中,当数据写入全闪存阵列的写缓存(性能层)后,将写入的数据组合成一个个的数据段单元,该数据段单元建议为4M大小,但也不限于4M。
具体的,由于在使用数据缩容方法进行数据缩减时,会存在一些与容量层的IO操作,如果实时进行数据缩减操作,则会由于频繁的IO(Input/Output,输入输出)操作带来SSD性能的下降;因此在本方案中,设定一个预定阈值,只有在性能层中缓存的数据量大于该预定阈值之后,才会执行批量数据缩减操作,如果该缓存的数据量不大于该预定阈值,则继续检测,先不进行数据缩减。该预定阈值可以根据实际情况进行设定,例如:在客户端发送的写请求较为频繁时,为了避免缓存空间不足,这时可设定该预定阈值比写请求空闲时的预定阈值小。
S102、通过数据缩减方式批量将性能层中的缓存数据回写至容量层,并生成批量操作的元数据日志;
具体的,数据缩减方式可以包括数据去重技术、数据压缩技术等;数据压缩技术通过对数据重新编码来降低冗余度,而重复数据删除技术侧重于删除重复的文件或数据块,从而实现数据容量缩减的目的。通过图2可以看出,文件元数据和去重指纹库都存储在SSD容量层,因此,无论是使用哪种技术进行数据的处理及存储,都必不可少的产生元数据,对SSD容量层进行写操作;这些元数据信息量都很小,如果逐条更新(小写)刷到SSD容量层,则会导致SSD性能变差;因此,在本方案中,在通过数据缩减方式批量将性能层中的缓存数据回写至容量层的过程中时,所产生的元数据并不会逐条刷写至SSD容量层,而是会生成批量操作的元数据日志,以便一次性的将元数据日志写入SSD容量层,减少IO操作。
S103、将所述元数据日志落盘至所述容量层。
可以理解的是,本实施例中的落盘是数据写入固态硬盘中,因此S103具体可以理解为:生成元数据日志后,需要将元数据日志写入SSD容量层,以便对SSD容量层中的元数据进行更新,例如对逻辑地址表/指纹表/数据块位图表等元数据信息的更新。
可以看出,本方案为了避免将数据缩容方法应用在SSD缓存时带来频繁的IO操作,采取批量操作的方式减少频繁的IO操作,该批量操作不仅仅包括将缓存数据通过数据缩减方式批量回写至容量层,还包括将生成的元数据记录成元数据日志,进而批量落盘至容量层,提高SSD缓存性能。
参见图3,为本发明实施例提供的另一种全闪存阵列的数据存储方法,包括:
S201、检测全闪存阵列性能层中缓存的数据量是否大于预定阈值;
若是,则执行S202;若否,则继续执行S201;
S202、利用数据去重技术对所述性能层中的缓存数据进行数据去重,利用数据压缩技术对数据去重后生成的非重复数据进行数据压缩,回写至所述容量层,并生成批量操作的元数据日志;
S203、将所述元数据日志落盘至所述容量层的数据区域,将所述数据区域中的元数据日志回刷至所述容量层的元数据数据库。
在本实施例中,通过数据去重技术和数据压缩技术两者相结合的方式进行数据缩减;因此,在将写缓存中的数据异步回刷到容量层时,需要开启批量数据去重和压缩处理功能,也就是说需要进行:数据分片、指纹计算、指纹查找、数据压缩、逻辑地址表/指纹表/数据块位图表等元数据信息的日志更新和数据库更新操作。
参见图4,为本发明实施例提供的全闪存阵列的批量数据去重压缩流程图;具体来说,在数据去重时,首先对于写缓存中需要批量回写的数据,先进行数据的分片,分片的粒度即数据的去重粒度,一般建议为4KB或者8KB;对于分片好的数据,再计算数据块的安全哈希摘要,该安全哈希摘要即指纹,一般建议使用SHA1(安全哈希算法,Secure HashAlgorithm)进行计算;然后查找指纹库,如果指纹库有记录,则说明这是一个重复数据块,后面只需要将这个数据块的索引指向重复数据块所在的位置即可,如果指纹库中没有记录,则说明这是一个新数据块,即非重复数据,针对非重复的数据,需要进行压缩处理,然后存储到数据区域,并记录压缩后存储的物理地址PBA,以及数据区域的位图占用信息,以便后续进行空间的回收。
参见图5,为本发明提供的数据逻辑组织关系图,通过该图可以看出所建立起的逻辑地址LBA(Logical Block Address)对物理地址PBA(Physics Block Address)的映射关系,也即:多个数据块可以对应同一个指纹,即多个(N个)逻辑地址LBA对应同一个指纹FP(fingerprint),而一个指纹FP只对应自身的一个物理存储地址PBA,以用于后期根据该指纹对应数据块的物理存储,对该数据块执行解压恢复。
需要说明的是,当第一数据块对应的文件更新时,对应文件中的新数据块执行数据去重管理和压缩长度的变化后,是以时间顺序来执行追加写,即在存储介质中是存储在新的存储空间地址中,也即异地更新,而非在原来第一数据块对应的存储地址进行更新,这样就避免了文件数据更新后,新的数据块压缩后的长度与原来第一数据块压缩后存储空间不匹配的问题,进而避免了存储介质中存储空间的浪费,也避免了存储介质中产生更小的空间碎片,提高了对存储介质中存储空间的利用率。进一步的,本方案在数据进行去重及压缩过程中,需要生成数据区域的位图占用信息,该位图占用信息用来记录对应每个存储单位或多个存储单位的空间占用状态,例如:无效占用和有效占用;通过该位图占用信息中记载的空间占用状态,实现对空间的回收。
另外,本方案生成的元数据日志,在进行批量元数据更新时,采用日志快速落盘的方法,在元数据日志落盘后即对上返回数据,告知性能层及客户端去重压缩落盘成功,然后异步将元数据日志中的元数据操作逐个落盘到数据库表项中。本方案中通过数据去重压缩以及存储带来的元数据主要包括:逻辑地址LBA(数据在用户视角中的文件偏移位置)、物理地址PBA(数据去重压缩后的实际存储位置,可能存在多个逻辑地址共享)、数据指纹FP(fingerprint)、数据区域位图记录;这些元数据信息量都很小,逐条更新(小写)刷到SSD的性能会很差,所以通过批量写日志来解决,提升元数据落盘日志的性能,然后返回上层:此次批量写去重压缩成功,而后续的元数据则会异步刷回数据库,从而实现对逻辑地址表/指纹表/数据块位图表等元数据信息的更新。
综上可见,在进行数据去重和压缩时,会带来频繁元数据查找和更新问题,以及事务日志小写问题,因此在写缓存的数据回刷到容量层的时候,采用批量数据去重和压缩以及元数据更新操作,可以减少上述操作带来的频繁SSD读写操作;并通过一个批量元数据更新的日志来维护回写过程中的事务一致性保障,极大地加快在全闪存环境中的数据去重压缩处理过程。
基于上述实施例,在本实施例中还包括:
若在数据存储过程中出现系统异常情况,则判断所述系统异常情况是否发生在所述元数据日志落盘至所述容量层之前;
若是,则重新执行所述通过数据缩减方式批量将性能层中的缓存数据回写至容量层,并生成批量操作的元数据日志;将所述元数据日志落盘至所述容量层的步骤;
若否,则判断所述元数据日志是否成功回刷至所述容量层的元数据数据库;若未成功回刷至所述容量层的元数据数据库,则将所述元数据日志继续回刷至所述容量层的元数据数据库。
需要说明的是,将数据从性能层回写至容量层时,会出现系统异常,因此需要对异常情况进行及时处理,具体来说:如果是元数据批量更新日志落盘成功之前,系统发生异常,则需要性能层全部重试这一批IO,也即重新走一遍批量去重压缩的流程。因为对应的元数据没有更新,所以即便是数据压缩写入了容量层,对应的物理块占用位图表没有更新,所以数据还是属于写入失效的状态。
另外,本方案将元数据日志中的LBA/FP/PBA以及位图映射信息异步刷回数据库中时,为了保障这些操作的事务原子性和一致性,对应的数据库也同样要求提供数据库批量更新的原子性,以便于应对在这个刷回过程中发生了异常,然后系统重启后可以正确地完整地完成元数据日志回刷数据库的过程;因此,如果是元数据批量更新日志落盘成功之后,系统发生异常;则检测是否有未完成的日志项,即未完成的元数据刷数据库表项操作,如有则继续把未完成的内容回刷到数据库对应的表项,这样就维护了数据库中表项内容与数据区域写入内容的一致性;当数据库操作完成后,对应的日志将会被清空,以此作为该异步回刷完成的标志。
综上可见,本发明针对全闪存阵列提出的批量操作来加快数据去重压缩回写过程,通过批量的日志落盘操作,来保障快捷有效的事务一致性。具体来说:
1、本方案通过实现了在全闪存阵列回写过程中做批量数据去重压缩:包括数据分片、指纹计算、指纹查找、数据压缩、逻辑地址表/指纹表/数据块位图表等元数据信息的日志更新和数据库更新操作,减少了频繁的小IO操作,提升系统去重压缩整体处理速率;
2、设计了批量元数据更新操作日志,当日志落盘即认为数据操作完成,对上认为数据写操作结束,即返回数据回写成功,对下则异步将日志数据回刷到数据库的表项中,如果日志落盘成功前系统异常,则需要性能层重试这一批IO;如果日志落盘后,系统异常,则检测是否有未完成的日志项,如有则继续把未完成的内容回刷到数据库即可。以上操作保障了去重压缩过程中元数据更新的高效性,同时也保障了事务操作的原子性和数据元数据的内容一致性。并且,本方案可以适用于单节点的全闪存去重压缩,也可以适用于多节点集群的全闪存去重压缩,从而实现去重压缩性能和务一致性的保障。
下面对本发明实施例提供的数据存储装置进行介绍,下文描述的数据存储装置与上文描述的数据存储方法可以相互参照。
参见图6,为本发明实施例提供的一种全闪存阵列的数据存储装置,包括:
数据量检测模块100,用于检测全闪存阵列性能层中缓存的数据量是否大于预定阈值;
数据存储模块200,用于在数据量大于预定阈值时,通过数据缩减方式批量将性能层中的缓存数据回写至容量层;
日志生成模块300,用于在使用数据缩减方式批量将性能层中的缓存数据回写至容量层的过程中,生成批量操作的元数据日志;
日志落盘模块400,用于将所述元数据日志落盘至所述容量层。
其中,所述数据存储模块,包括:
数据去重单元,用于利用数据去重技术对所述性能层中的缓存数据进行数据去重;
数据压缩单元,用于利用数据压缩技术对数据去重后生成的非重复数据进行数据压缩,并回写至所述容量层。
其中,所述日志落盘模块,包括:
日志落盘单元,用于将所述元数据日志落盘至所述容量层的数据区域;
日志回刷单元,用于将所述数据区域中的元数据日志回刷至所述容量层的元数据数据库。
其中,本方案还包括系统异常处理模块;所述系统异常处理模块包括:
判断单元,用于在数据存储过程中出现系统异常情况时,判断所述系统异常情况是否发生在所述元数据日志落盘至所述容量层之前;
第一处理单元,用于在所述系统异常情况发生在所述元数据日志落盘至所述容量层之前时,重新通过数据缩减方式批量将性能层中的缓存数据回写至容量层,并生成批量操作的元数据日志;将所述元数据日志落盘至所述容量层;
第二处理单元,用于在所述系统异常情况发生在所述元数据日志落盘至所述容量层之后时,判断所述元数据日志是否成功回刷至所述容量层的元数据数据库;若未成功回刷至所述容量层的元数据数据库,则将所述元数据日志继续回刷至所述容量层的元数据数据库。
本发明实施例还提供一种全闪存阵列的数据存储设备,包括:
存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现上述全闪存阵列的数据存储方法的步骤。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述全闪存阵列的数据存储方法的步骤。
其中,该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种全闪存阵列的数据存储方法,其特征在于,包括:
检测全闪存阵列性能层中缓存的数据量是否大于预定阈值;
若是,则通过数据缩减方式批量将性能层中的缓存数据回写至容量层,并生成批量操作的元数据日志;
将所述元数据日志落盘至所述容量层。
2.根据权利要求1所述的数据存储方法,其特征在于,所述通过数据缩减方式批量将性能层中的缓存数据回写至容量层,包括:
利用数据去重技术对所述性能层中的缓存数据进行数据去重;
利用数据压缩技术对数据去重后生成的非重复数据进行数据压缩,并回写所述容量层。
3.根据权利要求1或2所述的数据存储方法,其特征在于,所述将所述元数据日志落盘至所述容量层,包括:
将所述元数据日志落盘至所述容量层的数据区域;
将所述数据区域中的元数据日志回刷至所述容量层的元数据数据库。
4.根据权利要求3所述的数据存储方法,其特征在于,还包括:
若在数据存储过程中出现系统异常情况,则判断所述系统异常情况是否发生在所述元数据日志落盘至所述容量层之前;
若是,则重新执行所述通过数据缩减方式批量将性能层中的缓存数据回写至容量层,并生成批量操作的元数据日志;将所述元数据日志落盘至所述容量层的步骤;
若否,则判断所述元数据日志是否成功回刷至所述容量层的元数据数据库;若未成功回刷至所述容量层的元数据数据库,则将所述元数据日志继续回刷至所述容量层的元数据数据库。
5.一种全闪存阵列的数据存储装置,其特征在于,包括:
数据量检测模块,用于检测全闪存阵列性能层中缓存的数据量是否大于预定阈值;
数据存储模块,用于在数据量大于预定阈值时,通过数据缩减方式批量将性能层中的缓存数据回写至容量层;
日志生成模块,用于在使用数据缩减方式批量将性能层中的缓存数据回写至容量层的过程中,生成批量操作的元数据日志;
日志落盘模块,用于将所述元数据日志落盘至所述容量层。
6.根据权利要求5所述的数据存储装置,其特征在于,所述数据存储模块,包括:
数据去重单元,用于利用数据去重技术对所述性能层中的缓存数据进行数据去重;
数据压缩单元,用于利用数据压缩技术对数据去重后生成的非重复数据进行数据压缩,并回写至所述容量层。
7.根据权利要求5或6所述的数据存储装置,其特征在于,所述日志落盘模块,包括:
日志落盘单元,用于将所述元数据日志落盘至所述容量层的数据区域;
日志回刷单元,用于将所述数据区域中的元数据日志回刷至所述容量层的元数据数据库。
8.根据权利要求7所述的数据存储装置,其特征在于,还包括系统异常处理模块;所述系统异常处理模块包括:
判断单元,用于在数据存储过程中出现系统异常情况时,判断所述系统异常情况是否发生在所述元数据日志落盘至所述容量层之前;
第一处理单元,用于在所述系统异常情况发生在所述元数据日志落盘至所述容量层之前时,重新通过数据缩减方式批量将性能层中的缓存数据回写至容量层,并生成批量操作的元数据日志;将所述元数据日志落盘至所述容量层;
第二处理单元,用于在所述系统异常情况发生在所述元数据日志落盘至所述容量层之后时,判断所述元数据日志是否成功回刷至所述容量层的元数据数据库;若未成功回刷至所述容量层的元数据数据库,则将所述元数据日志继续回刷至所述容量层的元数据数据库。
9.一种全闪存阵列的数据存储设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至4任一项所述全闪存阵列的数据存储方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述全闪存阵列的数据存储方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811287610.9A CN111124258B (zh) | 2018-10-31 | 2018-10-31 | 全闪存阵列的数据存储方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811287610.9A CN111124258B (zh) | 2018-10-31 | 2018-10-31 | 全闪存阵列的数据存储方法、装置、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111124258A true CN111124258A (zh) | 2020-05-08 |
CN111124258B CN111124258B (zh) | 2024-04-09 |
Family
ID=70485497
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811287610.9A Active CN111124258B (zh) | 2018-10-31 | 2018-10-31 | 全闪存阵列的数据存储方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111124258B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111597152A (zh) * | 2020-05-20 | 2020-08-28 | 杭州海康威视系统技术有限公司 | 固态硬盘文件系统管理方法、装置及电子设备 |
CN111949222A (zh) * | 2020-09-18 | 2020-11-17 | 苏州浪潮智能科技有限公司 | 一种全闪磁盘阵列中垃圾回收中数据迁移的方法 |
CN112130770A (zh) * | 2020-09-18 | 2020-12-25 | 苏州浪潮智能科技有限公司 | 一种维护数据的保存方法、系统、设备以及介质 |
CN113608687A (zh) * | 2021-06-30 | 2021-11-05 | 苏州浪潮智能科技有限公司 | 一种空间回收方法、装置、设备及可读存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03225530A (ja) * | 1990-01-31 | 1991-10-04 | Nec Corp | 障害処理方式 |
CN1617110A (zh) * | 2003-11-12 | 2005-05-18 | 华为技术有限公司 | 磁盘阵列结构中进行回写的方法 |
US8898388B1 (en) * | 2014-01-08 | 2014-11-25 | Netapp, Inc. | NVRAM caching and logging in a storage system |
CN105791439A (zh) * | 2016-04-29 | 2016-07-20 | 中国农业银行股份有限公司 | 一种数据处理方法、数据接收设备及数据处理系统 |
CN107340976A (zh) * | 2017-07-14 | 2017-11-10 | 郑州云海信息技术有限公司 | 一种元数据存储方法及系统 |
CN108268219A (zh) * | 2018-02-01 | 2018-07-10 | 杭州宏杉科技股份有限公司 | 一种处理io请求的方法及装置 |
CN108664214A (zh) * | 2017-03-31 | 2018-10-16 | 北京忆恒创源科技有限公司 | 用于固态存储设备的分布式缓存的掉电处理方法与装置 |
-
2018
- 2018-10-31 CN CN201811287610.9A patent/CN111124258B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03225530A (ja) * | 1990-01-31 | 1991-10-04 | Nec Corp | 障害処理方式 |
CN1617110A (zh) * | 2003-11-12 | 2005-05-18 | 华为技术有限公司 | 磁盘阵列结构中进行回写的方法 |
US8898388B1 (en) * | 2014-01-08 | 2014-11-25 | Netapp, Inc. | NVRAM caching and logging in a storage system |
CN105791439A (zh) * | 2016-04-29 | 2016-07-20 | 中国农业银行股份有限公司 | 一种数据处理方法、数据接收设备及数据处理系统 |
CN108664214A (zh) * | 2017-03-31 | 2018-10-16 | 北京忆恒创源科技有限公司 | 用于固态存储设备的分布式缓存的掉电处理方法与装置 |
CN107340976A (zh) * | 2017-07-14 | 2017-11-10 | 郑州云海信息技术有限公司 | 一种元数据存储方法及系统 |
CN108268219A (zh) * | 2018-02-01 | 2018-07-10 | 杭州宏杉科技股份有限公司 | 一种处理io请求的方法及装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111597152A (zh) * | 2020-05-20 | 2020-08-28 | 杭州海康威视系统技术有限公司 | 固态硬盘文件系统管理方法、装置及电子设备 |
CN111597152B (zh) * | 2020-05-20 | 2023-04-21 | 杭州海康威视系统技术有限公司 | 固态硬盘文件系统管理方法、装置及电子设备 |
CN111949222A (zh) * | 2020-09-18 | 2020-11-17 | 苏州浪潮智能科技有限公司 | 一种全闪磁盘阵列中垃圾回收中数据迁移的方法 |
CN112130770A (zh) * | 2020-09-18 | 2020-12-25 | 苏州浪潮智能科技有限公司 | 一种维护数据的保存方法、系统、设备以及介质 |
CN111949222B (zh) * | 2020-09-18 | 2022-09-20 | 苏州浪潮智能科技有限公司 | 一种全闪磁盘阵列中垃圾回收中数据迁移的方法 |
CN112130770B (zh) * | 2020-09-18 | 2023-01-06 | 苏州浪潮智能科技有限公司 | 一种维护数据的保存方法、系统、设备以及介质 |
CN113608687A (zh) * | 2021-06-30 | 2021-11-05 | 苏州浪潮智能科技有限公司 | 一种空间回收方法、装置、设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111124258B (zh) | 2024-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11010300B2 (en) | Optimized record lookups | |
JP5445682B2 (ja) | ストレージシステム | |
US10176190B2 (en) | Data integrity and loss resistance in high performance and high capacity storage deduplication | |
CN111124258B (zh) | 全闪存阵列的数据存储方法、装置、设备及可读存储介质 | |
US9619180B2 (en) | System method for I/O acceleration in hybrid storage wherein copies of data segments are deleted if identified segments does not meet quality level threshold | |
US10127166B2 (en) | Data storage controller with multiple pipelines | |
CN108268219B (zh) | 一种处理io请求的方法及装置 | |
US9880762B1 (en) | Compressing metadata blocks prior to writing the metadata blocks out to secondary storage | |
US10740187B1 (en) | Systems and methods of managing and creating snapshots in a cache-based storage system | |
US9772949B2 (en) | Apparatus, system and method for providing a persistent level-two cache | |
CN109800185B (zh) | 一种数据存储系统中的数据缓存方法 | |
US10936412B1 (en) | Method and system for accessing data stored in data cache with fault tolerance | |
CN106445405B (zh) | 一种面向闪存存储的数据访问方法及其装置 | |
CN110196818B (zh) | 缓存数据的方法、缓存设备和存储系统 | |
Zou et al. | The dilemma between deduplication and locality: Can both be achieved? | |
US10733105B1 (en) | Method for pipelined read optimization to improve performance of reading data from data cache and storage units | |
US20190042134A1 (en) | Storage control apparatus and deduplication method | |
CN104462388B (zh) | 一种基于级联式存储介质的冗余数据清理方法 | |
US9292213B2 (en) | Maintaining at least one journal and/or at least one data structure by circuitry | |
US9218134B2 (en) | Read based temporal locality compression | |
US10908818B1 (en) | Accessing deduplicated data from write-evict units in solid-state memory cache | |
KR101525453B1 (ko) | 데이터 접근빈도를 이용한 raid 시스템의 데이터 복제 방법 | |
KR101473837B1 (ko) | Ssd 기반 스토리지 시스템에서 입출력 성능 향상을 위한 ssd 스토리지의 무효데이터 재활용 방법 | |
US10565120B1 (en) | Method for efficient write path cache load to improve storage efficiency | |
US10585802B1 (en) | Method and system for caching directories in a storage system |
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 |