CN102713901B - 存储复制系统和方法 - Google Patents
存储复制系统和方法 Download PDFInfo
- Publication number
- CN102713901B CN102713901B CN201080052112.1A CN201080052112A CN102713901B CN 102713901 B CN102713901 B CN 102713901B CN 201080052112 A CN201080052112 A CN 201080052112A CN 102713901 B CN102713901 B CN 102713901B
- Authority
- CN
- China
- Prior art keywords
- node
- change
- pathname
- conversion process
- identifier
- 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.)
- Active
Links
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/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
- G06F16/1787—Details of non-transparently synchronising 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/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/1734—Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
-
- 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/184—Distributed file systems implemented as replicated file system
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
在此提出了用于信息存储复制的系统和方法。在一个实施方案中,执行一个命名空间转换处理。接收与一个文件系统操作变化相关的节点信息。执行路径名对象转换处理的一个变化节点。执行路径名对象转换处理的一个未变化节点。在一种示例性实施方式中,路径名对象转换处理的变化节点和路径名对象转换处理的未变化节点使用返回该对象标识符和父节点标识符的数据结构。在一个路径名中插入一个对象标识。
Description
相关申请
本申请要求于2009年10月2日提交的名称为“存储复制系统及方法”(代理人案号#SYMT-S09-1745R)的临时申请第61/248,387的权益,该申请通过引用结合在此。
技术领域
本实施方案涉及信息存储复制领域。
背景技术
电子系统和电路已经对现代社会的进步作出了巨大的贡献并用在很多应用中以获得有利的结果。很多电子技术,例如数字计算机、计算器、音频装置、视频设备以及电话系统,在商业、科学、教育以及娱乐大部分领域中提高了生产率并降低了分析和传输数据、观点和趋势的成本。这些活动经常涉及大量信息的存储。
现代系统典型地利用大量信息,重要资源都耗费在这些信息上以开发、存储并维护信息。不断地增加复杂应用典型地涉及大量存储器以及快速扩展的文件系统。伴随着持续增加的复杂性,灾难性的信息破坏和丢失通常几率增加。保持信息的精确复制映像非常重要。然而,保持复制的存储映像通常是非常消耗资源的。每隔一定时间完全复制整个存储映像的方法会对系统处理和通信网络产生很大的延迟和影响。一些传统的复制方法仅处于块的级别上。一些其他传统复制方法利用rsync操作(例如,Unix平台),但产生大量数据移动和后处理(例如,请求更多的存储器和更长的时间)。
传统的文件系统经常利用对象标识符的路径名(例如,目录、文件等)来识别文件系统命名空间中的信息。为了努力使文件系统管理合理化,一些系统利用内部名称来管理命名空间对象。例如,文件系统可以使用对应于命名空间对象的节点标识。该节点标识可以用于内部文件系统管理操作。然而,内部名称典型地对复制存储系统是不可传输的。例如,用于源存储映像的内部节点标识或名称典型地在内部不可用于一个相应的目标存储映像。
发明内容
在此提出了用于信息存储复制的系统和方法。在一个实施方案中,执行一个命名空间转换或变换处理,在该处理中将一个节点标识符转换为一个对象标识符。接收与一个文件系统操作变化相关的节点信息。执行(例如对节点信息)路径名对象转换处理的一个变化节点。执行(例如对节点信息)路径名对象转换处理的一个未变化节点。在一个示例性实施方式中,路径名对象转换处理的变化节点和路径名对象转换处理的未变化节点使用返回该对象标识符和父节点标识符的数据结构。在一个路径名中插入一个对象标识符。基于路径名对象转换处理的所述变化节点和路径名对象转换处理的所述未变化节点的结果将对象标识符插入路径名中。
路径名对象转换处理的一个变化节点可以利用一个命名空间变更跟踪数据结构(例如,哈希表),该结构将与命名空间变化相关联的节点标识符映射到父节点标识符和对象标识符或名称。路径名对象转换处理的所述未变化节点使用一个最长路径跟踪数据结构(例如,前缀树)。父对象节点标识符可以作为输入返回至该路径名对象转换处理的变化节点。
在一个实施方案中,一种产品包括其上存储有指令的一种计算机可读介质,如果由计算机装置执行时,这些指令使得该计算装置根据该复制方法执行存储映像复制。这些指令包括在多个模块中。一个映像冻结模块管理一个源文件系统在会话检查点上的冻结快照。一个文件变化日志检查模块恢复一个文件变化日志(FCL)中的表项(例如,其中该表项对应于所述会话检查点之间的变化)。一个命名空间转换模块将对应于一个文件变化日志中的表项的节点标识转换为路径名标识。在一个实施方案中,该路径名转换模块利用一个最长路径跟踪数据结构。一个过滤模块过滤无用操作。一个德尔塔文件数据恢复模块在会话之间恢复文件数据中的变化。一个德尔塔操作模块转发该路径名标识和文件数据中的变化。
在一个实施方案中,命名空间转换模块包括一个节点标识接收模块,该模块确定是否接收一个节点标识;一个路径名对象转换变化节点模块,该模块执行路径名对象转换处理的变化节点;一个路径名对象转换未变化节点模块,该模块执行路径名对象转换处理的未变化节点;以及一个对象标识插入模块,该模块用于在一个路径名中插入一个对象名。该路径名对象转换变化节点模块可以获取与涉及相应命名空间变化的一个节点相关联的一个对象名。该路径名对象转换未变化节点模块可以获取与不涉及相应命名空间变化的一个节点相关联的一个对象名。该节点标识可以包括一个唯一索引节点号。该路径名对象转换处理的变化节点和路径名对象转换处理的未变化节点可以使用返回所述对象标识的数据结构。该路径名对象转换处理的变化节点可以递归地处理父节点标识符并且路径名对象转换未变化节点模块可以递归地处理父节点标识符。
在一个实施方案中,一个信息存储复制系统包括一个源存储组件,该组件存储信息;一个源存储管理器,该管理器管理该源储存组件中的信息的存储,包括管理源内部节点标识符到路径名标识符的转换;以及一个目标存储组件,该组件用于存储该信息的一个副本。该源存储管理器可以使用返回对象标识和父节点标识的数据结构(例如,包括一个最长路径跟踪数据结构)。该数据结构可以包括一个哈希表,该哈希表将与一个命名空间变化相关联的一个节点标识映射到一个父节点标识和一个对象名;以及一个前缀树,该前缀树映射前一个会话中的未变化节点的一个最长路径。
附图说明
附图结合在本说明书中并构成它的一部分,所包含的附图用于本实施方案原理的示例性解释并无意将本发明限制于本文所示的具体实施方式。附图不是成比例的,除非另有具体说明。
图1是根据一个实施方案的一个示例性系统的方框图。
图2是根据一个实施方案的路径名元素关系的示例性方框图。
图3是根据一个实施方案的一个路径名元素层级关系的另一个示例性方框图。
图4是根据一个实施方案的具有不同对象标识符的一个示例性路径名元素层级关系的方框图表示。
图5是根据一个实施方案的当在多个时间之间出现操作时在一个源存储系统中的示例性变化的方框图表示。
图6是根据一个实施方案在变化之后的一个示例性路径名元素层级关系的方框图表示。
图7是根据一个实施方案的一个示例性文件命名空间对象索引节点层级的方框图表示。
图8是根据一个实施方案的在操作变化后的一个示例性文件命名空间对象索引节点层级的方框图表示。
图9是根据一个实施方案的利用节点标识符作为索引键值并返回对象名称和父节点标识符的一个示例性哈希表的方框图表示。
图10是利用索引节点号作为索引键值并返回对象名称和父索引节点号的一个示例性哈希表的方框图表示。
图11是根据一个实施方案的一个示例性前缀树的方框图表示,该前缀树用于跟踪前一个会话末端上的最长路径。
图12是根据一个实施方案的一个示例性复制方法的流程图。
图13是根据一个实施方案的一个示例性命名空间转换处理的流程图。
图14是根据一个实施方案的路径名对象转换处理的示例性变化节点的流程图。
图15是根据一个实施方案的路径名对象转换处理的示例性未变化节点的流程图。
图16是根据一个实施方案的示例性命名空间转换处理的流程图。
图17展示了根据一个实施方案的在一个复制系统环境中的定期复制操作。
图18是根据一个实施方案的示例性复制模式的方框图。
图19是根据一个实施方案的示例性命名空间转换模块的方框图。
图20是根据一个实施方案的路径名对象转换模块的示例性变化节点的方框图。
图21是根据一个实施方案的路径名对象转换模块的示例性未变化节点的方框图。
图22展示了根据一个实施方案的示例性计算机系统。
具体实施方式
现在详细参考优选实施方案,该实施方案的实例在附图中示出。尽管结合优选实施方案描述本发明,但应当理解它们不用于将本发明限制于这些实施方案。相反,本发明意在涵盖多种替代形式、修改形式以及等同形式,它们包括在说明的精神和范围内。而且,在以下详细描述中,给出很多具体细节以提供透彻的理解。然而,对本领域熟练技术人员显而易见的是,可以在没有这些具体细节的情况下实施本发明。在其他实例中,并未详细描述众所周知的方法、过程、组件以及电路,它们可能会混淆本发明的多个方面。
本复制系统和方法有助于在各种系统配置中进行高效的和有效的信息保护。复制系统和方法有助于使用内部节点标识符来进行内部命名空间管理,内部节点标识符以路径名向对象标识符进行高效的转换,以用于指向外部存储资源的复制操作。在一个实施方案中,一个复制系统管理源存储组件映像中的信息存储以及目标存储组件映像中的信息复制。这种管理包括管理源内部节点标识符向路径名标识符的转换。在一个实施方案中,源存储管理器使用返回对象标识和父节点标识的数据结构。对于节点,这种数据结构可以用于对象名称转换或“逆”名称查找生成。在一个示例性实施方案中,数据结构包括哈希表和前缀树。哈希表将与命名空间变化相关的一个节点标识映射到一个父节点标识和一个对象名称。前缀树映射前一个会话中未变化节点的最长路径。应当理解,本系统和方法可以采用不同的架构和配置来实施。例如,本系统和方法可以实施为分布式计算环境、云计算环境、客户端服务器环境等的一部分。
应当理解,本复制系统和方法有助于增量的文件级别复制。该复制系统和方法与大文件系统的部分文件系统复制相兼容。部分文件系统复制可以转为在每个复制操作过程中更新辅助的或目标存储源的一部分。例如,在会话期间变化的主要的或源存储资源映像的一部分在复制操作过程总进行更新。复制可以建立在由基础文件系统(例如,VxFS中的FCL)提供的文件变化日志服务的基础上。日志服务可以跟踪一个内部文件标识符或节点标识符,同时文件系统复制可以使用绝对路径唯一地识别源和复制目标之间的一个文件。一个给定节点的上代目录可以在命名空间操作(例如,移动、重命名、新建等等)期间发生变化,导致复制文件系统中的相应路径不同,直到执行了命名空间转换。
在一个实施方案中,复制系统包括存储资源。应当理解的是本系统和方法可以采用不同的存储配置来实施。例如,存储资源可以被配置为源存储资源和目标存储资源,主存储资源和辅助存储资源等。图1是根据一个实施方案的示例性系统100的方框图。系统100包括通信地连接至源存储系统120的操作组件110,该源存储系统通信地连接至目标存储系统130。操作组件110包括处理组件111以及可选的存储组件112。源存储系统120包括文件系统管理组件121以及源存储组件123。文件系统管理组件121包括命名空间转换组件122。
应当理解,示例性系统100可以具有不同的配置。例如,操作组件110和源存储系统120可以是本地系统或设施的一部分并且目标存储系统130可以是远程系统或设施的一部分。应当理解,处理组件111可以从源存储组件123接收信息(例如,指令、数据等)。在一个示例性实施方式中,操作组件110是本地系统或设置的一部分,而源存储系统120和目标存储系统130是远程系统或设施的一部分。
应当理解,可以存在各种操作组件和源存储组件配置。信息可以在多个操作组件(未示出)和源存储系统120之间进行通信。信息还可以在多个存储系统以及一个操作组件之间进行通信。还应当理解,可以存在各种源存储系统和目标存储系统配置。一个源存储系统可以与多个目标存储系统进行通信并且多个目标存储系统可以与一个源存储系统进行通信。
系统100的这些组件相协调地操作用于利用源存储器和高效的并且有效的复制目标存储器来帮助各种操作(例如,应用操作等等)。操作组件110可以执行各种操作。例如,存储器112存储由处理器111执行的各种应用操作指令。源存储系统120存储与操作组件110执行的操作相关的信息(例如,位于源储存组件123中)。文件系统管理组件121管理从操作组件110接受的信息的存储以及信息向目标存储系统130的转发。文件系统管理组件121包括命名空间转换组件122,该组件执行与向目标存储系统130转发信息相关的命名空间转换。目标存储系统130存储在源存储组件123上存储的信息映像的副本。
存储源中的信息可以采用存储层级的形式组织,该存储层级使用各种名称来跟踪信息存储的安排。例如,路径名名称命名空间、节点名称空间、组合命名空间等。应当理解,路径名命名空间标识符可以包括用斜杠相连接的路径名元素。路径名元素可以对应于对象并且可以包括目录名称、文件名名称等。例如,路径名名称或标识符可以通过表达式目录A/目录B/文件名1、dA/dB/dC/f1等来标识路径名。每个前续路径名元素表示包含下一个对象的对象。
图2是根据一个实施方案的路径名元素关系200的示例性方框图。目录alpha 201包括目录bravo 202和目录golf 207。目录bravo 202包括目录charlie 203和目录foxtrot 206。目录charlie包括目录delta 204和文件echo205。目录golf 207包括目录hotel 208和目录ultra 209。目录hotel包括目录juliet 210和文件kilo 211。目录juliet包括文件lima 213、romeo 214、sierra 215和tango 216。应当认识到,这些文件可以包含信息。例如,这些文件可包括各种类型的信息(例如,数据、指令等)。在一个示例性实施方式中,文件可以包括与各种应用(例如,文字编程应用、记账应用、互联网应用、视频应用等)相关联的数据(例如,文字编程文件、视频信息等)和/或程序指令(例如,软件程序指令、可执行文件、二进制文件等)。
图3是根据一个实施方案的一个路径名元素层级关系300的另一个示例性方框图表示。在一个实施方案中,路径名元素层级关系300对应于路径名元素关系200。路径名元素层级关系300包括目录alpha 201、目录bravo202、目录charlie 203、目录foxtrot 206、目录delta 204、文件echo 205、目录golf 207、目录hotel 208、目录ultra 209、目录juliet 210、以及文件kilo 211、lima 213、romeo 214、sierra 215和tango 216。在较低层级上示出的并且连接至较高层级上一个对象的对象包括在较高层级对象中。例如,文件delta 204和echo 205包括在目录charlie 203中,目录charlie 203包括在目录bravo 202中。较低层级文件lime 213不包含在较高目录charlie203中,因为文件lima 213未连接至charlie 203。
应当认识到,可以利用各种对象标识符来命名路径名元素。图4是根据一个实施方案的具有不同对象标识符的路径名元素层级关系400的示例性方框图表示。路径名元素层级关系400包括目录a 401、目录b 402、目录c 403、目录f 406、目录d 404、文件e 405、目录g 407、目录h 408、目录u 409、目录j 410、文件k 411、文件l 413、文件r 414、文件s 415以及文件t 416。在较低层级上示出的并且连接至较高层级的一个对象的对象包括在较高层级对象中。
再次参考图1,应当认识到,当操作组件110执行操作时,在源存储系统120中的文件数据和命名空间信息同时出现变化。当操作进行时,源存储系统映像的变化就随时间出现。然而,源存储系统映像对相关的目标存储系统映像的复制更新在指定的会话时间持续时间上出现。在一个实施方案中,源存储系统映像和相关目标存储系统映像在会话的初始阶段上匹配,并且目标存储系统映像保留相同的内容,而源存储系统映像在会话过程中发生变化。在一个会话或“检查点”(例如,预定的持续时间,出现一个事件,在特定数量的变化出现之后)结束时,源存储系统映像被冻结或锁定,在相关的目标存储系统映像上复制映像变化并且更新相关的目标存储系统映像。
图5是根据一个实施方案的在时刻t0和时刻t1之间出现操作时一个源存储系统中的示例性变化的方框图表示。在时刻t0,有一个冻结的映像511。第一个操作会话开始并且操作501初始化操作系统。源系统映像511包括一个会话开始文件层级。目标系统映像521在时刻t0匹配源系统映像511的会话开始文件层级。在一个实施方案中,源系统映像511和目标系统映像521对应于路径名元素层级关系400(例如,源存储系统映像511和目标存储系统映像521包括路径a/b/c/e、a/g/h/j/l等)。操作502在时刻t1在目录对象j和文件l以及r之间创建一个新的目录对象x并且源存储系统映像512包括路径名a/b/c/e和a/g/h/j/x/l并记录该变化。在时刻t2,操作503将文件e从a/b/c/e移动到a/g/h/j/x/e,而存储系统映像513移除路径名a/b/c/e并且包括路径名a/g/h/j/x/e,同时记录该变化。在时刻t4,操作504将对象a重新命名为a’;l重新命名为l’,h重新命名为h’,并且源存储系统映像514包括路径名a’/g/h’/j/x/e以及a’/g/h’/j/x/l’。在时刻t5,会话结束并且源存储系统映像514被冻结或锁定,同时在相关的目标存储系统映像523上复制映像变化。例如,更新目标存储系统映像522以复制a’/g/h’/j/x/l’以及a’/g/h’/j/x/e。
应当认识到,在会话过程中存在很多操作并且会话的长度可以改变。还应当认识到,可以延长或缩短会话的长度。在一个实施方案中,将图5中的会话长度分为多个会话。例如,在时刻t3第一会话可以结束并且源存储系统映像513被冻结或锁定,同时在相关的目标存储系统映像上复制映像变化。例如,可以更新相关的目标存储系统映像以便在时刻t3复制a/g/h/j/x/l以及a/g/h/j/x/e。
在一个实施方案中,操作继续进行并且在冻结一个源存储系统映像时跟踪插入的信息。当源存储系统映像锁定时,更新该源存储系统以便与所跟踪的插入信息相一致。
为了使描述不涉及过多细节,图5中所示的会话文件层级路径的一部分包括路径名a/b/c/e和a/g/h/j/l。应当认识到,其他路径名(例如,a/b/c/d、a/g/h/j/r、a/g/h/j/t、a/g/u等)可以包括在源系统映像和目标系统映像中。应当认识到,可以包括附加的操作(未示出)(例如,在j下并且在s和l上创建新的对象y;将对象r重命名为r等)并且在源系统映像(a/g/h/j/y/t和a/g/h/j/x/r’)和目标系统映像中可以包括相应的路径名变化。图6是根据一个实施方案的变化之后的路径名元素层级关系600的示例性方框图表示。路径名元素层级关系600包括目录a’601、目录b 402、目录c 403、目录f 406、目录d 404、目录g 407、目录h’608、目录u 409、file k 411、目录j 410、目录x 621、文件e 605、文件l’613、文件r’614、目录y 422、文件s 415以及文件t 416。在较低层级上示出的并且连接至较高层级上的一个对象的多个对象包括在较高层级对象中。
文件系统架构可以利用节点标识来跟踪与文件系统名称命名空间相关的信息。例如,文件系统架构可以利用对应于文件系统名称中每个对象(例如,目录、文件等)的唯一节点标识符。在一个实施方案中,内部节点标识符(索引节点)与每个对象相关联。在一个示例性实施方式中,节点标识符是索引节点号并且当创建每个对象时一个唯一顺序的索引节点号与该节点相关联或分配给该节点。图7是根据一个实施方案的一个文件命名空间对象节点层级700的示例性方框图表示。文件命名对象节点层级700包括索引节点1、索引节点2、索引节点3、索引节点4、索引节点5、索引节点6、索引节点7、索引节点8、索引节点9、索引节点10、索引节点11、索引节点12、索引节点13、索引节点14、索引节点15以及索引节点16。在一个是实施方案中,文件命名空间对象索引节点层级700对应于路径名元素层级关系400的示例性方框图标识。
当在会话过程中操作开始,就出现与节点相关联的变化。例如,节点之间的关系可以改变(例如,一个节点可以移动,对应于对象的节点可以变化,可以创建节点,可以移除节点等)。图8是根据一个实施方案的操作变化之后的一个文件命名空间对象索引节点层级800的示例性方框图表示。文件命名空间对象索引节点层级800包括索引节点1、索引节点2、索引节点3、索引节点4、索引节点5、索引节点6、索引节点7、索引节点8、索引节点9、索引节点10、索引节点11、索引节点12、索引节点13、索引节点14、索引节点15、索引节点16、索引节点21以及索引节点22。在一个实施方案中,文件命名空间对象索引节点层级800对应于一个路径名元素层级关系600的示例性方框图表示。
在一个实施方案中,跟踪与源存储系统映像中的变化相关联的节点,包括与命名空间变化相关联的节点。在一个示例性实施方式中,维护每个会话的文件变化日志(FCL)并且FCL包括与命名空间变化相关联的节点标识符。FCL可以包括在一个数据结构中。例如,该数据结构可以是对应于如下表示方式的一张表:
会话中断 | |
操作502 | 索引节点21 |
操作503 | 索引节点5 |
会话中断 | |
操504 | 索引节点1 |
操作504 | 索引节点8 |
操作504 | 索引节点13 |
在每个会话中断时,在源存储系统映像中出现的变化(包括命名空间变化)在目标存储系统映像中进行复制。然而,内部使用的用于跟踪源存储系统映像中命名空间变化的节点标识并不用于指示目标存储系统映像的命名空间变化。在一个实施方案中,源存储系统映像中的内部节点标识与目标存储系统映像中的内部节点标识不兼容。命名空间转换用于重新形成路径名标识。
在一个实施方案中,命名空间变更跟踪数据结构用于跟踪命名空间改变(例如对象移动、对象重命名、对象创建等)。在一个实例性实施方式中,命名空间变更跟踪数据结构利用节点标识符作为索引键值,该索引键值映射到一个对象标识符以及一个父节点标识符。应当认识到,命名空间变更跟踪数据结构可以利用一个节点标识符和一个生成记数作为索引键值。应当认识到,可以利用各种命名空间变更跟踪数据结构。例如,可以利用对应于哈希表的数据。图9是根据一个实施方案的哈希表900的示例性方框图表示,该哈希表利用节点标识符作为键值。哈希表900包括用于节点1的单元格901、用于父节点1(pnode1)的单元格911、用于对象1名称的单元格921、用于节点2的单元格902、用于pnode2的单元格912、用于对象2名称的单元格922、用于节点3的单元格903、用于pnode3的单元格913以及用于对象3名称的单元格923。在一个示例性实施方式中,节点2用作键值索引用于哈希表900中的查找操作,该操作返回pnode2和对象2名称。
图10是哈希表1000的示例性方框图表示,该哈希表利用索引节点号作为索引键值并返回对象名称和父节点号。哈希表1000包括在图5和6所示的操作会话中出现的变化。哈希表1000包括:填充索引节点号1的单元格1001、填充索引节点号null的单元格1011、填充对象名a’的单元格1021;填充索引节点号5的单元格1002、填充索引节点号21的单元格1012、以及填充对象名e的单元格1022;填充索引节点号8的单元格1003、填充索引节点号7的单元格1013、填充对象名h’的单元格1023;填充索引节点号13的单元格1004、填充索引节点号21的单元格1014、填充对象名l’的单元格1024;以及填充索引节点号21的单元格1005、填充索引节点号10的单元格1015、填充对象名x的单元格1025。索引节点号用作哈希表1000的查找操作的键值索引,该操作返回一个父节点的索引节点号和对象名称。在一个示例性实施方案中,索引节点号5用作哈希表1000的查找操作的键值索引,该操作返回索引节点号21和对象名e。
在一个实施方案中,最长的路径跟踪数据结构用于在前一个会话结束时跟踪最长的路径。在一个示例性实施方式中,跟踪移动的或重命名的对象的初始路径名(例如,在前一个检查点中的路径名)。应当认识到,可以利用各种命名空间变更跟踪数据结构。例如,线性搜索表、前缀树等。图11是根据一个实施方案的在前一个会话结束时用于跟踪最长路径的前缀树1100的示例性方框图表示。在一个实施方案中,前缀树1100包括索引节点1、索引节点2、索引节点3、索引节点4、索引节点5、索引节点6、索引节点7、索引节点8、索引节点9、索引节点10、索引节点11、索引节点12、索引节点13、索引节点14、索引节点15以及索引节点16。在一个示例性实施方式中,前缀树1100对应于文件命名空间对象索引节点层级700。
应当认识到,前缀树1100可以通过文本字符串表示。例如,下表包括文本字符串,这些字符串可用于表示前缀树中的路径名链中的一些。
1/7/8/10/13 |
1/2/3/5 |
1/7/8/10/13 |
1/7/8/11 |
1/7/9 |
图12是根据一个实施方案的示例性复制方法1200的流程图。复制方法1200有助于使用节点标识符来进行命名空间管理,节点标识符以路径名向对象标识符进行高效的转换,以用于指向外部存储资源的复制操作。
在方框1210,冻结一个存储映像。在一个实施方案中,冻结的映像是源存储文件系统的一个快照。在一个示例性实施方案中,在会话检查点上获取该快照。
与文件系统中的命名空间变化相关联的节点标识符在方框1220中确定。在一个实施方案中,检查文件变化日志并且恢复与对象变化相关联的节点。在一个示例实施方式中,维护每个会话的文件变化日志(FCL)并且FCL包括与命名空间变化相关联的节点的标识。
在方框1230,执行命名空间转换处理。在一个实施方案中,将节点标识符转换到路径名对象标识符。在一个示例实施方式中,数据结构用于恢复对象标识符和父节点标识符。例如,命名空间变更跟踪数据结构用于跟踪命名空间改变(例如,对象移动,对象重命名、对象创建等)并确定变化的对象标识符。最长的路径跟踪数据结构用于在前一个会话结束时跟踪最长的路径并确定未变化的对象标识符。在一个实施方案中,内部节点标识符转换为路径名对象。
在方框1240过滤无用的信息。
在方框1250,恢复文件数据。在一个示例性实施方式中,文件数据可以包括与各种应用(例如,文字编程应用、记账应用、互联网应用、视频应用等)相关联的各种类型的数据(例如,文本、视频信息等)和/或程序指令(例如,软件程序指令、可执行文件、二进制文件等)。
在方框1260中,对会话检查点之间的操作产生的信息或存储映像上的变化进行转发。这些变化可以包括与命名空间中的变化相关联的对象标识符以及文件数据。在一个实施方案中,将信息中的delta转发到一个复制存储系统(例如,目标存储系统、辅助存储系统等)。在一个实施方案中,将具有对象标识符的路径名转发到一个复制存储系统,该对象标识符从与命名空间变化相关联的节点标识符转换而来。
图13是根据一个实施方案的示例性命名空间转化处理或方法1300的流程图。在一个实施方案中,命名空间转化处理1300类似于复制方法1200的方框1230中采用的命名空间转化处理。
在方框1310,接收与文件系统操作变化相关的节点信息。在一个实施方案,接收在复制方法1200的方框1220中确定的节点标识符。例如,在文件变化日志(FCL)中识别的节点与命名空间变化相关联。
在方框1320,执行路径名对象转换处理的变化节点。在一个实施方案中,路径名对象转换处理的变化节点利用返回对象标识符和父节点号的数据结构。在一个示例性实施方式中,数据结构是命名空间变更跟踪数据结构,该结构将于命名空间变化相关联的节点标识符映射到一个父节点标识符和一个对象名称。命名空间变更跟踪数据结构可以包括哈希表。
路径名对象转换处理的未变化节点在方框1340中进行处理。在一个实施方案中,路径名对象转换处理的未变化节点利用返回对象标识符和父节点号的数据结构。在一个示例实施方式中,路径名对象转换处理的未变化节点利用最长的路径跟踪数据结构。最长的路径跟踪数据结构可以是前缀树。
父对象节点标识符可以作为对变化的节点路径名对象转换处理(例如,1320)的输入而返回。父对象节点标识符还可以通过变化节点路径名对象转换处理作为对路径名对象转换处理的未变化节点的输入而返回。例如,父对象节点标识符可以在递归循环中通过变化节点路径名对象转换处理和路径名对象转换处理的未变化节点而返回。
在方框1350,在路径名中插入对象标识符。在一个实施方案中,基于路径名对象转换处理的变化节点和路径名对象转换处理的未变化节点在路径名中插入对象标识符。在一个实施方案中,对象标识符连接至路径名上。例如,对象标识符在路径名的斜杠之间插入。
在方框1370确定是否父节点标识符是空的。如果非空,那么返回到方框1330。如果是空的,进入方框1390。
在方框1390,对路径名进行转发。在一个实施方案中,将转换的路径转发至目标存储源中。
图14是根据一个实施方案的路径名对象转换处理或方法1400的示例性变化节点的流程图。路径名对象转换处理1400的变化节点类似于方框1330中使用的路径名对象转换处理的变化节点。
在方框1410,接收节点标识符。在一个实施方案中,从方框1220接收一个节点标识符。在一个示例性实施方式中,从一个文件变化日志中接收该节点标识符。该节点标识符可以是从下面的方框1470接收的父节点标识符。节点标识符还可以是从路径名对象元素转换处理的未变化节点接收的父节点标识符。例如,路径名对象元素转换处理的未命名节点可以类似于方框1340中使用的处理。
在方框1420,确定节点是否与命名空间变化相关联。在一个实施方案中,索引节点号用作与命名空间变化相关联的索引节点号的哈希表的键值。如果对表的搜索表明索引节点号未出现在该表中,处理进入到方框1450。如果对表的搜索表明索引节点号存在,处理进入到方框1430。
在方框1430,接收与节点相关联的对象名称。在一个实施方案中,从一个哈希表接收对象名称,该哈希表将与命名空间变化相关联的节点标识符映射到对象名称。在一个示例实施方式中,图9中所示的类似于哈希表号900的哈希表用于恢复对象名称。
在方框1440,在路径名中插入所恢复的对象名称。在一个实施方案中,将“/”添加到路径名的起点并且对象名称连接在路径名的起点。
与父节点相关联的节点标识符在方框1470恢复并转发至方框1410。
在方框1450,为进一步的处理而转发节点标识符。在一个实施方案中,节点标识符转发至路径名对象元素转换处理(类似于方框1340中使用的处理)的未变化节点。
图15是根据一个实施方案的路径名对象转换处理或方法1500的示例性未变化节点的流程图。在一个实施方案中,路径名对象转换处理1500类似于方框1340中使用的路径名对象转换处理的未变化节点。
在方框1501,接收节点标识符。在一个实施方案中,从方框1220接收该节点标识符。在一个示例性实施方式中,从文件变化日志中接收该节点标识符。该节点标识符可以是从图4的方框1470中接收的父节点标识符。该节点标识符还可以是从路径名对象元素转换处理的未变化节点接收的父节点标识符。例如,路径名对象元素转换处理的未变化节点可以类似于下面的方框1530中使用的处理。
在方框1510,获取未变化对象的前一个会话最长路径名链。在一个实施方案中,该前一个会话最长路径名链是前缀树。例如,前缀树可以类似于图11所示的前缀树。
在方框1520,获取父节点标识符。在一个实施方案中,父节点标识符在前缀树的最长链中是倒数第二个节点标识符。
在方框1530,转发与父节点相关联的节点标识符以做进一步处理。在一个实施方案中,将父节点标识符转发至路径名对象转换处理的变化节点。
在方框1540,从最长的路径名链中恢复未变化的对象名称。在一个实施方案中,未变化的节点标识符是前缀树的最长链中的最后一个节点标识符。
在防空1550,在路径名中插入对象名。在一个实施方案中,在路径名中插入路径名斜杠(/)并将对象名连接在路径名的起始处。
图16是根据一个实施方案的示例命名空间转换处理或方法1600的流程图。
在方框1610,确定是否接受一个索引节点号。在一个实施方案中,索引节点号1601可以来自文件变化日志或可以是从下一个方框(例如,方框1634、方框1641等)返回的父索引节点号。
在方框1620,确定该索引节点号是否在一个操作变化哈希表中。在一个实施方案中,索引节点用作操作变化哈希表的键值索引。
在方框1630,检查一个前缀链以确定与未变化索引节点号相关联的对象的前一个会话最长路径名。在一个实施方案中,该前缀链包括未变化对象的标识。
在方框1631,从方框1630确定的最长链的末端恢复对象名。在一个实施方案中,该对象名与一个为变化的对象相关联。文件系统可以直接将未变化的索引节点号映射到路径名对象中。
在方框1633,从最长链恢复父索引节点号。在一个实施方案中,父索引节点号被返回到方框1610。
在方框1640,从哈希表恢复一个对象名。在一个实施方案中,通过一次哈希表查找返回该对象名。处理进入方框1650。
在方框1640,恢复父索引节点号并将其转发至方框1610。
在方框1650,恢复的对象名插入在路径名中。
在方框1690转发路径名。在一个实施方案中,路径名被转发至目标存储系统。
再次参考图5,示出了命名空间中的操作变化和对目标存储系统的相应复制更新。在一个实施方案中,源存储系统映像的初始对象路径名表示(例如,u和a至t的对象名,除i之外)在图4中示出。然而,源存储文件系统利用图7中所示的唯一索引节点号(例如1到16)内部地管理命名空间并因此利用转换命名空间转换处理(例如1300)从索引节点号向对象名进行转换。在一个实施方案中,在FCL中指定的节点可以包括21、5、13、8等。在时刻t5,复制方法1200的方框1210冻结图5所示的源存储系统映像514。在方框1220,从FCL恢复与命名空间变化相关联的节点标识符21、5、13、8等。以第一索引节点号21为例,命名空间转换处理建立与索引节点号21相关联的新建的对象X的路径名变化。为了避免本说明与过多细节相混淆,本讨论跳转至从FCL恢复索引节点号13的实例。
FCL的索引节点号13由方框1310恢复并且路径名对象转换处理的变化节点在方框1320执行。在一个实施方案中,与方框1420相一致的索引节点号13的哈希表查找表明,由于位于哈希表(例如,1004)中,该节点与操作变化相关联,然后恢复单元格1024的对象名1’并将其插入到路径名中(例如,通过方框1440)。部分路径名现在是1’。在方框1470,父索引节点号21从单元格1014恢复并转至方框1410,再转至1420以便在哈希表中递归查找。递归查找表示索引节点号21位于单元格1002中,然后将单元格1022中的对象名x插入路径名中以便给出部分路径名x/1’。父索引节点号10返回至1420,并且哈希表查找表明索引节点号10与命名空间变化不相关。索引节点号10转至(例如,通过方框1450)方框1340,该方框执行路径名对象转换处理的未变化节点。
索引节点号10由方框1510接收并且确定与索引节点号10相关联的未变化对象的最长路径变化。在一个示例性实施方式中,前缀树1100用于表示索引节点10的最长路径名是索引节点1/索引节点7/索引节点8/索引节点10。由于索引节点号10未发生变化,文件系统可以查找索引节点号10的分配,然后确定将索引节点号10分配给对象j并将对象标识符j插入到路径名中。部分路径名现在是j/x/l’。在方框1520,从最长的链恢复父节点号8。方框1530将父索引节点号8返回至方框1310中以便在哈希表中递归查找。
递归查找表示索引节点号8位于单元格1003中并将单元格1023中的对象名h’插入在路径名中以给出部分路径名h’/j/x/l’。父索引节点号7返回到1420,并且哈希表查找表明索引节点号7与命名空间变化不相关。索引节点号7转至(例如,通过方框1450)方框1340,该方框执行路径名对象转换处理的未变化节点。
利用前缀树1100,识别索引节点号1和索引节点号7的最长链。对象名称g从未变化索引节点号7的会话开始信息进行恢复并且将对象名称g插入路径名中以给出部分路径名g/h’/j/x/l’。父索引节点号1转回至方框1310中以便在哈希表中递归查找。
对哈希表的递归查找表示索引节点号1位于单元格1001中并将单元格1021中的对象名a’插入路径名中以给出部分路径名a’/g/h’/j/x/l’。父索引节点号null转至方框370,方框1370识别null标识符并通过方框130将路径名a’/g/h’/j/x/l’转至对象文件系统以便在更新复制的目标存储系统映像时使用。因此,源文件系统(包括命名空间变化)上的文件管理所使用的索引节点号13可以有效地转化并转换为路径名a’/g/h’/j/x/l’。应当认识到,通过命名空间转换处理1220的相似递归循环可以帮助其他索引节点号标识符转换为对象路径。
图17展示了根据一个实施方案的复制系统环境1700中的定期复制操作。在所示的实施方案中,主系统1700a中的主数据卷(Vol)的累积修改或变化数据的拷贝定期地转移至一个辅助系统1700b中的复制辅助数据卷(R_Vol)中。为了保持辅助数据卷的可访问性,创建一个时间点“快照”卷(S_Vol)并利用该快照卷执行定期复制。类似地,为了保持辅助数据卷的可访问性,创建一个时间点“快照”卷(RS_Vol)并在该辅助系统1700b上用于从主系统1700a接收增量变化并存储所复制的辅助数据卷。
在所示实施方案的复制系统中,主节点1700a通过网络1714(例如,IP网络、LAN、WAN或其他通信链路)连接至辅助系统1700b。所示实施方案的主系统1700a和辅助系统1700b各自分别包括一个应用程序1702、一个文件系统1704、一个检查点管理器1705以及一个包括卷复制器1708的卷管理器1706,该卷复制器可以在主系统1700a和辅助系统1700b的对应的处理器和存储器中执行。在一个实施方案中,用于管理检查点创建的功能由检查点管理器1705来执行。通过使用初始同步可以初始化图1实施方案。在初始同步过程中,主系统1700a中的主数据卷(Vol)的内容转移至辅助系统1700b中的复制辅助数据卷(R_Vol)中。在一个实施方案中,为了保持主存储数据卷的可访问性,在时间“检查点”上创建时间点“快照”卷(S_Vol),并利用该快照卷执行初始同步(以及后续的定期复制)。当正在执行初始同步时,跟踪对主数据卷的更新(例如,写入操作或其他变化)以便后续执行根据实施方案的定期复制时使用。
主系统1700a进一步包括一个主数据卷1710a,该主数据卷包括一个源存储资源映像。辅助系统1700b包括一个辅助数据卷1710b,该辅助数据卷包括一个目标存储资源映像。在一个实施方案中,卷复制器1708a包括用于执行命名空间转换的命名空间转换模块1750。在一个实施方案中,命名空间转换模块1750对应于与卷复制器1708a相关联的复制模块。应当认识到,可以将命名空间转换模块实施为各种环境的一部分。例如,可以将命名空间转换模块实施为分布式计算环境、云计算环境、客户端服务器环境等的一部分。
图18是根据一个实施方案的示例性复制模块1800的方框图。在一个示例性实施方式中,复制模块1800包括存储在一种计算机可读介质上的指令。复制模块1800和计算机可读介质可以在复制系统环境1700中使用。复制模块1880可以包括用于执行一种复制方法的指令。
映像冻结模块1810冻结文件系统中的映像。文件系统日志检查模块1820确定与命名空间变化相关联的节点标识符。命名空间转换模块1830执行从节点标识符到路径名标识符的命名空间转换。过滤模块1840过滤无用的信息。文件数据恢复模块1850恢复文件数据。操作德尔塔转发模块1860转发会话检查点之间的德尔塔变化操作信息,包括与路径名相关联的信息。应当认识到,这些模块和方法可以包括存储在产品上的指令,该产品包括计算机可读介质,如果由计算装置执行,这些指令使得计算装置执行复制映像存储操作,包括从节点标识符到对象标识符的命名空间转换。
图19是根据一个实施方案的示例性命名空间转换模块1900的方框图。在一个示例性实施方式中,命名空间转换模块1900包括存储在计算机可读介质上的指令。在一个示例性实施方式中,命名空间转换模块1900类似于命名空间转换模块1830。命名空间转换模块1900可以包括执行命名空间转换处理或方法的指令。
节点信息接收模块1910接收与文件系统操作变化相关的节点信息。路径名对象转换模块1920的变化节点执行路径名对象转换处理的变化节点。路径名对象转换模块1930的未变化节点执行路径名对象转换处理的未变化节点。对象标识符插入模块1940执行在路径名中的对象标识符插入。空确定模块1950确定是否父节点标识为空。路径名转发模块1960转发路径名。例如,路径名转发模块1960将路径名转发至目标系统存储资源。
图20是根据一个实施方案的路径名对象转换模块2000的示例性变化节点的方框图。在一个示例性实施方式中,路径名对象转换模块2000的变化节点包括存储在计算机可读介质上的指令。在一个示例性实施方式中,路径名对象转换模块2000的变化节点类似于路径名对象转换模块1920的变化节点。路径名对象转换模块2000的变化节点可以包括执行路径名对象转换处理或方法的变化节点的指令。
节点标识符接收模块2010接收节点标识符。节点相关模块2020确定是否一个节点与一个操作变化相关联。对象标识符恢复模块2030恢复与节点相关的对象名称。父节点标识符模块恢复模块2050恢复父节点标识符。对象插入模块2050将对象标识符插入路径名中。节点标识转发模块2060转发节点标识符以便进一步处理。在一个实施方案中,节点标识转发模块2060将节点标识符转发至路径名对象转换模块的未变化节点上(例如,方框1930)。
图21是根据一个实施方案的路径转换模块2100的示例性未变化节点的方框图。在一个示例性实施方式中,路径名转换模块2100的未变化节点包括存储在计算机可读介质上的指令。在一个示例性实施方式中,路径转换模块2100的未变化节点类似于路径名转换模块1930的未变化节点。路径转换模块2100的未变化节点可以包括用于执行路径名转换处理或方法的未变化节点。
最长链模块2110获得未变化对象的前一个会话最长路径名链。父节点标识符恢复模块2120获得与父节点相关联的节点标识符。父节点标识符转发模块1530转发父节点标识符。未变化对象恢复模块2140从最长的路径名链恢复未变化的对象名。对象插入模块2150在路径名中插入恢复的对象标识符。
图22展示了根据一个实施方案的示例性计算系统2200。计算系统2200描绘了一个种基本计算系统的多个组件,该系统为上述实施方案提供某些基于硬件的和基于软件的功能的执行环境。例如,计算系统2200可以是一种系统,在该系统上可以实例化一个或多个软件堆(例如,模块1702至1708、1750、1810至1860、1910至1960、2010至2060、2110至2150等)。可以将计算系统2200实施为例如服务器计算机系统、工作站计算机系统、桌面计算机系统、或膝上计算机系统。相似地,计算机系统2200可以实施为一种手持装置。计算机系统2200典型地包括至少某种形式的计算机可读介质(例如,计算机可读介质2201)。计算机可读介质还可以是很多不同类型的介质,这些介质可以由计算机系统2200访问并且包括但不限于可移除和不可移除计算机存储介质,闪存、硬盘、光盘驱动器、高密度磁盘(CD)等。
在其最基本的配置中,计算机系统2200典型地包括处理单元2203和存储器2201。根据所使用的计算系统2200的确切配置和类型,存储器2201可以是易失存储器2201a(例如,像DRAM等)、非易失存储器2201b(例如,像ROM、闪存等)或这两种形式的组合。类似地,存储器2201可以包括其他装置,例如固态装置,例如像基于磁盘的介质、光介质等。
另外,计算机系统2200可以包括其他大存储系统(例如,可移除存储器2205和/或不可移除存储器2207),例如磁或光盘或磁带。类似地,计算机系统2200可以包括输入装置2209和/或输出装置2211(例如,像显示器)。计算机系统2200可以进一步包括利用有线的或无线的介质连接至其他装置、计算机、网络、服务器等的网络连接2213。由于所有这些装置在本领域是众所周知的,无需对其进行详细讨论。
应当进一步注意的是,计算机系统2200可以具有由分布式计算机系所代替的功能的一些、大部分或全部,该分布式计算机系统具有大量的分布计算节点,这种情况是计算机系统2200的功能部分地或全部地利用一个云计算环境而执行。
本系统和方法可以在运行时间处理过程中实施。在一个示例性实施方案中,运行时间处理包括扫描文件变化日志并产生联机的文件/命名空间变化。本系统和方法可以在文件日志变化服务的顶部来实施。本系统和方法可以在无数据移动或最小数据移动的情况下来实施,以进行纯命名空间操作(例如,重命名、硬链接等)
在一个实施方案中,一个调用器的每个德尔塔记录返回都伴有一个FCL标志,该标志唯一地标识FCL文件中的表项。在一个示例性实施方案中,通过为FCL模块提供带有回滚接口的标志,调用器可以容易的回滚整个处理。FCL模块可以回滚至FCL文件中的标志并在该点上“重新启动”。
本复制系统和方法有助于信息的高效和有效复制。可以灵活地并且递增地对在操作会话过程变化的存储系统映像的多个部分执行信息复制。本系统和方法可以执行命名空间转换或变换,在转换或变换中将节点标识符转换为对象标识符,同时保持排序要求。本系统和方法可以实施为运行时间处理。不需要预处理和后处理,并且可以减少或避免对这类活动的资源(例如,存储器资源、较大的磁盘占用、处理时间等)保证。
部分详细说明是针对一种方法而给出并进行讨论的。尽管多个步骤及其顺序的图示(在本文描述该方法的操作)中进行了披露,但这些步骤和顺序是示例性的。多个实施方案更适合于执行本文图示的流程图中所列举的各种其他步骤或变化形式,并且顺序以不同于本文描绘的和描述的顺序。
部分详细说明是针对在数据位上的操作的程序、步骤、逻辑块、处理以及其他符号表示而给出的,这些操作可以在计算机存储器中执行。这些描述和表示是数据处理领域中熟练技术人员所使用的向其他本领域熟练技术人员最有效传递他们工作的本质的方法。该步骤包括物理量的物理操作。通常,尽管不是必要的,但这些物理量采取能够在计算机系统中进行存储、传输、组合、比较以及在其他方面进行操作的电、磁、光或量子信号的形式。已经证明有时将这些信号称为位、值、元素、符号、字符、术语、编号等是很方便的,主要是出于习惯用法的原因。
然而应当考虑到,这些以及相似术语的全部应该与适合的物理量相关并且只是用于这些量的一些方便标记。除非另有说明,应当认识到,利用术语例如“处理”、“包括”、“计算”、“确定”、“显示”、“访问”、“写入”、“包含”、“存储”、“传输”、“遍历”、“关联”、“识别”等的讨论是指计算机系统或相似电子计算装置的处理动作,这些装置将计算机系统的寄存器中表示为物理(电子)量的数据处理并转换为计算机系统存储器或寄存器或其他这类信息存储、传输或显示装置中的相似表示为物理量的其他数据。
计算装置可以包括至少某种形式的计算机可读介质。计算机可读介质可以是可由计算装置访问的任何可用的介质。通过举例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以存储信息的任意方法或技术实现的易失性的和非易失性的、可移除的和不可移除的介质,例如计算机可读指令、数据结构、程序模块或其他数据。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储技术、CD-RM、数字通用光碟(DVD)或其他光存储器、磁带盒、磁带、磁盘存储器或其他磁存储装置,或可用于存储所需信息并可由计算装置访问的任意其他介质。通信介质典型地表现为计算机可读指令、数据结构、程序模块或调制数据信号(例如载波或其他传输机制)中的其他数据,并且包括任意信息传输介质。术语“调制数据信号”表示一个信号具有对信号中信息进行编码的方式设置的或变化的其特征中的一个或多个。通过实例但不限定,通信介质包括有线介质,例如有线网络或直接有线连接,以及无线介质,例如声音的、RF、红外的以及其他无线介质。以上形式中的任意组合也应当包含在计算机可读介质的范围内。
一些实施方案可以在一个或多个计算机或其他装置执行的计算机可读指令的一般环境中描述,例如程序模块。通常,程序模块包括例程、程序、对象、组件、数据结构等,它们执行具体的任务或实施具体的抽象数据类型。典型地,可以根据不同实施方案中的需求组合或分散程序模块的功能。
在一个实施方案中,命名空间转换处理包括:接收与一个文件系统操作变化相关的节点信息;对节点信息执行路径名对象转换处理的变化节点;对节点信息执行路径名对象转换处理的未变化节点;以及基于路径名对象转换处理的变化节点和路径名对象转换处理的未变化节点的结果将一个对象标识符插入路径名中。在文件复制方法的一个实施方案中,路径名对象转换处理的变化节点和路径名对象转换处理的未变化节点使用返回对象标识符和返回父节点标识符的数据结构。在文件复制方法的一个实施方案中,路径名对象转换处理的变化节点使用一个命名空间变更跟踪数据结构,该结构将与命名空间变化相关联的一个节点标识符映射到一个父节点标识符和一个对象名。在文件复制方法的一个实施方案中,命名空间变更跟踪数据结构包括一个哈希表。该文件复制方法可以包括一个最长的路径跟踪数据结构,该结构是一种前缀树。该文件复制方法可以进一步包括将一个第一父对象节点标识符作为输入返回至路径名对象转换处理的变化节点以及将一个第二父对象节点标识符作为输入返回至路径名对象转换处理的未变化节点。
在一个实施方案中,一种产品包括其上存储有指令的一个计算机可读介质,如果由计算机装置执行时,这些指令使得计算装置执行存储映像复制,这些指令包括:管理一个源文件系统在会话检查点的冻结的快照的装置;恢复一个文件变化日志中表项的装置,其中,这些表项对应于会话检查点之间的变化;将对应于该文件变化日志的表项的节点标识转换为路径名标识的装置;过滤无用操作的装置;在会话检查点之间恢复文件数据中的变化的装置;以及转发路径名标识和该文件数据中的变化的装置。在一个实施方案中,该计算机可读介质可以包括转换装置,该装置包括:确定是否接收一个节点标识的装置;执行路径名对象转换处理的变化节点的装置;执行路径名对象转换处理的未变化节点的装置;以及将一个对象名插入路径名中的一个对象标识插入模块。该计算机可读介质可以包括执行路径名对象转换处理的变化节点的装置,该装置获取与涉及相应命名空间变化的节点相关联的对象名,并且包括执行路径名对象转换处理的未变化节点的装置,该装置获取不涉及相应命名空间变化的节点相关联的对象名。该计算机可读介质可以包括一个节点标识,该节点标识包括一个唯一的索引节点号。在一个实施方案中,该计算机可读介质包括执行路径名对象转换处理的变化节点的装置以及执行路径名对象转换处理的未变化节点的装置,这些装置使用返回该对象标识的数据结构。在一个示例实施方式中,计算机可读介质可以包括执行路径名对象转换处理的变化节点的装置,该装置递归地处理父节点标识符,并且包括执行路径名对象转换处理的未变化节点的装置,该装置递归地处理父节点标识符。
在一个实施方案中,一个信息存储复制系统包括:存储信息的装置;管理存储信息的装置中信息的存储的装置,包括管理员内部节点标识符向路径标识符的转换;以及存储信息副本的装置。该信息存储复制系统可以包括存储装置,该装置使用返回对象标识和父节点标识的数据结构。在一个示例性实施方式中,信息存储复制系统具有多个数据结构,包括:一个哈希表,该哈希表将与一个命名空间变化相关联的节点标识映射到一个父节点标识和一个对象名;以及一个前缀树,该前缀树映射前一个会话中未变化节点的一个最长路径。
为了进行解释和说明,已经给出了具体实施方案的前述描述。它们不用于穷尽或用于将本发明限制于所披露的精确形式,并且根据以上教义的很多修改形式和变化形式是可能的。为了最好地解释本发明的原理及其实际应用,选择并说明了这些实施方案,从而使得本领域的其他技术人员能够最好地利用本发明,以及针对预期的具体用途而作了各种适当修改的不同实施方案。目的是范围由本文包括的系统和方法以及它们的等同形式来定义。
Claims (18)
1.一种文件复制方法,包括:
接收与一个文件系统操作变化相关的节点信息;
利用至少一个计算机处理器确定所接收节点信息中的与特定节点相关联的信息是否在一个命名空间变更跟踪数据结构中;
在所述与特定节点相关联的信息在所述命名空间变更跟踪数据结构中的情况下,对所述节点信息执行变化节点至路径名对象的转换处理;
在所述与特定节点相关联的信息不在所述命名空间变更跟踪数据结构中的情况下,对所述节点信息执行未变化节点至路径名对象的转换处理,其中所述未变化节点至路径名对象的转换处理使用一个最长路径跟踪数据结构来确定一个未变化对象标识符;以及
基于所述变化节点至路径名对象的转换处理和所述未变化节点至路径名对象的转换处理中至少一个的结果将一个对象标识符插入一个路径名中。
2.如权利要求1所述的文件复制方法,其中所述变化节点至路径名对象的转换处理和所述未变化节点至路径名对象的转换处理使用返回所述对象标识符的数据结构。
3.如权利要求1所述的文件复制方法,其中所述变化节点至路径名对象的转换处理和所述未变化节点至路径名对象的转换处理使用返回多个父节点标识符的数据结构。
4.如权利要求1所述的文件复制方法,其中所述命名空间变更跟踪数据结构将与一个命名空间变化相关联的一个节点标识符映射到一个父节点标识符和一个对象名。
5.如权利要求4所述的文件复制方法,其中所述命名空间变更跟踪数据结构包括一个哈希表。
6.如权利要求1所述的文件复制方法,其中所述最长路径跟踪数据结构是一个前缀树。
7.如权利要求1所述的文件复制方法,其进一步包括将一个父对象节点标识符作为输入返回至所述变化节点至路径名对象的转换处理。
8.如权利要求1所述的文件复制方法,其进一步包括将一个父对象节点标识符作为输入返回至所述未变化节点至路径名对象的转换处理。
9.一种执行存储映像复制的计算装置,所述计算装置包括:
用于管理一个源文件系统在会话检查点的冻结的快照的装置;
用于恢复一个文件变化日志中的表项的装置,其中所述表项对应于所述会话检查点之间的变化;
用于在所述表项对应于会话检查点之间的变化的情况下将对应于所述文件变化日志的所述表项的节点标识转换为路径名标识的装置;
用于在所述表项不对应于会话检查点之间的变化的情况下使用一个最长路径跟踪数据结构来确定一个未变化对象标识符的装置;
用于过滤无用操作的装置;
用于在所述会话检查点之间恢复文件数据中的变化的装置;以及
用于转发所述路径名标识和所述文件数据中的所述变化的装置。
10.如权利要求9所述的计算装置,其中所述用于转换的装置包括:
用于确定是否接收一个节点标识的装置;
用于执行变化节点至路径名对象的转换处理的装置;
用于执行未变化节点至路径名对象的转换处理的装置;以及
用于在一个路径名中插入一个对象名的装置。
11.如权利要求10所述的计算装置,其中所述执行变化节点至路径名对象的转换处理的装置获取与涉及相应命名空间变化的节点相关联的对象名。
12.如权利要求10所述的计算装置,其中所述执行未变化节点至路径名对象的转换处理的装置获取与不涉及相应命名空间变化的节点相关联的对象名。
13.如权利要求10所述的计算装置,其中,所述节点标识包括一个唯一索引节点号。
14.如权利要求10所述的计算装置,其中所述执行变化节点至路径名对象的转换处理的装置以及所述执行未变化节点至路径名对象的转换处理的装置使用返回所述对象标识的数据结构。
15.如权利要求10所述的计算装置,其中所述执行变化节点至路径名对象的转换处理的装置递归地处理父节点标识符。
16.如权利要求10所述的计算装置,其中所述执行未变化节点至路径名对象的转换处理的装置递归地处理父节点标识符。
17.一种信息存储复制系统,包括:
用于存储信息的装置;
用于管理所述存储信息的装置中信息的存储的装置,包括管理源内部节点标识符至路径名标识符的转换,其中该用于管理的装置确定所接收的节点变化信息是否在指示节点的变化的第一数据结构中并且在节点信息变化的情况下利用所述第一数据结构,其中该用于管理的装置利用返回对象标识和父节点标识的一个或多个第二数据结构,该第二数据结构包括一个最长路径跟踪数据结构以确定一个未变化对象标识符;以及
用于存储所述信息的副本的装置。
18.如权利要求17所述的信息存储复制系统,其中
所述第二数据结构包括一个哈希表,该哈希表将与一个命名空间变化相关联的一个节点标识映射到一个父节点标识和一个对象名;以及
所述最长路径跟踪数据结构包括一个前缀树,该前缀树映射前一个会话中的未变化节点的一个最长路径。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US24838709P | 2009-10-02 | 2009-10-02 | |
US61/248,387 | 2009-10-02 | ||
US61/248387 | 2009-10-02 | ||
US12/638,912 | 2009-12-15 | ||
US12/638,912 US9235595B2 (en) | 2009-10-02 | 2009-12-15 | Storage replication systems and methods |
US12/638912 | 2009-12-15 | ||
PCT/US2010/050998 WO2011041606A2 (en) | 2009-10-02 | 2010-09-30 | Storage replication systems and methods |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102713901A CN102713901A (zh) | 2012-10-03 |
CN102713901B true CN102713901B (zh) | 2015-03-25 |
Family
ID=43823974
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080052112.1A Active CN102713901B (zh) | 2009-10-02 | 2010-09-30 | 存储复制系统和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9235595B2 (zh) |
EP (1) | EP2483809A2 (zh) |
JP (1) | JP5729708B2 (zh) |
CN (1) | CN102713901B (zh) |
WO (1) | WO2011041606A2 (zh) |
Families Citing this family (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9323775B2 (en) * | 2010-06-19 | 2016-04-26 | Mapr Technologies, Inc. | Map-reduce ready distributed file system |
US11726955B2 (en) | 2010-06-19 | 2023-08-15 | Hewlett Packard Enterprise Development Lp | Methods and apparatus for efficient container location database snapshot operation |
US8996800B2 (en) | 2011-07-07 | 2015-03-31 | Atlantis Computing, Inc. | Deduplication of virtual machine files in a virtualized desktop environment |
US9396205B1 (en) * | 2011-09-20 | 2016-07-19 | Netapp, Inc. | Detection and handling of namespace changes in a data replication system |
CN103124309B (zh) * | 2011-11-21 | 2014-09-17 | 希姆通信息技术(上海)有限公司 | 手机文件的读写控制方法及终端 |
US9471243B2 (en) | 2011-12-15 | 2016-10-18 | Veritas Technologies Llc | Dynamic storage tiering in a virtual environment |
CN102651036B (zh) * | 2012-04-14 | 2013-11-06 | 沈阳通用软件有限公司 | 通用、可靠的文件复制操作识别方法 |
US9069472B2 (en) | 2012-12-21 | 2015-06-30 | Atlantis Computing, Inc. | Method for dispersing and collating I/O's from virtual machines for parallelization of I/O access and redundancy of storing virtual machine data |
US9277010B2 (en) | 2012-12-21 | 2016-03-01 | Atlantis Computing, Inc. | Systems and apparatuses for aggregating nodes to form an aggregated virtual storage for a virtualized desktop environment |
US9015123B1 (en) * | 2013-01-16 | 2015-04-21 | Netapp, Inc. | Methods and systems for identifying changed data in an expandable storage volume |
US9250946B2 (en) | 2013-02-12 | 2016-02-02 | Atlantis Computing, Inc. | Efficient provisioning of cloned virtual machine images using deduplication metadata |
US9372865B2 (en) * | 2013-02-12 | 2016-06-21 | Atlantis Computing, Inc. | Deduplication metadata access in deduplication file system |
US9471590B2 (en) | 2013-02-12 | 2016-10-18 | Atlantis Computing, Inc. | Method and apparatus for replicating virtual machine images using deduplication metadata |
CN104937576B (zh) | 2013-03-28 | 2018-08-31 | 慧与发展有限责任合伙企业 | 协调存储在基于非易失性存储器的系统中的数据的复制 |
WO2014170952A1 (ja) * | 2013-04-16 | 2014-10-23 | 株式会社日立製作所 | 計算機システム、計算機システム管理方法及びプログラム |
US10860529B2 (en) * | 2014-08-11 | 2020-12-08 | Netapp Inc. | System and method for planning and configuring a file system migration |
US20160041996A1 (en) | 2014-08-11 | 2016-02-11 | Netapp, Inc. | System and method for developing and implementing a migration plan for migrating a file system |
US10459892B2 (en) | 2014-04-23 | 2019-10-29 | Qumulo, Inc. | Filesystem hierarchical aggregate metrics |
US11132336B2 (en) | 2015-01-12 | 2021-09-28 | Qumulo, Inc. | Filesystem hierarchical capacity quantity and aggregate metrics |
WO2016143095A1 (ja) * | 2015-03-11 | 2016-09-15 | 株式会社日立製作所 | 計算機システム及びトランザクション処理の管理方法 |
GB2541950B (en) * | 2015-09-07 | 2020-01-08 | Arm Ip Ltd | Methods for verifying data integrity |
US10095729B2 (en) | 2016-12-09 | 2018-10-09 | Qumulo, Inc. | Managing storage quotas in a shared storage system |
CN107562775B (zh) * | 2017-07-14 | 2020-04-24 | 创新先进技术有限公司 | 一种基于区块链的数据处理方法及设备 |
US10769172B2 (en) | 2018-03-28 | 2020-09-08 | Hewlett Packard Enterprise Development Lp | Globalized object names in a global namespace |
US10671370B2 (en) * | 2018-05-30 | 2020-06-02 | Red Hat, Inc. | Distributing file system states |
US11360936B2 (en) | 2018-06-08 | 2022-06-14 | Qumulo, Inc. | Managing per object snapshot coverage in filesystems |
US10534758B1 (en) | 2018-12-20 | 2020-01-14 | Qumulo, Inc. | File system cache tiers |
US11151092B2 (en) | 2019-01-30 | 2021-10-19 | Qumulo, Inc. | Data replication in distributed file systems |
US10754559B1 (en) * | 2019-03-08 | 2020-08-25 | EMC IP Holding Company LLC | Active-active storage clustering with clock synchronization |
US11513919B2 (en) * | 2019-12-30 | 2022-11-29 | EMC IP Holding Company LLC | System and method of generating automatic checkpoints of a distributed file system |
US11210171B2 (en) * | 2020-01-06 | 2021-12-28 | International Business Machines Corporation | Apparatus, systems, and methods for booting from a checkpoint image |
US10795796B1 (en) | 2020-01-24 | 2020-10-06 | Qumulo, Inc. | Predictive performance analysis for file systems |
US10860372B1 (en) | 2020-01-24 | 2020-12-08 | Qumulo, Inc. | Managing throughput fairness and quality of service in file systems |
US11151001B2 (en) | 2020-01-28 | 2021-10-19 | Qumulo, Inc. | Recovery checkpoints for distributed file systems |
CN113448921A (zh) * | 2020-03-28 | 2021-09-28 | 华为技术有限公司 | 一种存储管理方法、装置及存储系统 |
US11775481B2 (en) | 2020-09-30 | 2023-10-03 | Qumulo, Inc. | User interfaces for managing distributed file systems |
US11157458B1 (en) * | 2021-01-28 | 2021-10-26 | Qumulo, Inc. | Replicating files in distributed file systems using object-based data storage |
US11803571B2 (en) | 2021-02-04 | 2023-10-31 | Hewlett Packard Enterprise Development Lp | Transfer of synchronous and asynchronous replication |
US11461241B2 (en) | 2021-03-03 | 2022-10-04 | Qumulo, Inc. | Storage tier management for file systems |
US11567660B2 (en) | 2021-03-16 | 2023-01-31 | Qumulo, Inc. | Managing cloud storage for distributed file systems |
US11132126B1 (en) | 2021-03-16 | 2021-09-28 | Qumulo, Inc. | Backup services for distributed file systems in cloud computing environments |
US11669255B2 (en) | 2021-06-30 | 2023-06-06 | Qumulo, Inc. | Distributed resource caching by reallocation of storage caching using tokens and agents with non-depleted cache allocations |
US11294604B1 (en) | 2021-10-22 | 2022-04-05 | Qumulo, Inc. | Serverless disk drives based on cloud storage |
US11354273B1 (en) | 2021-11-18 | 2022-06-07 | Qumulo, Inc. | Managing usable storage space in distributed file systems |
US11599508B1 (en) | 2022-01-31 | 2023-03-07 | Qumulo, Inc. | Integrating distributed file systems with object stores |
US11722150B1 (en) | 2022-09-28 | 2023-08-08 | Qumulo, Inc. | Error resistant write-ahead log |
US11729269B1 (en) | 2022-10-26 | 2023-08-15 | Qumulo, Inc. | Bandwidth management in distributed file systems |
US11966592B1 (en) | 2022-11-29 | 2024-04-23 | Qumulo, Inc. | In-place erasure code transcoding for distributed file systems |
US11934660B1 (en) | 2023-11-07 | 2024-03-19 | Qumulo, Inc. | Tiered data storage with ephemeral and persistent tiers |
US11921677B1 (en) | 2023-11-07 | 2024-03-05 | Qumulo, Inc. | Sharing namespaces across file system clusters |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5572709A (en) * | 1993-06-18 | 1996-11-05 | Lucent Technologies Inc. | Using dynamically-linked libraries to add side effects to operations |
US5689706A (en) * | 1993-06-18 | 1997-11-18 | Lucent Technologies Inc. | Distributed systems with replicated files |
US6230212B1 (en) * | 1993-06-30 | 2001-05-08 | Microsoft Corporation | Method and system for the link tracking of objects |
US6535970B1 (en) * | 2000-01-04 | 2003-03-18 | International Business Machines Corporation | Method and apparatus for enhanced performance caching for path names |
EP1349088A2 (en) * | 2002-03-19 | 2003-10-01 | Network Appliance, Inc. | System and method for determining and transmitting changes in snapshots |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2152528C (en) | 1994-07-29 | 2000-04-18 | Chung-Hwa Herman Rao | Distributed systems with replicated files |
US6983296B1 (en) * | 2002-08-12 | 2006-01-03 | Network Appliance, Inc. | System and method for tracking modified files in a file system |
JP2004280283A (ja) * | 2003-03-13 | 2004-10-07 | Hitachi Ltd | 分散ファイルシステム、分散ファイルシステムサーバ及び分散ファイルシステムへのアクセス方法 |
JP4320195B2 (ja) * | 2003-03-19 | 2009-08-26 | 株式会社日立製作所 | ファイルストレージサービスシステム、ファイル管理装置、ファイル管理方法、id指定型nasサーバ、および、ファイル読出方法 |
US7346664B2 (en) * | 2003-04-24 | 2008-03-18 | Neopath Networks, Inc. | Transparent file migration using namespace replication |
EP1618500A4 (en) * | 2003-04-24 | 2009-01-07 | Neopath Networks Inc | TRANSPARENT FILE MIGRATION USING A NAME SPACE DUPLICATION |
WO2005029333A1 (en) | 2003-09-12 | 2005-03-31 | Levanta, Inc. | Tracking and replicating file system changes |
US7636743B2 (en) | 2005-12-19 | 2009-12-22 | Commvault Systems, Inc. | Pathname translation in a data replication system |
US7606844B2 (en) | 2005-12-19 | 2009-10-20 | Commvault Systems, Inc. | System and method for performing replication copy storage operations |
US7962709B2 (en) * | 2005-12-19 | 2011-06-14 | Commvault Systems, Inc. | Network redirector systems and methods for performing data replication |
US7613750B2 (en) | 2006-05-29 | 2009-11-03 | Microsoft Corporation | Creating frequent application-consistent backups efficiently |
-
2009
- 2009-12-15 US US12/638,912 patent/US9235595B2/en active Active
-
2010
- 2010-09-30 EP EP10763566A patent/EP2483809A2/en not_active Ceased
- 2010-09-30 WO PCT/US2010/050998 patent/WO2011041606A2/en active Application Filing
- 2010-09-30 CN CN201080052112.1A patent/CN102713901B/zh active Active
- 2010-09-30 JP JP2012532334A patent/JP5729708B2/ja active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5572709A (en) * | 1993-06-18 | 1996-11-05 | Lucent Technologies Inc. | Using dynamically-linked libraries to add side effects to operations |
US5689706A (en) * | 1993-06-18 | 1997-11-18 | Lucent Technologies Inc. | Distributed systems with replicated files |
US6230212B1 (en) * | 1993-06-30 | 2001-05-08 | Microsoft Corporation | Method and system for the link tracking of objects |
US6535970B1 (en) * | 2000-01-04 | 2003-03-18 | International Business Machines Corporation | Method and apparatus for enhanced performance caching for path names |
EP1349088A2 (en) * | 2002-03-19 | 2003-10-01 | Network Appliance, Inc. | System and method for determining and transmitting changes in snapshots |
Also Published As
Publication number | Publication date |
---|---|
US9235595B2 (en) | 2016-01-12 |
JP5729708B2 (ja) | 2015-06-03 |
US20110082836A1 (en) | 2011-04-07 |
JP2013506920A (ja) | 2013-02-28 |
WO2011041606A3 (en) | 2011-06-23 |
WO2011041606A2 (en) | 2011-04-07 |
EP2483809A2 (en) | 2012-08-08 |
CN102713901A (zh) | 2012-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102713901B (zh) | 存储复制系统和方法 | |
CN109145205B (zh) | 一种基于区块链的跨链数据操作方法和装置 | |
US7778962B2 (en) | Client store synchronization through intermediary store change packets | |
Gousios | The GHTorent dataset and tool suite | |
CN106484906B (zh) | 一种分布式对象存储系统闪回方法及装置 | |
CN101460930B (zh) | 维护数据库与文件系统之间的链接级一致性 | |
US7890547B2 (en) | Content delivery server | |
RU2370808C2 (ru) | Система и способ для отображения данных с вложенными таблицами без схемы | |
CN101336435B (zh) | 可缩放文件复制和基于web的访问 | |
US8918429B2 (en) | Database versioning system | |
US20140289280A1 (en) | System and Method for Bi-directional Conversion of Directed Acyclic Graphs and Inter-File Branching | |
CN104412266A (zh) | 用于具有动态排序的树结构的多维数据储存和文件系统的方法和装置 | |
CN105956123A (zh) | 基于局部更新软件的数据处理方法及装置 | |
CN103902410A (zh) | 云存储系统的数据备份加速方法 | |
CN108573014B (zh) | 一种文件同步方法、装置、电子设备及可读存储介质 | |
CN104050216A (zh) | 用于定制化资源分配的文件系统管理器 | |
CN103795811A (zh) | 一种基于元数据保存存储信息及统计管理数据的方法 | |
US11150996B2 (en) | Method for optimizing index, master database node and subscriber database node | |
CN105808753A (zh) | 一种区域性数字资源系统 | |
CN103853612A (zh) | 一种基于分布式存储下的数字家庭内容读数据的方法 | |
CN105373376A (zh) | 用于配置软件应用的方法和装置 | |
CN103902577A (zh) | 一种资源查找定位的方法和系统 | |
CN103853613A (zh) | 一种基于分布式存储下的数字家庭内容读数据的方法 | |
CN111143366B (zh) | 一种针对海量大对象数据的高效能存储方法 | |
CN113076298A (zh) | 分布式小文件存储系统 |
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 |