CN112236753A - 使用基于索引节点编号的依赖图更快地重放元数据和数据操作 - Google Patents
使用基于索引节点编号的依赖图更快地重放元数据和数据操作 Download PDFInfo
- Publication number
- CN112236753A CN112236753A CN201980037905.7A CN201980037905A CN112236753A CN 112236753 A CN112236753 A CN 112236753A CN 201980037905 A CN201980037905 A CN 201980037905A CN 112236753 A CN112236753 A CN 112236753A
- Authority
- CN
- China
- Prior art keywords
- operations
- metadata
- file system
- execution
- target file
- 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
Links
- 238000003860 storage Methods 0.000 claims abstract description 145
- 238000000034 method Methods 0.000 claims abstract description 53
- 230000001419 dependent effect Effects 0.000 claims abstract description 15
- 230000002085 persistent effect Effects 0.000 abstract description 4
- 238000011010 flushing procedure Methods 0.000 abstract 1
- 238000013500 data storage Methods 0.000 description 59
- 230000010076 replication Effects 0.000 description 13
- 230000008569 process Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 239000004744 fabric Substances 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000002776 aggregation Effects 0.000 description 4
- 238000004220 aggregation Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000012706 support-vector machine Methods 0.000 description 4
- 238000013523 data management Methods 0.000 description 3
- 239000000835 fiber Substances 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000012384 transportation and delivery Methods 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 241000723811 Soybean mosaic virus Species 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
- G06F11/2064—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring while ensuring consistency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
- G06F11/2071—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using a plurality of controllers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
- G06F11/2082—Data synchronisation
-
- 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
- G06F16/152—File search processing using file content signatures, e.g. hash values
-
- 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
- G06F16/166—File name conversion
-
- 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/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- 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/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
- G06F16/183—Provision of network file services by network file servers, e.g. by using NFS, CIFS
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Library & Information Science (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供了用于元数据和数据操作的重放的技术。在操作的初始执行期间,由每个操作的执行修改的对象的标识符被标识并与操作相关联地被存储。当操作将被重放(例如,再次执行,诸如作为复制操作的一部分,或者作为将内容从高速缓存冲刷到持久性存储装置的一部分)时,标识符被评估以确定哪些操作相对于彼此是独立的,以及哪些操作相对于彼此是依赖的。以这种方式,独立的操作并行地执行,并且依赖的操作相对于该依赖的操作所依赖的操作串行地执行。
Description
相关申请
本申请要求于2018年4月4日提交的标题为“FASTER REPLAY OF METADATA ANDDATA OPERATIONS USING INODE NUMBER BASED DEPENDENCY GRAPH(使用基于索引节点编号的依赖图更快地重放元数据和数据操作)”的美国非临时专利申请号15/945,178的优先权,其全部内容通过引用并入本文。
背景技术
计算系统,诸如客户端设备、存储环境、服务器、分布式网络或者云计算环境,处理数据操作和元数据操作。数据操作包括从对象(诸如文件)读取数据的读取操作,和将数据写入对象的写操作。元数据操作包括其他类型的操作,诸如创建操作、链接(link)操作、未链接(unlink)操作、设置属性操作、重命名操作、扩展大小操作等。这些操作由计算系统的文件系统以特定的顺序执行,并且因此对象由所执行的操作以特定的顺序修改。
操作可以被重放(例如,再次执行)的两种情形是在系统应急(system panic)之后,从非易失性随机存取存储器(NVRAM)到存储设备的操作的复制和操作的重放。在一个示例中,计算设备的数据被复制到第二计算设备,诸如由计算设备托管的主卷(primaryvolume)之内的数据被复制到由第二计算设备托管的次卷(secondary volume)。特别地,计算系统可以在主卷上本地地实现传入的操作,并且可以将传入的操作复制为传输到第二计算设备用于重放(例如,用于在次卷上执行)的复制的操作。因为次卷的状态应当与主卷的状态一致(例如,相同的数据、文件结构等),所以传入的操作之前局部地实现的顺序(例如,对象由操作修改的顺序)应当在第二计算设备处被保存。这可以通过根据操作之前被执行的顺序向操作分配序列号,并且然后根据序列号串行地执行复制的操作。否则,次卷将与主卷不一致。
在另一示例中,传入的操作在NVRAM之上执行,并被使用节点的非易失性日志(NVLog)来跟踪。当重放触发事件发生(例如,节点应急、节点被高可用性伙伴节点接管、节点开机等)时,在NVLog内被跟踪的操作被重放。操作必须以相同的顺序重放以确保一致性。
序列号用以强制操作的重放顺序。序列号和某些规则被用于按照与由操作的初始执行原始地修改的对象的状态一致的方式,来重放操作。在一些实例中,当数据操作彼此独立(例如,到文件1的写操作和到文件2的写操作)时,数据操作可以被并行地执行,而依赖的数据操作被串行地执行(例如,到文件1的范围1的第一写操作,以及到与范围1重叠的文件1的范围2的第二写操作)。然而,当前的重放技术具有技术上的局限:即不能够确定元数据操作相对于其他操作是依赖的还是独立的。因此,元数据操作串行地执行,并与写操作是互斥的。强制元数据操作串行地执行以便达成一致性导致计算系统的降级操作,这是因为客户端延时显著地增加、用以重放操作的时间和计算资源增加等。在一个示例中,独立地或串行地重放操作的判定可以在卷级别被执行,并且因此指向两个不同的卷的操作已经被视为是彼此独立的。
附图说明
图1是图示可以在其中实现本发明的实施例的示例聚类的(clustered)网络的组件框图。
图2是图示可以在其中实现本发明的实施例的示例数据存储系统的组件框图。
图3是图示用于重放元数据和数据操作的示例方法的流程图。
图4是图示用于重放元数据和数据操作的示例系统的组件框图。
图5是图示用于将元数据和数据操作重放为复制操作的一部分的示例系统的组件框图。
图6是可以在其中实现本发明的实施例的计算机可读介质的示例。
图7是可以在其中实现本发明的实施例的示例计算环境。
具体实施方式
现在参考附图描述所要求保护的主题的一些示例,其中相同的附图标记一般用于始终指代相同的元素。在下面的描述中,出于说明的目的,阐述了大量特定的细节以便提供对所要求保护的主题的理解。然而,可以明显的是,所要求保护的主题可以在无需这些特定的细节的情况下被实践。该详细描述中的任何内容都不被视为现有技术。
本文中提供了用于元数据和数据操作的重放的一种或多种技术和/或一个或多个计算设备。这种重放技术给深深植根于计算技术中的技术性的问题提供了技术方案,该技术方案是关于如何标识可以并行地重放的独立操作和必须串行地重放的依赖操作。常规的重放技术不能确定元数据操作相对于其他操作是独立的还是依赖的,并且因此被串行地执行,并与写操作是互斥的。这显著地增加了重放操作的时间,其可以影响客户端延时和对数据的可访问性。
相应地,通过跟踪哪些对象(如,文件、索引节点(inode)、目录等)受到元数据操作的初始执行影响(例如,修改),这种重放技术显著地比常规的重放技术提供得更多。因此,当元数据操作被重放时,该元数据操作可以潜在地与不影响相同对象的其他操作并行地执行。以这种方法,操作可以按照提供数据一致性、并且降低延时和否则将通过仅串行地重放元数据操作而被浪费的资源使用的方式被重放。
为了提供对元数据和数据操作的重放,图1图示了聚类的网络环境100或网络存储环境的实施例。然而,可以理解,本文中描述的技术等可以在聚类的网络环境100、非集群(non-cluster)网络环境、和/或各种其他计算环境(诸如台式计算环境)内被实现。即,包括所附权利要求的范围的本公开不旨在被本文中提供的示例所限制。将理解,关于在前面的附图中讨论的相同的或者相似的组件、元素、特征、项、模块等在较后的附图中被图示,对前述内容的相似的(例如,冗余的)讨论可以在描述随后的附图时被省略(例如,出于简易性和容易理解的目的)。
图1是图示可以实现本文中描述的技术和/或系统的至少一些实施例的聚类的网络环境100的框图。聚类的网络环境100包括通过集群结构106被耦合的数据存储系统102和104,集群结构(cluster fabric)106诸如计算网络,该计算网络被体现为私用无线带宽、光纤通道(FC)或者支持数据存储系统102和104(以及例如,其中的一个或多个模块、组件等,诸如,节点116和118)之间的通信的以太网络。将理解,尽管图1中图示了两个数据存储系统102和104,以及两个节点106和118,但是任何合适数目的这样的组件被考虑。在一个示例中,节点116、118包括向客户端设备(诸如主机设备108、110)提供对被存储在数据存储设备128、130内的数据的访问的存储控制器(例如,节点116可以包括主存储控制器或者本地存储控制器,并且节点118可以包括次存储控制器或者远程存储控制器)。类似地,除非本文另有明确规定,否则上述对本文中提及和/或在附图中图示的其他模块、元素、特征、项等同样适用。即,本文中公开的组件、模块、元素、特征、项等的特定数目不旨在被以限制性的方式解释。
还将理解,聚类的网络环境不限于任何特定的地理区域并且可以被本地地和/或远程地聚类。因此,在一个实施例中,聚类的网络可以分布在多个存储系统之上和/或位于多个地理位置中;而在另一实施例中,聚类的网络可以包括驻留在相同的地理位置中(例如,在数据存储设备的单个现场机架中)的数据存储系统(例如,102、104)。
在图示的示例中,一个或多个主机设备108、110(其可以包括,例如,客户端设备、个人计算机(PC)、用于存储的计算设备(例如,存储服务器)、以及其他计算机或者外围设备(例如,打印机))通过存储网络连接112、114被耦合到相应的数据存储系统102、104。网络连接可以包括局域网(LAN)或者广域网(WAN),例如,其利用网络附加存储(NAS)协议(诸如通用互联网文件系统(CIFS)协议或者网络文件系统(NFS)协议)以交换数据分组、存储区域网络(SAN)协议(诸如小型计算机系统接口(SCSI)或者光纤通道协议(FCP))、对象协议(诸如S3)等。说明性地,主机设备108、110可以是运行应用的通用计算机,并且可以为了信息的交换而使用客户端/服务器模型与数据存储系统102、104交互。即,主机设备可以从数据存储系统请求数据(如,由被配置为处理I/O命令的网络存储控件管理的存储设备上的数据,该I/O命令由主机设备发出用于存储设备),并且数据存储系统可以经由一个或多个存储网络连接112、114,向主机设备返回请求的结果。
聚类的数据存储系统102、104上的节点116、118可以包括网络或者被互连为集群的主机节点,以例如,诸如向具有远程位置、云存储(例如,存储端点可以被存储在数据云内)等的企业提供数据存储和管理服务。聚类的网络环境100中的这样的节点可以是被附加到网络的设备,例如,作为连接点、再分配点或者通信端点。节点可以能够在网络通信信道之上发送、接收、和/或转发信息,并且可以包括满足这些标准中的任何或者所有标准的任何设备。节点的一个示例可以是被附加到网络的数据存储和管理服务器,其中服务器可以包括通用计算机或者被特别地配置为在数据存储和管理系统中作为服务器操作的计算设备。
在一个示例中,诸如节点116、118的节点的第一集群(例如,被配置为提供对第一存储聚合(storage aggregate)的访问的第一组存储控制器,第一存储聚合包括一个或多个存储设备的第一逻辑分类(grouping))可以位于第一存储站点上。节点的第二集群(未示出)可以位于第二存储站点处(例如,被配置为提供对第二存储聚合的访问的第二组存储控制器,第二存储聚合包括一个或多个存储设备的第二逻辑分类)。节点的第一集群和节点的第二集群可以根据灾难恢复配置而被配置,其中,在灾难出现在包括节点的灾难集群的灾难存储站点处的事件中,节点的幸存的集群提供对节点的灾难集群的存储设备的转换访问(例如,在灾难发生在第二存储站点处的事件中,节点的第一集群向客户端设备提供对第二存储聚合的存储设备的转换数据访问)。
如聚类的网络环境100中所示,节点116、118可以包括各种功能性的组件,这些功能性的组件协作以为集群提供分布式的存储架构。例如,节点可以包括网络模块120、122和磁盘模块124、126。网络模块120、122可以被配置为允许节点116、118(例如,网络存储控制器)通过存储网络连接112、114与主机设备108、110连接,例如,允许主机设备108、110访问被存储在分布式存储系统中的数据。此外,网络模块120、122可以通过集群结构106提供与一个或多个其他组件的连接。例如,在图1中,节点116的网络模块120可以通过以下访问第二数据存储设备:通过节点118的磁盘模块126发送请求。
磁盘模块124、126可以被配置为将一个或多个数据存储设备128、130(诸如磁盘或磁盘阵列、闪速存储器、或者某种其他形式的数据存储装置)连接到节点116、118。节点116、118可以通过集群结构106互连,例如,允许集群中相应的节点访问被连接到集群中的不同节点的数据存储设备128、130上的数据。磁盘模块124、126经常根据SAN协议(例如,诸如SCSI或FCP)与数据存储设备128、130通信。因此,如从节点116、118上的操作系统所见,数据存储设备128、130可以表现为被本地地附加到操作系统。以这种方式,不同的节点116、118等可以通过操作系统访问数据块,而不是明确地请求抽象文件。
应理解,虽然聚类的网络环境100图示了相等数目的网络和磁盘模块,但是其他实施例可以包括不同数目的这些模块。例如,可以有多个在集群中互连的网络和磁盘模块,在网络和磁盘模块之间不具有一对一的对应关系。即,不同的节点可以具有不同数目的网络和磁盘模块,并且相同的节点可以具有与磁盘模块不同数目的网络模块。
此外,主机设备108、110可以通过存储联网连接112、114与集群中的节点116、118联网。作为示例,被联网到集群的相应的主机设备108、110可以请求集群中的节点116、118的服务(例如,以数据分组的形式交换信息),并且节点116、118可以向主机设备108、110返回所请求的服务的结果。在一个实施例中,主机设备108、110可以与驻留在数据存储系统102、104中的节点116、118(例如,网络主机)中的网络模块120、122交换信息。
在一个实施例中,数据存储设备128、130包括卷132,例如,该卷132是将信息存储到磁盘驱动器或磁盘阵列或者其他存储装置(例如,闪存)上作为针对数据的文件系统的实现。在一个示例中,磁盘阵列可以包括所有传统的硬盘驱动器、所有的闪存驱动器、或者传统的硬盘驱动器和闪存驱动器的组合。例如,卷可以跨越磁盘的部分、磁盘的类集,或者多个磁盘的部分,并且通常定义存储系统中的磁盘空间上的文件存储的总体逻辑布置。在一个实施例中,卷可以包括作为驻留在该卷内的分层的目录结构中的一个或多个文件的所存储的数据。
卷通常以可以与特定存储系统相关联的格式被配置,并且相应的卷格式通常包括向卷提供功能性的特征,诸如为卷提供形成集群的能力。例如,在第一存储系统可以针对它们的卷利用第一格式的情况下,第二存储系统可以针对它们的卷利用第二格式。
在聚类的网络环境100中,主机设备108、110可以利用数据存储系统102、104来存储数据和从卷132取回数据。在这个实施例中,例如,主机设备108可以将数据分组发送给数据存储系统102内的节点116中的网络模块120。节点116可以使用磁盘模块124将数据转发给数据存储设备128,其中数据存储设备128包括卷132A。以这种方式,在这个示例中,主机设备可以访问卷132A,以使用通过存储网络连接112连接的数据存储系统102,来存储和/或取回数据。此外,在这个实施例中,主机设备110可以与数据存储系统104(例如,其可以远离数据存储系统102)内的节点118中的网络模块122交换数据。节点118可以使用磁盘模块126将数据转发给数据存储设备130,由此访问与数据存储设备130相关联的卷132B。
可以理解,元数据和数据操作的重放可以在聚类的网络环境100内实现。在一个示例中,操作可以在节点116处被执行并且在节点118处被重放。可以理解,元数据和数据操作的重放可以针对任何类型的计算环境被实现和/或在任何类型的计算环境之间被实现,并且可以在物理设备(例如,节点116、节点118、台式计算机、平板电脑、膝上型电脑、可穿戴设备、移动设备、存储设备、服务器等)和/或云计算环境(例如,远离聚类的网络环境110)之间是可转移的。
图2是数据存储系统200(例如,图1中的102、104)的图示性的示例,其提供了可以实现本文中描述的一个或多个技术和/或系统的组件的一个实施例的进一步的细节。数据存储系统200包括节点202(例如,图1中的节点116、118)和数据存储设备234(例如,图1中的数据存储设备128、130)。例如,节点202可以是通用计算机,或者被特别地配置成作为存储服务器进行操作的某种其他计算设备。主机设备205(例如,图1中的108、110)可以在网络216之上被连接到节点202,例如,以提供对被存储在数据存储设备234上的文件和/或其他数据的访问。在一个示例中,节点202包括存储控制器,该存储控制器向客户端设备(诸如主机设备205)提供对被存储在数据存储设备234内的数据的访问。
数据存储设备234可以包括大容量存储设备,诸如磁盘阵列218、22、222的磁盘224、226、228。将理解,本文中描述的技术和系统不限于示例实施例。例如,磁盘224、226、228可以包括任何类型的大容量存储设备,包括但不限于磁盘驱动器、闪速存储器和被适配以存储信息的任何其他类似的介质,信息包括,例如数据(D)和奇偶校验(P)信息。
节点202包括通过系统总线242互连的一个或多个处理器204、存储器206、网络适配器210、集群存取适配器212、以及存储适配器214。数据存储系统200还包括被安装在节点202的存储器206中的操作系统208,该操作系统208可以,例如实现独立(或廉价的)磁盘冗余阵列(RAID)优化技术以优化阵列中的故障磁盘的数据的重建过程。
操作系统208还可以管理针对数据存储系统的通信,以及可以在聚类的网络中的其他数据存储系统之间的通信,该聚类的网络诸如被附加到集群结构215(例如,图1中的106)。因此,诸如网络存储控制器的节点202可以响应于主机设备请求,以根据这些主机设备请求管理数据存储设备234(例如,或附加的聚类的设备)上的数据。操作系统208可以经常在数据存储系统200上建立一个或多个文件系统,其中文件系统可以包括软件代码和数据结构,例如,该软件代码和数据结构实现文件和目录的持久性的分层的命名空间。作为示例,当新的数据存储设备(未示出)被添加到聚类的网络系统时,操作系统208被通知在已存在的目录树中,与新的数据存储设备相关联的新的文件将被存储在何处。这经常被称为“挂载(mounting)”文件系统。
在示例数据存储系统200中,存储器206可以包括由处理器204和适配器210、212、214可寻址的存储位置,用于存储有关的软件应用代码和数据结构。例如,处理器204和适配器210、212、214可以包括处理元件和/或逻辑电路,该处理元件和/或逻辑电路被配置为执行软件代码和操纵数据结构。其各部分通常驻留在存储器206中并由处理元件可执行的操作系统208,通过调用支持由存储系统实现的文件服务的存储操作等,来功能性地组织存储系统。对本领域技术人员将明显的是,其他处理和存储器机制(包括各种计算机可读介质)可以用于存储和/或执行属于本文中描述的技术的应用指令。例如,操作系统还可以利用一个或多个控制文件(未示出)协助虚拟机的供应。
网络适配器210包括在网络216上将数据存储系统200连接到主机设备205所需的机械的、电的和信令电路,其可以包括点到点连接或共享介质(诸如局域网)等。主机设备205(例如,图1中的108、110)可以是被配置为执行应用的通用计算机。如上文所描述,主机设备205可以根据信息递送的客户端/主机模型,与数据存储系统200交互。
存储适配器214与在节点202上执行的操作系统208协作,以访问由主机设备205请求的信息(例如,访问由网络存储控制器管理的存储设备上的数据)。信息可以被存储在任何类型的可写入介质的附加的阵列上,诸如磁盘驱动器、闪速存储器、和/或被适配以存储信息的任何其他类似的介质。在示例数据存储系统200中,信息可以被存储在磁盘224、226、228上的数据块中。存储适配器241可以包括输入/输出(I/O)接口电路,其在I/O互连布置之上被耦合到磁盘,诸如存储区域网络(SAN)协议(例如,小型计算机系统接口(SCSI)、iSCSI、hyperSCSI、光纤通道协议(FCP))。信息由存储适配器214取回,并且如果必要,则在被在系统总线242之上转发给网络适配器210(和/或,如果发送到集群中的另一节点,集群存取适配器212)之前,该信息由一个或多个处理器204(或存储适配器214自身)处理,其中信息被格式化成数据分组,并且被在网络216之上返回给主机设备205(和/或返回给在集群结构215之上附加到集群的另一节点)。
在一个实施例中,磁盘阵列218、220、222上的信息的存储可以被实现为一个或多个存储卷230、232,其由磁盘224、226、228的集群构成,该集群定义了磁盘空间的总体逻辑布置。包括一个或多个卷的磁盘224、226、228通常被组织为RAID的一个或多个组。作为示例,卷230包括磁盘阵列218和220的聚合,其包括磁盘224和226的集群。
在一个实施例中,为了支持对磁盘224、226、228的访问,操作系统208可以实现文件系统(例如,任意位置写入文件系统),其逻辑性地将信息组织为磁盘上的目录和文件的分层结构。在这个实施例中,相应的文件可以被实现为被配置为存储信息的磁盘块的集合,而目录可以被实现为特殊地格式化的文件,关于其他文件和目录的信息被存储在其中。
无论这个数据存储系统200内的底层物理配置为何,数据可以在物理和/或虚拟卷内被存储为文件,其可以与相应的卷标识符相关联,诸如在一个示例中可以是32位长的文件系统标识符(FSID)。
物理卷对应于物理存储设备的至少一部分,物理存储设备的该至少一部分的地址、可寻址的空间、位置等不改变,诸如一个或多个数据存储设备234中的至少一些数据存储设备(例如,独立(或廉价的)磁盘冗余阵列(RAID系统))。通常,物理卷的位置不改变,原因在于用于访问它的(多个)地址(的范围)一般保持恒定。
相比之下,虚拟卷被存储在不同的物理存储设备的全异的部分的聚合之上。虚拟卷可以是不同的物理存储设备位置的不同的可用部分的类集,诸如来自磁盘224、226和/或228中的每个磁盘的一些可用空间。将理解,由于虚拟卷不与任何一个特定的存储设备“绑定”,因此可以将虚拟卷说成包括抽象化或者虚拟化的层,这允许它被调整大小,和/或在某种程度上是灵活的。
此外,虚拟卷可以包括一个或多个逻辑单元编号(LUN)238、目录236、Qtree 235、以及文件240。例如,这些特征(更特别是LUNS),允许其内存储了数据的全异的存储器位置被标识,并且被分类为数据存储单元,等等。这样,LUN 238可以被表征为构成虚拟磁盘或者驱动器,在该虚拟磁盘或者驱动器上,虚拟卷内的数据被存储在聚合内。例如,LUN经常被称为虚拟驱动器,使得它们模仿来自通用计算机的硬盘驱动器,而它们实际上包括被存储在卷的各种部分中的数据块。
在一个实施例中,一个或多个数据存储设备234可以具有一个或多个物理端口,其中每个物理端口可以被分配目标地址(例如,SCSI目标地址)。为了表示被存储在数据存储设备上的相应的卷,数据存储设备上的目标地址可以被用以标识一个或多个LUN 238。因此,例如,当节点202通过存储适配器214连接到卷230、232时,节点202和该卷之下的一个或多个LUN 238之间的连接被创建。
在一个实施例中,相应的目标地址可以标识多个LUN,使得目标地址可以表示多个卷。I/O接口(例如,其可以实现为存储适配器214中的电路和/或软件、或者实现为驻留在存储器206中并且由处理器204执行的可执行代码)可以通过使用标识一个或多个LUN 238的一个或多个地址而连接到卷230。
可以理解,元数据和数据操作的重放可以针对数据存储系统200实现。在一个示例中,节点202可以在NVRAM上执行操作,并且重放这些操作以将NVRAM冲刷到存储装置。可以理解,元数据和数据操作的重放可以针对任何类型的计算环境被实现、和/或在其之间被实现,并且可以在物理设备(例如,节点202、主机设备205、台式计算机、平板电脑、膝上型电脑、可穿戴设备、移动设备、存储设备、服务器等)和/或云计算环境(例如,远离节点202和/或主机设备205)之间是可转移的。
重放元数据和数据操作的一个实施例由图3的示例性方法300图示。第一计算环境(例如,客户端设备、服务器、云计算环境等)可以处理从对象(诸如文件、LUN和其他存储对象)读取数据和将数据写入对象的数据操作。第一计算环境还可以处理元数据操作,诸如创建对象、重命名对象、删除对象、为对象设置属性、和/或在对象(诸如文件、目录、索引节点、LUN、卷等)上执行其他操作的操作。第一计算环境可以包括第一文件系统,其在卷或者其他数据容器内存储数据,并且因此第一文件系统执行操作。
在302处,元数据操作的执行被跟踪以标识被元数据操作的执行修改的一组对象。一组对象可以包括被元数据操作修改的文件和/或目录索引节点。在一个示例中,创建对象元数据操作的执行被跟踪,以确定创建对象元数据操作修改父目录对象以及新对象(该新对象由创建对象元数据操作在父目录对象内创建)。因此,一组对象被标识为包括父目录对象和新对象。
在另一示例中,链接对象元数据操作的执行被跟踪,以确定该链接对象元数据操作修改索引节点对象(到该索引节点对象的新链接将被建立),以及托管新链接的新的父目录。因此,该组对象被标识为包括索引节点对象和新的父目录。在另一示例中,未链接对象元数据操作被跟踪,以确定未链接对象元数据操作修改索引节点对象(链接从该索引节点对象被移除)以及曾托管该链接的父目录。因此,该组对象被标识为包括索引节点对象和该父目录。
在另一示例中,重命名元数据操作的执行被跟踪,以确定重命名元数据操作修改第一目录(被重命名的文件曾被存储在该第一目录内)、第二目录(被重命名的文件将被存储到该第二目录中)、以及文件。因此,该组对象被标识为包括第一目录、第二目录、以及文件。如果第二目录包括具有与将被存储在第二目录内的文件相同的名称的第二文件,则重命名元数据操作的执行的跟踪将确定第二文件将被修改,因为重命名元数据操作用该文件覆写第二文件。因此,该组对象还可以包括第二文件。
在另一示例中,设置属性元数据操作的执行被跟踪,以确定该设置属性元数据操作修改对象,该对象的属性(例如,大小、所有权信息等)被设置属性元数据操作设置。因此,一组对象被标识为包括对象。以这种方式,元数据操作的执行被跟踪,以确定哪些对象被这样的元数据操作的执行改变。
在304处,一组对象的一组标识符被与元数据操作相关联地存储。一组标识符可以包括文件标识符、目录标识符和卷标识符。在一个示例中,一组标识符被存储在数据结构中。在另一示例中,一组标识符被存储在元数据操作的消息内,诸如在消息有效负载中的暂存区域(scratch area)(例如,消息可以包括元数据操作和暂存区域,其可以被存储在NVLog内用于稍后的重放,或者传输到第二计算设备用于作为复制方案的一部分的重放)。
在元数据操作执行的一个示例中,元数据操作由第一计算环境的元文件系统执行,诸如在源卷内的数据上。第一计算环境可以具有与第二计算环境的复制关系(例如,第二客户端设备、第二服务器、云环境内的不同的计算机或者不同的云环境等)。例如,源卷的数据可以被复制到由第二计算环境托管的目的地卷。通过复制由源文件系统在源卷上本地地执行的传入的操作,并且将复制的操作传输到第二计算环境,用于由第二计算环境的目的地文件系统在目的地卷上重放(例如,执行),复制可以发生。以这种方式,源数据操作可以被传输到第二计算环境用于在目的地卷上重放,诸如用于通过提供了半同步复制的快速切换引擎的执行。
在元数据操作执行的另一示例中,元数据操作可以在NVRAM内或者其他类型的高速缓存内的数据上执行,并且被日志记录在节点的NVLog内。NVLog用于跟踪操作的执行,这些操作尚未被冲刷到持久性存储装置以便冲刷到磁盘驱动器、而是替代以作为高速缓存技术的一部分在NVRAM内执行。当重放触发事件发生(例如,节点应急、节点被高可用性伙伴节点接管、节点开机等)时,在NVLog内被跟踪的操作被重放。
在306处,确定元数据操作将针对目标文件系统被重放。在元数据操作被日志记录到NVLog并且被针对NVRAM执行的一个示例中,基于重放触发事件的发生来确定从NVLog重放元数据操作以将NVRAM的内容冲刷到存储装置。重放触发事件对应于节点的应急后的NVLog重放,诸如当高可用性伙伴节点接管或者节点在应急之后重新启动时。
在另一示例中,其中元数据操作在由第一计算系统托管的源卷上被执行,并且被复制到第二计算环境用于在目的地卷上重放(执行),元数据操作的重放基于各种触发条件被触发。例如,第二计算环境对元数据操作的接收触发元数据操作的重放。在另一示例中,复制的操作可以被排队进复制队列,诸如通过为第二计算环境实现半同步重复的复制切换引擎。操作可以从复制队列中出列并被重放。
在308处,跟踪数据结构使用一组对象的一组标识符被查询,该组对象是由元数据操作的初始执行修改过的,以确定该元数据操作相对于已被调度(dispatch)到目标文件系统用于执行(重放)的未决的操作,是独立的还是依赖的。跟踪数据结构用于跟踪将被已调度的操作修改的对象的标识符,这些操作被诸如从NVLog或者复制队列调度到目标文件系统用于重放(执行)。如果一组标识符不匹配跟踪数据结构内的任何标识符,则元数据操作独立于已被调度到目标文件系统的未决的操作,并且因此将不修改被未决的操作修改的对象。相应地,在310处,元数据操作被调度到目标文件系统用于重放。以这种方式,元数据操作可以与未决的操作并行地执行,无需等待未决的操作首先完成。通过与其他操作并行地执行元数据操作,这显著地改进了重放的速度和资源的利用。在将元数据操作调度到目标文件系统时,一组标识符被填充到跟踪数据结构中,以指示一组对象将由元数据操作修改。
如果一组标识符内的至少一个标识符匹配跟踪数据结构内的至少一个标识符,则元数据操作依赖于已被调度到目标文件系统的一个或多个未决的操作,并且因此将修改将被一个或多个未决的操作修改的至少一个对象。相应地,在312处,元数据操作的重放被拒绝(withhold)。在一个示例中,元数据操作可以被重新排队并且在稍后被评估,诸如在阈值量的时间之后,以找出元数据操作是否可以被重放。在另一示例中,在未决的操作已经完成之后,元数据操作被串行地调度到目标文件系统用于重放。以这种方式,目的地卷将与源卷一致,因为对象在目的地卷中被以其在源卷中被修改的相同的顺序修改。
类似地,数据操作可以相对于已被调度给目标文件系统的未决的操作,并行地、或者串行地被重放。例如,确定数据操作将针对目标文件系统被重放(例如,数据操作可以被日志记录在NVLog内并且必须被从NVLog到存储装置重放,或者可以被排队在复制队列内用于在目的地卷上的执行)。数据操作被评估,以标识将由数据操作的重放修改的对象(例如,正被写入的文件)。跟踪数据结构被使用对象的标识符查询。如果标识符不匹配跟踪数据结构内的任何标识符,则数据操作被调度到目标文件系统用于重放。跟踪数据结构被用标识符填充,以指示对象将由被调度到目标文件系统用于重放的数据操作修改。例如,在未决的已调度的操作完成之后,数据操作被串行地调度到目标文件系统用于执行。
在一个示例中,其中一组操作将针对目标文件系统被重放,由一组操作在初始执行(例如,在NVRAM或者源卷上的执行)期间修改的对象的标识符和跟踪数据结构被用以标识依赖于彼此的操作和彼此独立的操作。以这种方式,依赖的操作被调度到目标文件系统,用于以依赖的操作被初始执行的顺序串行地执行。执行的顺序可以使用序列号来保存,该序列号在初始操作期间被分配给每个操作以指示每个操作执行的顺序。独立的操作被调度到目标文件系统用于并行执行。
图4图示了用于重放元数据和数据操作的系统400。计算设备可以包括用于高速缓存的NVRAM 402,诸如用于修改操作的高速缓存。特别地,操作(诸如写操作、元数据操作和/或其他类型的修改操作)被高速缓存在NVRAM 402内并被日志记录在NVLog内。以这种方式,操作在NVRAM 402上初始地执行。在重放触发事件(例如,在系统应急后的节点重新启动,或者由于系统应急,高可用性伙伴节点接管节点)发生时,高速缓存的操作被重放到存储装置(例如,冲刷到持久性存储装置)。
在初始地执行(例如,高速缓存)操作的一个示例中,在目录(1)中创建文件(1)的第一操作404被接收并且在NVRAM 402上执行。第一操作404的执行被跟踪,以确定文件(1)和目录(1)由第一操作404的执行修改。相应地,第一组标识符406被与第一操作404相关联地存储,第一组标识符406包括文件(1)标识符和目录(1)标识符。调整被存储在目录(2)内的文件(2)的大小的第二操作408被接收并且在NVRAM 402上执行。第二操作408的执行被跟踪,以确定文件(2)和目录(2)由第二操作408的执行修改。相应地,第二组标识符410被与第二操作408相关联地存储,第二组标识符410包括文件(2)标识符和目录(2)标识符。
在目录(3)中创建文件(3)的第三操作412被接收并且在NVRAM 402上执行。第三操作412的执行被跟踪,以确定文件(3)和目录(3)由第三操作412的执行修改。相应地,第三组标识符406被与第三操作412相关联地存储,第三组标识符406包括文件(3)标识符和目录(3)标识符。将数据写入目录(1)内的文件(1)的第四操作416被接收并且在NVRAM 402上执行。第四操作416的执行被跟踪,以确定文件(1)和目录(1)由第四操作416的执行修改。相应地,第四组标识符418被与第四操作416相关联地存储,第四组标识符418包括文件(1)标识符和目录(1)标识符。
将数据写入目录(3)内的文件(3)的第五操作420被接收并且在NVRAM 402上执行。第五操作420的执行被跟踪,以确定文件(3)和目录(3)由第五操作420的执行修改。相应地,第五组标识符422被与第五操作420相关联地存储,第五组标识符422包括文件(3)标识符和目录(3)标识符。将数据写入目录(2)内的已调整大小的文件(2)的第六操作424被接收并且在NVRAM 402上执行。第六操作424的执行被跟踪,以确定文件(2)和目录(2)由第六操作424的执行修改。相应地,第六组标识符426被与第六操作424相关联地存储,第六组标识符426包括文件(2)标识符和目录(2)标识符。
在由目标文件系统428重放操作以将NVRAM 402冲刷到存储设备430期间,一组标识符被评估以确定哪些操作可以被并行地重放/执行,以及哪些操作将相对于彼此被串行地重放/执行。例如,第一操作404、第二操作408和第三操作412彼此独立,因为在将由第一操作404、第二操作408和第三操作412修改的对象间不存在重叠。相应地,第一操作404、第二操作408和第三操作412可以相对于彼此并行地重放。
第四操作416依赖于第一操作404,并且因此第四操作416将被拒绝重放,直到第一操作404完成为止,因为第一操作404必须首先在文件(1)可以由第四操作416写入之前创建文件(1)。第六操作424依赖于第二操作408,并且因此第六操作424将被拒绝重放,直到第二操作408完成为止,因为第二操作408必须在第六操作424可以写入已调整大小的文件(2)之前首先调整文件(2)的大小。第五操作420依赖于第三操作412,并且因此第五操作420将被拒绝重放,直到第三操作412完成为止,因为第三操作412必须在文件(3)可以由第五操作420写入之前首先创建文件(3)。第四操作416、第五操作420和第六操作424彼此独立,因为在将由第四操作416、第五操作420和第六操作424修改的对象间不存在重叠。相应地,第四操作416、第五操作420和第六操作424可以相对于彼此并行地重放。以这种方式,操作被调度到目标文件系统428,以保存当操作在NVRAM 402上初始地执行时对象被修改的顺序的方式。以这种方式,存储设备430的状态(例如,存储了哪些数据、目录结构、对象的名称等)与NVRAM 402的状态一致。
图5图示了用于重放元数据和数据操作的系统500的示例。第一计算设备526可以具有与第二计算设备530的复制关系(例如,半同步的复制关系、同步的复制关系等)。例如,通过将在源卷上执行的传入的操作复制到第二计算设备530用于由目标文件系统524在目的地卷上执行,由第一计算设备526托管的源卷的数据可以被复制到由第二计算设备530托管的目的地卷。
在一个示例中,创建对象操作504由第一计算设备526在源卷上执行。该执行被跟踪以标识由创建对象操作504的执行修改的对象的一组标识符(1)506。链接对象操作508由第一计算设备526在源卷上执行。该执行被跟踪以标识由链接对象操作508的执行修改的对象的一组标识符(2)510。未链接对象操作512由第一计算设备526在源卷上执行。该执行被跟踪以标识由未链接对象操作512的执行修改的对象的一组标识符(3)514。重命名操作516由第一计算设备526在源卷上执行。该执行被跟踪以标识由重命名操作516的执行修改的对象的一组标识符(4)518。设置对象属性操作520由第一计算设备526在源卷上执行。该执行被跟踪以标识由设置属性操作520的执行修改的对象的一组标识符(5)522。
第一计算设备526复制操作,并且将所复制的操作和一组标识符传输528到第二计算设备530用于由目标文件系统524重放。一组标识符被评估以确定哪些操作可以相对于彼此并行地重放,以及哪些操作将相对于彼此串行地重放(确定哪些操作依赖于首先完成的其他操作)。以这种方式,一些操作可以被调度到目标文件系统524用于并行执行,而其他操作可以被调度到目标文件系统524用于串行执行。
又一实施例涉及包括处理器可执行指令的计算机可读介质,该处理器可执行指令被配置为实现本文中呈现的一种或多种技术。以这些方式设想的计算机可读介质或者计算机可读设备的一个示例实施例在图6中被图示,其中实现600包括计算机可读介质608,诸如可记录压缩盘(CD-R)、可记录数字通用盘(DVD-R)、闪存驱动器、硬盘驱动器的盘片等,计算机可读介质608编码有计算机可读数据606。该计算机可读数据606(诸如包括0或1中的至少一个的二进制数据)转而包括处理器可执行计算机指令604,其被配置为根据本文中阐述的一个或多个原理进行操作。在一些实施例中,处理器可执行计算机指令604被配置为执行方法602,例如,诸如图3的示例性方法300中的至少一些方法。在一些实施例中,处理器可执行计算机指令604被配置为实现系统,例如,诸如图4的示例性系统400中的至少一些系统和/或图5的示例性系统500中的至少一些系统。许多这样的计算机可读介质被设想为根据本文中呈现的技术进行操作。
图7是图示本文中描述的技术的一个实施例可以在其中实现的示例操作环境700的示意图。在一个示例中,本文中描述的技术可以在客户端设备728内实现,诸如膝上型电脑、平板电脑、个人计算机、移动设备、可穿戴设备等。在另一示例中,本文中描述的技术可以在存储控制器730内实现,诸如被配置为代表客户端设备728和/或其他客户端设备管理对数据的存储和访问的节点。在另一示例中,本文中描述的技术可以在分布式计算平台702内实现,诸如被配置为代表客户端设备728和/或其他客户端设备管理对数据的存储和访问的云计算环境(例如,云存储环境、多租户平台等)。
在又一示例中,本文中描述的技术中的至少一些技术跨客户端设备728、存储控制器730和分布式计算平台702中的一个或多个实现。例如,客户端设备728可以将操作在网络726之上传输到存储控制器730,用于由存储控制器730在存储装置上的实现,这些操作诸如用以读取数据和写入数据的数据操作以及元数据操作(例如,创建文件操作、重命名目录操作、调整大小操作、设置属性操作等)。存储控制器730可以在卷或者其他数据对象/结构内存储与操作相关联的数据,这些卷或者其他数据对象/结构被托管在本地地附加的存储装置、由通过网络726可访问的其他计算设备托管的远程存储装置、由分布式计算平台702提供的存储装置等之内。存储控制器730可以将数据和/或操作复制到其他计算设备,以使一个或多个复制品(诸如作为源存储卷的复制品被维护的目的地存储卷)被维护。这样的复制品可以用于灾难恢复和故障转移。
通过将数据传输到分布式计算平台702,存储控制器730可以在由分布式计算平台702托管的存储装置内存储数据或者其部分。在一个示例中,存储控制器730可以将频繁地被访问的数据本地地存储在本地地附加的存储装置中。较不频繁地被访问的数据可以被传输到分布式计算平台702以用于在数据存储层708内的存储。数据存储层708可以将数据存储在服务数据存储库720内,并且可以将特定于客户端的数据存储在被分配给这些客户端的客户端数据存储库内,诸如用以存储客户端(1)的数据的客户端(1)数据存储库722、以及存储客户端(N)的数据的客户端(N)数据存储库724。数据存储库可以是物理存储设备,或者可以被定义为逻辑的存储装置,诸如虚拟卷、LUN、或者可以被跨一个或多个物理存储设备定义的数据的其他逻辑组织。在另一示例中,存储控制器730将所有的客户端数据传输并且存储到分布式计算平台702。在又一示例中,在没有存储控制器730的使用的情况下,客户端设备728直接地将数据传输并且存储到分布式计算平台702。
对数据的存储和访问的管理可以由一个或多个存储虚拟机(SMV)或者其他的存储应用执行,该存储应用提供软件即服务(SaaS),诸如存储软件服务。在一个示例中,SVM可以被托管在客户端设备728内、存储控制器730内、或者分布式计算平台702内(诸如通过应用服务器层706)。在另一示例中,一个或多个SVM可以被跨客户端设备728、存储控制器730和分布式计算平台702中的一个或多个托管。
在分布式计算平台702的一个示例中,一个或多个SVM可以由应用服务器层706托管。例如,服务器(1)716被配置为托管用于执行应用(诸如存储应用)的SVM,这些应用管理客户端(1)数据存储库722内的客户端(1)的数据的存储。因此,在服务器(1)716上执行的SVM可以在网络726之上,从客户端设备728和/或存储控制器730接收数据和/或操作。SVM执行存储应用以处理操作和/或将数据存储在客户端(1)数据存储库722内。SVM可以在网络726之上,将响应传输回到客户端设备728和/或存储器控制器730,诸如成功消息或者错误消息。以这种方式,应用服务器层706可以托管SVM、服务、和/或使用服务器(1)716、服务器(N)718的其他存储应用等。
分布式计算平台702的用户接口层704可以向客户端设备728和/或存储控制器730提供对用户接口的访问,这些用户接口与数据的存储以及访问和/或由分布式计算平台702提供的其他服务相关联。在一个示例中,服务用户接口710可以从分布式计算平台702是可访问的,以用于访问由客户端和/或存储控制器订阅的服务,诸如数据复制服务、应用托管服务、数据安全性服务、人力资源服务、仓库跟踪服务、计费服务等。例如,客户端用户接口可以被提供给对应的客户端,诸如客户端(1)用户接口712、客户端(N)用户接口714等。客户端(1)可以通过客户端(1)用户接口712访问由客户端(1)订阅的各种服务和资源,诸如对web服务、开发环境、人力资源应用、仓库跟踪应用、和/或由应用服务器层706提供的其他服务和应用的访问,应用服务器层706可以使用被存储在数据存储层708内的数据。
客户端设备728和/或存储控制器730可以订阅由分布式计算平台702提供的一定类型和量的服务和资源。例如,客户端设备728可以建立订阅以具有对三个虚拟机的访问、一定量的存储、一定的类型/量的数据冗余度、一定的类型/量的数据安全性、一定的服务水平协定(SLA)和服务水平目标(SLO)、延时保证、带宽保证、用以执行或者托管某些应用的访问等。类似地,存储控制器730可以建立订阅以具有对分布式计算平台702的某些服务和资源的访问。
如所示出的,并入各种计算设备和/或被并入其中的各种客户端(诸如客户端设备728和存储控制器730)可以通过一个或多个网络(诸如网络726)与分布式计算平台702通信。例如,客户端可以并入至少部分地由计算设备中的一个或多个计算设备实现的客户端应用(例如,软件),或者被被并入其中。
合适的计算设备的示例包括个人计算机、服务器计算机、台式计算机、节点、存储服务器、存储控制器、膝上型计算机、笔记本计算机、平板计算机或个人电子助理(PDA)、智能电话、蜂窝电话、以及并入一个或多个计算设备组件(诸如一个或多个电子处理器、微处理器、中央处理单元(CPU)、或者控制器)的消费者电子设备。合适的网络的示例包括利用有线和/或无线通信技术的网络和根据任何合适的联网和/或通信协议操作的网络(例如,互联网)。在涉及客户支持服务的递送的用例中,所标注的计算设备表示客户支持递送过程的端点,即消费者的设备。
分布式计算平台702(诸如多租户业务数据处理平台或者云计算环境)可以包括多个处理层,其包括用户接口层704、应用服务器层706、以及数据存储层708。用户接口层704可以维护多个用户接口,其包括图形用户接口和/或基于web的接口。用户接口可以包括针对服务的服务用户接口710来为服务的客户端(例如,“租户”)提供对应用和数据的访问,以及已根据特定于用户的要求被专门化/定制的一个或多个用户接口,其可以经由一个或多个API被访问。
服务用户接口710可以包括组件,其使得租户能够管理在由分布式计算平台702提供的功能和能力中的租户的参与,诸如访问数据、引起特定的数据处理操作的执行等。每个处理层可以用一组计算机、虚拟化的计算环境(诸如存储虚拟机或者存储虚拟服务器)、和/或包括计算机服务器和处理器的计算机组件,并且可以如软件应用或者指令集的执行所确定的那样执行各种功能、方法、过程、或者操作。
数据存储层708可以包括一个或多个数据存储库,其可以包括服务数据存储库720以及一个或多个客户端数据存储库。每个客户端存储库可以包含特定于租户的数据,其被用作提供特定于租户的业务和存储服务或者功能(包括但不限于ERP、CRM、电子商务、人力资源管理、工资表、存储服务等)的范围。数据存储库可以用任何合适的数据存储技术实现,包括基于结构化查询语言(SQL)的关系型数据库管理系统(RDBMS)、由操作系统托管的文件系统、对象存储等。
根据本发明的实施例,分布式计算平台702可以是多租户和服务平台,多租户和服务平台由实体操作,以便向多个租户提供一组业务相关的应用、数据存储和功能性。这些应用和功能性可以包括业务用来管理它的操作的各个方面的那些应用和功能性。例如,应用和功能性可以包括提供对业务信息系统的基于web的访问,由此允许具有浏览器以及互联网或内联网连接的用户查看、录入、处理、或者修改某些类型的业务信息或者任何其他类型的信息。
在另一实施例中,所描述的方法和/或它们的等效物可以用计算机可执行指令实现。因此,在一个实施例中,非瞬态计算机可读/存储介质被配置为具有算法/可执行应用的所存储的计算机可执行指令,计算机可执行指令在由(多个)机器执行时,使该(多个)机器(和/或相关联的组件)执行方法。示例机器包括但不限于处理器、计算机、在云计算系统中操作的服务器、被配置在软件即服务(SaaS)架构中的服务器、智能电话等。在一个实施例中,计算设备用一个或多个可执行算法实现,该一个或多个可执行算法被配置为执行所公开的方法中的任何方法。
将理解,本文所描述的过程、架构和/或过程可以在硬件、固件和/或软件中实现。也将理解,本文中阐述的条款可以应用于任何类型的专用计算机(例如,文件主机、存储服务器和/或存储服务装备)和/或通用计算机,包括独立计算机或其部分,体现为或包括存储系统。此外,本文的教导可以被配置到各种存储系统架构,包括但不限于,网络附加的存储环境和/或存储区域网络以及直接附加到客户端或主机计算机的磁盘组装。存储系统应当因此被广义地理解为,除了被配置为执行存储功能以及与其他设备或系统相关联的任何子系统之外,还包括这些布置。
在一些实施例中,本公开中所描述和/或说明的方法可以整体地或者部分地在计算机可读介质上实现。计算机可读介质可以包括被配置为实现本文中呈现的方法中的一种或多种方法的计算机可读指令,并且可以包括存储该数据的任何机制,该数据此后可以由计算机系统读取。计算机可读介质的示例包括(硬盘)驱动器(例如,经由网络附加存储(NAS)可访问)、存储区域网络(SAN)、易失性和非易失性存储器(诸如只读存储器(ROM)、随机存取存储器(RAM)、电可擦除可编程只读存储器(EEPROM)和/或闪速存储器)、压缩盘只读存储器(CD-ROM)、CD-R、可复写压缩盘(CD-RW)、DVD、盒式磁带、磁带、磁盘存储装置、光学或非光学数据存储设备和/或可以用以存储数据的任何其他介质。
尽管已经用特定于结构化特征和/或方法动作的语言描述了主题,但是应理解,权利要求书中限定的主题不一定限于上文描述的特定特征或动作。而是,上文描述的特定特征和动作作为实现权利要求中的至少一些权利要求的示例形式而被公开。
本文提供了实施例的各种操作。这些操作中的一些或所有操作被描述的顺序不应被解释为暗示了这些操作必须依赖于顺序。给定本描述的益处,备选的排序将被理解。此外,将理解,不是所有的操作都必须出现在本文所提供的每个实施例中。同样,将理解,在一些实施例中,不是所有的操作都是必须的。
此外,使用生产软件、固件、硬件、或其任何组合的标准应用或工程技术,所要求保护的主题被实现为方法、装置、或者制品,以控制计算机实现所公开的主题。如本文所使用的术语“制品”旨在包含从任何计算机可读设备、载体、或介质可访问的计算机应用。当然,可以对该配置做出许多修改,而不背离所要求保护的主题的范围或精神。
本申请使用的术语“组件”、“模块”、“系统”、“接口”等一般旨在指代与计算机相关的实体,或者硬件、硬件和软件的组合、软件、或者执行中的软件。例如,组件包括运行在处理器上的过程、处理器、对象、可执行文件、执行线程、应用、或者计算机。通过说明,运行在控制器上的应用和控制器都可以是组件。一个或多个驻留在过程或执行线程以及组件内的组件可以被位于一个计算机上或分布在两个或更多个计算机之间。
此外,“示例性的”在本文中被用来表示用作示例、实例、图示等,并且不必须是有益的。本申请中使用的“或”旨在表示包含性的“或”而不是排他性的“或”。另外,除非另有指定或者上下文中清楚地指向单数形式,否则“一(a)”和“一个(an)”一般被解释成表示“一个或多个”。同样,A和B中的至少一个等一般表示A或B、和/或A和B两者。此外,关于“包括(include)”、“具有(having)”、“有(has)”、“具有(with)”或其变体的使用程度,这样的术语旨在是包含性的,以类似于术语“包括(comprising)”的方式。
可以对本公开做出许多修改,而不背离所要求保护的主题的范围或精神。除非另有指定,否则“第一”、“第二”等不旨在暗示时间的方面、空间的方面、或排序等。确切地说,这样的术语仅作为用于特征、元素、项等的标识符、名称等使用。例如,信息的第一集合和信息的第二集合,一般对应于信息的集合A和信息的集合B、或者信息的两个不同的集合或两个同样的集合、或者同一信息的集合。
同样,尽管已经关于一个或多个实现示出和描述了本公开,但是基于对本规范和附图的阅读和理解,其他本领域技术人员可以想到相等的更改和修改。本公开包括所有这样的修改和更改,并且仅由下面的权利要求的范围限制。特别是关于上文描述的组件(如,元素、资源等)执行的各种功能,除非另有指示,否则用于描述这样的组件的术语旨在对应于执行所描述组件的规定的功能(例如,功能性地相等的)的组件,即使其与所公开的结构不是结构性地相等的。另外,尽管已经关于多个实现中的仅一个实现公开了本公开的特定特征,但是如可以针对任何给定的或者特定应用所期望的以及有益的,这样的特征可以与其他实现的一个或多个其他特征组合。
Claims (20)
1.一种方法,包括:
跟踪元数据操作的执行,以标识由所述元数据操作的所述执行修改的一组对象;
与所述元数据操作相关联地存储所述一组对象的一组标识符;
确定所述元数据操作将针对目标文件系统而被重放;
使用所述一组标识符来查询跟踪数据结构,所述跟踪数据结构用于跟踪对象的标识符,所述对象将由被调度到所述目标文件系统的未决的操作修改;
基于所述一组标识符不匹配所述跟踪数据结构内的至少一个标识符,将所述元数据操作调度到所述目标文件系统以用于重放;以及
基于所述一组标识符匹配所述跟踪数据结构内的至少一个标识符,拒绝所述元数据操作到所述目标文件系统的用于重放的调度。
2.根据权利要求1所述的方法,其中所述调度包括:
将所述一组标识符填充到所述跟踪数据结构中,以指示所述一组对象将由被调度到所述目标文件系统以用于重放的所述元数据操作修改。
3.根据权利要求1所述的方法,包括:
确定数据操作将针对所述目标文件系统而被重放;
评估所述数据操作以标识将由所述数据操作的所述重放修改的对象;
使用所述对象的标识符来查询所述跟踪数据结构;
基于所述标识符不匹配所述跟踪数据结构内的至少一个标识符,将所述数据操作调度到所述目标文件系统以用于重放;以及
基于已经被调度的元数据操作中的、所述标识符匹配所述跟踪数据结构内的一个标识符,拒绝所述数据操作到所述目标文件系统的用于重放的调度。
4.根据权利要求3所述的方法,其中调度所述数据操作包括:
将所述标识符填充到所述跟踪数据结构中,以指示所述对象将由被调度到所述目标文件系统以用于重放的所述数据操作修改。
5.根据权利要求1所述的方法,包括:
标识用以针对所述目标文件系统进行重放的一组操作;
使用i)由所述一组操作在初始执行期间修改的对象的标识符和ii)所述跟踪数据结构,来标识以下操作:所述操作基于所述操作修改相同的对象而彼此依赖;以及
将依赖的操作串行地调度到所述目标文件系统以用于串行的执行。
6.根据权利要求1所述的方法,包括:
标识用以针对所述目标文件系统进行重放的一组操作;
使用i)由所述一组操作在初始执行期间修改的对象的标识符和ii)所述跟踪数据结构,来标识以下操作:所述操作基于所述操作不修改相同的对象而彼此独立;以及
将独立的操作调度到所述目标文件系统以用于并行的执行。
7.根据权利要求1所述的方法,其中所述一组标识符包括文件的文件标识符和目录的目录标识符。
8.根据权利要求1所述的方法,其中所述一组标识符包括对象的索引节点编号。
9.根据权利要求1所述的方法,其中第一对象包括文件,并且第二对象包括目录。
10.一种非瞬态机器可读介质,包括用于执行方法的指令,所述指令在由机器执行时使所述机器:
跟踪元数据操作的执行,以标识由所述元数据操作的所述执行修改的一组对象;
与所述元数据操作相关联地存储所述一组对象的一组标识符;
确定所述元数据操作将针对目标文件系统而被重放;
使用所述一组标识符来查询跟踪数据结构,所述跟踪数据结构用于跟踪对象的标识符,所述对象将由被调度到所述目标文件系统的未决的操作修改;
基于所述一组标识符不匹配所述跟踪数据结构内的至少一个标识符,将所述元数据操作调度到所述目标文件系统以用于重放;以及
基于所述一组标识符匹配所述跟踪数据结构内的至少一个标识符,拒绝所述元数据操作到所述目标文件系统的用于重放的调度。
11.根据权利要求10所述的非瞬态机器可读介质,其中所述指令使所述机器:
支持所述元数据操作在第一计算环境的源文件系统上的执行,其中所述执行被跟踪以标识所述一组对象;以及
支持所述元数据操作在第二计算环境的所述目标文件系统上的、作为所述元数据操作的复制的重放执行。
12.根据权利要求11所述的非瞬态机器可读介质,其中所述目标文件系统是针对所述源文件系统的半同步的复制目标,其中在所述源文件系统处被执行的操作被复制到所述目标文件系统以用于在所述目标文件系统处重放。
13.根据权利要求10所述的非瞬态机器可读介质,其中所述指令使所述机器:
支持所述元数据操作在非易失性存储器(NVRAM)内的执行,其中所述执行使用非易失性日志(NVLog)而被跟踪,其中所述NVLog用于跟踪在所述NVRAM内被执行的、尚未被冲刷到存储装置的操作;以及
在冲刷所述NVRAM的内容到所述存储装置的所述NVLog的重放期间,将所述元数据操作调度到所述目标文件系统。
14.根据权利要求10所述的非瞬态机器可读介质,其中所述元数据操作包括创建对象元数据操作,并且其中所述指令使所述机器:
跟踪所述创建对象元数据操作的执行,以确定所述创建对象元数据操作修改父目录对象、以及新对象由所述创建对象元数据操作在所述父目录对象内创建。
15.根据权利要求10所述的非瞬态机器可读介质,其中所述元数据操作包括链接对象元数据操作,并且其中所述指令使所述机器:
跟踪所述链接对象元数据操作的执行,以确定所述连接对象元数据操作修改新链接将被建立到的索引节点对象、以及托管所述新链接的新的父目录。
16.一种计算设备,包括:
存储器,所述存储器包含机器可读介质,所述机器可读介质包括机器可执行代码,在所述机器可执行代码上存储有用于执行方法的指令;以及
处理器,所述处理器被耦合到所述存储器,所述处理器被配置为执行所述机器可执行代码,以使所述处理器:
跟踪元数据操作的执行,以标识由所述元数据操作的所述执行修改的一组对象;
与所述元数据操作相关联地存储所述一组对象的一组标识符;
确定所述元数据操作将针对目标文件系统而被重放;
使用所述一组标识符来查询跟踪数据结构,所述跟踪数据结构用于跟踪对象的标识符,所述对象将由被调度到所述目标文件系统的未决的操作修改;
基于所述一组标识符不匹配所述跟踪数据结构内的至少一个标识符,将所述元数据操作调度到所述目标文件系统以用于重放;以及
基于所述一组标识符匹配所述跟踪数据结构内的至少一个标识符,拒绝所述元数据操作到所述目标文件系统的用于重放的调度。
17.根据权利要求16所述的计算设备,其中所述元数据操作包括未链接对象元数据操作,并且其中所述机器可执行代码使所述处理器:
跟踪所述未链接对象元数据操作的执行,以确定所述未链接对象元数据操作修改链接被从其移除的索引节点对象、以及曾托管所述链接的父目录。
18.根据权利要求16所述的计算设备,其中所述元数据操作包括重命名元数据操作,并且其中所述机器可执行代码使所述处理器:
跟踪所述重命名元数据操作的执行,以确定所述重命名元数据操作修改被重命名的文件曾被存储在其内的第一目录、被重命名的所述文件将被存储到其中的第二目录、以及所述文件。
19.根据权利要求18所述的计算设备,其中所述机器可执行代码使所述处理器:
跟踪所述重命名元数据操作的执行,以确定所述重命名元数据操作修改所述第二目录内具有和所述文件相同名称的第二文件,其中所述重命名元数据操作用所述文件覆写所述第二文件。
20.根据权利要求16所述的计算设备,其中所述元数据操作包括设置属性元数据操作,并且其中所述机器可执行代码使所述处理器:
跟踪所述设置属性元数据操作的执行,以确定所述设置属性元数据操作修改其属性由所述设置属性元数据操作设置的对象。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/945,178 | 2018-04-04 | ||
US15/945,178 US11327857B2 (en) | 2018-04-04 | 2018-04-04 | Faster replay of metadata and data operations using inode number based dependency graph |
PCT/US2019/024771 WO2019195092A1 (en) | 2018-04-04 | 2019-03-29 | Faster replay of metadata and data operations using inode number based dependency graph |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112236753A true CN112236753A (zh) | 2021-01-15 |
Family
ID=66440115
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980037905.7A Pending CN112236753A (zh) | 2018-04-04 | 2019-03-29 | 使用基于索引节点编号的依赖图更快地重放元数据和数据操作 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11327857B2 (zh) |
EP (1) | EP3776211B1 (zh) |
CN (1) | CN112236753A (zh) |
WO (1) | WO2019195092A1 (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11468014B2 (en) * | 2018-08-09 | 2022-10-11 | Netapp Inc. | Resynchronization to a filesystem synchronous replication relationship endpoint |
US11811674B2 (en) | 2018-10-20 | 2023-11-07 | Netapp, Inc. | Lock reservations for shared storage |
US11507600B2 (en) * | 2019-05-20 | 2022-11-22 | Netapp Inc. | Dependency aware parallel splitting of operations |
US11301450B2 (en) * | 2020-02-28 | 2022-04-12 | Netapp, Inc. | Maintaining timestamp parity of objects with alternate data streams during transition phase to synchronous state |
US20210342301A1 (en) * | 2020-04-29 | 2021-11-04 | Hewlett Packard Enterprise Development Lp | Filesystem managing metadata operations corresponding to a file in another filesystem |
US11500817B2 (en) * | 2020-05-11 | 2022-11-15 | Cohesity, Inc. | Asynchronous deletion of large directories |
CN114363355A (zh) * | 2020-09-29 | 2022-04-15 | 华为云计算技术有限公司 | 数据同步的方法、存储网关、系统及计算机可读存储介质 |
US11755590B2 (en) | 2020-11-04 | 2023-09-12 | Netapp, Inc. | Data connector component for implementing integrity checking, anomaly detection, and file system metadata analysis |
US11625306B2 (en) | 2020-11-04 | 2023-04-11 | Netapp, Inc. | Data connector component for implementing data requests |
US11934670B2 (en) | 2021-03-31 | 2024-03-19 | Netapp, Inc. | Performing various operations at the granularity of a consistency group within a cross-site storage solution |
US11550679B2 (en) | 2021-03-31 | 2023-01-10 | Netapp, Inc. | Methods and systems for a non-disruptive planned failover from a primary copy of data at a primary storage system to a mirror copy of the data at a cross-site secondary storage system |
US11481139B1 (en) | 2021-03-31 | 2022-10-25 | Netapp, Inc. | Methods and systems to interface between a multi-site distributed storage system and an external mediator to efficiently process events related to continuity |
US11709743B2 (en) | 2021-03-31 | 2023-07-25 | Netapp, Inc. | Methods and systems for a non-disruptive automatic unplanned failover from a primary copy of data at a primary storage system to a mirror copy of the data at a cross-site secondary storage system |
US11740811B2 (en) | 2021-03-31 | 2023-08-29 | Netapp, Inc. | Reseeding a mediator of a cross-site storage solution |
US11409622B1 (en) | 2021-04-23 | 2022-08-09 | Netapp, Inc. | Methods and systems for a non-disruptive planned failover from a primary copy of data at a primary storage system to a mirror copy of the data at a cross-site secondary storage system without using an external mediator |
US11928352B2 (en) | 2021-05-05 | 2024-03-12 | Netapp, Inc. | Maintaining the benefit of parallel splitting of ops between primary and secondary storage clusters in synchronous replication while adding support for op logging and early engagement of op logging |
US11537314B1 (en) | 2021-10-07 | 2022-12-27 | Netapp, Inc. | Resynchronization of individual volumes of a consistency group (CG) within a cross-site storage solution while maintaining synchronization of other volumes of the CG |
US11892982B2 (en) | 2021-10-20 | 2024-02-06 | Netapp, Inc. | Facilitating immediate performance of volume resynchronization with the use of passive cache entries |
US11954073B2 (en) * | 2022-03-16 | 2024-04-09 | International Business Machines Corporation | Multi-protocol multi-site replication |
US11907562B2 (en) | 2022-07-11 | 2024-02-20 | Netapp, Inc. | Methods and storage nodes to decrease delay in resuming input output (I/O) operations after a non-disruptive event for a storage object of a distributed storage system by utilizing asynchronous inflight replay of the I/O operations |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102236705A (zh) * | 2010-05-06 | 2011-11-09 | 甲骨文国际公司 | 数据库重放的细粒度同步 |
US20130007518A1 (en) * | 2011-06-30 | 2013-01-03 | Microsoft Corporation | Transparent failover |
US20150269045A1 (en) * | 2014-03-21 | 2015-09-24 | Netapp, Inc. | Providing data integrity in a non-reliable storage behavior |
CN105191324A (zh) * | 2014-01-17 | 2015-12-23 | 索尼公司 | 通信设备、通信数据生成方法、以及通信数据处理方法 |
CN105612503A (zh) * | 2013-08-09 | 2016-05-25 | 桑迪士克科技股份有限公司 | 持久性数据结构 |
CN106716378A (zh) * | 2014-08-07 | 2017-05-24 | 微软技术许可有限责任公司 | 存储故障之后的安全数据访问 |
US20170147601A1 (en) * | 2015-11-23 | 2017-05-25 | Netapp Inc. | Synchronous replication for file access protocol storage |
US20170149886A1 (en) * | 2015-11-24 | 2017-05-25 | Netapp Inc. | Directory level incremental replication |
US20170185306A1 (en) * | 2015-12-28 | 2017-06-29 | Netapp Inc. | Synchronous replication |
CN107257957A (zh) * | 2015-02-25 | 2017-10-17 | 微软技术许可有限责任公司 | 至次级应用的应用高速缓存复制 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7191284B1 (en) * | 2003-09-04 | 2007-03-13 | Veritas Operating Corporation | Method and system for performing periodic replication using a log and a change map |
US7457830B1 (en) * | 2004-02-27 | 2008-11-25 | Symantec Operating Corporation | Method and system of replicating data using a recovery data change log |
US7882064B2 (en) * | 2006-07-06 | 2011-02-01 | Emc Corporation | File system replication |
US8620861B1 (en) * | 2008-09-30 | 2013-12-31 | Google Inc. | Preserving file metadata during atomic save operations |
US9519555B2 (en) * | 2011-05-23 | 2016-12-13 | Microsoft Technology Licensing, Llc | Synchronous replication in a distributed storage environment |
US8838539B1 (en) * | 2011-10-05 | 2014-09-16 | Google Inc. | Database replication |
US8874626B2 (en) * | 2013-02-01 | 2014-10-28 | Red Hat, Inc. | Tracking files and directories related to unsuccessful change operations |
US10289690B1 (en) * | 2014-09-22 | 2019-05-14 | EMC IP Holding Company LLC | Accessing file system replica during ongoing replication operations |
US10684994B2 (en) * | 2015-09-25 | 2020-06-16 | Netapp Inc. | Data synchronization |
US10795881B2 (en) * | 2015-12-18 | 2020-10-06 | Sap Se | Table replication in a database environment |
CN106407040B (zh) * | 2016-09-05 | 2019-05-24 | 华为技术有限公司 | 一种远程数据复制方法及系统 |
-
2018
- 2018-04-04 US US15/945,178 patent/US11327857B2/en active Active
-
2019
- 2019-03-29 WO PCT/US2019/024771 patent/WO2019195092A1/en unknown
- 2019-03-29 CN CN201980037905.7A patent/CN112236753A/zh active Pending
- 2019-03-29 EP EP19722728.3A patent/EP3776211B1/en active Active
-
2022
- 2022-05-09 US US17/739,353 patent/US20220261320A1/en active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102236705A (zh) * | 2010-05-06 | 2011-11-09 | 甲骨文国际公司 | 数据库重放的细粒度同步 |
US20130007518A1 (en) * | 2011-06-30 | 2013-01-03 | Microsoft Corporation | Transparent failover |
CN103636165A (zh) * | 2011-06-30 | 2014-03-12 | 微软公司 | 透明故障转移 |
CN105612503A (zh) * | 2013-08-09 | 2016-05-25 | 桑迪士克科技股份有限公司 | 持久性数据结构 |
CN105191324A (zh) * | 2014-01-17 | 2015-12-23 | 索尼公司 | 通信设备、通信数据生成方法、以及通信数据处理方法 |
US20150269045A1 (en) * | 2014-03-21 | 2015-09-24 | Netapp, Inc. | Providing data integrity in a non-reliable storage behavior |
CN106716378A (zh) * | 2014-08-07 | 2017-05-24 | 微软技术许可有限责任公司 | 存储故障之后的安全数据访问 |
CN107257957A (zh) * | 2015-02-25 | 2017-10-17 | 微软技术许可有限责任公司 | 至次级应用的应用高速缓存复制 |
US20170147601A1 (en) * | 2015-11-23 | 2017-05-25 | Netapp Inc. | Synchronous replication for file access protocol storage |
US20170149886A1 (en) * | 2015-11-24 | 2017-05-25 | Netapp Inc. | Directory level incremental replication |
US20170185306A1 (en) * | 2015-12-28 | 2017-06-29 | Netapp Inc. | Synchronous replication |
Also Published As
Publication number | Publication date |
---|---|
EP3776211B1 (en) | 2021-12-15 |
US20190311049A1 (en) | 2019-10-10 |
US11327857B2 (en) | 2022-05-10 |
WO2019195092A1 (en) | 2019-10-10 |
EP3776211A1 (en) | 2021-02-17 |
US20220261320A1 (en) | 2022-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220261320A1 (en) | Faster replay of metadata and data operations using inode number based dependency graph | |
US10970310B2 (en) | Synchronous replication based cutover engine | |
US11461280B2 (en) | Handling metadata operations and timestamp changes during resynchronization | |
US11609703B2 (en) | Object store mirroring based on checkpoint | |
US11782783B2 (en) | Method and apparatus to neutralize replication error and retain primary and secondary synchronization during synchronous replication | |
US11593016B2 (en) | Serializing execution of replication operations | |
US10725691B1 (en) | Dynamic recycling algorithm to handle overlapping writes during synchronous replication of application workloads with large number of files | |
US11157455B2 (en) | Inofile management and access control list file handle parity | |
US11797213B2 (en) | Freeing and utilizing unused inodes | |
US11151162B2 (en) | Timestamp consistency for synchronous replication | |
US20230081436A1 (en) | Dependency aware parallel splitting of operations | |
US11055005B2 (en) | Background deduplication using trusted fingerprints |
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 |