CN106462481A - 使用循环冗余校验的重复数据 - Google Patents

使用循环冗余校验的重复数据 Download PDF

Info

Publication number
CN106462481A
CN106462481A CN201480078556.0A CN201480078556A CN106462481A CN 106462481 A CN106462481 A CN 106462481A CN 201480078556 A CN201480078556 A CN 201480078556A CN 106462481 A CN106462481 A CN 106462481A
Authority
CN
China
Prior art keywords
data
crc
page
cyclic redundancy
redundancy check
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.)
Pending
Application number
CN201480078556.0A
Other languages
English (en)
Inventor
S·纳扎里
王锦
S·D·默西
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.)
Hewlett Packard Development Co LP
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
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 Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Publication of CN106462481A publication Critical patent/CN106462481A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

在根据本公开的方面的一个示例性的实现方式中,一种方法可以包括:通过计算系统来计算接收到的数据请求的循环冗余校验(CRC)值。该方法还可以包括:通过计算系统利用三级表走步将CRC值转换成物理页位置。该方法还可以包括:通过计算系统,通过将接收到的数据请求与存储在物理页位置处的数据进行比较来检测接收到的数据请求是否表示重复数据。

Description

使用循环冗余校验的重复数据
背景技术
消费者和公司生成和使用的电子数据的量和大小在大小和复杂度上持续地增长,相关应用的大小和复杂度也同样持续地增长。作为回应,容纳增长且复杂的数据和相关应用的数据中心已经开始实现各种联网和服务器配置来提供数据的存储以及对数据的访问。
附图说明
下面的具体实施方式参考了附图,在附图中:
图1A和1B图示出根据本公开的示例的用于使用循环冗余校验和三级表来检测重复数据的计算系统的框图;
图2示出了根据本公开的示例的三级页表方案的框图;
图3示出了根据本公开的示例的利用循环冗余校验和三级表来检测重复数据的方法的流程图;以及
图4示出了根据本公开的示例的利用循环冗余校验和三级表来检测重复数据的方法的流程图。
具体实施方式
随着用户生成和消费更大量的数据,对这些数据的存储需求也在增加。较大体量的数据变得越来越昂贵、耗时以及耗用存储和访问空间。而且,重复数据,即与之前存在的数据相同的数据,的量是常见的。这些重复数据进一步为存储资源加重负担。
随着固态磁盘(SSD)添加到这些阵列中的支持介质中,主存储阵列中的数据去重(即,检测重复数据)越来越有用。SSD与传统硬盘驱动器之间的成本差利用比如去重和压缩的解决方案来降低这些存储阵列的每个字节的成本。主存储阵列要求主操作系统在它们上面施加在低等待时间和高吞吐量方面的高性能。
随着存储容量增长的越来越大,找到重复数据是对存储控制器的中央处理单元(CPU)和存储器施以要求的尺度问题。去重对输入/输出性能的影响是通过各种参数来确定的,诸如数据是否在内联还是在后台中去重,以及去重的粒度级。以较小的粒度级(诸如16KB页)对数据去重,在提供更好的空间节约的同时,要求CPU处理和存储器增加。一些主存储阵列不能处理输入/输出性能与内联数据去重的冲突的要求,并且结果是诉诸于后台去重。一些阵列还通过在较大的块(多个千兆字节)中对数据去重来解决去重。在其他示例中,检测到数据重复,例如利用加密散列来判定重复数据。这些加密散列使用更多的空间来存储以及使用更多的处理资源来比较。
在计算环境中的去重能够在多个层来执行,包括服务器、存储设备和备用解决方案。然而,现有的解决方案中的很多是CPU和存储器密集的,且没有采用硬件卸载引擎。
下面通过参考利用循环冗余校验和三级表检测重复数据块的多个示例来描述各个实现方式。在根据本公开的方面的一个示例实现方式中,一种方法可以包括:通过计算系统,计算接收到的数据请求的循环冗余校验(CRC)值。该方法还可以包括:通过计算系统,利用三级表将CRC值转换成物理页位置。该方法还可以包括:通过计算系统,通过将接收到的数据请求与存储在物理页位置处的数据进行比较来检测接收到的数据请求是否表示重复数据。
在根据本公开的方面的另一示例的实现方式中,一种系统可以包括处理资源。该系统还可以包括循环冗余校验模块,其计算接收到的数据页的循环冗余校验值。此外,系统还可以包括将循环冗余校验值转换成存储卷的物理页位置的三级表模块。该系统还可以包括去重检测模块,其通过执行XOR运算和零检测运算来判定接收到的数据页是否匹配存储卷中的现有数据页。
在又一示例中,非暂时性计算机可读存储介质存储有指令,当通过处理器执行指令时,使得所述处理器执行如下功能:计算用于数据库的接收到的数据页的循环冗余校验(CRC)值;应用计算出的CRC值作为去重数据库中的页偏差;将CRC值转换成去重数据库的物理页位置;以及通过判定物理页位置处的现有数据页是否匹配接收到的数据页来检测重复数据。
在一些实现方式中,所描述的数据重复检测使用了比常规加密散列少的用于检测重复数据块的存储空间。例如,通过使用循环冗余校验(CRC)作为确定重复数据的第一遍(first pass),CRC冲突的低发生率(即,具有同一CRC值的不同数据),大幅减少了存储散列所使用的空间。常规的加密散列可以使用例如与CRC值相比四至五倍的用于存储散列的空间。另外,进行CRC值比较所需的时间减少。根据下面的说明书这些优点以及其他优点将变得明显。
图1A和1B示出了根据本公开的示例的利用循环冗余校验和三级表来检测重复数据的计算系统100的框图。图1A和1B包括根据各个示例的特定的组件、模块等。然而,在不同的实现方式中,可以根据本文所描述的教导来使用更多、更少和/或其他的组件、模块和组件/模块的布置等。另外,本文所描述的各个组件、模块等可以实现为一个或多个软件模块、硬件模块、专用硬件(例如,专用硬件、专用集成电路(ASIC)、嵌入式控制器、硬接线电路等)或者这些的某组合。
应当理解的是,计算设备100可以包括任何适合类型的计算设备,包括例如智能手机、平板设备、台式机、膝上型设备、工作站、服务器、智能监视器、智能电视、数字标牌、科学仪器、销售设备的零售点、视频墙、成像设备、外围设备等。
计算系统100可以包括处理资源102,其通常代表了能够处理数据或者解释和执行指令的任何适合类型或形式的一个或多个处理单元。指令可以存储在非暂时性有形计算机可读存储介质上,诸如图1B的存储器资源104,或者在单独的设备(未示出)上,或者在存储指令以使可编程处理器执行本文所描述的技术的任何其他类型的易失性或非易失性的存储器上。可替代地或者另外地,计算系统100可以包括专用硬件,诸如一个或多个集成电路、专用集成电路(ASIC)、专用特殊处理器(ASSP)、现场可编程门阵列(FPGA)或者上述专用硬件的示例的任意组合,以用于实现本文所描述的技术。在一些实现方式中,可以适当地连同多个存储器和/或存储器的类型一起使用多个处理器。
在示例中,如图1B所示,计算系统100包括存储设备或存储设备阵列,诸如数据库106,其可以存储包括一个或多个操作系统的数据。特定操作系统提供了在数据库106上配置各虚拟卷以及在多个系统之间分布虚拟卷的能力。主机可以使用例如SCSI命令来访问这些卷,提供LUN标识符、逻辑块地址(LBA)和输入/输出(I/O)运算的长度。在一些实现方式中,卷类型可以是精简置备卷(thin provisioned volume),即,使用一种相对于初始地分配块的传统方法而利用数据块的按需分配来优化可用存储的利用的过程来创建的虚拟卷。在该精简置备卷的情况下,由主机访问的数据是利用三级页表转换机制来定位的。
图2示出了根据本公开的示例的三级表方案的框图。在示例中,诸如图2所示,该精简置备卷使用16个千字节分配单元,但是在不同的示例中可以使用其他尺寸。这些分配单元可以使用标准文件系统技术,诸如位图和三级块指针。靶向到精简置备卷的输入/输出数据请求是通过查找卷中的区域以查看正在被写或读的区域是否先前已经被写入而被转换的。到之前尚未写入的区域的“写”请求可以分配后备存储并且将其与精简置备卷的虚拟地址相关联。在图2所示的示例中,三级页查找和分配的粒度级是16KB。在该示例中,精简置备卷的空间是利用三级页表系统来表示的,称为L1PTBL、L2PTBL和L3PTBL。第一和第二表(L1PTBL和L2PBTL)包含到下一级页表的指针。例如,L1PTBL包含了到L2PTBL的位置的指针,并且L2PTBL包含了到L3PTBL的位置的指针。三级页表(L3PTBL)包含了到提供16KB的备用存储用于相应的虚拟精简置备卷偏差的实际盘页的指针。
返回图1,计算系统100可另外地包括循环冗余校验(CRC)模块110、三级表模块112和重复检测模块114。在一个示例中,本文所描述的模块可以是硬件和编程的组合。编程可以是存储在诸如图1B的存储器资源104的有形存储器资源上的处理器可执行指令,并且硬件可以包括用于执行这些指令的处理资源102。因此,图1B的存储器资源104可以例如被视为存储当通过处理资源102执行时实现本文所描述的模块的程序指令。也可以利用其他模块,如下文在其他示例中进一步讨论的。
CRC模块110计算接收到的数据请求的循环冗余校验值或签名从而辅助定位在物理卷(例如,数据库106)上的数据。例如,当接收到诸如数据或数据页的输入/输出(I/O)请求时,CRC模块110计算进入数据的CRC值(或签名)。一旦进入数据请求的CRC值(或签名)由CRC模块110计算出,则将CRC值与已经存储在存储阵列(诸如图1B的数据库106)中的现有数据的CRC值进行比较。如果识别出CRC值之间的匹配(即,进入数据请求的计算的CRC值与已经存储在存储阵列中的CRC值现有数据之间的匹配),则在一些情形下可以对数据进行去重。然而,如果CRC值是新的(即,CRC值之间无匹配),则将数据存储在用于可能重复的数据块的区域中,并且将其位置存储到按CRC索引的三级表中。
在示例中,CRC模块110可以是能够利用例如CRC32算法来计算接收到的数据请求的CRC的专用硬件模块或卸载引擎。在其他示例中,CRC模块110的专用硬件模块实现方式可以利用更高精度数据散列来计算CRC值,诸如SHA-2算法。结果,通过将传统上处理资源密集的CRC值计算卸载到专用硬件模块,使得处理资源(诸如处理资源102)再生以执行处理密集的计算。
一旦CRC模块110计算出进入数据的值或签名,则校验数据以查看相同的签名是否已经存在于接收到数据的卷中。在示例中,这还可以被卸载到专用硬件模块或卸载引擎。在此点,三级表模块112通过执行三级表走步(three-level table walk)而将CRC值转换成物理页位置或逻辑块地址。在示例中,可以创建对用户不可见的称为去重数据库的隐藏的精简置备卷。
当接收到数据页并且对于该页计算CRC值时,计算的CRC用作到去重数据库精简置备卷中的页偏差。因为去重数据库是精简置备卷,所以可以执行称为三级表走步的三级转换以将CRC值转换成物理页位置。
对于精简置备卷,通过主机访问的数据是利用三级表模块112来定位的。该转换过程类似于处理器将虚拟地址转换成物理地址的方式。利用三级页表转换主机供给的逻辑块地址(LBA)的结果是到例如16KB页的指针,其包含了请求的数据。因此,执行三级页表走步以将CRC值转换成物理位置指针是操作系统中的I/O路径的一部分。
三级表走步得到或者物理页位置或者空地址,这暗示着偏差尚未被写入。因此,当CRC值用于对去重数据库走步时,能够通过去重检测模块110判定在去重数据库内是否存在具有相同的CRC值的另一页。
如果在去重数据库内的另一页不存在,则进入的数据请求被写入该偏差。然而,如果页确实存在,则在新数据页与现有数据页之间执行“异或”(XOR)运算。然后,三级表模块112对XOR的结果执行零检测以判定具有相同签名的两个数据页是相同还是不同。如果它们相同,则对去重数据库中的数据页的引用计数会增加。然而,如果它们不相同,则可以称发生了CRC冲突,并且将该页存储在原输入/输出数据请求被导向到的数据库106中。通过该方式,具有相同签名的两个页能够被判定为相同的。在示例中,三级表模块112可以使用特殊硬件,诸如专用集成电路(ASIC)或其他适合的离散硬件组件来执行XOR运算和/或零检测。
图3示出了根据本公开的示例的用于利用循环冗余校验和三级表来检测重复数据的方法300的流程图。方法300可以通过诸如图1的计算系统100的计算系统或计算设备来执行,或者可以作为指令存储在非暂时性计算机可读存储介质中,当通过处理器执行时,所述指令使所述处理器执行方法300。在一个示例中,方法300可以包括:通过计算系统,计算接收到的数据请求的循环冗余校验(CRC)值(框302);通过计算系统,利用三级表将CRC值转换成物理页位置(框304);以及通过计算系统,通过将接收到的数据请求与存储在物理页位置处的数据进行比较来检测接收到的数据请求是否表示重复数据。
在框302处,方法300包括计算接收到的数据的循环冗余校验(CRC)值。例如,方法300可以包括:通过诸如图1的计算系统100的计算系统,计算接收到的数据请求的循环冗余校验(CRC)值。当接收到输入/输出(I/O)请求时,诸如数据页,计算CRC值,诸如通过图1的CRC模块110。一旦计算出进入数据请求的CRC值(或签名),则CRC值可以与已经存储在存储阵列中的现有数据的CRC值进行比较。如果识别出CRC值之间的匹配(即,计算出的进入数据请求的CRC值和已经存储在存储阵列中的CRC值现有数据之间的匹配),则在一些情形下数据可以是可去重的。然而,如果CRC值是新的(即,在CRC值之间无匹配),则将数据存储在可能重复的数据块的区域中,并且将其位置存储在按CRC索引的三级表中。计算循环冗余校验值可以通过例如离散硬件组件来执行,诸如专用集成电路。该方法在框304处继续。
在框304处,方法300包括利用三级表将CRC值转换成物理页位置。例如,方法300可以包括:通过诸如图1的计算系统100的计算系统,利用如图2中的三级表将CRC值转换成物理页位置。三级表走步得出物理页位置或空地址,这暗示着偏差尚未写入。因此,当CRC值用于对去重数据库走步时,能够判定出在去重数据库内是否存在具有相同的CRC值的另一页。利用三级页表来转换主机供给的逻辑块地址(LBA)的结果是到例如16KB页的指针,其包含请求的数据。因此,执行三级页表走步以将CRC值转换成物理位置指针是操作系统中的I/O路径的一部分。可以通过例如离散硬件组件如专用集成电路来执行三级表走步。该方法在框306处继续。
在框306处,方法300包括:通过将接收到的数据与存储在物理页位置处的数据进行比较,检测接收到的数据是否表示重复数据。例如,方法300可以包括:通过诸如图1的计算系统100的计算系统,通过将接收到的数据请求与存储在物理页位置处的数据进行比较来检测接收到的数据请求是否表示重复数据。
如果在去重数据库内的另一页(即,现有数据页)不存在,则进入数据请求被写入该偏差。然而,如果页确实存在,则在新数据页与现有的数据页之间执行“异或”(XOR)运算。然后,对XOR的结果执行零检测以判定具有同一签名的两个数据页是相同还是不同。如果它们相同,则对去重数据库中的数据页的引用计数增加。然而,如果它们不相同,则可认为CRC冲突发生,并且将该页存储在原输入/输出数据请求被导向到的数据库中。通过该方式,具有相同签名的两个页能够被确定为相同的。在示例中,可以实现诸如专用集成电路(ASIC)或其他适合的离散硬件组件的特殊硬件以执行XOR运算和/或零检测。
还可以包含附加的过程,并且应当理解,图3所描绘的过程代表了示例,并且可以添加其他过程,或者可以去除、修改或重布置现有的过程,而不背离本公开的范围和精神。
图4示出了根据本公开的示例利用循环冗余校验和三级表来检测重复数据的方法400的流程图。方法400可以由诸如图1的计算系统100的计算系统或计算设备来执行,或者可以作为指令存储在非暂时性计算机可读存储介质中,当通过处理器执行时,使得处理器执行方法400。在一个示例中,方法400可以包括:计算用于数据库的接收到的数据页的循环冗余校验(CRC)值(框402);应用计算出的CRC值作为去重数据库中的页偏差(框404);将CRC值转换成去重数据库的物理页位置(框406);以及通过判定物理页位置处的现有数据页是否匹配接收到的数据页来检测重复数据(框408)。
在框402处,方法400包括:计算接收到的数据的循环冗余校验(CRC)值。例如,方法400可以包括:计算用于数据库的接收到的数据页的循环冗余校验(CRC)值。当接收到输入/输出(I/O)请求时,诸如数据页,则计算CRC值,诸如通过图1的CRC模块110。一旦计算出进入的数据请求的CRC值(或签名),则可以将CRC值与已经存储在存储阵列中的现有数据的CRC值进行比较。如果识别出CRC值之间的匹配(即,所计算的进入数据请求的CRC值与已经存储在存储阵列中的CRC值现有数据之间的匹配),则在一些情况下数据可以是可去重的。然而,如果CRC值是新的(即,在CRC值之间无匹配),则将数据存储在用于可能重复的数据块的区域中,并且将其位置存储在按CRC索引的三级表中。计算循环冗余校验值可以通过例如离散硬件组件来执行,诸如专用集成电路。该方法在框404处继续。
在框404处,方法400包括:应用计算出的CRC值作为页偏差。例如,方法400可以包括:应用计算出的CRC值作为去重数据库中的页偏差。当数据的页被接收且对于该页计算出CRC值时,计算出的CRC用作为去重数据库精简置备卷中的页偏差。因为去重数据库是精简置备卷,所以可以执行称为三级表走步的三级转换以将CRC值转换成物理页位置。该方法在框406处继续。
在框406处,方法400包括将CRC值转换成物理页位置。例如,方法400可以包括:将CRC值转换成去重数据库的物理页位置。利用三级页表转换主机供给的逻辑块地址(LBA)的结果是到例如16KB页的指针,其包含了请求的数据。因此,执行三级页表走步以将CRC值转换成物理位置指针是操作系统中的I/O路径的部分。
三级表走步得出物理页位置或空地址,这暗示着偏差尚未写入。因此,当CRC值用于走步去重数据库时,能够判定出在去重数据库内是否存在具有相同的CRC值的另一页。三级表走步可通过例如离散硬件组件来执行,诸如专用集成电路。该方法在框408处继续。
在框408处,方法400包括检测重复数据。例如,方法400可以包括:通过判定物理页位置处的现有数据页是否匹配接收到的数据页来检测重复数据。如果在去重数据库内的另一页(即,现有的数据页)不存在,则进入的数据请求被写入该偏差。然而,如果页确实存在,则在新数据页与现有的数据页之间执行“异或”(XOR)运算。然后,对XOR的结果执行零检测以判定具有相同签名的两个数据页是相同还是不同。如果它们相同,则对去重数据库中的数据页的引用计数增加。然而,如果它们不同,则可认为CRC冲突发生,并且将该页存储在原输入/输出数据请求被导向到的数据库中。通过该方式,具有相同签名的两个页能够被判定为相同。在示例中,可以实现诸如专用集成电路(ASIC)或其他适合的离散硬件组件的特殊硬件以执行XOR运算和/或零检测。
还可以包括附加的过程,应当理解的是图4所描绘的过程代表了示例,可以添加其他过程,或者可以去除、修改或重新布置现有的过程,而不背离本公开的范围和精神。
应当强调的是,上述示例仅仅是实现方式的可能的示例并且是为了清楚理解本公开而阐述的。可以对上述示例做出许多的变型例和修改而不会实质上偏离本公开的精神和原理。此外,本公开的范围旨在涵盖上述全部元件、特征和方面的任何和全部的适当的组合和子组合。所有这样的适当的修改和变型例旨在包含于本公开的范围内,并且对元件或步骤的单独的方面或组合的全部可能的权利要求旨在得到本公开的支持。

Claims (15)

1.一种方法,包括:
通过计算系统,计算接收到的数据请求的循环冗余校验(CRC)值;
通过所述计算系统,利用三级表走步将所述CRC值转换成物理页位置;以及
通过所述计算系统,通过将所述接收到的数据请求与存储在所述物理页位置处的数据进行比较来检测所述接收到的数据请求是否表示重复数据。
2.如权利要求1所述的方法,其中,计算所述循环冗余校验值是通过所述计算系统的第一离散硬件组件来执行的。
3.如权利要求1所述的方法,其中,将所述接收到的数据请求与存储在所述物理页位置处的数据进行比较是通过所述计算系统的第二离散硬件组件来执行的。
4.如权利要求1所述的方法,其中,将所述接收到的数据请求与存储在所述物理页位置处的数据进行比较利用XOR运算。
5.如权利要求1所述的方法,其中,利用所述三级表走步将所述CRC值转换成物理页位置包括使用所述CRC值作为所述三级表走步的逻辑块地址。
6.一种系统,包括:
处理资源;
循环冗余校验模块,其计算接收到的数据页的循环冗余校验值;
三级表模块,其将所述循环冗余校验值转换成存储卷的物理页位置;以及
去重检测模块,其通过执行XOR运算和零检测运算来判定接收到的数据页是否匹配所述存储卷中的现有数据页。
7.如权利要求6所述的系统,其中,所述去重检测模块响应于判定出接收到的数据页匹配所述存储卷中的现有数据页来增加对所述存储卷中的数据页的引用计数。
8.如权利要求6所述的系统,其中,所述去重检测模块响应于判定出接收到的数据页不匹配所述存储卷中的现有数据页而将所述接收到的数据页存储到所述存储卷中。
9.如权利要求6所述的系统,其中,所述循环冗余校验模块是离散硬件组件。
10.如权利要求6所述的系统,其中,所述循环冗余校验模块是专用集成电路。
11.如权利要求6所述的系统,其中,所述去重检测模块是离散硬件组件。
12.如权利要求6所述的系统,其中,所述去重检测模块是执行XOR运算和所述零检测运算的专用集成电路。
13.如权利要求6所述的系统,其中,所述系统是具有多个存储卷的分布式系统。
14.一种存储有指令的非暂时性计算机可读存储介质,当通过所述处理器执行时,所述指令使得所述处理器进行以下操作:
计算用于数据库的接收到的数据页的循环冗余校验(CRC)值;
应用所计算出的CRC值作为去重数据库中的页偏差;
将所述CRC值转换成所述去重数据库的物理页位置;以及
通过判定在所述物理页位置处的现有数据页是否匹配所述接收到的数据页来检测重复数据。
15.如权利要求14所述的非暂时性计算机可读存储介质,其中,通过执行XOR运算和零检测运算来判定所述物理页位置处的现有数据页是否匹配所述接收到的数据页。
CN201480078556.0A 2014-04-30 2014-04-30 使用循环冗余校验的重复数据 Pending CN106462481A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2014/036045 WO2015167493A1 (en) 2014-04-30 2014-04-30 Duplicate data using cyclic redundancy check

Publications (1)

Publication Number Publication Date
CN106462481A true CN106462481A (zh) 2017-02-22

Family

ID=54359045

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480078556.0A Pending CN106462481A (zh) 2014-04-30 2014-04-30 使用循环冗余校验的重复数据

Country Status (3)

Country Link
US (1) US20160350175A1 (zh)
CN (1) CN106462481A (zh)
WO (1) WO2015167493A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109144768A (zh) * 2017-06-16 2019-01-04 西部数据技术公司 在纠删码编码期间的cpu错误修复

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015178944A1 (en) 2014-05-23 2015-11-26 Hewlett-Packard Development Company, L.P. Using location addressed storage as content addressed storage
WO2016048331A1 (en) 2014-09-25 2016-03-31 Hewlett Packard Enterprise Development Lp Storage of a data chunk with a colliding fingerprint
US9977746B2 (en) 2015-10-21 2018-05-22 Hewlett Packard Enterprise Development Lp Processing of incoming blocks in deduplicating storage system
US11086562B2 (en) * 2016-09-13 2021-08-10 Hitachi, Ltd. Computer system having data amount reduction function and storage control method
US10417202B2 (en) 2016-12-21 2019-09-17 Hewlett Packard Enterprise Development Lp Storage system deduplication
US11681581B1 (en) * 2022-06-21 2023-06-20 Western Digital Technologies, Inc. Data integrity protection with partial updates

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070089041A1 (en) * 2005-10-17 2007-04-19 Mau-Lin Wu Duplicate detection circuit for receiver
US20120089894A1 (en) * 2007-09-13 2012-04-12 Dell Products L.P. Detection Of Duplicate Packets
CN102708067A (zh) * 2011-03-21 2012-10-03 微软公司 组合具有相同内容的存储器页面
CN103338090A (zh) * 2013-05-30 2013-10-02 中国联合网络通信集团有限公司 业务数据传输方法、设备及系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6901413B1 (en) * 1999-03-19 2005-05-31 Microsoft Corporation Removing duplicate objects from an object store
US7925850B1 (en) * 2007-02-16 2011-04-12 Vmware, Inc. Page signature disambiguation for increasing the efficiency of virtual machine migration in shared-page virtualized computer systems
US9229853B2 (en) * 2011-12-20 2016-01-05 Intel Corporation Method and system for data de-duplication
US9639461B2 (en) * 2013-03-15 2017-05-02 Sandisk Technologies Llc System and method of processing of duplicate data at a data storage device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070089041A1 (en) * 2005-10-17 2007-04-19 Mau-Lin Wu Duplicate detection circuit for receiver
US20120089894A1 (en) * 2007-09-13 2012-04-12 Dell Products L.P. Detection Of Duplicate Packets
CN102708067A (zh) * 2011-03-21 2012-10-03 微软公司 组合具有相同内容的存储器页面
CN103338090A (zh) * 2013-05-30 2013-10-02 中国联合网络通信集团有限公司 业务数据传输方法、设备及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109144768A (zh) * 2017-06-16 2019-01-04 西部数据技术公司 在纠删码编码期间的cpu错误修复
CN109144768B (zh) * 2017-06-16 2021-12-17 西部数据技术公司 用于数据编码的系统及其计算机实现方法

Also Published As

Publication number Publication date
US20160350175A1 (en) 2016-12-01
WO2015167493A1 (en) 2015-11-05

Similar Documents

Publication Publication Date Title
CN106462481A (zh) 使用循环冗余校验的重复数据
US9262086B2 (en) Systems and methods for de-duplication in storage systems
CN110858124B (zh) 数据迁移方法及装置
CN110546628A (zh) 用有向线缓冲器最小化存储器读取提高神经网络环境性能
US8456972B2 (en) Efficient access to storage devices with usage bitmaps
US20140115252A1 (en) Block storage-based data processing methods, apparatus, and systems
US20180275919A1 (en) Prefetching data in a distributed storage system
US20180113810A1 (en) Method and system for efficient hashing optimized for hardware accelerated caching
US10565183B1 (en) Efficient deduplication signature utilization
CN103577115B (zh) 数据的排布处理方法、装置和服务器
CN107193503B (zh) 一种数据重删方法及存储设备
CN111522502B (zh) 数据去重方法、装置、电子设备及计算机可读存储介质
US20170322878A1 (en) Determine unreferenced page in deduplication store for garbage collection
CN107729536A (zh) 一种数据存储方法和装置
US9645897B2 (en) Using duplicated data to enhance data security in RAID environments
US11226769B2 (en) Large-scale storage system and data placement method in large-scale storage system
US8504764B2 (en) Method and apparatus to manage object-based tiers
US20220391370A1 (en) Evolution of communities derived from access patterns
CN113590535B (zh) 一种用于去重存储系统的高效数据迁移方法和装置
JP2019016293A (ja) 情報処理装置、重複除去率特定方法及び重複除去率特定プログラム
US11093180B2 (en) RAID storage multi-operation command system
US9760287B2 (en) Method and system for writing to and reading from computer readable media
Zhang et al. Inline data deduplication for SSD-based distributed storage
US10055140B2 (en) Method, system, and computer-readable recording medium for automated storage tiering
JP6695973B2 (ja) 計算機システム及びデータベース管理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20170222