CN103038767B - 用于文件克隆的数据共享的方法和*** - Google Patents
用于文件克隆的数据共享的方法和*** Download PDFInfo
- Publication number
- CN103038767B CN103038767B CN201180036918.6A CN201180036918A CN103038767B CN 103038767 B CN103038767 B CN 103038767B CN 201180036918 A CN201180036918 A CN 201180036918A CN 103038767 B CN103038767 B CN 103038767B
- Authority
- CN
- China
- Prior art keywords
- index node
- clone
- inode
- data
- link
- 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.)
- Expired - Fee Related
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/174—Redundancy elimination performed by the file system
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种用于使用反向复本引用来创建和实施文件克隆的方法、***和计算机程序产品。克隆索引节点被创建以作为原索引节点的拷贝。克隆索引节点和原索引节点是最终用户不可区分的。所创建的每个附加文件克隆产生克隆索引节点。不可变的克隆父代索引节点被创建,其包含盘块地址,而可写的克隆索引节点则包含将克隆索引节点链接到克隆父代索引节点中所引用的数据块的复本。原索引节点中的数据块地址链接被移至新克隆父代索引节点,并且复本替换原索引节点中的原数据块地址链接。当克隆文件被更新时,新数据被写入新盘位置,并且克隆索引节点中的对应复本被数据块链接地址替换,保持克隆父代索引节点的数据不变。
Description
技术领域
本发明总体上涉及数据处理***,并且具体地,涉及数据处理***中的数据和文件。更具体地,本发明涉及一种用于实施不可变数据共享文件克隆的改进方法。
背景技术
包括来自IBM公司的通用并行文件***(GPFS)的许多文件***支持文件***快照。文件***快照是文件***的逻辑时间点拷贝。快照可以用于文件***备份。备份来自快照的数据确保在一致状态中保留文件***内容。快照的另一常见使用是创建定期快照,并且也通过保持某一数目的近来快照在线,用户可以取回意外删除或者改写的文件的先前拷贝。
通常使用“写入时拷贝”(copy-on-write)机制来实施快照。在写入时拷贝推迟快照中的文件分配盘空间直至修改或者删除原文件。这具有的优点在于快照创建很快(在创建快照时未拷贝数据)并且快照占用的盘空间限于自从创建快照起修改或者删除的数据量。GPFS使用称为“复本(ditto)”的逻辑引用来实施在写入时拷贝。复本存储于快照中的索引节点(inode)和间接文件块中(而不是对物理盘空间的引用)以指示尚未修改原文件中的对应数据或者元数据。当修改原文件时,快照中的复本替换为对原数据的拷贝的引用。GPFS目前仅允许创建整个文件***的快照。然而在GPFS中创建的快照为只读。因此,尽管用户可以读取快照文件,但是用户不能修改或者删除快照中的文件。
此外,可以部署数据管理应用编程接口(DMAPI),该DMAPI允许第三方应用辅助文件***中的盘空间管理。DMAPI应用通过向离线储存器移动不频繁访问的数据来工作。继而,不频繁使用的数据可以尽在需要时被恢复。典型DMAPI应用将不识别快照。因此,当快照移向文件***的离线储存器时,管理该文件***的快照遇到大量困难,因为可能需要重建快照,这是由已经从原文件移动或者去关联快照。此外,恢复移动的快照需要大量附加盘空间,因为然后将修改快照以包括更新的数据。
发明内容
公开一种用于创建和实施文件克隆的方法、***和计算机程序产品。克隆索引节点被创建以作为原索引节点的拷贝。克隆索引节点和原索引节点是最终用户不可区分的。所创建的每个附加文件克隆产生克隆索引节点。不可变的克隆父代索引节点被创建,其包含盘块地址,而可写的克隆索引节点则包含将克隆索引节点链接到克隆父代索引节点中所引用的数据块的复本。由此,原索引节点中的数据块地址链接被移至新克隆父代索引节点,并且复本替换原索引节点中的原数据块地址链接。当克隆文件被更新时,新数据被写入新盘位置,并且克隆索引节点中的对应复本被替换为数据块链接地址,保持克隆父代索引节点的数据不变。
附图说明
现在将参照以下附图仅通过示例描述本发明的实施例:
图1是本发明可以实施于其中的数据处理***的框图。
图2是根据一个实施例的包含对盘文件上的示例数据块的物理引用的索引节点和索引节点关联方案的框图图示。
图3是根据一个实施例的包括图2的原索引节点的克隆方案的框图图示。
图4是图示了根据一个实施例的创建克隆父代索引节点的新克隆索引节点的框图。
图5是图示了根据一个实施例的图示了克隆父代索引节点、现在作为克隆父代索引节点的克隆索引节点来工作的原索引节点、克隆父代索引节点的克隆和克隆父代索引节点的克隆的两个克隆索引节点的关系的框图。
图6是根据一个实施例的用于创建原索引节点的克隆父代索引节点的示例过程的高级逻辑流程图。
图7是根据一个实施例的初始化克隆索引节点的高级逻辑流程图。
图8是根据一个实施例的用于创建克隆父代索引节点的新(第三)克隆索引节点的过程的高级逻辑流程图。
图9是根据一个实施例的用于初始化新克隆索引节点的过程的高级逻辑流程图。
图10是根据一个实施例的用于删除所选索引节点的过程的高级逻辑流程图。
具体实施方式
示例实施例提供根据一个实施例的一种用于使用反向复本引用来实施数据共享文件克隆的方法、***和计算机程序产品。
在对本发明的示例实施例的下文具体描述中,以充分细节描述可以实现本发明的具体示例实施例以使本领域技术人员能够实现本发明,并且将理解可以利用其它实施例并且可以进行逻辑、架构、程序、机械、电和其它改变而未脱离本发明的精神实质和范围。因此不会在限制意义上理解下文具体描述,并且本发明的范围仅由所附权利要求限定。
理解具体部件、设备和/或参数名称的使用仅为举例而并非为了暗示对本发明的任何限制。因此可以用不同命名/术语实施本发明而不限于此,这些命名/术语这里用来描述部件/设备/参数。将向这里利用的每个术语给予它在利用该术语的上下文给定时的最广义解释。另外,尽管一般描述为适用于文件***,但是与描述的实施例关联的功能适用于任何种类的文件***或者存储文件式对象的任何存储***、例如数据库或者对象存储库。这些***一般可以称为计算机实施的文件存储和/或管理设施。
现在参照图1,描绘本发明可以实施于其中的数据处理***(DPS)102的框图。DPS102包括耦合到***总线106的处理器104。处理器104可以是单个处理器、多芯处理器或者多处理器阵列。耦合到***总线106的视频接口108允许显示器130由DPS102的用户连接到DPS102从而实现显示用户接口(包括文字和图形)。***总线106还实现与基于硬件的可读存储介质112(例如紧致盘-只读存储器(CD-ROM)、快闪驱动存储器)的通信。输入/输出(I/O)接口114同样连接到***总线106,它允许用户与DPS102的交互、例如经由键盘116或者鼠标117的数据录入。DPS102还包括连接到***总线106的***存储器118。在***存储器118内图示了多个软件/固件/逻辑部件,这些部件包括操作***(OS)124(例如MicrosoftWindows—这是MicrosoftCorp的注册商标—或者GNU/Linux—这是FreeSoftwareFoundation和LinuxMarkInstitute的注册商标—以及应用122。***存储器118也可以包括数据管理应用编程接口(DMAPI)或者DMAPI应用126,该DMAPI或者DMAPI应用使另一第三方应用(例如应用122)能够辅助文件***中的盘空间管理。在一个实施例中,DMAPI126允许第三方应用将不频繁访问的数据移向离线储存器。然后可以仅在需要时恢复不频繁使用的数据。如图所示,***存储器118也包括用于实施图2-10中描述的过程的文件克隆数据共享(FCDS)逻辑120。在一个实施例中,如下文在图2-10中更具体描述的那样,DPS102能够利用FCDS逻辑120的可执行代码以便使用反向复本引用来实施不可变文件克隆。在一个实施例中,可以在储存器适配器145内提供FCDS逻辑。当文件集及其关联内部索引存储于内部储存器150或者外部存储文件***165(其通过在存储适配器145中执行的代码而可被访问)上时或者在这样的情况下,该实施例可被实现。
DPS102还包括经由对应储存器适配器145耦合的***储存器150。***储存器150存储用于一个或者多个应用的数据/指令/代码。如图所示,***储存器150包含经由对应索引节点/索引节点块可访问的一个或者多个文件集存储于其内的文件***155。在一个实施例中,在通用并行文件***(GPFS)中格式化文件***155。此外,DPS102也可以连接到外部存储文件***165,该外部存储文件***提供与内部***储存器150相似的外部储存器、但是代之以经由储存器适配器145或者经由网络142连接到DPS102。
还图示了DPS102具有网络接口110,DPS可以通过该网络接口连接到一个或者多个网络可访问设备、例如外部储存器165或者服务器162。经由一个或者多个网络142访问这些设备。网络接口110可以被配置成经由与网络142的接入点的有线和/或无线连接操作。网络142可以是外部网络如因特网或者广域网(WAN)或者内部网络如以太网(局域网-LAN)或者虚拟专用网(VPN)。在一个实施例中,当网络12是内部网络、例如LAN时,可以用一个或者多个服务器(162)建立与外部网络(因特网)的连接,该一个或者多个服务器也可以提供用于由DPS102使用或者在DPS102上执行的数据/指令/代码。
在一个实施例中,与FCDS逻辑120关联的某些特征可以经由软件部署服务器(例如服务器162)获得,并且DPS102使用网络接口110经由网络142与软件部署服务器(162)通信。然后可以经由软件部署服务器(162)从网络/在网络上/跨越网络部署FCDS逻辑120。利用这一配置,软件部署服务器(162)可以执行与FCDS逻辑120的执行关联的功能中的所有功能。因而无需DPS102利用DPS102的内部计算资源以执行FCDS逻辑120。备选地,软件部署服务器可以使DPS102能够下载为了实施描述的实施例的各种特征而需要的可执行代码。
如这里图示和描述的那样,DPS102可以是具有所需硬件部件并且用FCDS逻辑120编程的计算机或者计算设备,该FCDS逻辑在处理器上执行以提供描述的实施例的功能。在DPS102中描绘的硬件单元并非旨在于穷举而实际上作为代表以突出可以用来实施本发明的基本部件。例如可以利用数据处理***/设备的不同配置,这些配置包含除了描绘的硬件之外或者备选地也可以使用的其它设备/部件。描绘的示例并非为了暗示关于当前描述的实施例和/或一般的本发明的架构或者其它限制。图1中描绘的数据处理***可以例如是运行高级交互执行(AIX)操作***或者LINUX操作***的IBMeServerpSeries***,这是位于纽约州Armonk的国际商务机器公司的产品。
现在参照图2,描绘了根据本发明一个实施例的示例数据文件和索引节点关联方案的图示。如图2中所示,原索引节点(i1)202在其中具有关联的与存储于DPS102的存储器中的文件对应的数据块地址链接204a-204n。数据块地址链接204a-204n将原索引节点(i1)202链接到数据块206a-n。数据块206a-n包含原索引节点(i1)202的目标数据并且可以在任何时间由处理器104(图1)调用。
现在参照图3,描绘了根据本发明一个实施例的包括图2的原索引节点的克隆方案的图示。如图所示,克隆方案提供已经创建克隆索引节点(i0)302为原索引节点(i1)202的快照克隆父代。克隆索引节点(i0)302作为不可变文件快照(克隆父代索引节点)而操作,其充当后续文件克隆的基础。
为了创建克隆索引节点(i0)302,DPS102的逻辑(例如FCDS逻辑120)首先选择或者接收与原文件对应的所选索引节点(原索引节点(i1)202),并且创建克隆索引节点(i0)302。所记录的克隆索引节点(i0)302的创建时间可以从原索引节点(i1)202拷贝,或者可以基于创建克隆索引节点(i0)302时的当前时间而被设置。在分配克隆索引节点(i0)302时,克隆索引节点(i0)302的状态被设置为已创建。继而可以***用于新克隆索引节点(i0)302的名称。用于克隆索引节点(i0)302的名称可以由DPS102的用户录入或者可以由在DPS102上运行的逻辑(例如作为FCDS逻辑120)自治地分配。在备选实施例中,用于克隆索引节点(i0)302的名称可以由经由网络142连接到DPS102的计算机160a-n提供。目标目录也可以由DPS102的用户提供或者可以由在DPS102上运行的逻辑(例如作为FCDS逻辑120)自治地分配。响应于接收名称条目和目标目录,克隆索引节点(i0)302被***所选目标目录,并且被分配以指定的名称条目。
在克隆索引节点(i0)302已在目标目录中被创建并且被赋予名称之后,将克隆索引节点(i0)302初始化为用于原索引节点(i1)202的克隆父代。一旦被初始化为克隆父代,克隆父代索引节点变成原索引节点的不可变拷贝。初始化过程包括以下步骤:(1)向克隆索引节点(i0)302拷贝数据块地址链接204a-n和原索引节点(i1)202的首部,(2)将克隆索引节点(i0)302中的链接计数设置成2,(3)向克隆索引节点(i0)302拷贝原索引节点(i1)202的索引节点时间戳和许可位,(4)确定克隆索引节点(i0)302的所有者证书,以及(5)基于确定的所有者证书设置克隆索引节点(i0)302的所有者字段。在一个实施例中,步骤1-5可以被保存以使得每个步骤是原子的。
链接计数是依赖于该具体索引节点的索引节点数目的计数。例如,本身无克隆的克隆子代索引节点将具有链接计数一,因为它仅自依赖。具有两个子代克隆的父代索引节点将具有链接计数三(一个计数为本身,两个计数为两个依赖子代索引节点)。由于删除父代索引节点可能引起文件***中的大量问题,所以如果请求的删除操作以父代索引节点为目标,则可以拒绝索引节点删除请求。由此,不可以删除具有大于一的链接计数的索引节点(因为子代索引节点仍然依赖于具有大于一的链接计数的索引节点)。
所有者证书提供用于索引节点的所有者的标识信息。在一个实施例中,用于克隆索引节点(i0)302的所有者证书可以从原索引节点(i1)202被简单地标识和拷贝。在一个备选实施例中,可以基于DPS102的当前用户或者基于DPS102的执行过程自治地创建所有者证书。此外,当克隆索引节点(i0)302的所有者不同于原索引节点(i1)202的所有者时,原索引节点(i1)202的盘块配额可被转移给克隆索引节点(i0)302的所有者。
响应于完成对克隆索引节点(i0)302的初始化,更新原索引节点(i1)202以反映该改变。由于克隆索引节点(i0)302是用于原索引节点(i1)202的新的克隆父代,所以先前附着到原索引节点(i1)202的数据块地址链接204a-n已经代之以被移至克隆索引节点(i0)302(图示为数据块地址链接204a-n)。原先与原索引节点(i1)202关联的数据块代之以替换为复本312a-n。每个复本312a-n对应于数据块地址链接204a-n之一。复本是在快照中的索引节点或者间接块中存储的引用,其通过将读取请求重定向至不同文件而允许多个文件共享相同盘空间。复本指示尚未修改原文件中的对应数据或者元数据。由于复本仅仅是对原盘空间的引用,所以直至修改原索引节点之前都不需要额外的***储存器。在一个实施例中,不可变文件(克隆父代)的地址链接包含盘块地址,而可写入文件(克隆文件)中的地址链接包含复本。复本指向存储于克隆父代中的盘块地址链接。当克隆文件被更新时,新数据被写入新的盘位置,并且复本继而被实际数据块链接地址替换。
在将数据块地址链接204a-n中的每个数据块地址链接替换为复本312a-n之后,将原索引节点(i1)202的块计数设置成零。将原索引节点202更新为克隆索引节点(i0)302的子代,并且更新索引节点映射以将克隆索引节点(i0)302标识为使用中。索引节点的块计数标识存储于该索引节点中的数据块的数目。由于原索引节点(i1)202现在仅包含复本312a-n,所以块计数为零。当修改原索引节点202时,将受影响的复本替换为对原数据的拷贝的引用,并且针对被替换为数据块的每个附加复本312a-n将块计数递增一。
在一个实施例中,克隆索引节点(i0)302是新索引节点。然而克隆索引节点(i0)302也可以是已经重设为原索引节点(i1)202的克隆的现有索引节点。为了重设现有索引节点,克隆属性必须首先被存储于现有索引节点中。继而可以将现有索引节点标识为克隆父代。
在一个实施例中,DPS102可以具有嵌入于其中的数据管理应用编程接口(DMAPI)应用(例如,DMAPI126),用于将不频繁访问的数据移至离线储存器并且透明地恢复在需要时未配置成恰当管理克隆文件的数据。由于克隆父代(例如克隆索引节点(i0)302)不可变,所以通过对复本的不可见写入而被恢复的数据应当与仍然在父代中的数据相同。这在克隆文件被向/从离线储存器迁移时保留克隆文件。响应于DMAPI应用将一个或者多个克隆文件从数据处理***的储存器移向离线储存器并且发出对任何克隆文件中的数据的读取,在DPS102上运行的逻辑(例如,作为FCDS逻辑120)执行对经由克隆索引节点的复本而被间接链接的数据的不可见读取。响应于DMAPI应用发出对任何克隆文件中的数据的写入,如果写入将使克隆索引节点的一个或者多个复本被改写,则逻辑静默地忽略写入。此外,响应于DMAPI应用基于上次访问时间向/从离线储存器将一个或者多个克隆文件向数据处理***的储存器迁移,逻辑可以自治地更新克隆索引节点的上次访问时间以解析盘地址。
现在参照图4,描绘了根据一个实施例的原索引节点(i1)202、克隆索引节点(i0)302和克隆索引节点(i0)302的新克隆、新索引节点(i2)402的图示。克隆索引节点(i0)302如图3中呈现的那样是原索引节点(i1)202的可变克隆父代。新索引节点(i2)404也已被创建以作为克隆索引节点(i0)302的新克隆。
为了创建新索引节点(i2)402,新索引节点(i2)402必须被首先分配为新的克隆索引节点。应用名称和目标目录也如上文所述被应用。响应于接收用于新索引节点(i2)402的新名称条目和目标目录,新索引节点(i2)402以新名称被***以作为所选目标目录中的新条目。
在新索引节点(i2)402已在目标目录中被创建并被赋予名称之后,新索引节点(i2)402被初始化为克隆索引节点(i0)302的克隆。初始化过程包括步骤:(1)向新索引节点(i2)402拷贝克隆父代(i0)302的首部,(2)设置与存储于克隆索引节点(i0)302中的一个或者多个数据块地址链接204a-n对应的一个或者多个复本404a-n,(3)将新索引节点(i2)402中的链接计数设置成1,(4)将新索引节点(i2)402的块计数设置成零,以及(5)将克隆索引节点(i0)302记录为新索引节点(i2)402的克隆父代。在一个实施例中,步骤1-5还被保存以使每个步骤是原子的。一旦新索引节点(i2)402被初始化,将克隆索引节点(i0)302的链接计数递增一,并且更新索引节点映射以将新索引节点(i2)402标识为使用中。克隆索引节点(i0)302链接计数的递增将克隆索引节点(i0)302标识为另一索引节点(在这一情况下——新索引节点(i2)402)的父代。
现在参照图5,描绘了以克隆父代索引节点(克隆索引节点(i0)302)、现在作为克隆父代索引节点的克隆来工作的原索引节点(原索引节点(i1)202)、克隆父代索引节点的克隆(新索引节点(i2)402)以及克隆父代索引节点的克隆的两个克隆(第一克隆索引节点(i3)522和第二克隆索引节点(i4)542)为特征的一个示例实施例的图示。图5图示了可以如何个别读取或者写入父代和克隆索引节点二者。新索引节点(i2)402还是两个克隆子代索引节点——第一克隆索引节点(i3)522和第二克隆索引节点(i4)542——的父代节点。第一克隆索引节点(i3)522和第二克隆索引节点(i4)542二者分别具有复本524a-d和复本544a-d。特别地,图5图示了原索引节点(i1)202具有复本312a-d、克隆索引节点(i0)302(原索引节点202的新克隆父代)具有数据块地址链接204a-d,并且新索引节点(i2)402)具有与数据块地址链接204a-b对应的两个复本404a-b并且具有两个数据块地址链接508c-d。新索引节点(i2)402是克隆索引节点(i0)302的克隆。
如上述例图5中所示,新索引节点(i2)402具有与克隆索引节点(i0)302的数据块地址链接204a-b对应的两个复本404a-b。此外,新索引节点(i2)402还包括指向数据块506c-d的数据块地址链接508c-d。这是修改新索引节点(i2)402的目标文件的结果,其中两个复本受到影响。子代复本404c-d被替换为数据块地址链接508c-d,而不是修改克隆索引节点(i0)302,这些数据块地址链接包含对在数据块506c-d存储的更新数据的引用。因此,数据块地址链接204a-b的数据引用保持不变,保留了克隆快照。
对新索引节点(i2)402链接的文件的任何修改将影响第一克隆索引节点(i3)522和第二克隆索引节点(i4)542各自的复本524a-d和复本544a-d。这种操作的结果是复本524a-d和复本544a-d仍然间接指向数据块地址链接204a-b,而复本524c-d和复本544c-d参考数据块地址链接508c-d。反之,原索引节点(i1)202的复本312a-d仍然指向204a-d,因为原索引节点(i1)202未被修改。
现在参照图6,描绘了根据本发明一个实施例的用于创建原索引节点的克隆父代索引节点的示例过程的高级逻辑流程图。如图所示,过程始于块600继而进行到块605,在此选择原索引节点。一旦原索引节点被选择,便创建克隆索引节点,其意在作为原索引节点的新克隆父代索引节点(块610)。在块615,建立用于克隆索引节点的名称条目和状态。克隆索引节点的状态被设置为克隆父代。此外,为克隆索引节点建立期望的目标目录(块617)。克隆索引节点继而以所选的名称被***所选目标目录以作为目录条目(块620)。在块625,将克隆索引节点初始化为克隆父代。块625中执行的初始化子步骤在图7中详述。
一旦克隆索引节点已被初始化为克隆父代,更新原索引节点(块630)。更新克隆索引节点包括将原索引节点内包含的一个或者多个数据块地址链接中的每个数据块地址链接设置成一个或者多个复本。复本对目前存储于克隆索引节点(新克隆父代索引节点)中的一个或者多个数据块地址间接寻址。由于原索引节点现在不包含数据块地址链接,所以原索引节点的块计数被设置成零。在块635,更新索引节点映射以将克隆索引节点反映为原索引节点的新克隆父代索引节点。过程继而终止于块690。
现在参照图7,描绘了根据本发明一个实施例的在图6的块625中参照的初始化克隆索引节点的高级逻辑流程图。如图所示,过程始于块700继而进行到块705,在此从原索引节点向克隆索引节点拷贝数据块地址链接和首部信息。克隆索引节点现在包含先前存储于原索引节点内的数据,并且递增克隆索引节点的链接计数(或者设置成2),因为克隆索引节点和原索引节点现在都依赖于新克隆父代索引节点(克隆索引节点)(块710)。在块715,向克隆索引节点拷贝来自原索引节点的时间戳和许可位,使克隆索引节点与克隆索引节点替换的原索引节点相同。在块720,确定克隆索引节点的所有者证书。所有者证书可以与原索引节点的所有者证书相同,或者可以是当前用户或者执行过程的所有者证书。
在块725,确定克隆索引节点的所有者是否与原索引节点的所有者不同。当克隆索引节点的所有者与原索引节点的所有者不同时,将原索引节点的盘块份额转移给克隆索引节点的所有者(块750),并且过程继续块750。在块750,基于先前标识的所有者证书更新克隆索引节点的所有者字段。过程继而终止于块790。
现在参照图8,描绘了根据一个实施例的用于创建克隆父代索引节点的新(第三)克隆索引节点的示例过程的高级逻辑流程图。过程始于块800,在此创建新克隆索引节点以作为克隆父代索引节点的克隆。在块810,从用户或者执行过程接收用于新克隆索引节点的名称和目标目录条目。在块815,设置用于新克隆索引节点的名称条目,并且在目标目录中***新克隆索引节点。在块820,将新克隆索引节点初始化为克隆父代索引节点的克隆。块820中执行的初始化子步骤在图9中详述。
在块825,递增克隆父代索引节点的链接计数,因为克隆父代索引节点现在具有新依赖索引节点(新克隆索引节点)。在块830,更新索引节点映射以将新可能索引节点的状态反映为使用中。过程继而终止于块950。
现在参照图9,描绘了根据一个实施例的在块820中执行的初始化新克隆索引节点的高级逻辑流程图。如图所示,过程始于块900,继而进行到块905,在此向新克隆索引节点拷贝来自克隆父代索引节点的首部。在块910,复本在新克隆索引节点中被创建并且被设置成指向克隆父代索引节点的数据块地址链接。继而将新克隆索引节点的链接计数设置成1,因为新克隆索引节点仅依赖于自己(块915)。在块920,将新克隆索引节点的块计数设置成0,因为新克隆索引节点仅包含复本而尚未存储任何数据块地址链接。继而,在新克隆索引节点内将克隆父代索引节点记录为新克隆索引节点的克隆父代,并且将新克隆索引节点的创建时间设置成当前时间(块925)。过程继而终止于块990。
现在参照图10,描绘了根据一个实施例的用于删除所选索引节点的过程的高级逻辑流程图。过程始于块1000并且进行到块1005,在此接收针对所选索引节点的删除指令。响应于接收删除指令,确定所选索引节点是否为克隆父代(块1010)。当所选索引节点不是克隆父代时,过程继续到块1030。
当所选索引节点是克隆父代索引节点时,过程继续到块1020,在此确定该克隆父代是否仍然是任何子代索引节点的父代。通过读取所选索引节点的链接计数并且确定链接计数是否等于一(1)来执行该确定。如果链接计数不等于一(1),则所选索引节点仍具有依赖的克隆子代,并且过程继续到块1025,在此拒绝删除请求。过程继而终止于块1090。当所选子代的链接计数等于一(1)时,过程继续块1030。
在块1030,确定所选索引节点的父代。响应于确定所选索引节点的父代,将所选索引节点的父代的链接计数递减一(块1035)。递减所选索引节点的父代的链接计数,因为所选索引节点将要被删除因此不再依赖于它的父代索引节点。在块1040删除所选索引节点。过程继而终止于块1090。
在这里呈现和描述的各种图中的流程图和框图图示了根据本发明各种实施例的***、方法和计算机程序产品的可能实施方式的架构、功能和操作。就这一点而言,流程图或者框图中的每个块可以代表代码模块、段或者部分,该代码模块、段或者部分包括用于实施指定逻辑功能的的一个或者多个可执行指令。也应当注意在一些备选实施方式中,在块中指出的功能可以不按图中指出的顺序出现。例如事实上根据涉及到的功能可以基本上并行执行接连示出的两个块或者有时可以反序执行这些块。也将注意框图和/或流程图图示的每个块以及在框图和/或流程图图示中的块组合可以由执行指定功能或者动作的基于专用硬件的***实施或者由专用硬件与计算机指令的组合实施。
在上述流程图中,在包含计算机可读代码的计算机可读介质中实现方法中的一种或者多种方法,从而当(处理单元)在计算设备上执行计算机可读代码时执行系列步骤。在一些实施方式中,组合、同时或者按照不同顺序执行或者可能省略方法的某些过程而未脱离本发明的精神实质和范围。因此,尽管在特定序列中描述和图示方法过程,但是使用具体过程序列并非为了暗示对本发明的任何限制。可以关于过程序列做出改变而未脱离本发明的精神实质或者范围。因此不会在限制意义上解释使用特定序列,并且本发明的范围延及所附权利要求及其等效含义。
如本领域技术人员将理解的那样,可以实现本发明的方面为***、方法或者计算机程序产品。因而本发明的方面可以采用全硬件实施例、全软件实施例(包括固件、常驻软件、微代码等)或者将软件与硬件方面组合的实施例的形式,这些实施例可以在这里都通称为“电路”、“模块”或者“***”。另外,本发明的方面可以采用在一个或者多个计算机可读介质中实现的计算机程序产品的形式,该一个或者多个计算机可读介质具有在其上实现的计算机可读程序代码。
可以利用一个或者多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质可以例如是但不限于电子、磁、光学、电磁、红外线或者半导体***、装置或者设备或者前述各项的任何适当组合。计算机可读存储介质的更多具体示例(非穷举列表)包括以下示例:具有一个或者多个接线的电连接、便携计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或者闪存)、光纤、便携光盘只读存储器(CD-ROM)、光学存储设备、磁存储设备或者前述各项的任何适当组合。在本文的上下文中,计算机可读存储介质可以是任何有形介质,该有形介质可以包含或者存储用于由指令执行***、装置或者设备使用的或者与指令执行***、装置或者设备结合使用的程序。
计算机可读信号介质可以包括例如基带中或者作为载波的部分的传播数据信号,该传播数据信号具有在其中实现的计算机可读程序代码。这样的传播信号可以采用包括但不限于电磁、光学或者其任何适当组合的多种形式中的任何形式。计算机可读信号介质可以是任何计算机可读介质,该计算机可读介质不是计算机可读存储介质并且可以传达、传播或者传送用于由指令执行***、装置或者设备使用的或者与指令执行***、装置或者设备结合使用的程序。
可以使用任何适当介质来传输计算机可读介质上实现的程序代码,该介质包括但不限于无线、有线、光纤线缆、RF等或者前述介质的任何适当组合。可以用一种或者多种编程语言的任何组合来编写用于实现用于本发明方面的操作的计算机程序代码,该一种或者多种编程包括诸如Java、Smalltalk、C++等面向对象编程语言和例如“C”编程语言或者相似编程语言这样的常规过程编程语言。程序代码可以完全在用户的计算机上、部分在用户的计算机上、作为独立软件包、部分在用户的计算机上而部分在远程计算机上或者完全在远程计算机或者服务器上执行。在后一种场景中,远程计算机可以通过包括局域网(LAN)或者广域网(WAN)的任何类型的网络连接到用户的计算机,或者可以(例如通过使用因特网服务提供商的因特网)产生与外部计算机的连接。
下文参照根据本发明实施例的方法、装置(***)和计算机程序产品的流程图图示和/或框图描述本本发明的方面。将理解流程图图示和/或框图的每个块以及在流程图图示和/或框图中的块组合可以由计算机程序指令实施。可以向通用计算机、专用计算机或者其它可编程数据处理装置的处理器提供这些计算机程序指令以产生机器,从而经由计算机或者其它可编程数据处理装置的处理器执行的指令创建用于实施在流程图和/或框图的一个或者多个块中指定的功能/动作的装置。
这些计算机程序指令也可以存储于计算机可读介质中,该计算机可读介质可以指引计算机、其它可编程数据处理装置或者其它设备以特定方式工作,从而存储于计算机可读介质中的指令产生包括指令的制造品,这些指令实施在流程图和/或框图的一个或者多个块中指定的功能/动作。也可以向计算机、其它可编程数据处理装置或者其它设备上加载计算机程序指令以使系列操作步骤在计算机、其它可编程装置或者其它设备上执行以产生计算机实施的过程,从而在计算机或者其它可编程装置上执行的指令提供用于实施在流程图和/或框图的一个或者多个块中指定的功能/动作的过程。
如将进一步理解的那样,可以使用软件、固件或者硬件的任何组合来实施本发明实施例中的过程。作为在软件中实现本发明的预备步骤,程序代码(无论是软件或者固件)将通常存储于一个或者多个机器可读存储介质、例如固定(硬)驱动、盘、光盘、磁带、半导体存储器如ROM、PROM等中、由此产生根据本发明的制造品。通过从存储设备直接执行编程代码、通过从存储设备向诸如硬盘、RAM等另一存储设备中拷贝代码或者通过使用传输型介质、例如数字和模拟通信链路传输代码用于远程执行来使用包含代码的制造品。可以通过组合包含根据本发明的代码的一个或者多个机器可读存储设备与适当处理硬件以执行其中包含的代码来实现本发明的方法。用于实现本发明的装置可以是一个或者多个处理设备和存储***,该一个或者多个处理设备和存储***包含根据本发明编码的程序或者具有对该程序的网络访问。
因此重要的是尽管在具有安装(或者执行)的软件的全功能计算机(服务器)***的背景中描述本发明的一个示例实施例,但是本领域技术人员将理解能够用多种形式分布本发明示例实施例的软件方面为程序产品并且本发明的示例实施例无论用来实际实现分布的特定介质类型如何都同样适用。
尽管已经参照示例实施例描述本发明,但是本领域技术人员将理解可以做出各种改变并且等效要素可以替换其要素而未脱离本发明的范围。此外,可以做出许多修改以使特定***、设备或者其部件适应本发明的教导而未脱离其实质范围。因此旨在于本发明不限于公开的用于实现本发明的具体实施例而是本发明将包括落入所附权利要求的范围内的所有实施例。另外,使用术语第一、第二等未表示任何顺序或者重要性而实际上术语第一、第二等用来区分一个要素与另一要素。
这里所用术语仅用于描述具体实施例而并非旨在于限制本发明。如这里所用,除非上下文另有明示,则单数形式“一(个)”和“该(所述)”旨在于也包括复数形式。还将理解术语“包括”在使用于本说明书中时指定存在陈述的特征、整件、步骤、操作、单元和/或部件、但是未排除存在或者添加一个或者多个其它特征、整件、步骤、操作、单元、部件和/或其组合。
在所附权利要求中的所有装置或者步骤加上功能单元的对应结构、材料、动作和等效物旨在于包括如具体要求保护的用于与其它要求保护的单元组合执行功能的任何结构、材料或者动作。本发明的描述已经出于示例和描述的目的而加以呈现、但是并非旨在于穷举本发明或者使本发明限于公开的形式。许多修改和变化将为本领域普通技术人员所清楚而未脱离本发明的范围和精神实质。选择和描述实施例以便最好地说明本发明的原理和实际应用并且使本领域其他普通技术人员能够针对具有如与设想的特定使用相适合的各种修改的各种实施例来理解本发明。
Claims (16)
1.一种用于在数据处理***中创建和实施文件克隆的方法,所述数据处理***具有处理器和对文件存储和文件管理设施的访问,所述方法包括:
选择与原文件对应的原索引节点,所述原索引节点具有一个或者多个数据块地址链接;
创建克隆索引节点;
接收用于所述克隆索引节点的名称条目和目标目录;
响应于接收所述名称条目,向所述目标目录中***包含所述名称条目的目录条目;
将所述克隆索引节点初始化为不可变克隆父代;以及
更新索引节点映射以将所述克隆索引节点标识为使用中,
所述方法还包括:
将所述原索引节点的所述一个或者多个数据块地址链接中的每个数据块地址链接更新成一个或者多个复本,其中所述一个或者多个复本对应于所述一个或者多个数据块地址链接,并且指示所述原文件中的对应数据或者元数据尚未被修改;
将所述原索引节点的块计数设置成零,其中所述原索引节点的所述块计数代表所述原索引节点中存储的数据块地址链接的数目;以及
记录所述克隆索引节点作为所述原索引节点的所述克隆父代。
2.根据权利要求1所述的方法,其中将所述克隆索引节点初始化为克隆父代还包括:
向所述克隆索引节点拷贝所述一个或者多个数据块地址链接和所述原索引节点的首部;
将所述克隆索引节点的块计数更新为等于所述数据块地址链接的数目,其中所述克隆索引节点的所述块计数是与所述原索引节点中存储的相同的数据块数目;
将所述克隆索引节点中的链接计数设置成二;
向所述克隆索引节点拷贝所述原索引节点的索引节点时间戳和许可位;
确定当前执行操作的所有者证书;
基于所述当前执行操作的所述所有者证书来设置所述克隆索引节点的所有者字段;以及
保存一个或者多个所述初始化步骤作为原子事务。
3.根据权利要求1所述的方法,还包括:
标识所述克隆索引节点的所有者;
确定所述克隆索引节点的所述所有者与所述原索引节点的所有者是否不同;以及
响应于确定所述克隆索引节点的所述所有者与所述原索引节点的所述所有者不同,将所述原索引节点的盘块配额转移给所述克隆索引节点的所述所有者。
4.根据权利要求1所述的方法,其中所述分配的克隆索引节点指向现有文件,所述方法还包括:
在所述现有文件中存储克隆属性;以及
将所述现有文件标识为克隆父代。
5.根据权利要求1所述的方法,还包括:
分配新索引节点作为新索引节点;
接收用于所述新索引节点的新名称条目和目标目录;
响应于接收所述新索引节点的所述新名称条目和所述目标目录,向用于所述新索引节点的所述目标目录中***包含所述新名称条目的目录条目;
初始化所述新索引节点,其中所述初始化还包括:
向所述新索引节点拷贝所述克隆索引节点的首部;
设置用于所述克隆索引节点的所述一个或者多个数据块地址链接的一个或者多个复本;
将所述新索引节点的链接计数设置成一;
将所述新索引节点的块计数设置成零;
记录所述克隆索引节点以作为所述新索引节点的所述克隆父代;以及
将所述新索引节点的创建时间设置成当前时间;
递增所述克隆索引节点的所述链接计数;以及
更新所述索引节点映射以将所述新索引节点标识为使用中。
6.根据权利要求1所述的方法,还包括:响应于接收对所述原文件的新数据更新:
将所述原索引节点的所述复本替换为指向元数据块的拷贝的链接;
用所述新数据更新来更新所述原索引节点;以及
更新所述原索引节点的所述块计数。
7.根据权利要求5所述的方法,还包括:
响应于接收针对所述新索引节点的删除请求:
读取所述克隆索引节点的所述链接计数;
响应于所述克隆索引节点的所述链接计数等于一:
删除所述新索引节点;以及
递减所述克隆索引节点的所述链接计数;以及
响应于所述克隆索引节点的所述链接计数不等于一,忽略所述删除请求。
8.根据权利要求1所述的方法,还包括:
响应于数据管理应用将所述一个或者多个克隆文件从所述数据处理***的储存器移至离线储存器并且发出对任何克隆文件中的数据的读取,执行对经由所述克隆索引节点的所述复本而被间接链接的数据的不可见读取;
响应于所述数据管理应用发出对任何克隆文件中的数据的写入,如果所述写入将导致所述克隆索引节点的一个或者多个复本被改写,则静默地忽略所述写入;以及
响应于所述数据管理应用请求基于最后访问时间而将所述一个或者多个克隆文件从所述离线储存器迁移至所述数据处理***的所述储存器,自治地更新所述克隆索引节点的所述最后访问时间。
9.一种数据处理***,包括:
本地处理器;
所述本地处理器可访问的文件储存器和文件管理设施;以及
在所述处理器上执行的处理逻辑,用于使所述数据处理***能够执行以下功能:
选择与原文件对应的原索引节点,所述原索引节点具有一个或者多个数据块地址链接;
创建克隆索引节点;
接收用于所述克隆索引节点的名称条目和目标目录;
响应于接收所述名称条目,向所述目标目录中***包含所述名称条目的目录条目;
将所述克隆索引节点初始化为不可变克隆父代;以及
更新索引节点映射以将所述克隆索引节点标识为使用中,
所述处理逻辑还包括用于以下的逻辑:
将所述原索引节点的所述一个或者多个数据块地址链接中的每个数据块地址链接更新成一个或者多个复本,其中所述一个或者多个复本对应于所述一个或者多个数据块地址链接,并且指示所述原文件中的对应数据或者元数据尚未被修改;
将所述原索引节点的块计数设置成零,其中所述原索引节点的所述块计数代表所述原索引节点中存储的数据块地址链接的数目;以及
将所述克隆索引节点记录为所述原索引节点的所述克隆父代。
10.根据权利要求9所述的数据处理***,其中将所述克隆索引节点初始化为克隆父代还包括用于以下的处理逻辑:
向所述克隆索引节点拷贝所述一个或者多个数据块地址链接和所述原索引节点的首部;
将所述克隆索引节点的块计数更新为等于所述数据块地址链接的数目,其中所述克隆索引节点的所述块计数是与所述原索引节点中存储的相同的数据块数目;
将所述克隆索引节点中的链接计数设置成二;
向所述克隆索引节点拷贝所述原索引节点的索引节点时间戳和许可位;
确定当前执行操作的所有者证书;
基于所述当前执行操作的所述所有者证书设置所述克隆索引节点的所有者字段;以及
保存一个或者多个所述初始化步骤作为原子事务。
11.根据权利要求9所述的数据处理***,所述处理逻辑还包括用于以下的逻辑:
标识所述克隆索引节点的所有者;
确定所述克隆索引节点的所述所有者与所述原索引节点的所有者是否不同;以及
响应于确定所述克隆索引节点的所述所有者与所述原索引节点的所述所有者不同,将所述原索引节点的盘块配额转移给所述克隆索引节点的所述所有者。
12.根据权利要求9所述的数据处理***,其中所述分配的克隆索引节点指向现有文件,所述处理逻辑还包括用于以下的逻辑:
在所述现有文件中存储克隆属性;以及
将所述现有文件标识为克隆父代。
13.根据权利要求9所述的数据处理***,所述处理逻辑还包括用于以下的逻辑:
分配新索引节点作为新索引节点;
接收用于所述新索引节点的新名称条目和目标目录;
响应于接收所述新索引节点的所述新名称条目和所述目标目录,向用于所述新索引节点的所述目标目录中***包含所述新名称条目的目录条目;
初始化所述新索引节点,其中所述初始化还包括:
向所述新索引节点拷贝所述克隆索引节点的首部;
设置用于所述克隆索引节点的所述一个或者多个数据块地址链接的一个或者多个复本;
将所述新索引节点的链接计数设置成一;
将所述新索引节点的块计数设置成零;
将所述克隆索引节点记录为所述新索引节点的所述克隆父代;以及
将所述新索引节点的创建时间设置成当前时间;
递增所述克隆索引节点的所述链接计数;以及
更新所述索引节点映射以将所述新索引节点标识为使用中。
14.根据权利要求9所述的数据处理***,所述处理逻辑还包括用于以下的逻辑:响应于接收对所述原文件的新数据更新,
将所述原索引节点的所述复本替换为指向元数据块的拷贝的链接;
用所述新数据更新来更新所述原索引节点;以及
更新所述原索引节点的所述块计数。
15.根据权利要求13所述的数据处理***,所述处理逻辑还包括用于以下的逻辑:响应于接收针对所述新索引节点的删除请求:
读取所述克隆索引节点的所述链接计数;
响应于所述克隆索引节点的所述链接计数等于一:
删除所述新索引节点;以及
递减所述克隆索引节点的所述链接计数;以及
响应于所述克隆索引节点的所述链接计数不等于一,忽略所述删除请求。
16.根据权利要求9所述的数据处理***,所述处理逻辑还包括用于以下的逻辑:
响应于数据管理应用将所述一个或者多个克隆文件从所述数据处理***的储存器移至离线储存器并且发出对任何克隆文件中的数据的读取,执行对经由所述克隆索引节点的所述复本而被间接链接的数据的不可见读取;
响应于所述数据管理应用发出对任何克隆文件中的数据的写入,如果所述写入将导致所述克隆索引节点的一个或者多个复本被改写,则静默地忽略所述写入;以及
响应于所述数据管理应用请求基于最后访问时间而将所述一个或者多个克隆文件从所述离线储存器迁移至所述数据处理***的所述储存器,自治地更新所述克隆索引节点的所述最后访问时间。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/847,724 | 2010-07-30 | ||
US12/847,724 US8290996B2 (en) | 2010-07-30 | 2010-07-30 | Data sharing for file clones using reverse ditto references |
PCT/EP2011/062482 WO2012013561A1 (en) | 2010-07-30 | 2011-07-20 | Data sharing for file clones |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103038767A CN103038767A (zh) | 2013-04-10 |
CN103038767B true CN103038767B (zh) | 2016-01-27 |
Family
ID=44628924
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180036918.6A Expired - Fee Related CN103038767B (zh) | 2010-07-30 | 2011-07-20 | 用于文件克隆的数据共享的方法和*** |
Country Status (5)
Country | Link |
---|---|
US (1) | US8290996B2 (zh) |
CN (1) | CN103038767B (zh) |
DE (1) | DE112011101793T5 (zh) |
GB (1) | GB2496336A (zh) |
WO (1) | WO2012013561A1 (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104487937A (zh) * | 2012-09-27 | 2015-04-01 | 惠普发展公司,有限责任合伙企业 | 替换通过强制卸载所删除的虚拟文件***数据结构 |
US9207926B2 (en) * | 2013-06-04 | 2015-12-08 | International Business Machines Corporation | Dynamic image composition system employing fenced applications |
US9250828B2 (en) | 2013-10-29 | 2016-02-02 | Skyera, Llc | Writable clone data structure |
CN104239444B (zh) * | 2014-09-01 | 2017-11-03 | 上海爱数信息技术股份有限公司 | Oracle数据库用的一致性数据保护与捕获一致性状态的方法 |
US20170083630A1 (en) * | 2015-09-21 | 2017-03-23 | Egemen Tas | Method to virtualize large files in a sandbox |
US9569110B2 (en) * | 2014-11-18 | 2017-02-14 | International Business Machines Corporation | Efficient management of cloned data |
CN104461780B (zh) * | 2014-11-28 | 2017-12-15 | 华为技术有限公司 | 一种释放数据块的方法及装置 |
CN105183385A (zh) * | 2015-09-10 | 2015-12-23 | 深圳大学 | 一种闪存及其拷贝方法和*** |
JP6700337B2 (ja) * | 2018-05-30 | 2020-05-27 | 日本電信電話株式会社 | 保護装置及び保護方法 |
CN109597707B (zh) * | 2018-10-25 | 2024-04-23 | 平安科技(深圳)有限公司 | 克隆卷数据拷贝方法、装置及计算机可读存储介质 |
CN109788054B (zh) * | 2019-01-07 | 2022-04-15 | 平安科技(深圳)有限公司 | 一种分布式应用协调服务节点的配置方法、服务器及介质 |
CN110162525B (zh) * | 2019-04-17 | 2023-09-26 | 平安科技(深圳)有限公司 | 基于b+树的读写冲突解决方法、装置及存储介质 |
CN110750496A (zh) * | 2019-10-23 | 2020-02-04 | 深信服科技股份有限公司 | 一种文件拷贝方法、***、设备及计算机可读存储介质 |
KR20210068699A (ko) | 2019-12-02 | 2021-06-10 | 삼성전자주식회사 | 스토리지 장치, 스토리지 시스템 및 스토리지 장치의 동작 방법 |
CN111090824B (zh) * | 2019-12-23 | 2023-09-19 | 百度国际科技(深圳)有限公司 | 内容处理方法和装置 |
CN118069610A (zh) * | 2020-01-17 | 2024-05-24 | 华为技术有限公司 | 一种文件***的克隆方法及装置 |
CN111581288B (zh) * | 2020-05-07 | 2023-01-06 | 苏州浪潮智能科技有限公司 | 一种对象克隆的方法、***、设备及介质 |
CN114020764B (zh) * | 2022-01-05 | 2022-04-22 | 南京云信达科技有限公司 | 一种高性能数据克隆副本的处理方法及*** |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101178677A (zh) * | 2007-11-09 | 2008-05-14 | 中国科学院计算技术研究所 | 一种计算机文件***的快照方法 |
CN101743546A (zh) * | 2007-08-06 | 2010-06-16 | 国际商业机器公司 | 用于提供快照的文件***的分层存储管理 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6868417B2 (en) * | 2000-12-18 | 2005-03-15 | Spinnaker Networks, Inc. | Mechanism for handling file level and block level remote file accesses using the same server |
US6662198B2 (en) | 2001-08-30 | 2003-12-09 | Zoteca Inc. | Method and system for asynchronous transmission, backup, distribution of data and file sharing |
US6829617B2 (en) * | 2002-02-15 | 2004-12-07 | International Business Machines Corporation | Providing a snapshot of a subset of a file system |
US7409511B2 (en) | 2004-04-30 | 2008-08-05 | Network Appliance, Inc. | Cloning technique for efficiently creating a copy of a volume in a storage system |
US7716183B2 (en) | 2007-04-11 | 2010-05-11 | Dot Hill Systems Corporation | Snapshot preserved data cloning |
US7949692B2 (en) * | 2007-08-21 | 2011-05-24 | Emc Corporation | Systems and methods for portals into snapshot data |
US7991973B2 (en) | 2008-05-05 | 2011-08-02 | Panasas, Inc. | Data storage systems, methods and networks having a snapshot efficient block map |
-
2010
- 2010-07-30 US US12/847,724 patent/US8290996B2/en not_active Expired - Fee Related
-
2011
- 2011-07-20 GB GB1302340.3A patent/GB2496336A/en not_active Withdrawn
- 2011-07-20 WO PCT/EP2011/062482 patent/WO2012013561A1/en active Application Filing
- 2011-07-20 DE DE112011101793T patent/DE112011101793T5/de not_active Ceased
- 2011-07-20 CN CN201180036918.6A patent/CN103038767B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101743546A (zh) * | 2007-08-06 | 2010-06-16 | 国际商业机器公司 | 用于提供快照的文件***的分层存储管理 |
CN101178677A (zh) * | 2007-11-09 | 2008-05-14 | 中国科学院计算技术研究所 | 一种计算机文件***的快照方法 |
Also Published As
Publication number | Publication date |
---|---|
GB201302340D0 (en) | 2013-03-27 |
CN103038767A (zh) | 2013-04-10 |
WO2012013561A1 (en) | 2012-02-02 |
DE112011101793T5 (de) | 2013-04-25 |
GB2496336A (en) | 2013-05-08 |
US8290996B2 (en) | 2012-10-16 |
US20120030439A1 (en) | 2012-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103038767B (zh) | 用于文件克隆的数据共享的方法和*** | |
US9760579B2 (en) | File cloning and de-cloning in a data storage system | |
JP6309103B2 (ja) | スナップショットおよびクローンの複製 | |
CN101743546B (zh) | 用于提供快照的文件***的分层存储管理 | |
US7836266B2 (en) | Managing snapshot history in a data storage system | |
EP2959373B1 (en) | Object-level replication of cloned objects in a data storage system | |
US7653800B2 (en) | Continuous data protection | |
US7490213B2 (en) | Dynamic allocation of storage for hierarchical copies | |
CN113826065B (zh) | 高性能可写快照的高效空间管理 | |
US7549029B2 (en) | Methods for creating hierarchical copies | |
CN104778192A (zh) | 表示可内容寻址存储***的目录结构 | |
CN116324732A (zh) | 数据存储卷恢复管理 | |
KR101456104B1 (ko) | 비휘발성 메모리를 위한 듀얼 버퍼링 파일 관리 방법, 파일 관리 시스템 및 대용량 저장 장치 | |
US7552309B2 (en) | Data storage methods for hierarchical copies | |
WO2023201002A1 (en) | Implementing graph search with in-structure metadata of a graph-organized file system |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160127 |