CN101710323A - 计算机存储去复制操作 - Google Patents

计算机存储去复制操作 Download PDF

Info

Publication number
CN101710323A
CN101710323A CN200910157455A CN200910157455A CN101710323A CN 101710323 A CN101710323 A CN 101710323A CN 200910157455 A CN200910157455 A CN 200910157455A CN 200910157455 A CN200910157455 A CN 200910157455A CN 101710323 A CN101710323 A CN 101710323A
Authority
CN
China
Prior art keywords
file
block
storage
pointer
cryptographic hash
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
CN200910157455A
Other languages
English (en)
Other versions
CN101710323B (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.)
Weirui LLC
Original Assignee
VMware LLC
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 VMware LLC filed Critical VMware LLC
Publication of CN101710323A publication Critical patent/CN101710323A/zh
Application granted granted Critical
Publication of CN101710323B publication Critical patent/CN101710323B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种包括多个计算机主机和所述主机外部的存储***的数据中心。存储***包括用于存储有形编码数据块的存储块。每个所述主机包括去复制文件***,该去复制文件***标识出存储在相应存储块中的相同数据块,并将这些相同数据块合并成所述存储块之一,使得由所述主机中的第一主机排他访问的第一文件和所述主机中的第二主机排他访问的第二文件同时指向相同的存储块。

Description

计算机存储去复制操作
技术领域
本发明一般地涉及计算机存储去复制(deduplication)操作。
背景技术
典型的计算机文件***在固定尺寸的小块中存储文件数据,其中固定尺寸的小块被与每个文件相关联的元数据中维护的指针所指向。在两个指针指向相同块的情况下,通过改变一个或两个指针使得它们指向同一块可以回收一些存储空间。找到指向相同块的指针并且随后改变一个或两个指针使得他们指向同一块的过程在这里被称作“去复制(deduplication)”。这种去复制通常由控制宿主计算机对存储介质的访问的入口连接器(gateway)执行。
本申请要求了于2008年9月11日递交的美国临时申请No.61/096,258的权益。
发明内容
根据本发明的一个方面,本发明提供了一种数据中心,包括多个计算机主机以及所述主机外部的存储***,所述存储***包括用于存储有形编码数据块的存储块,所述主机中的每个包括安装有去复制文件***驱动器的主机操作***,文件***驱动器,以下说明书和附图中简称为“文件***”,标识出相应存储块中存储的相同数据块。文件***将这些相同数据块合并成单个存储块,从而由第一主机排他访问的第一文件和由第二主机排他访问的第二文件同时指向同一存储块。
根据本发明的另一方面,本发明提供了一种包括计算机可读存储介质的制品,所述计算机可读存储介质编码有计算机可执行指令的文件***,所述文件***在宿主计算机***上运行时连接到存储***管理文件,包括在所述存储***中编码的共享块文件。所述文件包含有形编码的指向包含有形编码数据块的存储块的元数据指针,所述共享块文件具有指向由多个所述元数据指针指向的块的元数据指针,所述文件***包括用于更新哈希值索引的写日志处理器,所述哈希值索引具有通过所述共享块文件间接指向共享存储块的共享条目集,并且具有通过所述共享块文件之外的所述文件间接指向非共享存储块的非共享条目集,所述哈希值索引被有形编码在所述存储***上。
根据本发明的又一方面,本发明提供了一种方法,包括:第一文件***在第一宿主计算机***上执行,所述第一文件***通过以下操作来管理向存储***上的第一文件的第一写操作:将第一数据块写入所述存储***的第一存储块并使所述第一文件的第一元数据指针指向所述第一存储块;第二文件***在第二宿主计算机***上执行,所述第二文件***通过以下操作来管理向存储***上的第二文件的第二写操作:将第二内容写入所述存储***的第二块并使所述第二文件的第二元数据指针指向所述第二块;并且所述第二文件管理器确定所述第二内容是否与所述第一内容相同;以及如果所述第二内容与所述第一内容相同,那么所述第二文件管理器使得所述第二元数据指针指向所述第一块。
附图说明
图1是根据本发明实施例的数据中心的简要示图。
图2是根据本发明实施例的方法流程图。图2重点示出了与写操作相关联的步骤。
图3是图1数据中心更为详细的示图。
图4是图1数据中心的一对文件集的简要框图。
图5是图2方法的去复制步骤的流程图。图5重点示出了与找到写记录和哈希值索引条目之间的匹配相关的步骤。
图6是图2方法的去复制步骤的流程图。图6重点示出了与处理指向可变块指针的匹配相关的步骤。这些步骤可以包括发出合并请求。
图7是图2方法的去复制步骤的流程图。图7重点示出了图2方法的合并请求处理步骤。
图8是图2方法的去复制步骤的流程图。图8重点示出了与处理指向写时拷贝(copy-on-write)块指针的匹配相关的步骤。
图9是图2方法的去复制步骤的流程图。图9重点示出了图2方法的清理步骤。
图10A和10B分别示出了根据本发明实施例的Inode节点。
具体实施方式
图1中描述了实现本发明的数据中心AP1。数据中心AP1包括主机HA和HB以及存储阵列网络(SAN)11形式的存储***。主机HA包括硬件13A,硬件13A包括处理器14A、介质15A和通信设备16A。计算机可读存储介质15A编码有计算机可执行指令程序,包括应用17A、操作***(OS)19A以及去复制文件***20A。这里,“介质”指的是有形计算机可读存储介质,是一类制品。“介质”包括硬盘、光盘以及固态存储设备。应用17A运行在操作***19A上,其使用文件***20A访问SAN 11。主机HB类似地包括硬件13B、处理器14B、介质15B、通信设备16B、应用17B、操作***19B以及去复制文件***20B。
如本领域普通技术人员将猜测到的,本发明适用于多种数据中心以及其他的计算机***拓扑结构。本发明适用于具有多个主机的数据中心,并且主机彼此可以不同,例如在涉及的硬件类型和供电方面、在运行的操作***和应用的类型与数量方面、以及联网主机的方案方面可以不同。例如,使用虚拟机技术,一个主机可以在相应的操作***中运行若干应用,所有应用共享相同的文件***。
应用17A和17B与操作***19A和19B在诸如文件FA、FB和FC的文件中存储数据。文件***20A和20B将数据划分成固定尺寸的块,在本实施例中为4kB,并且将其作为数据块D1-DN存储在相应的存储块B1-BN中。文件通过元数据块指针与其内容相关联。例如,文件FA包括与文件FA内的偏移位置相关联的块指针PA1。块指针PA1指向包含数据块D1的存储块B1。(注意:虚箭头代表指针与块的先前关联,而实箭头代表指针与块的当前关联。)文件通常具有许多指针,并且他们中的不只一个可以指向给定的存储块。例如,文件FA包括指针PA2和PA3,PA2和PA3都指向存储块B2。还可以是来自不同文件的指针指向同一块。例如,文件FA的指针PA4和文件FB的指针PB1都指向存储块B4。
如双向箭头21和23所指示的那样,主机HA和HB与SAN 11的通信很大程度上是独立的。为防止文件访问冲突,主机HA和HB被防止同时访问同一文件。为此目的,每个文件包括可以由主机拥有的锁。尽管文件在任意给定时间至多可以由一个主机访问,但是主机HA和HB通过释放和取得锁可以分时共享(在不同的时刻访问)文件(例如文件FC)。出于记忆和说明的目的,两个文件在这里被认为由相应的主机“永久性”拥有:主机HA永久性拥有锁LA,从而主机HB永远不能访问文件FA;类似地,主机HB永久性拥有锁LB,从而主机HA永远不能访问文件FB。“永久性”这里指的是“这里所讨论的整个期间段内”。
在数据中心AP1中,去复制被分散。每个主机HA、HB具有其自己的去复制文件***20A、20B。与集中化方式相比,这具有若干优点。不需要专门软件来处理去复制。不存在可能成为数据中心AP1故障单点或瓶颈的中央主机。此外,本发明可以方便地扩展,因为添加更多的主机必然为去复制功能贡献更多资源。
根据以下示例可以实现去复制。在去复制之前,指针PA2指向存储块B2,进而指向数据块D2,而指针PA3指向存储块B3,进而指向数据块D3。在去复制操作25期间,确定数据块D3与数据块D2等同。通过改变块指针PA3使得其指向存储块B2,数据块D3随后与存储块B2中的数据块D2有效合并。存储块B3因此被解放以做他用。去复制操作25是由主机HA执行的,而其能够对文件FA进行排他访问,文件FA以元数据形式包括操作25中涉及的所有块指针。
然而,本发明不需要一个主机能够访问去复制操作中涉及的两个文件。例如,主机HA可以发现存储块B5和存储块B4很可能包含等同的数据块,即使没有主机HA能够访问的文件指向存储块B5。可以通过去复制专用文件27来作出上述可能等同物的发现。主机HA可以通过发出合并请求并将其存储在去复制专用文件27之一中来记录这个可能等同物。一旦主机HB可以获得对合并请求的访问,主机HB可以确定提出的等同物是否有效,如果有效,那么将块指针PB1(主机HB能够访问该指针)改变成指向存储块B4以实现去复制操作29。因此,尽管独立行动,主机HA和HB可以通过分时共享去复制专用文件27来合作实现去复制操作。
由于存储***通常处理的存储块数量巨大,对每对可能的块进行比较以找到可能的复制件是不可行的。然而,由于新复制件仅(或者至少主要)在写操作的上下文中出现,可以通过跟踪写操作来标识出去复制候选者。在本发明的实施例中,作为写操作的一部分,每个块被检查以寻找可能的匹配。然而,图示的实施例监视写操作,但是延迟去复制操作直到对计算资源的需求相对较低的时候才进行,从而最小化对应用17A和17B的任何性能干扰。
写操作
因此,在如图2以流程图示出的方法ME1中,文件***20A在写操作S1A期间监视在主机HA上发起的写操作,并且稍后执行去复制操作S2A。文件***20A在SAN 11上以4kB块的形式存储信息。(如下文进一步解释的,文件***20A以分层级的方式使用1MB和4KB块。)
在步骤S11A处,应用17A发起例如数据向文件FA的写操作。写操作涉及将数据写入存储在SAN 11上的文件中的位置。由应用17A发起的写操作可以是:1)限于单个块;或者2)涵盖多个块或者至少跨越块边界。在后一种情形中,文件***20A将写操作分成单块子操作,其中每个子操作如下文所描述的被看作单块写操作。类似地,应用17A声明的写地址的范围被转换为文件指针。每个文件指针规定文件标识符(文件ID)和偏移值(指示指定文件内的位置)。与每个这样的文件位置相关联的是定义指向4kB存储块(B1-BN)的块指针的元数据。
在步骤S12A,文件***20A检测到写操作并生成写记录。在过程中,文件***20A生成数据块的哈希值并且将其与来自写请求的文件指针相关联。在图示的实施例中,写记录仅为整个块被重写的写操作生成。没有写记录以及确定的去复制响应于部分块的写操作而发生。在另一实施例中,对于写操作仅涉及块的一部分的情形,块的其余部分必须被读取以生成哈希值。文件***20A使用生成160位哈希值的SHA-1算法,也被称为“指纹”、“签名”和“文摘”,因此与4kB值对照,比较是在20字节的值之间进行的。具有不同哈希值的两个块一定不同。SHA-1是抗冲突的(collisionresistant),因此不太可能两个具有相同哈希值的块将不同。为了防止错配的可能,可以有选择地使用整个块的逐位比较以确认哈希值比较所指示的匹配。SHA-1哈希值还具有与安全性相关的加密属性,这使得很难从其哈希值确定块。另一实施例使用其他哈希算法,例如SHA-2和MD5。
在步骤S13A处,文件***20A访问文件***20A从应用17A规定的写地址范围生成的文件指针所指向的块指针。因此,例如,对于块D4向文件FA的写入以及与块指针PA4相关联的偏移,主机HA将访问块指针PA4。
文件***20A和20B区分写时拷贝(COW)块指针和“可变”块指针。可变类型指针指示目标存储块可以被重写。COW类型指针指示目标存储块不能被重写。例如,诸如图1中的B2的被不只一个块指针(PA2和PA3)指向的存储块通常不能被重写。作为替代,其内容可以被拷贝到空闲的存储块,该存储块随后可以被重写而无需无效其他指针。在另一实施例中,存储块引用计数而非指针类型确定是否可以适当地执行写操作。
在步骤S14A处,文件***20A确定:1)写操作能适当地执行,即,目标块可以被重写;还是2)写操作必须在目标块的拷贝上执行,例如因为指向该块的其他文件期望其保持不变。在图示的实施例中,该确定是通过检查步骤S13A中访问的块指针的COW和可变类型而作出的。如果指针是可变的,那么在步骤S15A处写操作中规定的数据块重写所指向的存储块的内容。如果块指针类型为COW,那么执行写时拷贝操作并在步骤S16A处将数据块写入空闲的存储块。在步骤S17A处,S13A中访问的块指针被改变以指向新的存储块;其类型仍是“可变”。在步骤S18A处,与新使用的存储块相关联的存储块引用计数从“0”(“空闲”)递增至“1”(“唯一”)。并且,在步骤S18A处,与拷贝源块相关联的存储块引用计数递减,因为指向它的块指针少了一个。
在步骤S19A处,步骤S12A中生成的写记录被从主机HA传送到SAN11。典型地,写记录在主机处累积,其中在主机处他们由目的地文件组织。写记录随后被传送到SAN 11上的写日志以用于他们相应的文件。写记录随后在去复制操作S2A期间使用,通常被安排在低利用时间,例如2am。方法ME1类似地提供步骤S1B、S2B和S11B-S19B用以实现主机HB的操作。
数据中心细节
如图3所示,用于主机HA的文件***20A包括写记录器31A和去复制器33A。写记录器31A生成写记录并且将它们暂时存储在主机HA上的日志缓冲器35A中。去复制器33A包括调度器37A、写日志处理器39A和合并请求处理器43A,其中写日志处理器39A包括合并请求生成器41A。主机HB的文件***20B类似地包括带有缓冲器35B的写记录器31B、去复制器33B、调度器37B、带有合并请求生成器41B的写日志处理器39B、以及合并请求处理器44B。
SAN 11包括包括块B1和B2在内的存储块、包括文件集FSA和FSB的文件集、哈希值索引45、以及共享块或“池”文件FP。哈希值索引45、池文件FP、写日志WLA和WLB、以及合并日志MLA和MLB是去复制专用文件FS(图1)的示例。每个文件集包括“特性”文件(例如文件集FSA的文件FA),并且还可以包括关联的写日志文件(例如写日志WLA)和/或关联的合并日志文件(例如合并日志MLA)。前面句子中出现词语“可以”是因为:1)当不存在与特性文件相关联的写记录的时候,文件集不包括写日志文件;以及2)如果不存在与特性文件相关联的合并请求,那么文件集不包括合并日志文件。另一实施例提供了空的写日志文件和空的合并日志文件。
写日志(例如写日志WLA和WLB)和合并日志(例如合并日志MLA和MLB)是具有与特性文件类似结构的文件。换句话说,他们的内容(包括写记录和合并请求)是以数据块的形式安排的,而数据块又被存储在存储块B1-BN中。写日志和合并日志包括指向存储写记录和合并请求的存储块的元数据块指针。处于说明的目的,这里从物理方面(例如,带有元数据块指针)考量特性文件(例如FA和FB),而从逻辑方面(即,具有对内容的直接引用)考量辅助文件(例如写日志和合并日志)。
当存储写记录时对写日志WLA和WLB进行写入,并且当在去复制期间处理那些记录时从写日志WLA和WLB读取。并且还对写日志WLA和WLB进行读取以发现可以被清理的哈希值索引条目。写日志文件的所有权遵从关联主文件的所有权。因此,例如只要主机HA具有对文件FA的排他访问权,它就具有对写日志WLA的排他访问权。
不管关联主文件是否可访问,主机HA和HB都可以在分时共享基础上(即,在不同的时刻,主机HA和主机HB都具有对这些去复制专用文件的排他访问权)访问所有其它去复制专用文件。例如,主机HA可以在分时共享的基础上访问合并请求日志MLB,即使它根本不能访问文件FB。这使得主机HA可以存储由主机HB处理的合并请求。
图4中更详细地示出了文件集FSA和FSB。在图4中,鉴于上面给出的原因,特性文件FA和FB以其物理形式表示为块指针,而辅助文件WLA、WLB、MLA和MLB以其逻辑形式表示为内容。具体而言,写日志WLA包括写记录WA1和WA2,而写日志WLB包括写记录WB1和WB2。每个写记录WA1、WA2、WB1、WB2包括哈希值HA1、HA2、HB1、HB2(对应于被写入的数据块)以及文件指针FA1、FA2、FB2、FB2(对应于从操作***19A和19B的观点出发的写目的地)。写日志用来基于每个目的地存储写操作的记录以用于后续的去复制处理。
合并日志MLA包括合并请求MA1和MA2,而合并日志MLB包括合并请求MB1和MB2。每个合并请求MA1、MA2、MB1规定了两个文件指针:“本地”文件指针ML1、ML2、MBL,以及“池”文件指针MP、MP2、MBP。本地文件指针指向关联特性文件中的位置。例如,本地文件指针ML1指向特性文件FA内的偏移。(注意由于每个辅助文件(写日志或合并日志)仅与一个特性文件相关联,所以本地文件指针仅需明确规定偏移。)池文件指针指向池文件FP内的位置。
本地文件指针和池文件指针直接指向具有关联块指针的文件位置。因此,本地文件指针和池文件指针间接指向存储块。在另一实施例中,合并请求包括来自池文件的块指针而非池文件块指针。换句话说,在另一实施例中,合并请求直接指向而非通过中间文件(例如FA或FB)间接指向存储块。
哈希值索引45,尽管是在延迟的基础上,用做所有已使用存储块的主列表。哈希值索引45包括将哈希值分配给文件指针的条目47、49等。文件指针指向与关联于下述存储块的块指针相关联的文件地址,其中存储块与哈希值所表示的数据块相关联。换句话说,哈希值索引45利用存储块的内容对存储块间接索引。
哈希值索引45被划分成水平碎片(horizontal shard)51和53。每个碎片覆盖预定范围的哈希值,例如,碎片51包括以“0”开始的值,而碎片53包括以“1”开始的哈希值。划分哈希值索引使得主机HA和HB二者可以同时访问相应的碎片,并且随后切换使得每个主机可以访问所有条目。对于更大数目的主机,划分哈希值索引所得碎片的数量可以更多,使得所有或大多数主机可以同时访问哈希值索引的相应部分。
在另一实施例中,每个哈希值索引明确与指向同一块的相应块指针的所有文件指针的列表相关联。在图示的实施例中,对于每个哈希值仅列出一个文件指针。对于与不只一个块指针相关联的哈希值,关联的文件指针指向池文件位置。与该池文件位置相关联的块指针指向那些块指针引用的共同块。
池文件FP,与其它文件FA和FB类似,包括锁LP和块指针PS 1和PS2。基本上,哈希值索引条目(例如47、49)指向池文件或其它文件。指向池文件FP的哈希值索引条目指向COW类型块指针,而指向其它文件的哈希值索引条目指向可变类型块指针。COW类型指针指向被共享的块;可变块类型指针指向未被共享的块。在另一实施例中,不存在池文件,并且哈希值索引条目列出与共享块相关联的所有文件指针。
找到匹配
在可以合并存储块内容之前,必须确定它们相同。为此,比较内容的哈希值。更具体地说,写记录中的哈希值与哈希值索引45中可能匹配的哈希值相比较。因此,如图5中所示,步骤S20A涉及获得对哈希值索引45或者至少其碎片51、53之一的排他访问权。在一个或多个实施例中,在找到哈希值匹配之后,块的内容被比较以防止错配。
在步骤S21A处,文件***20A例如通过检查锁进而标识出主机HA具有排他访问权的文件。在步骤S22A处,写日志处理器39A访问可访问文件的写日志中的写记录;只有那些具有在被访问碎片范围内的哈希值的写记录被处理,直到不同的碎片被访问。在哈希值索引未被划分成碎片的实施例中,所有可访问的写记录可以被访问。即使在哈希值未被分成碎片的实施例中,哈希值也可被排序,使得仅仅哈希值条目的一部分需要被检查以成立“未命中”(无匹配索引条目)。
在步骤S23A处,对于每个写记录,确定记录中的哈希值是否匹配哈希值索引45中的哈希值。如果不存在匹配,那么对应于写记录的数据块是唯一的。去复制是不可能的。然而,哈希值索引在步骤S24A处被更新以包括对应于该写记录的新条目。条目包括写记录的文件指针和哈希值。这完成了对所针对写记录的处理。下面的步骤是在步骤S25A处处理合并请求以及清理去复制专用文件FD。这两个步骤将在下文进一步讨论。
如果在步骤S23A处找到匹配,那么在步骤S27A处访问与哈希值索引中的哈希值相关联的文件指针。参考图4,写记录WA1的哈希值HA1匹配索引条目47中的哈希值HB1。当他们哈希值相等的时候,写记录匹配索引条目。写记录文件指针FA1匹配索引条目文件指针FB1是不需要的也是不太可能的。注意步骤S20A-S27A具有主机HB的对应步骤S20B-S27B。
写记录文件指针FA1规定文件(文件FA)和块指针PA4所位于的该文件中的偏移。块指针PA4指向包含数据块D4的存储块B4。这里,“WR文件”、“WR偏移”、“WR块指针”、“WR存储块”和“WR数据块”均指向写记录规定或直接或间接指向的条目。类似地,前缀“IE”指向原始形式下的索引条目文件指针规定或指向的条目。如果索引条目文件指针已被修改,那么使用前缀“RE”。
指向唯一存储块的匹配
实际上,不匹配任何预先存在的索引条目的写记录自己被输入到哈希值索引45中。最初,新条目规定写记录规定的相同文件指针(文件和偏移)。该条目保持不变直到其被另一写记录所匹配。同时,IE文件指针指向原始的可变类型WR块指针,而原始可变类型WR块指针又指向WR存储块。然而,由于WR块指针是可变的,所以WR数据块可能在生成写记录的时间与识别出匹配的时间期间已被重写。在这种情况下,WR哈希值和IE哈希值之间的匹配是过时的。
如果处理写记录的主机不能访问IE文件,那么主机将不能确定哈希值索引条目是否是过时的。例如,如果主机HA正在处理用于文件FA的写记录,并且如果该写记录匹配指向文件FB的哈希值索引条目,那么如果想要确定索引条目的有效性,则主机HA实际上将需要主机HB的帮助。然而,由于主机HA和HB独立访问SAN 11,这个合作不能依赖于合作动作。相反,主机HA通过将其块指针拷贝到池文件FP并将去复制任务的剩余部分以合并请求的形式传送到主机HB,而使得其信息可用。
当在步骤S27A处写日志处理器39A确定IE文件不是池文件FP时,在步骤S28A处继续方法ME1,如图6所示。尽管其不能访问IE文件,但是处理写记录的主机必须能够访问WR文件和WR可变类型块指针。该块指针在步骤S28A处被访问。
在步骤S29A处,WR块指针的类型从“可变”变为“COW”。在步骤S30A处,该新的COW类型WR块指针被添加到池文件FP,从而其可被所有主机访问。由于WR文件和池文件现在共享WR存储块,因此其计数递增至“2”。
在步骤S31A处,IE文件指针被改变成指向池文件。(注意:正是此步骤得到如下推断,即指向文件而非池文件FP的索引条目先前未被匹配。)该最终的修改条目RE文件指针现在指向WR存储块。例如,如果主机HA正在处理通过WR块指针PA4指向WR存储块B4(如图1所示)的写记录,并且索引条目指向指向IE存储块B5的IE块指针PB1,那么步骤S31A使得修改的条目通过池文件FP4指向RE存储块B4而非IE存储块B5。即使IE存储块B5已被重写,RE数据块(至少在写记录代表的写操作的时候)也对应于匹配IE哈希值。
由于对文件的访问是排他的,因此处理写请求的主机一般将不能访问IE块指针。如果主机不能访问IE文件,那么它不能标识出IE存储块并且不能改变IE块指针以匹配池文件中的一个(来自步骤S30A)。因此,通过发出合并请求并将其存储在用于目标文件的合并日志中,主机将这些任务的责任传送到能够访问IE文件的主机。例如,合并请求生成器41B可以在合并日志MLB中存储合并请求,用以在步骤S25B处由主机HB的合并请求处理器43B进行处理。类似地,主机HB的合并请求生成器41B可以在合并日志MLA中存储合并请求,用以在步骤S25A处由主机HA的合并请求处理器43A进行处理。
在另一实施例中,当主机能够访问索引条目指向的文件时,主机完成匹配确认。因此,只有当处理写记录的主机无法访问索引条目引用的非池文件时,才发出合并请求。
处理合并请求
如图7所示,步骤S25A和S25B包括若干子步骤,这里称为“步骤”。在步骤S34B处,主机HB访问用于主机HB可访问的文件的合并请求。如图4所示,合并请求规定:1)IE文件指针,以及2)池文件FP中的RE块指针。RE块指针指向WR存储块。问题是IE数据块是否匹配WR/RE数据块。在步骤S35B处,IE和RE块的内容例如通过生成并比较它们的哈希值而被比较。
如果比较确认IE数据块和RE数据块不相同,那么在步骤S36B处主机HB丢弃合并请求而不执行任何去复制。IE块指针和IE存储块响应于合并请求保持不变。WR存储块仍旧由池文件FP和WR文件“共享”。在另一实施例中,在处理产生合并请求的写记录之前,哈希值索引和池文件回到他们各自的状态。
如果S35B处的比较确认匹配,那么在步骤S37B处使排他文件中的IE块指针与池文件中的COW类型块指针一致。在步骤S38B处,块计数被调节。曾由一个指针指向的IE存储块现在由零指向,因此其计数从“1”递减至“0”。池文件中所指向的IE存储块将其计数从“2”递增至“3”。
例如,如果在处理合并请求的过程中,主机HB确定存储块B5的内容仍旧对应于索引条目哈希值,那么指针PB1将从指向存储块B2改变为指向存储块54,如图1的去复制操作29所示。这完成了方法ME1中关于处理匹配唯一哈希值索引条目的写记录的部分。类似的方法步骤S33A-S38A由主机HA实施。
处理指向池文件的匹配
当写记录匹配唯一索引条目的时候,索引条目被改变,使得其指向池文件而非其原始文件。在图示的实施例中,索引条目在其它方向上没有改变。在另一实施例中,仅仅一个其它块指针和池文件指向的存储块返回具有唯一索引条目,并且以和原始唯一条目相同的方式被处理。
如果在步骤S27A处,匹配的索引条目最初指向池文件FP,那么在步骤S39A处从WR存储块的内容生成新哈希值,如图8所示。如果哈希值不匹配,那么在步骤S40A处写记录被丢弃。在这种情形中,哈希值索引、块指针和块计数均保持不变。
如果在步骤S39A处,匹配被确认(未过时),那么在步骤S41A处主机HA访问池文件条目中的IE块指针。在步骤S42A处WR块指针被更新以匹配池文件FP中的IE块指针。在步骤S43A处,IE存储块计数被递增。在步骤S44A处,WR存储块的计数被递减至零,并且块被释放。主机HB可以实现类似的步骤S39B-S44B,用以处理共享条目的匹配。
清理
清理步骤S26A和S26B在图9中以流程图的方式示出。当空闲存储块首先被写入的时候,其计数从“0”递增至“1”。当块变为共享的时候,其计数递增两次:一次是因为池文件中的块指针,一次是因为其被相同或不同特性文件中的第二块指针指向。因此,计数从“1”跳到“3”。
每次尝试重写共享块都将产生COW操作,使得指向原始存储块的指针减少一个;在这种情形中,计数减1。因此,COW操作可以将计数从“3”降至“2”;对块的下一次COW操作可以将计数从“2”降至“1”,这对应于现在仅仅池文件指向存储块的事实。由于没有其它文件指向该块,因此通过将其计数器减至“0”可以释放该块,并且可以清理索引和池文件中对应的条目。
此外,未处理的写日志可以指示唯一存储块已被重写。如果在写日志被处理前另一写日志匹配用于唯一存储块的哈希值,那么方法ME1将确定不存在匹配。通过简单地清理文件指针匹配未处理写记录的文件指针的唯一索引条目,可以避免此种情况。
相应地,清理方法S26A包括在步骤S45A处主机HA扫描哈希值索引45。在步骤S46A处,清理带有匹配那些未处理写记录的文件指针的哈希值索引条目。在步骤S47A处,与具有计数“1”的共享块相对应的哈希值索引条目连同所引用的池文件条目一起被清理。并且在该步骤中,通过将所引用存储块的计数设为“0”来释放所引用的存储块。主机HB类似地执行步骤S45B-S47B。
混合文件块尺寸支持
在文件***中,数据是以一些固定尺寸块的形式被管理的。例如,一些通用文件***使用4千字节的块而其它一些文件***(例如VMwareTMVMFS)使用更大的块,例如1兆字节的块。管理更大尺寸块形式的数据简化了许多读和写操作并且减少了跟踪所存储数据所需的元数据的量。然而,当使用较小块时去复制操作更趋有效,因为找到两个匹配数据块的可能性更大。
图10A图示了具有指向大数据块151的指针的文件Inode节点150。Inode节点150可以包括多个指针,每个指针指向不同的大数据块。Inode节点150是用来存储文件元数据的数据结构。在一个实施例中,如图10B所示,片段指针块152被引入Inode节点150和大数据块151之间。片段指针块152包括指向小文件块的指针,这些小文件块加总后等于大文件块的尺寸。即,大文件块逻辑上被划分成多个较小的块。指向这些较小块中每一个的指针153随后被存储在片段指针块152中。
在一个实施例中,为了让文件***知道这个块分段,在Inode节点150中存储标志来指示Inode节点150中的指针现在指向片段指针块。在一个实施例中,该标志存储在指向片段指针块的指针中。在该实施例中,如果标志被设为特定状态(例如,是或否,或者0或1等),那么文件***调节其自身以管理多个较小块。在一个示例中,考虑其Inode节点包括指向1兆字节文件块的指针的直接文件。为了对文件中偏移为1032千字节处的4千字节块独立寻址,该文件的第二个1兆字节块被划分成256个4千字节块。片段指针块被分配以存储指向这256个小块的指针,并且指向原始1兆字节块的指针被指向片段指针块的指针替代。
这里,“哈希值”索引是将哈希值与数据块的(当前或过去)存储块位置(直接或间接)相关联的文件或其它数据结构,其中所述数据块用来生成或以其它方式对应于哈希值。这里,“共享块文件”或“池文件”(在其它地方也被称为“竞技场(arena)”)是带有指针的文件,其中指针(直接或间接)指向已知或已经由不同文件和/或同一文件中的不同位置所共享的存储块。在图示的实施例中,哈希值索引条目通过直接指向具有关联元数据块指针的池文件位置,可以间接指向共享存储块,其中关联元数据块指针直接指向共享存储块。
在另一实施例中,具有重定向文件指针的每个文件具有对应的隐藏文件,该隐藏文件指示文件的哪部分正被共享,并且指向特殊的类池文件。所有读取和写入都经过知道这些隐藏文件的过滤层。基础文件***以及这个过滤层的组合在功能上等同于图示出的支持指针改写和COW的文件***。实际上,过滤***用做这样的文件***,该文件***使用另一文件***作为其存储介质而不是直接使用盘。本发明提供了对图示实施例的这些以及其它变化和修改。本发明的范围由权利要求限定。
在一个或多个实施例中,提供了用于执行上述方法与***的程序指令。程序指令存储在计算机可读介质中。
考虑到上面的实施例,应当理解本发明的一个或多个实施例可以采用计算机实现的包含存储在计算机***中的数据在内的多种操作。这些操作需要对物理量的物理处理。通常,尽管不是必须的,这些物理量采用能够被存储、传送、合并、比较以及以其它方式处理的电信号或磁信号的形式。此外,所执行的处理通常指的是诸如产生、标识、确定或比较之类的术语。
这里描述的构成本发明一个或多个实施例一部分的任何操作都是有用的机器操作。本发明的一个或多个实施例还涉及用于执行这些操作的设备或装置。该装置可以是为所需目的特别构造的,例如上面讨论的载波网络,或者该装置可以是由存储在计算机上的计算机程序有选择地启动或配置的通用计算机。特别地,多种通用机器可以结合根据这里的教导编写的计算机程序一起使用,或者构造专门的装置来执行需要的操作可能是更便利的。
可以使用诸如Flash、JAVATM、C++、C、C#、Visual Basic、JavaScriptTM、PHP、XML、HTML等编程语言或者编程语言的组合来实现这里描述的编程模块和软件子***。可以使用诸如SOAP/HTTP的通用协议来实现编程模块之间的接口。如本领域普通技术人员所知晓的,上面以及这里其它地方描述的组件和功能可以在任何桌面操作***上实现,在虚拟化或非虚拟化环境中执行,使用适合桌面软件开发的编程语言,其中所述桌面操作***例如是不同版本的Microsoft WindowsTM、Apple MacTM、Unix/X-WindowsTM、LinuxTM等。
可以在计算机可读介质上存储编程模块和辅助软件组件(包括配置文件)以及提供用于在电信网络上为用户排除故障的装置和方法和这里描述的相关的功能所需的安装文件。可以使用任何计算机介质来存储编程模块和辅助软件组件,所述计算机介质例如是闪存、CD-ROM盘、光盘、软盘、硬驱动、共享驱动、以及适于从连接的计算机提供下载的存储装置。本领域普通技术人员将知晓,任何存储介质都可以用来存储这些软件组件,只要该存储介质可以被计算机***读取即可。
本发明的一个或多个实施例可以结合包括手持设备、微处理器***、基于微处理器或可编程的消费电子设备、微机、大型机等在内的其他计算机***配置一起实施。本发明还可以在分布式计算环境中实施,在分布式计算环境中,由通过网络互连的远程处理设备执行任务。
本发明的一个或多个实施例还可以实现为计算机可读介质上的计算机可读代码。计算机可读介质是能够存储数据的任何数据存储设备,该设备之后可以被计算机***读取。计算机可读介质的示例包括硬驱动、网络附接存储(NAS)、只读存储器、随机存取存储器、CD-ROM、CD-R或CD-RW、DVD、闪存、磁带、以及其它光和非光数据存储设备。计算机可读介质还可以分布在网络连接的计算机***之上,从而计算机可读代码以分布的方式被存储并被执行。
尽管已经描述了本发明的一个或多个实施例,但是本领域普通技术人员在阅读说明书并研究附图之后将意识到,可以实现对本发明的多种修改、添加、变换和等同更替。因此本发明的实施例意在包括落在权利要求限定的本发明真实精神和范围之内的所有这些修改、添加、变换和等同物。因此,本发明的范围由权利要求限定,其包括本发明的所有等同物覆盖的范围。

Claims (19)

1.一种数据中心,包括多个计算机主机以及所述主机外部的存储***,所述存储***包括用于存储有形编码数据块的存储块,所述主机中的每个包括去复制文件***,所述去复制文件***用于标识出相应存储块中存储的相同数据块,并将所述相同数据块合并成所述存储块中的一个,从而由所述主机中的第一主机排他访问的第一文件和由所述主机中的第二主机排他访问的第二文件同时指向所述存储块中的同一个。
2.如权利要求1所述的数据中心,其中所述存储***具有在其上有形编码的共享块文件,所述共享块文件包括指向所述存储***的存储块的元数据指针,其中所述存储***的存储块被所述文件的不只一个元数据块指针所指向,所述主机的文件管理器合作更新所述共享块文件。
3.如权利要求2所述的数据中心,其中所述文件管理器通过依次获得对所述共享块文件的排他访问权来更新所述共享块文件。
4.如权利要求3所述的数据中心,其中所述存储***具有在其上有形编码的哈希值索引,所述哈希值索引包括将哈希值分配给文件和文件偏移的哈希值索引条目,所述哈希值索引条目中的一些通过所述共享块文件将所述数据块的哈希值与包含那些数据块的存储块相关联,所述哈希值索引条目中的其它条目通过所述共享块文件之外的文件将所述数据块的哈希值与包含那些数据块的存储块相关联。
5.如权利要求1所述的数据中心,进一步包括在所述存储***中有形编码的计数,所述计数中的每个代表指向所述存储块中的相应一个的多个元数据指针,所述文件管理器在写操作和合并操作期间合作更新所述计数。
6.一种包括计算机可读存储介质的制品,所述计算机可读存储介质编码有计算机可执行指令的文件***,所述文件***在宿主计算机***上运行时连接到存储***管理文件,包括在所述存储***中编码的共享块文件,所述文件具有有形编码的指向包含有形编码数据块的存储块的元数据指针,所述共享块文件具有指向由多个所述元数据指针指向的块的元数据指针,所述文件***包括用于更新哈希值索引的写日志处理器,所述哈希值索引具有通过所述共享块文件间接指向共享存储块的共享条目集,并且具有通过所述共享块文件之外的所述文件间接指向非共享存储块的非共享条目集,所述哈希值索引被有形编码在所述存储***上。
7.如权利要求6所述的制品,其中所述文件***包括合并请求处理器,并且所述写日志处理器包括合并请求生成器:
所述合并请求生成器,在执行时,创建与所述文件***不能访问的编码于所述存储***上的文件相关联的第一合并请求;以及
所述合并请求处理器,在执行时,通过确定数据块是否相同以及如果确定所述数据块是相同的则将他们合并成单个存储块,来处理与所述文件***能够访问的文件相关联的第二合并请求。
8.如权利要求7所述的制品,其中所述合并请求处理器,在执行时,通过比较所述文件管理器不能访问的文件所指向的存储块的块内容的哈希值和所述文件管理器能够访问的文件所指向的存储块的第二块内容的哈希值,来处理所述第二合并请求。
9.如权利要求6所述的制品,进一步包括创建写操作的写日志事件的写事件记录器,所述写事件记录器将它们存储在所述存储***上,所述写操作中的每一个包括将数据块写入存储块,所述写日志事件中的每一个指向相应的存储块并且包含相应数据块的哈希值。
10.如权利要求9所述的制品,其中所述索引合并器,在更新所述合并索引时,尝试将存储在写日志事件中的哈希值与所述索引中预先表示的哈希值相匹配。
11.一种方法,包括:
第一文件***在第一宿主计算机***上执行,所述第一文件***通过以下操作来管理向存储***上的第一文件的第一写操作:将第一数据块写入所述存储***的第一存储块并使所述第一文件的第一元数据指针指向所述第一存储块;
第二文件***在第二宿主计算机***上执行,所述第二文件***通过以下操作来管理向存储***上的第二文件的第二写操作:将第二内容写入所述存储***的第二块并使所述第二文件的第二元数据指针指向所述第二块;并且
所述第二文件管理器确定所述第二内容是否与所述第一内容相同;以及
如果所述第二内容与所述第一内容相同,那么所述第二文件管理器使得所述第二元数据指针指向所述第一块。
12.如权利要求11所述的方法,其中所述第二文件***至少部分通过比较所述第一数据块的第一哈希值和所述第二数据块的第二哈希值,来确定所述第二数据块是否与所述第一数据块相同。
13.如权利要求11所述的方法,其中所述第二文件管理器在所述第二写操作期间生成所述第二哈希值。
14.如权利要求11所述的方法,其中:
所述第一文件管理器生成指向所述第一和第二块的合并请求,并且将所述合并请求写入所述存储***;以及
所述第二文件管理器从所述存储***读取所述合并请求并且处理所述合并请求,所述处理包括在生成了所述合并请求之后生成所述第二哈希值。
15.如权利要求11所述的方法,其中所述确定步骤包括逐位比较所述块。
16.一种用于对文件***中的第一存储块进行去复制操作的方法,所述方法包括:
确定第二存储块是否包含与所述文件***中的所述第一存储块相同的内容,所述第二存储块的尺寸与所述第一存储块的尺寸相同,其中指向所述第一存储块的指针被存储在与所述第一存储块相关联的文件的Inode节点中;
将所述Inode节点中的所述第一存储块的元数据改变成包括写时拷贝机制;以及
清理所述第二存储块并将指向所述第二存储块的指针改变为指向所述第一存储块,
其中,如果所述第一存储块的尺寸大于或等于第一块尺寸,那么所述第一存储块和所述第二存储块被逻辑细分为多个块,所述多个块每个具有第二块尺寸,所述第一块尺寸大于所述第二块尺寸。
17.如权利要求16所述的方法,其中所述第一块尺寸为1兆字节,并且所述第二块尺寸为4千字节。
18.如权利要求16所述的方法,其中对所述第一存储块的逻辑细分包括在指针块中存储指向每个细分块的指针以及用指向所述指针块的指针代替所述Inode节点中指向所述第一存储块的指针。
19.如权利要求18所述的方法,进一步包括在Inode节点中设置标志以指示所述Inode节点包含指向所述指针块的指针。
CN2009101574553A 2008-09-11 2009-07-30 计算机存储去复制操作 Active CN101710323B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US9625808P 2008-09-11 2008-09-11
US61/096,258 2008-09-11
US12/356,921 2009-01-21
US12/356,921 US10642794B2 (en) 2008-09-11 2009-01-21 Computer storage deduplication

Publications (2)

Publication Number Publication Date
CN101710323A true CN101710323A (zh) 2010-05-19
CN101710323B CN101710323B (zh) 2013-06-19

Family

ID=42038702

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009101574553A Active CN101710323B (zh) 2008-09-11 2009-07-30 计算机存储去复制操作

Country Status (2)

Country Link
US (1) US10642794B2 (zh)
CN (1) CN101710323B (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102567218A (zh) * 2010-12-17 2012-07-11 微软公司 用于数据去重复块存储的垃圾收集和热点释放
CN103377137A (zh) * 2012-04-30 2013-10-30 国际商业机器公司 使用增强的频繁块检测进行存储去重的方法和***
CN103415842A (zh) * 2010-11-16 2013-11-27 阿克蒂菲奥股份有限公司 用于数据管理虚拟化的***和方法
CN103544251A (zh) * 2013-10-14 2014-01-29 北京合辉信息技术有限公司 多源图片处理方法及其装置
CN103886070A (zh) * 2014-03-21 2014-06-25 华为技术有限公司 文件***的数据回收方法及装置
US8990171B2 (en) 2011-09-01 2015-03-24 Microsoft Corporation Optimization of a partially deduplicated file
CN104994135A (zh) * 2015-05-25 2015-10-21 华为技术有限公司 存储***中融合san及nas存储架构的方法及装置
CN105843905A (zh) * 2010-11-22 2016-08-10 日立数据***工程英国有限公司 用于管理文件***中的文件***对象的设备和方法
US9659060B2 (en) 2012-04-30 2017-05-23 International Business Machines Corporation Enhancing performance-cost ratio of a primary storage adaptive data reduction system
CN106844143A (zh) * 2016-12-27 2017-06-13 微梦创科网络科技(中国)有限公司 一种日志去重处理方法及装置
WO2019082016A1 (en) * 2017-10-25 2019-05-02 International Business Machines Corporation IMPROVED DEDUPLICATION PERFORMANCE BASED ON DISPERSED LOCATIONS
US10394757B2 (en) 2010-11-18 2019-08-27 Microsoft Technology Licensing, Llc Scalable chunk store for data deduplication
CN110196685A (zh) * 2018-02-26 2019-09-03 爱思开海力士有限公司 存储器***及其操作方法

Families Citing this family (107)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9235577B2 (en) * 2008-09-04 2016-01-12 Vmware, Inc. File transfer using standard blocks and standard-block identifiers
US20100082675A1 (en) * 2008-09-30 2010-04-01 Hitachi, Ltd Method and apparatus for enabling wide area global name space
US8495032B2 (en) * 2008-10-01 2013-07-23 International Business Machines Corporation Policy based sharing of redundant data across storage pools in a deduplicating system
US8131687B2 (en) * 2008-11-13 2012-03-06 International Business Machines Corporation File system with internal deduplication and management of data blocks
US10496670B1 (en) 2009-01-21 2019-12-03 Vmware, Inc. Computer storage deduplication
US8578120B2 (en) * 2009-05-22 2013-11-05 Commvault Systems, Inc. Block-level single instancing
US8171063B1 (en) * 2009-06-30 2012-05-01 Symantec Corporation System and method for efficiently locating and processing data on a deduplication storage system
US8204867B2 (en) * 2009-07-29 2012-06-19 International Business Machines Corporation Apparatus, system, and method for enhanced block-level deduplication
US8392437B2 (en) * 2010-03-15 2013-03-05 Symantec Corporation Method and system for providing deduplication information to applications
US9075532B1 (en) 2010-04-23 2015-07-07 Symantec Corporation Self-referential deduplication
US9053032B2 (en) 2010-05-05 2015-06-09 Microsoft Technology Licensing, Llc Fast and low-RAM-footprint indexing for data deduplication
US20110276744A1 (en) 2010-05-05 2011-11-10 Microsoft Corporation Flash memory cache including for use with persistent key-value store
US8935487B2 (en) 2010-05-05 2015-01-13 Microsoft Corporation Fast and low-RAM-footprint indexing for data deduplication
US9063656B2 (en) * 2010-06-24 2015-06-23 Dell Gloval B.V.—Singapore Branch System and methods for digest-based storage
US8392376B2 (en) * 2010-09-03 2013-03-05 Symantec Corporation System and method for scalable reference management in a deduplication based storage system
US8402004B2 (en) 2010-11-16 2013-03-19 Actifio, Inc. System and method for creating deduplicated copies of data by tracking temporal relationships among copies and by ingesting difference data
US8788769B2 (en) 2010-11-16 2014-07-22 Actifio, Inc. System and method for performing backup or restore operations utilizing difference information and timeline state information
US8396905B2 (en) 2010-11-16 2013-03-12 Actifio, Inc. System and method for improved garbage collection operations in a deduplicated store by tracking temporal relationships among copies
US8843489B2 (en) 2010-11-16 2014-09-23 Actifio, Inc. System and method for managing deduplicated copies of data using temporal relationships among copies
US9858155B2 (en) 2010-11-16 2018-01-02 Actifio, Inc. System and method for managing data with service level agreements that may specify non-uniform copying of data
US8417674B2 (en) 2010-11-16 2013-04-09 Actifio, Inc. System and method for creating deduplicated copies of data by sending difference data between near-neighbor temporal states
US8299944B2 (en) 2010-11-16 2012-10-30 Actifio, Inc. System and method for creating deduplicated copies of data storing non-lossy encodings of data directly in a content addressable store
US8904126B2 (en) 2010-11-16 2014-12-02 Actifio, Inc. System and method for performing a plurality of prescribed data management functions in a manner that reduces redundant access operations to primary storage
WO2012070094A1 (en) * 2010-11-26 2012-05-31 Hitachi, Ltd. Computer system
US9122641B1 (en) * 2010-11-30 2015-09-01 Symantec Corporation On-premise data deduplication for cloud environments
US9208472B2 (en) 2010-12-11 2015-12-08 Microsoft Technology Licensing, Llc Addition of plan-generation models and expertise by crowd contributors
US9020900B2 (en) * 2010-12-14 2015-04-28 Commvault Systems, Inc. Distributed deduplicated storage system
US20120158674A1 (en) * 2010-12-20 2012-06-21 Mark David Lillibridge Indexing for deduplication
US9110936B2 (en) 2010-12-28 2015-08-18 Microsoft Technology Licensing, Llc Using index partitioning and reconciliation for data deduplication
US8849768B1 (en) * 2011-03-08 2014-09-30 Symantec Corporation Systems and methods for classifying files as candidates for deduplication
US9886446B1 (en) * 2011-03-15 2018-02-06 Veritas Technologies Llc Inverted index for text searching within deduplication backup system
US8935506B1 (en) * 2011-03-31 2015-01-13 The Research Foundation For The State University Of New York MemX: virtualization of cluster-wide memory
US8868839B1 (en) * 2011-04-07 2014-10-21 Symantec Corporation Systems and methods for caching data blocks associated with frequently accessed files
US9003138B1 (en) * 2011-06-30 2015-04-07 Emc Corporation Read signature command
US8521705B2 (en) 2011-07-11 2013-08-27 Dell Products L.P. Accelerated deduplication
US8832035B2 (en) * 2011-08-30 2014-09-09 Netapp, Inc. System and method for retaining deduplication in a storage object after a clone split operation
US8620886B1 (en) * 2011-09-20 2013-12-31 Netapp Inc. Host side deduplication
US8781800B2 (en) 2011-11-01 2014-07-15 International Business Machines Corporation Data de-duplication in computer storage systems
US8776236B2 (en) * 2012-04-11 2014-07-08 Northrop Grumman Systems Corporation System and method for providing storage device-based advanced persistent threat (APT) protection
US8954683B2 (en) 2012-08-16 2015-02-10 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Translation table and method for compressed data
US9465808B1 (en) 2012-12-15 2016-10-11 Veritas Technologies Llc Deduplication featuring variable-size duplicate data detection and fixed-size data segment sharing
US9678971B2 (en) * 2013-01-10 2017-06-13 International Business Machines Corporation Packing deduplicated data in a self-contained deduplicated repository
WO2014174380A2 (en) * 2013-04-22 2014-10-30 Bacula Systems Sa Creating a universally deduplicatable archive volume
EP2819012B1 (en) * 2013-06-24 2020-11-11 Alcatel Lucent Automated compression of data
US10545918B2 (en) 2013-11-22 2020-01-28 Orbis Technologies, Inc. Systems and computer implemented methods for semantic data compression
US10877945B1 (en) * 2013-12-20 2020-12-29 EMC IP Holding Company LLC Optimized block storage for change block tracking systems
CN106104480A (zh) * 2014-04-03 2016-11-09 斯特拉托斯卡莱有限公司 使用相似性保留签名的集群范围的内存管理
US20150312366A1 (en) * 2014-04-24 2015-10-29 Strato Scale Ltd. Unified caching of storage blocks and memory pages in a compute-node cluster
US10031691B2 (en) * 2014-09-25 2018-07-24 International Business Machines Corporation Data integrity in deduplicated block storage environments
US9390028B2 (en) 2014-10-19 2016-07-12 Strato Scale Ltd. Coordination between memory-saving mechanisms in computers that run virtual machines
US9912748B2 (en) 2015-01-12 2018-03-06 Strato Scale Ltd. Synchronization of snapshots in a distributed storage system
EP3126987A4 (en) 2015-02-26 2017-11-22 Strato Scale Ltd. Using access-frequency hierarchy for selection of eviction destination
US9696919B1 (en) * 2015-03-31 2017-07-04 EMC IP Holding Company LLC Source/copy reference tracking with block pointer sets
US20160314155A1 (en) * 2015-04-22 2016-10-27 Palantir Technologies Inc. Data integration pipeline
US10762069B2 (en) * 2015-09-30 2020-09-01 Pure Storage, Inc. Mechanism for a system where data and metadata are located closely together
US10761758B2 (en) * 2015-12-21 2020-09-01 Quantum Corporation Data aware deduplication object storage (DADOS)
US11182344B2 (en) * 2016-03-14 2021-11-23 Vmware, Inc. File granular data de-duplication effectiveness metric for data de-duplication
CN105893272B (zh) * 2016-03-23 2019-03-15 北京联想核芯科技有限公司 一种数据处理方法、处理设备及存储***
US10637772B2 (en) * 2016-05-28 2020-04-28 Guardtime Sa Verification mechanism for network service chain paths
US10318161B2 (en) 2016-06-20 2019-06-11 Red Hat Israel, Ltd. Virtual machine initiated memory deduplication
US10452637B1 (en) * 2016-08-31 2019-10-22 Amazon Technologies, Inc. Migration of mutable data sets between data stores
US10146466B1 (en) * 2017-04-27 2018-12-04 EMC IP Holding Company LLC Merging mapping metadata to promote reference counting efficiency
US10359966B2 (en) 2017-05-11 2019-07-23 Vmware, Inc. Capacity based load balancing in distributed storage systems with deduplication and compression functionalities
US10509708B2 (en) 2017-06-13 2019-12-17 Vmware, Inc. Code block resynchronization for distributed multi-mirror erasure coding system
US10671754B2 (en) * 2017-10-20 2020-06-02 International Business Machines Corporation Detection of sensitive personal information in a storage device
US20190163370A1 (en) * 2017-11-28 2019-05-30 International Business Machines Corporation Data replication based on data-driven recovery objectives
US10740202B2 (en) * 2018-02-07 2020-08-11 Excelero Storage Ltd. System and method for efficient comparison of mirrored storage devices
US11947413B2 (en) * 2018-08-25 2024-04-02 International Business Machines Corporation Dynamic system log preprocessing
US11113270B2 (en) 2019-01-24 2021-09-07 EMC IP Holding Company LLC Storing a non-ordered associative array of pairs using an append-only storage medium
CN112099725A (zh) * 2019-06-17 2020-12-18 华为技术有限公司 一种数据处理方法、装置及计算机可读存储介质
EP3993273A4 (en) * 2019-07-22 2022-07-27 Huawei Technologies Co., Ltd. METHOD AND DEVICE FOR DATA COMPRESSION IN A STORAGE SYSTEM, DEVICE AND READABLE STORAGE MEDIUM
CN114072759A (zh) * 2019-07-26 2022-02-18 华为技术有限公司 存储***中数据处理方法、装置及计算机存储可读存储介质
US10921987B1 (en) * 2019-07-31 2021-02-16 EMC IP Holding Company LLC Deduplication of large block aggregates using representative block digests
US11775484B2 (en) 2019-08-27 2023-10-03 Vmware, Inc. Fast algorithm to find file system difference for deduplication
US11461229B2 (en) * 2019-08-27 2022-10-04 Vmware, Inc. Efficient garbage collection of variable size chunking deduplication
US12045204B2 (en) 2019-08-27 2024-07-23 Vmware, Inc. Small in-memory cache to speed up chunk store operation for deduplication
CN112783417A (zh) * 2019-11-01 2021-05-11 华为技术有限公司 数据缩减的方法、装置、计算设备和存储介质
US11704035B2 (en) 2020-03-30 2023-07-18 Pure Storage, Inc. Unified storage on block containers
US11599546B2 (en) 2020-05-01 2023-03-07 EMC IP Holding Company LLC Stream browser for data streams
US11604759B2 (en) 2020-05-01 2023-03-14 EMC IP Holding Company LLC Retention management for data streams
KR102345517B1 (ko) * 2020-05-06 2021-12-30 인하대학교 산학협력단 엣지 컴퓨팅을 위해 데이터중복제거 기술이 적용된 casedb(키 벨류 저장장치)
DE112020007199T5 (de) * 2020-05-15 2023-04-27 Mitsubishi Electric Corporation Vorrichtungssteuerung und Vorrichtungssteuerungssystem
WO2022000405A1 (en) * 2020-07-02 2022-01-06 Intel Corporation Methods and apparatus to deduplicate duplicate memory in a cloud computing environment
US11599420B2 (en) 2020-07-30 2023-03-07 EMC IP Holding Company LLC Ordered event stream event retention
US11481132B2 (en) * 2020-09-18 2022-10-25 Hewlett Packard Enterprise Development Lp Removing stale hints from a deduplication data store of a storage system
US11513871B2 (en) 2020-09-30 2022-11-29 EMC IP Holding Company LLC Employing triggered retention in an ordered event stream storage system
US11755555B2 (en) 2020-10-06 2023-09-12 EMC IP Holding Company LLC Storing an ordered associative array of pairs using an append-only storage medium
US11599293B2 (en) 2020-10-14 2023-03-07 EMC IP Holding Company LLC Consistent data stream replication and reconstruction in a streaming data storage platform
US11372579B2 (en) * 2020-10-22 2022-06-28 EMC IP Holding Company LLC Techniques for generating data sets with specified compression and deduplication ratios
US11698744B2 (en) * 2020-10-26 2023-07-11 EMC IP Holding Company LLC Data deduplication (dedup) management
JP2022099948A (ja) * 2020-12-23 2022-07-05 株式会社日立製作所 ストレージシステムおよびストレージシステムにおけるデータ量削減方法
US11561707B2 (en) * 2021-01-08 2023-01-24 Western Digital Technologies, Inc. Allocating data storage based on aggregate duplicate performance
US12008254B2 (en) 2021-01-08 2024-06-11 Western Digital Technologies, Inc. Deduplication of storage device encoded data
US11816065B2 (en) 2021-01-11 2023-11-14 EMC IP Holding Company LLC Event level retention management for data streams
US20220236870A1 (en) * 2021-01-26 2022-07-28 EMC IP Holding Company LLC Method and system for compression in block-based storage systems
US11740828B2 (en) * 2021-04-06 2023-08-29 EMC IP Holding Company LLC Data expiration for stream storages
US11740821B2 (en) * 2021-04-12 2023-08-29 EMC IP Holding Company LLC Cost-aware garbage collection for cloud storage
US20220326865A1 (en) * 2021-04-12 2022-10-13 EMC IP Holding Company LLC QUALITY OF SERVICE (QoS) BASED DATA DEDUPLICATION
US12001881B2 (en) 2021-04-12 2024-06-04 EMC IP Holding Company LLC Event prioritization for an ordered event stream
US11954537B2 (en) 2021-04-22 2024-04-09 EMC IP Holding Company LLC Information-unit based scaling of an ordered event stream
US11681460B2 (en) 2021-06-03 2023-06-20 EMC IP Holding Company LLC Scaling of an ordered event stream based on a writer group characteristic
US11735282B2 (en) 2021-07-22 2023-08-22 EMC IP Holding Company LLC Test data verification for an ordered event stream storage system
US11847334B2 (en) * 2021-09-23 2023-12-19 EMC IP Holding Company LLC Method or apparatus to integrate physical file verification and garbage collection (GC) by tracking special segments
US11971850B2 (en) 2021-10-15 2024-04-30 EMC IP Holding Company LLC Demoted data retention via a tiered ordered event stream data storage system
US20230195351A1 (en) * 2021-12-17 2023-06-22 Samsung Electronics Co., Ltd. Automatic deletion in a persistent storage device
US20230221864A1 (en) * 2022-01-10 2023-07-13 Vmware, Inc. Efficient inline block-level deduplication using a bloom filter and a small in-memory deduplication hash table
CN114943021B (zh) * 2022-07-20 2022-11-08 之江实验室 一种tb级增量数据筛选方法和装置

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08328880A (ja) * 1995-05-31 1996-12-13 Mitsubishi Electric Corp 複数のアプリケーションプログラムを同時に実行できるオペレーティングシステムにおける計算機運転管理システム
US6075938A (en) 1997-06-10 2000-06-13 The Board Of Trustees Of The Leland Stanford Junior University Virtual machine monitors for scalable multiprocessors
US6636242B2 (en) 1999-08-31 2003-10-21 Accenture Llp View configurer in a presentation services patterns environment
US6996536B1 (en) * 2000-09-01 2006-02-07 International Business Machines Corporation System and method for visually analyzing clickstream data with a parallel coordinate system
US6636878B1 (en) * 2001-01-16 2003-10-21 Sun Microsystems, Inc. Mechanism for replicating and maintaining files in a spaced-efficient manner
US6789156B1 (en) 2001-05-22 2004-09-07 Vmware, Inc. Content-based, transparent sharing of memory units
US7310644B2 (en) * 2001-06-06 2007-12-18 Microsoft Corporation Locating potentially identical objects across multiple computers
US7111206B1 (en) * 2001-09-19 2006-09-19 Juniper Networks, Inc. Diagnosis of network fault conditions
US7092956B2 (en) * 2001-11-02 2006-08-15 General Electric Capital Corporation Deduplication system
US6934880B2 (en) * 2001-11-21 2005-08-23 Exanet, Inc. Functional fail-over apparatus and method of operation thereof
US7210004B2 (en) 2003-06-26 2007-04-24 Copan Systems Method and system for background processing of data in a storage system
US7287131B1 (en) * 2003-03-21 2007-10-23 Sun Microsystems, Inc. Method and apparatus for implementing a fully dynamic lock-free hash table
US20050033933A1 (en) * 2003-08-04 2005-02-10 Hetrick William A. Systems and methods for modifying disk drive firmware in a raid storage system
US20050083862A1 (en) 2003-10-20 2005-04-21 Kongalath George P. Data migration method, system and node
US7373451B2 (en) 2003-12-08 2008-05-13 The Board Of Trustees Of The Leland Stanford Junior University Cache-based system management architecture with virtual appliances, network repositories, and virtual appliance transceivers
US7537153B2 (en) * 2004-05-03 2009-05-26 De La Rue International, Limited Method and computer program product for electronically managing payment media
US7600125B1 (en) 2004-12-23 2009-10-06 Symantec Corporation Hash-based data block processing with intermittently-connected systems
US8140678B2 (en) * 2004-12-28 2012-03-20 Sap Ag Failover protection from a failed worker node in a shared memory system
US8200700B2 (en) 2005-02-01 2012-06-12 Newsilike Media Group, Inc Systems and methods for use of structured and unstructured distributed data
JP4232767B2 (ja) * 2005-03-14 2009-03-04 セイコーエプソン株式会社 ソフトウェア認証システムおよびソフトウェア認証プログラム、並びにソフトウェア認証方法
US7428524B2 (en) 2005-08-05 2008-09-23 Google Inc. Large scale data storage in sparse tables
US20070050423A1 (en) 2005-08-30 2007-03-01 Scentric, Inc. Intelligent general duplicate management system
JP4927408B2 (ja) 2006-01-25 2012-05-09 株式会社日立製作所 記憶システム及びそのデータ復元方法
US7734603B1 (en) * 2006-01-26 2010-06-08 Netapp, Inc. Content addressable storage array element
CN101083532A (zh) * 2006-05-31 2007-12-05 华为技术有限公司 一种数据加载的实现方法及***
US7921077B2 (en) * 2006-06-29 2011-04-05 Netapp, Inc. System and method for managing data deduplication of storage systems utilizing persistent consistency point images
US8412682B2 (en) * 2006-06-29 2013-04-02 Netapp, Inc. System and method for retrieving and using block fingerprints for data deduplication
US7720892B1 (en) * 2006-06-30 2010-05-18 Emc Corporation Bulk updates and tape synchronization
US20080059726A1 (en) 2006-08-31 2008-03-06 Carlos Rozas Dynamic measurement of an operating system in a virtualized system
JP2008077144A (ja) * 2006-09-19 2008-04-03 Ricoh Co Ltd 仮想化システム、メモリ管理方法及び制御プログラム
US7840537B2 (en) * 2006-12-22 2010-11-23 Commvault Systems, Inc. System and method for storing redundant information
EP1962192A1 (en) 2007-02-21 2008-08-27 Deutsche Telekom AG Method and system for the transparent migration of virtual machine storage
US7792941B2 (en) 2007-03-21 2010-09-07 International Business Machines Corporation Method and apparatus to determine hardware and software compatibility related to mobility of virtual servers
US8315984B2 (en) * 2007-05-22 2012-11-20 Netapp, Inc. System and method for on-the-fly elimination of redundant data
US9002800B1 (en) 2007-06-30 2015-04-07 Emc Corporation Archive and backup virtualization
US7669023B2 (en) * 2007-07-10 2010-02-23 Hitachi, Ltd. Power efficient storage with data de-duplication
US8209506B2 (en) * 2007-09-05 2012-06-26 Emc Corporation De-duplication in a virtualized storage environment
US7962452B2 (en) * 2007-12-28 2011-06-14 International Business Machines Corporation Data deduplication by separating data from meta data
US8190835B1 (en) 2007-12-31 2012-05-29 Emc Corporation Global de-duplication in shared architectures
US8751561B2 (en) * 2008-04-08 2014-06-10 Roderick B. Wideman Methods and systems for improved throughput performance in a distributed data de-duplication environment
US8074047B2 (en) 2008-05-16 2011-12-06 International Business Machines Corporation System and method for content replication detection and elimination in main memory
US8135930B1 (en) 2008-07-14 2012-03-13 Vizioncore, Inc. Replication systems and methods for a virtual computing environment
US8099571B1 (en) 2008-08-06 2012-01-17 Netapp, Inc. Logical block replication with deduplication
US8086799B2 (en) * 2008-08-12 2011-12-27 Netapp, Inc. Scalable deduplication of stored data
US9235577B2 (en) 2008-09-04 2016-01-12 Vmware, Inc. File transfer using standard blocks and standard-block identifiers
US8307177B2 (en) 2008-09-05 2012-11-06 Commvault Systems, Inc. Systems and methods for management of virtualization data
US9678863B2 (en) 2012-06-12 2017-06-13 Sandisk Technologies, Llc Hybrid checkpointed memory

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103415842B (zh) * 2010-11-16 2016-02-03 阿克蒂菲奥股份有限公司 用于数据管理虚拟化的***和方法
CN103415842A (zh) * 2010-11-16 2013-11-27 阿克蒂菲奥股份有限公司 用于数据管理虚拟化的***和方法
US10394757B2 (en) 2010-11-18 2019-08-27 Microsoft Technology Licensing, Llc Scalable chunk store for data deduplication
CN105843905B (zh) * 2010-11-22 2019-06-11 日立数据管理有限公司 用于管理文件***中的文件***对象的设备和方法
CN105843905A (zh) * 2010-11-22 2016-08-10 日立数据***工程英国有限公司 用于管理文件***中的文件***对象的设备和方法
CN102567218B (zh) * 2010-12-17 2015-08-05 微软公司 用于数据去重复块存储的垃圾收集和热点释放
CN102567218A (zh) * 2010-12-17 2012-07-11 微软公司 用于数据去重复块存储的垃圾收集和热点释放
US8990171B2 (en) 2011-09-01 2015-03-24 Microsoft Corporation Optimization of a partially deduplicated file
US9767140B2 (en) 2012-04-30 2017-09-19 International Business Machines Corporation Deduplicating storage with enhanced frequent-block detection
CN103377137A (zh) * 2012-04-30 2013-10-30 国际商业机器公司 使用增强的频繁块检测进行存储去重的方法和***
US9177028B2 (en) 2012-04-30 2015-11-03 International Business Machines Corporation Deduplicating storage with enhanced frequent-block detection
CN103377137B (zh) * 2012-04-30 2016-06-22 国际商业机器公司 使用增强的频繁块检测进行存储去重的方法和***
US9659060B2 (en) 2012-04-30 2017-05-23 International Business Machines Corporation Enhancing performance-cost ratio of a primary storage adaptive data reduction system
CN103544251A (zh) * 2013-10-14 2014-01-29 北京合辉信息技术有限公司 多源图片处理方法及其装置
CN103886070A (zh) * 2014-03-21 2014-06-25 华为技术有限公司 文件***的数据回收方法及装置
CN104994135B (zh) * 2015-05-25 2018-09-21 华为技术有限公司 存储***中融合san及nas存储架构的方法及装置
WO2016188373A1 (zh) * 2015-05-25 2016-12-01 华为技术有限公司 存储***中融合san及nas存储架构的方法及装置
CN104994135A (zh) * 2015-05-25 2015-10-21 华为技术有限公司 存储***中融合san及nas存储架构的方法及装置
CN106844143A (zh) * 2016-12-27 2017-06-13 微梦创科网络科技(中国)有限公司 一种日志去重处理方法及装置
WO2019082016A1 (en) * 2017-10-25 2019-05-02 International Business Machines Corporation IMPROVED DEDUPLICATION PERFORMANCE BASED ON DISPERSED LOCATIONS
CN111213130A (zh) * 2017-10-25 2020-05-29 国际商业机器公司 基于分散位置的去重的性能改进
GB2580276A (en) * 2017-10-25 2020-07-15 Ibm Improved performance of dispersed location-based deduplication
GB2580276B (en) * 2017-10-25 2020-12-09 Ibm Improved performance of dispersed location-based deduplication
US11269531B2 (en) 2017-10-25 2022-03-08 International Business Machines Corporation Performance of dispersed location-based deduplication
CN111213130B (zh) * 2017-10-25 2024-03-01 国际商业机器公司 基于分散位置的去重的性能改进
CN110196685A (zh) * 2018-02-26 2019-09-03 爱思开海力士有限公司 存储器***及其操作方法

Also Published As

Publication number Publication date
CN101710323B (zh) 2013-06-19
US10642794B2 (en) 2020-05-05
US20100077013A1 (en) 2010-03-25

Similar Documents

Publication Publication Date Title
CN101710323B (zh) 计算机存储去复制操作
CN1329841C (zh) 建立和恢复图像文件的方法和***
US7269706B2 (en) Adaptive incremental checkpointing
CN101809566B (zh) 高效的文件散列标识符计算
US8219850B1 (en) Data processing recovery system and method spanning multiple operating system
US9396198B2 (en) Computer system, file management method and metadata server
EP2477111B1 (en) Computer system and program restoring method thereof
US20130047156A1 (en) Method and apparatus of assigning virtual machine resources
CN102834822A (zh) 由虚拟机共享的群集的快速-完整备份
EP1984821A2 (en) Restoring a file to its proper storage tier in an information lifecycle management environment
JP5335622B2 (ja) 設定情報データベースを管理するコンピュータ・プログラム
CN102323930B (zh) 对数据库***中的数据变更进行镜像
CN106970856B (zh) 对数据进行备份、恢复及挂载的数据管理***及方法
JP2007140962A (ja) ディスクアレイシステム及びセキュリティ方法
US20090327295A1 (en) Maintenance of exo-file system metadata on removable storage device
US20140337594A1 (en) Systems and methods for collapsing a derivative version of a primary storage volume
CN101785239B (zh) 基于密钥的隐藏分区***
CN100517305C (zh) 阴影分页
US11625334B2 (en) Bootable key value solid state drive (KV-SSD) device with host interface layer arranged to received and returns boot requests from host processor using storage for objects
CN112256492A (zh) 块设备备份方法、装置、设备及存储介质
US7970736B2 (en) System, method and computer program product for storing transient state information
JP5966466B2 (ja) バックアップ制御方法、および情報処理装置
US9665582B2 (en) Software, systems, and methods for enhanced replication within virtual machine environments
US9971532B2 (en) GUID partition table based hidden data store system
WO2023188092A1 (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
C14 Grant of patent or utility model
GR01 Patent grant
CP03 Change of name, title or address

Address after: California, USA

Patentee after: Weirui LLC

Country or region after: U.S.A.

Address before: California, USA

Patentee before: VMWARE, Inc.

Country or region before: U.S.A.

CP03 Change of name, title or address