CN111868704A - 用于加速存储介质访问的方法及其设备 - Google Patents
用于加速存储介质访问的方法及其设备 Download PDFInfo
- Publication number
- CN111868704A CN111868704A CN201980018904.8A CN201980018904A CN111868704A CN 111868704 A CN111868704 A CN 111868704A CN 201980018904 A CN201980018904 A CN 201980018904A CN 111868704 A CN111868704 A CN 111868704A
- Authority
- CN
- China
- Prior art keywords
- objects
- subset
- file system
- version number
- computing device
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/122—File system administration, e.g. details of archiving or snapshots using management policies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/128—Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/162—Delete operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/164—File meta data generation
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)
- Human Computer Interaction (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
加速数据访问请求的方法、非暂态计算机可读介质以及计算设备。利用本技术,多个对象的层次结构被***到位置数据库中。多个对象的至少一个子集中的每个对象包括针对存储在文件***中的数据的物理存储位置。多个对象中的一个或多个对象包括对象版本号和多个对象中的父对象的父版本号。当无效事件已经发生在文件***中时做出确定。无效事件与多个对象中的一个对象相关联。当确定指示无效事件已经发生在文件***时,针对多个对象中的一个对象的对象版本号被修改以使对象的子集中的一个或多个对象无效。
Description
技术领域
本技术涉及管理数据存储网络并且更特别地涉及用于加速存储介质访问的方法和设备。
背景技术
存储网络中的存储服务器一般跨多个数据存储设备存储数据,这些数据存储设备一起构成数据容器,在本文中也称为聚集。为了存储数据,例如,存储服务器可以采用各种形式的本地数据存储设备,诸如硬盘驱动器、固态硬盘、闪存盘和/或磁带设备,以及远程数据存储设备,诸如云存储设备或储存库。
由存储控制器执行的文件***软件一般负责定义存储网络中的数据存储设备上的存储空间的总体逻辑布置。因此,文件***软件代表客户端设备执行布局管理和服务输入/输出(I/O)操作。特别地,文件***软件可以组织聚集内的卷并且管理读写操作以及其他类型的组织结构和操作。
利用数据存储网络的客户端经历关于数据访问的延时,包括网络延时、文件***软件延时、以及数据存储设备的介质延时。文件***软件尤其会引起上下文切换和消息传递开销,例如,其可以显著地延迟对数据的访问,包括针对不影响文件***数据或布局的读取和其他类型的访问请求。
附图说明
图1是具有包括节点计算设备在内的示例性数据存储装置的网络环境的框图;
图2是图1所示的节点计算设备的一个示例的框图;
图3是示出用于加速存储介质访问的方法的示例性流程图;
图4是用于建立和管理位置数据库的示例性方法的流程图;
图5是示出存储在示例性位置数据库中的分层对象和版本号的框图;以及
图6是使用位置数据库来加速读取请求的服务的示例性方法的流程图。
具体实施方式
在图1中示出了可以实施本文描述和图示的技术的一个或多个方面的集群网络环境100。集群网络环境100包括数据存储装置102(1)-102(n),其中数据存储装置102(1)-102(n)通过集群结构104被耦合,以促进数据存储装置102(1)-102(n)(以及其中的例如一个或多个模块、组件等,诸如节点计算设备106(1)-106(n))之间的通信,在其他示例的集群网络环境100中也可以包括任何数量的其他元件或组件。本技术提供许多优点,包括促进加速的存储介质访问以减少服务特定数据存储操作(诸如读取请求)中的延时的方法、非暂态计算机可读介质以及计算设备。
在该示例中,节点计算设备106(1)-106(n)可以是提供客户端设备108(1)-108(n)的主要或本地存储控制器或次要或远程存储控制器,可以访问存储在数据存储设备110(1)-110(n)内的数据。本文描述和图示的示例的数据存储装置102(1)-102(n)和/或节点计算设备106(1)-106(n)不限于任何特定地理区域,可以被本地和/或远程地集群,或者在其他示例中不被集群。因此,在一个示例中,数据存储装置102(1)-102(n)和/或节点计算设备106(1)-106(n)可以被分布在位于多个地理位置中的多个存储***上;在另一示例中,集群网络可以包括驻存于相同地理位置中(例如,在单个现场机架中)的数据存储装置102(1)-102(n)和/或节点计算设备106(1)-106(n)。
在图示的示例中,客户端设备108(1)-108(n)中的一个或多个通过网络连接112(1)-112(n)被耦合到相应的数据存储装置102(1)-102(n),客户端设备108(1)-108(n)可以是例如个人计算机(PC)、用于存储的计算设备(例如,存储服务器)、或者其他计算机或***设备。网络连接112(1)-112(n)可以包括局域网(LAN)或者广域网(WAN),例如,其利用网络附接存储(NAS)协议(诸如用于交换数据包的通用互联网文件***(CTFS)协议或网络文件***(NFS)协议)、存储区域网络(SAN)协议(诸如小型计算机***接口(SCSI)或光纤通道协议(FCP))和/或对象协议(诸如简单存储服务(S3))。
说明性地,客户端设备108(1)-108(n)可以是运行应用的通用计算机,可以使用客户端/服务器模型与数据存储装置102(1)-102(n)交互以交换信息。即,客户端设备108(1)-108(n)可以请求来自数据存储装置102(1)-102(n)的数据(例如,被网络存储控制器管理的一个数据存储设备110(1)-110(n)上的数据,该网络存储控制器被配置为处理由客户端设备108(1)-108(n)发出的I/O命令),并且数据存储装置102(1)-102(n)可以经由网络连接112(1)-112(n)将请求的结果返回到客户端设备108(1)-108(n)。
例如,数据存储装置102(1)-102(n)的节点计算设备106(1)-106(n)可以包括网络或者被相互连接为集群用以将数据存储和管理服务提供给诸如具有远程位置、云存储(例如,存储端点可以被存储在数据云内)等的企业的主机节点。例如,这样的节点计算设备106(1)-106(n)可以在连接点、再分配点或通信端点处被附接到结构104。节点计算设备106(1)-106(n)中的一个或多个可以能够通过网络通信通道发送、接收和/或转发信息,并且可以包括满足这些准则的任何或全部的任意类型的设备。
在示例中,节点计算设备106(1)和106(n)可以根据灾难恢复配置而被配置,由此,当在灾难存储站点处发生灾难的情况下,幸存节点提供对存储设备110(1)-110(n)的切换访问(例如,当在第二存储站点处发生灾难的情况下,节点计算设备106(1)为客户端设备112(n)提供对存储设备110(n)的切换数据访问)。在其他示例中,节点计算设备106(n)可以根据归档配置而被配置,和/或节点计算设备106(1)-106(n)可以基于另一类型的复制布置而被配置(例如,用以促进负载共享)。附加地,尽管两个节点计算设备被图示在图1中,但是在其他示例中的其他类型的配置或布置中可以包括任何数量的节点计算设备或数据存储装置。
如在集群网络环境100中示出的,节点计算设备106(1)-106(n)可以包括可以协同用以提供分布式存储架构的各种功能组件。例如,节点计算设备106(1)-106(n)可以包括网络模块114(1)-114(n)和磁盘模块116(1)-116(n)。网络模块114(1)-114(n)可以被配置为允许节点计算设备106(1)-106(n)(例如,网络存储控制器)通过存储网络连接112(1)-112(n)与客户端设备108(1)-108(n)连接,例如,允许客户端设备108(1)-108(n)访问集群网络环境100中存储的数据。
另外,网络模块114(1)-114(n)可以通过集群结构104提供与一个或多个其他组件的连接。例如,利用通过节点计算设备106(n)的磁盘模块116(n)经由集群结构104发送请求,节点计算设备106(1)的网络模块114(1)可以访问数据存储设备110(n)。例如,集群结构104可以包括作为无线带宽(InfiniBand)、光纤通道(FC)或以太网络被实施的一个或多个局域和/或广域计算网络,不过也可以使用支持其他协议的其他类型的网络。
磁盘模块116(1)-116(n)可以被配置为将数据存储设备110(1)-110(2)(诸如磁盘或磁盘阵列,SSD,闪存或一些其他形式的数据存储)连接到节点计算设备106(1)-106(n)。通常,例如,磁盘模块116(1)-116(n)根据SAN协议(诸如SCSI或FCP)与数据存储设备110(1)-110(n)进行通信,不过也可以使用其他协议。因此,如从节点计算设备106(1)-106(n)上的操作***看到的,数据存储设备110(1)-110(n)可以显示为本地连接的。以这种方式,不同的节点计算设备106(1)-106(n)等可以通过操作***访问数据块、文件或对象,而不是明确请求抽象文件。
集群网络环境100示出了相等数量的网络模块114(1)-114(2)和磁盘模块116(1)-116(n),不过其他示例可以包括不同数量的这些模块。例如,集群中可以有相互连接的、在网络模块和磁盘模块之间不具有一一对应关系的多个网络模块和磁盘模块。即,不同的节点计算设备可以具有不同数量的网络模块和磁盘模块,同一节点计算设备可以具有与磁盘模块不同数量的网络模块。
另外,客户端设备108(1)-108(n)中的一个或多个可以例如通过存储连接112(1)-112(n)与集群中的节点计算设备106(1)-106(n)联网。作为示例,被联网到集群的相应客户端设备108(1)-108(n)可以请求集群中的节点计算设备106(1)-106(n)的服务(例如,以数据包的形式进行的信息的交换),并且节点计算设备106(1)-106(n)可以将所请求的服务的结果返回到客户端设备108(1)-108(n)。在一个示例中,客户端设备108(1)-108(n)可以与驻存在数据存储装置102(1)-102(n)中的节点计算设备106(1)-106(n)(例如,网络主机)中的网络模块114(1)-114(n)交换信息。
在一个示例中,例如,存储装置102(1)-102(n)托管对应于物理本地和远程数据存储设备(诸如数据存储设备110(1)-110(n)中的本地闪存或磁盘存储)的聚集。数据存储设备110(1)-110(n)中的一个或多个可以包括大容量存储设备,诸如磁盘阵列的磁盘。磁盘可以包括任何类型的大容量存储设备,包括但不限于磁盘驱动器、闪存以及适于存储信息(包括例如数据(D)和/或奇偶性(P)信息)的任何其他类似介质。
在该示例中,聚集包括卷118(1)-118(n),不过任何数量的卷可以被包括在聚集中。卷118(1)-118(n)是对集群网络环境100内的存储和一个或多个文件***的布置进行定义的虚拟数据存储。例如,卷118(1)-118(n)可以跨磁盘或其他存储设备的一部分、磁盘的汇集或磁盘的部分,并且通常定义数据存储的总体逻辑布置。在一个示例中,卷118(1)-118(n)可以包括存储的用户数据作为驻存于卷118(1)-118(n)内的分层目录结构中的一个或多个文件、块或对象。卷118(1)-118(n)通常被配置为可以与特定存储***相关联的格式,并且相应的卷格式通常包括为卷118(1)-118(n)提供功能的特征,诸如为卷118(1)-118(n)提供形成集群和执行重复数据删除的能力以及其他功能。
在一个示例中,为了促进对存储在数据存储设备110(1)-110(n)的磁盘或其他结构上的数据的访问,文件***可以被实施为将信息逻辑地组织为目录和文件的分层结构。在该示例中,相应文件可以被实施为被配置为对信息进行存储的一组特定大小的磁盘块,而目录可以被实施为其中存储有与其他文件和目录有关的信息的特殊格式的文件。
数据可以被存储为物理卷和/或虚拟卷内的文件或对象,其可以与相应卷标识符相关联。物理卷对应于物理存储设备的至少一部分,诸如数据存储设备110(1)-110(n)(例如,独立(或廉价)磁盘的冗余阵列(RAID***)),其地址、可寻址空间、位置等不改变。通常,物理卷的位置不改变,因为用于访问它的地址的范围一般保持不变。
相反,虚拟卷可以被存储在不同物理存储设备的不同部分的聚集上。例如,虚拟卷可以是不同物理存储设备位置的不同可用部分(诸如来自磁盘的一些可用空间)的汇集。将认识到,由于虚拟卷未被“绑”到任何一个特定存储设备,所以可以说虚拟卷包括抽象层或虚拟层,这允许其被重新调整大小和/或在某些方面灵活。
另外,虚拟卷可以包括一个或多个逻辑单元号(LUN)、目录、Qtree和/或文件。除此之外,例如,这些特征(尤其是LUN)允许识别存储数据的不同存储位置,并且被分组为数据存储单元。因此,LUN的特征可以在于构成虚拟磁盘或驱动器,在该虚拟磁盘或驱动器上,虚拟卷内的数据被存储在聚集内。例如,LUN常常被称为虚拟驱动器,以使它们模拟硬盘驱动器,而它们实际上包括存储在卷的各个部分中的数据块。
在一个示例中,数据存储设备110(1)-110(n)可以具有一个或多个物理端口,其中每个物理端口可以被分配以目标地址(例如,SCSI目标地址)。为了表示相应的卷,数据存储设备110(1)-110(n)上的目标地址可以用于识别一个或者多个LUN。因此,例如,当节点计算设备106(1)-106(n)的其中一个连接到卷时,节点计算设备106(1)-106(n)的该其中一个与该卷下的LUN中的一个或多个之间的连接被创建。
相应的目标地址可以识别多个LUN,使得目标地址可以表示多个卷。I/O接口(例如,其可以被实施为存储适配器中的电路和/或软件或被实施为驻存于存储器中并且由处理器执行的可执行代码)可以通过使用识别一个或者多个LUN的一个或多个地址来连接到卷。
参考图2,在该特定示例中,节点计算设备106(1)包括由***总线210相互连接的(一个或多个)处理器200、存储器202、网络适配器204、集群访问适配器206以及存储适配器208。节点计算设备106还包括安装于存储器206中的存储操作***212,其可以例如实施RAID数据损失保护和恢复方案,以优化阵列中的发生故障的磁盘或驱动器的数据重建。在一些示例中,节点计算设备106(n)在结构和/或操作上与节点计算设备106(1)基本相同,不过节点计算设备106(n)还可以包括在一个或多个方面与节点计算设备106(1)不同的结构和/或操作。
在该示例中,网络适配器204包括通过网络连接112(1)-112(n)(其可以包括点到点连接或共享介质,诸如局域网)将节点计算设备106(1)连接到客户端设备108(1)-108(n)中的一个或多个所需的机械、电气和信号电路。在一些示例中,网络适配器204还经由结构104和/或另一网络(例如,WAN)(未示出)与云存储设备进行通信(例如,使用TCP/IP),以处理与其上存储的数据相关联的存储操作。
存储适配器208与节点计算设备106(1)上执行的存储操作***212协作,以访问由客户端设备108(1)-108(n)之一请求的信息(例如,以访问由网络存储控制器管理的数据存储设备110(1)-110(n)上的数据)。该信息可以被存储在任何类型的可写介质(诸如磁盘驱动器、闪存和/或适于存储信息的任何其他类似的介质)的附属阵列上。
在示例性数据存储设备110(1)-110(n)中,信息可以被存储在磁盘上的数据块中。存储适配器208可以包括通过I/O互连布置(诸如存储区域网络(SAN)协议(例如,小型计算机***接口(SCSI)、互联网SCSI(iSCSI)、超级SCSI、纤维通道协议(FCP)))耦合到磁盘的I/O接口电路。该信息由存储适配器208检索,并且在必要时,在通过***总线210被转发到网络适配器204(和/或集群访问适配器206,如果发送到集群中的另一节点计算设备的话)之前由(一个或多个)处理器200(或存储适配器208本身)处理,其中,信息被格式化为数据包并且被返回到请求的客户端设备108(1)-108(2)之一和/或被发送到经由集群结构104附接的另一节点计算设备。在一些示例中,存储器202中的存储驱动器214与存储适配器进行接口,以促进与数据存储设备110(1)-110(n)的交互。
存储操作***212还可以管理用于节点计算设备106(1)以及可能在集群网络(诸如附接到集群结构104)中的其他设备的通信。因此,节点计算设备106(1)可以对客户端设备请求作出响应,以根据客户端设备请求来管理数据存储设备110(1)-110(n)(例如,或者附加集群设备)中的一个上的数据。
例如,存储操作***212的文件***模块216可以建立并管理一个或多个文件***,该一个或多个文件***包括实施文件和目录的持久分层命名空间的软件代码和数据结构。作为示例,当网络数据存储设备(未示出)被添加到集群网络***时,文件***模块216被告知,在现有目录树中,与新数据存储设备相关联的新文件要被存储。这常常被称为“安装”文件***。
在示例性节点计算设备106(1)中,存储器202可以包括可由(一个或多个)处理器200和适配器204、206和208寻址的存储位置用于存储相关软件应用代码和数据结构。(一个或多个)处理器200和适配器204、206和208可以例如包括被配置为执行软件代码并操纵数据结构的处理元件和/或逻辑电路。
存储操作***212(其部分通常驻存于存储器202中并且由(一个或多个)处理器200执行)调用存储操作来支持由节点计算设备106(1)实施的文件服务。包括各种计算机可读介质在内的其他处理和存储器机制可以用于存储和/或执行与本文描述和图示的技术有关的应用指令。例如,存储操作***212还可以利用一个或多个控制文件(未示出)来帮助提供虚拟机。
在该特定示例中,存储器202还包括多处理器输入/输出(MPIO)模块218,该多处理器输入/输出(MPIO)模块218将位置数据库220与存储位置缓存(SLC)222和文件上下文缓存(FCC)220一起存储的。MPIO模块218与文件***模块216分离并且在与文件***模块216不同的执行上下文中可执行。MPIO模块218一般提供多处理器安全且一致的位置数据库220,其允针对某些类型的拦截请求许客户端108(1)例如获得对数据存储设备110(1)的直接访问以便减少与文件***模块216相关联的软件延时。
在该示例中MPIO模块218被实施为存储在存储器202中的软件,不过MPIO模块218还可以被实施为硬件或硬件和软件的组合,并且可以位于网络环境100中的其他地方。在其他示例中,例如,MPIO模块216可以被实施在由节点计算设备106(1)托管的、由客户端108(1)实施的、或由客户端108(1)与节点计算设备106(1)之间的单独的设备实施的存储控制器虚拟机(VM)实例内。因此,MPIO模块218可以位于网络环境100中的在108(1)和节点计算设备106(1)的通信路径中的任何地方。
在该示例中,文件***模块216有效地导出位置数据库220用于由文件***基础设施外部的消费者(诸如客户端108(1))使用。位置数据库220知道文件***的布局并且与其一致,并且可由被构建在文件基础设施之上的客户端108(1)(诸如协议服务器)使用。在一个特定示例中,位置数据库220由FCP和/或iSCSI协议服务器使用以获得对(一个或多个)闪速数据存储设备的加速访问。特别地,客户端108(1)被启用以使用位置数据库220对在其上布置了文件***的数据存储设备110(1)执行直接输入/输出(I/O)。当数据被修改或移动时,例如,位置数据库220由文件***模块216更新,使得客户端108(1)不访问无效或陈旧数据。
更具体地,在该示例中,SLC 222是对象的汇集,该对象包括文件块的逻辑地址到文件块的物理地址的映射,不过也可以使用其他类型的存储结构。因此,映射可以是LUN逻辑块地址(LBA)到物理卷块号(PVBN),它们对应于数据存储设备110(1)上的介质存储位置并且由文件***模块216分配。更具体地,PVBN可以基于卷118(1)的文件***拓扑信息而被转化为磁盘ID和块号,但是在其他示例中也可以使用其他类型的逻辑和/或物理地址。
SLC 222适时地维护存储在数据存储设备110(1)的磁盘上的数据的子集(例如,最可能随后被检索的数据的子集)的映射。因此,MPIO模块218可以实施替换策略以确保具有映射的相对有价值的对象在SLC 222中被维护(例如,与最可能随后被访问的文件块相关联的对象)。除了映射,SLC 222中的对象可以存储其他信息和元数据,包括关联的文件块的丢失写入上下文,以有助于在由客户端108(1)消耗之前数据的有效。
在该示例中,例如,FCC 224维护与LUN或文件和卷118(1)的状态有关的信息以及任选地文件所属的关联的快照的信息。FCC 224存储支持SLC 222的元数据并且有助于确定SLC 222中的信息是否有效且可用。更具体地,FCC 224存储与文件***的结构相对应的对象的层次结构。在一个特定示例中,文件***的结构包括文件块、索引节点(inode)数据结构(在本文中也被称为索引节点)、快照、卷以及聚集,其中上述索引节点是上述文件块的父级,上述快照是上述索引节点的父级并且适用于从快照加载的索引节点,上述卷是上述快照的父级,上述聚集是上述卷的父级。
在层次结构的底部(也被称为叶子)的对应于文件块的对象包括逻辑地址到物理存储位置的映射,并且被存储在SLC 222中。因此,在其他示例中,SLC 222和FCC 224可以被组合在位置数据库220中。在该示例中,例如,对应于索引节点的对象存储属性,诸如文件大小和权限,对应于卷(例如,卷118(1))的对象存储拓扑结构和安装状态。另外,在该示例中,对应于索引节点的对象由文件句柄或LUN ID索引,而对应于卷的对象由文件***ID索引。因此,每个对象存储各种元数据和指向由FCC 224维护的层次结构中的另一个对象的索引。
SLC 222和FCC 224被组织为通过版本号支持由位置数据库220维护的数据的无效。因此,SLC 222和FCC 224中的对象具有包括初始版本号在内的关联版本号,在一些示例中,该初始版本号可以是当前时间戳计数器。当对象的相关属性在文件***中改变时,版本号由文件***模块216修改。因此,当事件发生在对对象中的属性进行修改的文件***中时(也被称为无效事件),事件的句柄更新(例如,异步地)位置数据库220中的对象的版本号以及可选地更新属性。
例如,如果截断操作改变文件的大小,那么FCC 224中的作为文件的(一个或多个)块的父级的相应对象中的文件大小属性被更新,并且该对象的版本号被修改(例如,基于当前时间戳计数器而被增加或设置)。在另一示例中,如果卷离线然后被重新上线,那么与该卷对应的FCC 224中的对象的版本号被修改。为了支持有效,位置数据库220中的每个子对象还存储该子对象被创建或最后更新时的父级的版本。
因此,SLC 222中的每个对象在该对象被创建或被***位置数据库220时存储与父级索引节点对应的对象的版本号。当由MPIO模块218查询SLC 222中的对象时,将存储在对象中的版本号与对应于父级索引节点的对象的当前版本号进行比较。如果版本号不匹配,那么自从SLC 222中的对象被缓存以来,一个或多个索引节点属性已经改变,对象被认为是陈旧的并且相关联的信息(例如,物理存储位置)使用起来不安全。然而,如果版本号匹配,那么自从对象被缓存以来,可以导致SLC 222中的对象无效的索引节点属性就没有改变,因此,对象可能是有效的并且相关联的信息使用起来安全。
尽管对应于文件块和索引节点的对象可能具有匹配的版本号,但是SLC 222中的对象中的映射仍然可能是无效的(例如,如果对应于索引节点的对象不是当前的)。因此,必须将与作为文件***中的索引节点的父级的卷对应的对象与索引节点对象中维护的该卷对象的版本号进行比较,并且必须相应地比较层次结构中的整个路径,如稍后更详细地描述和图示的。在该特定示例中,对应于聚集的对象存储当对象被缓存时聚集的安装序列号。将安装序列号与从文件***获得的当前安装序列号进行比较,以确定层次结构中的特定路径的有效性。在其他示例中可以使用其他类型的文件***结构和层次结构。
因此,利用本技术,当由位置数据库220维护的层次结构中的对象的属性改变时,具有隐式地使层次结构的该子树或路径中的所有缓存的对象无效的效果。特别地,在父级的无效之后,子对象将仅在再次被更新后才有效和有用。例如,在卷被上线后,如果索引节点再次被加载,那么FCC 224中的索引节点相对应的对象将接收更新和修改的版本号。当缓存器被加载时,例如,SLC 222中与FCC 224中的索引节点相对应的对象的子对象将被刷新或创建,然后为有效且可用的。
本文描述和图示的技术的示例可以被实施为一个或多个非暂态计算机可读介质,其上存储有针对本技术的一个或多个方面的机器或处理器可执行指令,上述指令由(一个或多个)处理器200执行时,如利用本文的示例描述和图示地,使(一个或多个)处理器200执行实施本技术的方法所需的步骤。在一些示例中,例如,可执行指令被配置为执行方法的一个或多个步骤,诸如稍后参考图3-6描述和图示的一个或者多个示例性方法。
更具体地参考图3,示出了图示用于加速存储介质访问的示例性方法的流程图。在该示例中,由节点计算设备106(1)托管的MPIO模块218被配置为拦截从客户端108(1)发起的数据访问请求(例如,读取请求)。MPIO模块218确定是否可以使用位置数据库220和对数据存储设备110(1)的直接访问来服务于数据访问请求,而不与在节点计算设备106(1)上的其他执行上下文中执行的文件***模块216牵涉或通信。
如果MPIO模块218可以使用位置数据库220和数据存储设备110(1)或存储器中的缓冲缓存来直接服务数据访问请求,那么客户端108(1)通过避免文件***模块216服务于此类请求和/或立即访问核心中的数据所需的开销来有利地减少延时,从而允许客户端108(1)例如同步地获得数据。MPIO模块218的关于服务于示例性读取请求的操作稍后将参考图6更详细地描述和图示,尽管本技术可以促进针对许多其他类型的请求对数据的加速访问。
然而,如果MPIO模块218不能直接服务于数据访问请求(例如,当与客户端108(1)请求的文件相关联的(一个或多个)块相关联的SLC 222对象被确定为无效或未找到时),那么数据访问请求被转发到文件***模块216以用于服务。文件***模块216可以然后使用数据存储设备110(1)来服务数据访问请求并将响应返回到请求客户端108(1)。
同时,文件***模块216***并更新对象,如参考图4更详细地描述和图示地,包括响应于无效事件,其中图示了用于建立并管理位置数据库220的示例性方法的流程图。在该特定示例的步骤400中,执行文件***模块216的节点计算设备106(1)安装文件***并利用对象的层次结构和版本号填充位置数据库220。因此,例如,节点计算设备106(1)与文件块对应地在SLC 222中***对象并设置对象中的版本号,诸如基于当前时间戳计数器。
例如,节点计算设备106(1)还在FCC 224中创建与文件***结构对应的对象,诸如索引节点、快照、卷和/或聚集对象,不过其他类型的对象也可以被创建并***FCC 224中。节点计算设备106(1)还为被***到FCC 224中的每个对象设置版本号,该版本号可以与在安装在SLC 222中的对象在安装中使用的版本号相同。除了版本号,节点计算设备106(1)可以将各种元数据存储在一个或者多个对象中(例如,FCC 224中与索引节点对应的对象的文件大小)。
另外,节点计算设备106(1)在每个对象中设置与父对象的版本号相对应的另一个版本号(除了,可选地,聚集对象)。因此,对于SLC 222中与文件块对应的对象,与为索引节点对象设置的版本号相对应地为其设置另一个版本号,上述索引节点对象在层次结构和文件***中是该文件块对象的父级。
更具体地参考图5,图示了存储在位置数据库220中的分层对象和版本号的框图。在该示例中,对象的层次结构包括文件块、索引节点、快照、卷以及聚集对象。在一个特定示例中,文件块对象500存储父索引节点对象502的版本号(V8),父索引节点对象502存储父卷对象的版本号(V31),父卷对象存储父聚集对象的版本号(V11)。由于在该特定路径中的子对象存储的每个父版本号都是匹配的,所以文件块对象500的内容(例如,逻辑地址到物理存储位置的映射)可以由MPIO模块218验证,如稍后参考图6的步骤604更详细地描述和图示的。
参考回到图4,在步骤402中,执行文件***模块216的节点计算设备106(1)确定在文件***模块216处是否接收到数据访问请求。数据访问请求可以是来自客户端108(1)的请求,诸如最初由MPIO模块218接收到的读取请求,但未导致位置数据库220中的命中。备选地,数据访问请求可以是从客户端108(1)发起的写请求,并且在步骤402中也可以接收其他类型的请求。如果由节点计算设备106(1)执行的文件***模块216确定数据访问请求已经被接收到,那么将“是”分支转到步骤404。
在步骤404中,在该示例中,执行文件***模块216的节点计算设备106(1)使用数据存储设备110(1)来服务数据访问请求。因此,例如节点计算设备106(1)可以将数据写入到数据存储设备110(1)并相应地更新文件***,或者从数据存储设备110(1)检索数据以发送给请求客户端108(1),其他类型的操作也可以被执行以便服务所接收的请求。
在步骤406中,执行文件***模块216的节点计算设备106(1)确定是否缓存与在步骤402中接收到的数据访问请求相关联的位置。可以由文件***模块216基于存储的策略来确定,例如该存储的策略缓存了最可能在随后被访问的位置,在其他示例中,该确定可以以其他方式做出。在一个示例中,该确定仅响应于读取请求而被做出,不过该确定也可以响应于其他类型的数据访问请求而被做出。如果节点计算设备106(1)确定与接收到的数据访问请求相关联的位置应当被缓存,则“是”分支转到步骤408。
在步骤408中,执行文件***模块216的节点计算设备106(1)将至少一个对象***到位置数据库220中(例如,SLC 222中)并且存储在对象版本号中,该对象版本号包括当前版本号和父对象(例如,索引节点对象)的版本号。在其中***的对象是被***SLC 222中的文件块对象的示例中,该对象也可以存储逻辑地址到物理存储位置的映射。在一些示例中,一个以上的对象可以被***到位置数据库220(例如,索引节点和文件块对象)中。
由于文件***模块216在该示例中维护文件***的布局,所以文件***模块216确定在位置数据库220的层次结构中的哪里***(一个或多个)对象(例如,哪个索引节点对象与文件块的父级相对应)。以这种方式,位置数据库220的布局与文件***的布局一致。另外,对象可以包括对层次结构中的父对象的引用,其他信息和元数据可以被***到(一个或多个)对象中(例如,索引节点对象的文件大小),在其他示例中也可以使用在位置数据库220中管理层次结构的其他方法。在步骤408中***对象之后,或者如果节点计算设备106(1)在步骤402中确定数据访问请求还没有被接收到,或者在步骤406中确定位置不应当被缓存,并且相应的“否”分支被采用,那么节点计算设备106(1)行进到步骤410。
在步骤410中,执行文件***模块216的节点计算设备106(1)确定关于文件***的无效事件已经发生。例如无效事件可以包括恢复快照、卷被离线、或者识别文件块位置改变或截断,尽管也会发生改变文件***内的特定属性的其他类型的无效事件。如果节点计算设备106(1)确定无效事件已经发生,那么“是”分支转到步骤412。
在步骤412中,执行文件***模块216的节点计算设备106(1)修改与位置数据库220中的无效事件相关联的对象的版本号。例如,在卷118(1)被离线的一个特定示例中,FCC224中的与卷118(1)对应的对象中的版本号被修改(例如,被设置为当前时间戳计数器),由此隐式地使子索引节点对象无效。具体地,子索引节点对象中的父版本号将不匹配父卷对象中的修改的版本号。可以发生其他类型的无效事件,并且在其他示例中也可以使用对其他类型或位置数据库220中的对象数量的版本号的其他类型的修改。
在一些示例中,节点计算设备106(1)可以通过异步地遍历位置数据库220中的对象或以其他方式基于对相关联的版本号的分析而识别不再有效的那些对象并移除这些对象来释放位置数据库220中的空间。在修改位置数据库220中的相关联的对象的版本号之后,或者如果节点计算设备106(1)确定无效事件未发生并且从步骤410取得了“否”分支,那么在该示例中节点计算设备106(1)返回到步骤400。在其他示例中,一个或多个其他步骤可以在步骤400-412中的任意步骤之前或之后发生,并且步骤402-412中的一个或多个可以被并行和/或以不同顺序被执行。
更具体地参考图6,图示了用于使用位置数据库220来加速读取请求的服务的示例性方法的流程图。在该示例的步骤600中,执行MPIO模块218的节点计算设备106(1)确定读取存储在文件***中的数据的请求是否被接收到。例如,读取请求可以由客户端108(1)发起并且在到达文件***模块216之前由MPIO模块218拦截,但是读取请求也可以以其他方式被生成。尽管读取请求的加速服务参考图6描述和图示,但是在其他示例中,访问存储在文件***中的数据的其他类型的请求也可以被加速。
如果节点计算设备106(1)确定读取请求还没有被接收到,那么“否”分支返回步骤600并且节点计算设备106(1)有效地等待读取请求被接收。然而,如果节点计算设备在步骤600中确定读取请求已经被接收到,那么“是”分支被转到步骤602。
在步骤602中,执行MPIO模块218的节点计算设备106(1)确定在位置数据库220中是否存在命中。在该示例中,MPIO模块218使用读取请求中包括的信息(例如,卷ID、LUN ID和/或LBA)来查询位置数据库220,以确定与所请求的数据相关联的物理存储位置是否已经被缓存在位置数据库220中。因此,例如在一个示例中,节点计算设备106(1)可以将LBA与存储在SLC 222中的文件块对象中的映射中的逻辑地址进行比较,以确定是否存在匹配,不过在其他示例中也可以使用确定在位置数据库220中是否存在命中的其他方法。如果节点计算设备106(1)确定在位置数据库220中存在命中,那么“是”分支转到步骤604。
在步骤604中,节点计算设备106(1)确定与SLC 222中的读取请求相关联的(一个或多个)文件块对象或存储在其中的映射中包括的物理存储位置是否有效。为了确定SLC222中的文件块对象是否有效,将存储在其中的父版本号与FCC 224中的父索引节点对象的版本号进行比较以确定是否存在匹配。然后FCC 224的层次结构中的路径被遍历,并且所有相关联的父版本号被比较,以确定版本号匹配并且路径中的对象中没有一个对象已经隐式地使SLC 222中的文件块对象无效,如之前参考图5更详细地描述和图示的。如果节点计算设备106(1)确定与SLC 222中的读取请求相关联的(一个或多个)文件块对象有效,则“是”分支转到步骤606。
在步骤606中,在该示例中,执行MPIO模块218的节点计算设备106(1)直接服务于来自数据存储设备110(1)的读取请求。为了服务于读取请求,节点计算设备106(1)检索并利用物理存储位置,该物理存储位置来自被识别为与读取请求相对应的SLC 224中的文件块对象。由于位置信息共享由文件***模块216维护的相同的命名空间,所以物理存储位置可以用于直接执行RDMA、DMA、SCSI和/或云读取,例如,以从数据存储设备110(1)检索所请求的数据。因此,所请求的数据可以由MPIO模块218检索并返回到客户端108(1),而无需利用文件***模块216。在其他示例中,MPIO模块218可以服务于来自存储器202中的缓冲缓存的读取请求,而无需与数据存储设备110(1)进行通信。
然而,如果节点计算设备106(1)确定在位置数据库220中不存在与所请求的数据相对应的命中,并且从步骤602取得了“否”分支,或者SLC 222中的文件块对象不是有效的,并且从步骤604取得了“否”分支,那么节点计算设备106(1)行进到步骤608。在步骤608中,在该示例中,执行MPIO模块218的节点计算设备106(1)将读取请求发送到文件***模块216以进行服务。例如,然后读取请求可以由文件***模块216接收,如早前参考图4的步骤402更详细地描述和图示的。在步骤606中服务读取请求后,或者在步骤608中将读取请求发送到文件模块216后,节点计算设备106(1)可以返回到步骤600。
因此,如本文所描述和图示的,本技术有利地促进了对存储网络中的数据的相对低成本、机会性且相对快速的访问。特别地,本技术利用由文件***模块导出和维护的位置数据库来在执行上下文中处理MPIO模块上的某些数据访问请求(例如,读取请求),该执行上下文需要较少的消息传递、较少的上下文切换,并且可能是客户端的执行上下文本身,而无需利用文件***模块,而且不会引发相关开销。位置数据库利用与文件***模块和版本控制***相同的命名空间以隐式地使对象无效,而无需遍历层次结构。因此,本技术有利地减少由客户端针对数据存储网络中的某些操作经历的延时。
已经由此描述了本发明的基本构思,对本领域技术人员而言将非常显而易见的是,前述详细公开旨在仅通过举例的方式被呈现,并且不是限制性的。各种更改、改进和修改将进行并且是本领域技术人员意图的,但是未明确陈述在本文中。这些更改、改进和修改旨在被暗示在本文,并且在本发明的精神和范围内。另外,处理元件或序列的所记载的顺序、或对数字、字母或其他指代的使用因此不旨在将要求保护的过程限制于任何顺序,除非如权利要求中可以指定的。因此,本发明仅仅由随附权利要求和其等价要件限制。
Claims (18)
1.一种方法,包括:
由计算设备将对象的层次结构***到位置数据库中,其中所述对象的子集中的每个对象包括针对存储在文件***中的数据的物理存储位置,并且所述对象中的一个或多个对象包括对象版本号和所述对象的父对象的父版本号;以及
由所述计算设备修改针对所述对象中与无效事件相关联的一个对象的所述对象版本号,以使所述对象的所述子集的一个子对象无效。
2.根据权利要求1所述的方法,还包括:当所述对象的所述子集中的一个对象中的所述物理存储位置基于与所述层次结构中的路径中的所述对象的另一子集相关联的版本号而被确定为有效时,由所述计算设备使用基于对所述位置数据库的查询而标识的所述对象的所述子集中的所述一个对象中的所述物理存储位置来服务接收的数据访问请求。
3.根据权利要求2所述的方法,当所述对象的所述子集中的所述一个对象中的所述物理存储位置被确定为无效时,由所述计算设备将所述数据访问请求转发给用于服务的不同执行上下文中的文件***模块。
4.根据权利要求2所述的方法,其中所述对象的所述子集中的所述每个对象在所述层次结构的底部处并且包括逻辑地址到所述物理存储位置的映射,并且所述接收的数据访问请求是读取请求并且包括所述逻辑地址中的一个逻辑地址。
5.根据权利要求1所述的方法,其中所述数据包括存储在所述文件***中的文件块,并且所述层次结构与所述文件***的结构相对应。
6.根据权利要求1所述的方法,其中所述对象版本号基于所述位置数据库中的最新更新的时间,并且所述版本号中的一个或多个版本号是基于当前时间戳计数器而生成的。
7.一种非暂态机器可读介质,具有存储于其上的用于加速存储介质访问的指令,所述指令包括机器可执行代码,所述机器可执行代码当由至少一个机器执行时使所述机器:
将对象的层次结构***到位置数据库中,其中所述对象的子集中的每个对象包括针对存储在文件***中的数据的物理存储位置,并且所述对象中的一个或多个对象包括对象版本号和所述对象的父对象的父版本号;以及
修改针对所述对象中与无效事件相关联的一个对象的所述对象版本号,以使所述对象的所述子集的一个子对象无效。
8.根据权利要求7所述的非暂态机器可读介质,其中所述机器可执行代码当由所述机器执行时还使所述机器:当所述对象的所述子集中的一个对象中的所述物理存储位置基于与所述层次结构中的路径中的所述对象的另一子集相关联的版本号而被确定为有效时,使用基于对所述位置数据库的查询而标识的所述对象的所述子集中的所述一个对象中的所述物理存储位置来服务接收的数据访问请求。
9.根据权利要求8所述的非暂态机器可读介质,其中所述机器可执行代码当由所述机器执行时还使所述机器:当所述对象的所述子集中的所述一个对象中的所述物理存储位置被确定为无效时,将所述数据访问请求转发到用于服务的不同执行上下文中的文件***模块。
10.根据权利要求8所述的非暂态机器可读介质,其中所述对象的所述子集中的所述每个对象在所述层次结构的底部处并且包括逻辑地址到所述物理存储位置的映射,并且所述接收的数据访问请求是读取请求并且包括所述逻辑地址中的一个逻辑地址。
11.根据权利要求7所述的非暂态机器可读介质,其中所述数据包括存储在所述文件***中的文件块,并且所述层次结构与所述文件***的结构相对应。
12.根据权利要求7所述的非暂态机器可读介质,其中所述对象版本号基于所述位置数据库中的最新更新的时间,并且所述版本号中的一个或多个版本号是基于当前时间戳计数器而生成的。
13.一种计算设备,包括:
存储器,所述存储器包含机器可读介质,所述机器可读介质包括机器可执行代码,具有存储于其上的用于加速存储介质访问的指令;以及
耦合到所述存储器的处理器,所述处理器被配置为执行所述机器可执行代码,以使所述处理器:
将对象的层次结构***到位置数据库中,其中所述对象的子集中的每个对象包括针对存储在文件***中的数据的物理存储位置,并且所述对象中的一个或多个对象包括对象版本号和所述对象的父对象的父版本号;以及
修改针对所述对象中与无效事件相关联的一个对象的所述对象版本号,以使所述对象的所述子集的一个子对象无效。
14.根据权利要求13所述的计算设备,其中所述处理器还被配置为执行所述机器可执行代码,以进一步使所述处理器:当所述对象的所述子集中的一个对象中的所述物理存储位置基于与所述层次结构中的路径中的所述对象的另一子集相关联的版本号而被确定为有效时,使用基于对所述位置数据库的查询而标识的所述对象的所述子集中的所述一个对象的所述物理存储位置来服务接收的数据访问请求。
15.根据权利要求14所述的计算设备,其中所述处理器还被配置为执行所述机器可执行代码,以进一步使所述处理器:当所述对象的所述子集中的所述一个对象中的所述物理存储位置被确定为无效时,将所述数据访问请求转发到用于服务的不同执行上下文中的文件***模块。
16.根据权利要求14所述的计算设备,其中所述对象的所述子集中的所述每个对象在所述层次结构的底部处并且包括逻辑地址到所述物理存储位置的映射,并且所述接收的数据访问请求是读取请求并且包括所述逻辑地址中的一个逻辑地址。
17.根据权利要求13所述的计算设备,其中所述数据包括存储在所述文件***中的文件块,并且所述层次结构与所述文件***的结构相对应。
18.根据权利要求13所述的计算设备,其中所述对象版本号基于所述位置数据库中的最新更新的时间,并且所述版本号中的一个或多个版本号是基于当前时间戳计数器而生成的。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/921,260 | 2018-03-14 | ||
US15/921,260 US10936540B2 (en) | 2018-03-14 | 2018-03-14 | Methods for accelerating storage media access and devices thereof |
PCT/US2019/022253 WO2019178345A1 (en) | 2018-03-14 | 2019-03-14 | Methods for accelerating storage media access and devices thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111868704A true CN111868704A (zh) | 2020-10-30 |
CN111868704B CN111868704B (zh) | 2022-03-22 |
Family
ID=65952149
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980018904.8A Active CN111868704B (zh) | 2018-03-14 | 2019-03-14 | 用于加速存储介质访问的方法及其设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10936540B2 (zh) |
EP (1) | EP3765971A1 (zh) |
CN (1) | CN111868704B (zh) |
WO (1) | WO2019178345A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11928228B2 (en) * | 2020-09-25 | 2024-03-12 | EMC IP Holding Company LLC | Facilitating an object protocol based access of data within a multiprotocol environment |
DE102022115445B4 (de) | 2022-06-21 | 2024-07-04 | Ist Innuscreen Gmbh | Verfahren und kit zur manuellen und automatisierten probenvorbereitung von long-read-sequenzierungen |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101154234A (zh) * | 2006-09-26 | 2008-04-02 | 国际商业机器公司 | 用于管理数据版本的***和方法 |
CN101162469A (zh) * | 2007-11-09 | 2008-04-16 | 清华大学 | 基于快照的细粒度文件与目录版本管理方法 |
US20090271412A1 (en) * | 2008-04-29 | 2009-10-29 | Maxiscale, Inc. | Peer-to-Peer Redundant File Server System and Methods |
CN105554044A (zh) * | 2014-10-28 | 2016-05-04 | 国际商业机器公司 | 在本地对象存储节点中同步对象的方法及装置 |
CN106570065A (zh) * | 2016-10-10 | 2017-04-19 | 北京金堤科技有限公司 | 验证数据库中文件的时间戳是否伪造的方法和*** |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7409546B2 (en) * | 1999-10-20 | 2008-08-05 | Tivo Inc. | Cryptographically signed filesystem |
US7617292B2 (en) * | 2001-06-05 | 2009-11-10 | Silicon Graphics International | Multi-class heterogeneous clients in a clustered filesystem |
US8832154B1 (en) | 2009-12-08 | 2014-09-09 | Netapp, Inc. | Object location service for network-based content repository |
WO2013192198A2 (en) * | 2012-06-18 | 2013-12-27 | Actifio, Inc. | Enhanced data management virtualization system |
US9021452B2 (en) * | 2012-12-27 | 2015-04-28 | Commvault Systems, Inc. | Automatic identification of storage requirements, such as for use in selling data storage management solutions |
US20150142750A1 (en) * | 2013-11-18 | 2015-05-21 | Actifio, Inc. | Data management virtualization |
US9753796B2 (en) * | 2013-12-06 | 2017-09-05 | Lookout, Inc. | Distributed monitoring, evaluation, and response for multiple devices |
US20150161194A1 (en) * | 2013-12-06 | 2015-06-11 | Actifio, Inc. | System and method for rapid estimation of data similarity |
US10122747B2 (en) * | 2013-12-06 | 2018-11-06 | Lookout, Inc. | Response generation after distributed monitoring and evaluation of multiple devices |
US10540384B2 (en) * | 2017-01-06 | 2020-01-21 | Oracle International Corporation | Compression and secure, end-to-end encrypted, ZFS cloud storage |
-
2018
- 2018-03-14 US US15/921,260 patent/US10936540B2/en active Active
-
2019
- 2019-03-14 WO PCT/US2019/022253 patent/WO2019178345A1/en unknown
- 2019-03-14 EP EP19713998.3A patent/EP3765971A1/en active Pending
- 2019-03-14 CN CN201980018904.8A patent/CN111868704B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101154234A (zh) * | 2006-09-26 | 2008-04-02 | 国际商业机器公司 | 用于管理数据版本的***和方法 |
CN101162469A (zh) * | 2007-11-09 | 2008-04-16 | 清华大学 | 基于快照的细粒度文件与目录版本管理方法 |
US20090271412A1 (en) * | 2008-04-29 | 2009-10-29 | Maxiscale, Inc. | Peer-to-Peer Redundant File Server System and Methods |
CN105554044A (zh) * | 2014-10-28 | 2016-05-04 | 国际商业机器公司 | 在本地对象存储节点中同步对象的方法及装置 |
CN106570065A (zh) * | 2016-10-10 | 2017-04-19 | 北京金堤科技有限公司 | 验证数据库中文件的时间戳是否伪造的方法和*** |
Non-Patent Citations (1)
Title |
---|
S.A.BRANDT ET AL: "Efficient metadata management in large distributed storage systems", 《PROCEEDINGS OF 20TH IEEE/11TH NASA GODDARD CONFERENCE ON MASS STORAGE SYSTEMS AND TECHNOLOGIES (MSST 2003)》 * |
Also Published As
Publication number | Publication date |
---|---|
EP3765971A1 (en) | 2021-01-20 |
CN111868704B (zh) | 2022-03-22 |
US10936540B2 (en) | 2021-03-02 |
US20190286717A1 (en) | 2019-09-19 |
WO2019178345A1 (en) | 2019-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10459649B2 (en) | Host side deduplication | |
US10769024B2 (en) | Incremental transfer with unused data block reclamation | |
US11010078B2 (en) | Inline deduplication | |
US11640356B2 (en) | Methods for managing storage operations for multiple hosts coupled to dual-port solid-state disks and devices thereof | |
US20210342082A1 (en) | Asynchronous semi-inline deduplication | |
US11880578B2 (en) | Composite aggregate architecture | |
US11709603B2 (en) | Multi-tier write allocation | |
US10031682B1 (en) | Methods for improved data store migrations and devices thereof | |
US11487723B2 (en) | Object and sequence number management | |
EP4139781A1 (en) | Persistent memory architecture | |
CN111868704B (zh) | 用于加速存储介质访问的方法及其设备 | |
US11943314B2 (en) | Cache retrieval based on tiered data |
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 |