用于制作存储装置快照的系统和方法

文档序号:6484828阅读:170来源:国知局
用于制作存储装置快照的系统和方法
【专利摘要】提供一种用于制作存储装置快照的系统和方法。一种用于制作卷快照的方法包含:将所述卷设置为只读模式;接收对所述卷的访问尝试;以及在所述访问尝试是写入访问尝试的情况下,在缓冲区中缓冲与所述写入访问尝试相关的信息,并且基于与所述写入访问尝试相关的所述信息更新快照指示符,其中所述快照指示符包含关于所述卷中的特定块的块信息,所述块是所述写入访问尝试的目标。所述方法还包含在所述访问尝试是读取访问尝试的情况下,提供在所述读取访问尝试中请求的读取信息,其中所述读取信息是基于所述卷,或者基于所述快照指示符、所述缓冲器以及缓冲区指示符的组合。
【专利说明】用于制作存储装置快照的系统和方法
相关申请案的交叉参考
[0001]本发明要求2011年7月I日递交的发明名称为“用于制作存储装置快照的系统和方法(System and Method for Making Snapshots of Storage Devices),,的第 13/175251号美国非临时申请案和2011年8月23日递交的发明名称为“用于提供可靠存储的系统和方法(System and Method for Providing Reliable Storage),,的第 13/215345 号美国非临时申请案的在先申请优先权,这两个在先申请的内容都以引用的方式并入本文中。
【技术领域】
[0002]本发明大体涉及信息存储,并且更确切地说,涉及一种用于制作存储装置快照的系统和方法。
【背景技术】
[0003]一般情况下,计算系统的用户需要存储数据、应用程序等。通常,这些数据、应用程序等可存储在存储装置上,所述存储装置可位于用户本地、位于用户异地或这两者的组合。
[0004]存储系统的一个重要特征可能是在特定时间点获得存储装置状态(或所述存储装置状态的一部分)的快照以及从所述快照中创建新的存储卷的能力。所述快照可允许用户在不需要做许多工作的情况下就能恢复到先前的状态。
[0005]例如,设想用户在云计算环境中操作虚拟机。用户可能需要创建和维持磁盘卷,有效地,维持虚拟块装置。对于所述虚拟机来说,所述磁盘卷可表现本地装置,例如磁盘驱动器,但是可存储在云计算基础设施内的许多位置上。所述用户可能需要创建和删除卷,将所述卷附接至虚拟机并从虚拟机拆除,创建快照,并且从这种快照创建新的卷。
[0006]创建磁盘卷快照的一种先前技术涉及在另一个磁盘驱动器或一个远程存储装置上制作所述磁盘卷的受保护的副本,并且允许用户访问(例如,读取和/或写入)所述磁盘卷。然而,如果所述磁盘卷较大,那么制作所述磁盘卷的副本可能花费很长时间,并且可能需要传送大量的信息以及需要许多处理。
[0007]因此,需要能够用最少处理和数据传送来创建磁盘卷的快照。

【发明内容】

[0008]通过本发明的实例实施例,提供一种用于制作存储装置快照的系统和方法,通常可解决或避免这些和其它问题,且通常可获得技术优势。
[0009]根据本发明的一项实例实施例,提供一种用于制作卷快照的方法。所述方法包含:将所述卷设置为只读模式;接收对所述卷的访问尝试;以及在所述访问尝试是写入访问尝试的情况下,在缓冲区中缓冲与所述写入访问尝试相关的信息,并且基于与所述写入访问尝试相关的所述信息更新快照指示符,其中所述快照指示符包含关于所述卷中的特定块的块信息,所述块是所述写入访问尝试的目标。所述方法还包含在所述访问尝试是读取访问尝试的情况下,提供在所述读取访问尝试中请求的读取信息,其中所述读取信息基于所述卷,或者基于所述快照指示符、所述缓冲区和缓冲区指示符的组合。
[0010]根据本发明的另一项实例实施例,提供一种操作方法。所述方法包含接收将卷状态回退的请求;确定对应于所述状态的快照;确定是否至少一个中间快照存在于所述快照和所述卷的初始快照之间;基于所述快照向所述卷应用改变;以及在所述至少一个中间快照存在并且中间改变并非针对所述卷中受到所述快照影响的块的情况下,基于所述至少一个中间快照向所述卷应用中间改变。
[0011]根据本发明的另一项实例实施例,提供一种装置。所述装置包含:卷控制单元;网络接口 ;请求处理单元,其耦合到所述网络接口 ;快照位图控制单元,其耦合到所述请求处理单元;写入缓冲区控制单元,其耦合到所述请求处理单元和所述卷控制单元;以及数据处理单元,其耦合到所述请求处理单元。所述卷控制单元为卷设置读取和/或写入权限,所述网络接口接收制作所述卷的快照的请求并且接收对所述卷的访问尝试,并且所述请求处理单元确定访问请求的性质。所述快照位图控制单元基于写入访问尝试更新快照指示符,其中所述快照指示符包含关于所述卷中的特定块的块信息,所述块是所述写入访问尝试的目标。所述写入缓冲区控制单元缓冲与对所述卷的所述写入访问尝试相关的信息,并且基于与所述写入访问尝试相关的信息更新缓冲区指示符。所述数据处理单元从所述卷或者从快照指示符、缓冲区和缓冲区指示符的组合产生在读取访问中请求的读取信息。
[0012]根据本发明的另一项实例实施例,提供一种装置。所述装置包含:卷控制单元;接收器;写入缓冲区控制单元,其与所述接收器和所述卷耦合;快照位图控制单元,其与所述接收器耦合;以及数据处理单元,其与所述接收器和所述卷耦合。所述卷控制单元将卷设置为只读模式,所述接收器接收对所述卷的访问尝试,所述访问尝试是写入访问尝试或者读取访问尝试。当所述访问尝试是写入访问尝试时,所述写入缓冲区控制单元在缓冲区中缓冲与对卷的写入访问尝试相关的信息。当所述访问尝试是写入访问尝试时,所述快照位图控制单元基于所述写入访问尝试更新快照指示符,其中所述快照指示符包含关于所述卷中的特定块的信息,所述块是所述写入访问尝试的目标。当所述访问尝试是读取访问尝试时,所述数据处理单元基于所述卷或者所述快照指示符、所述缓冲区和缓冲区指示符提供在所述读取访问尝试中请求的读取信息。
[0013]本文中揭示的一个优势是需要进行复制以制作快照的信息量可能明显少于先前技术中快照技术中的信息量,因此,快照可在更短时间内用更少的处理制作。
[0014]实例实施例的另一个优势是,由于快照可能在资源较少情况下会更加迅速地出现,所以可更加频繁地获得所述快照。可制作多个快照以允许恢复到许多状态。
[0015]前述内容已非常广泛地概述了本发明的特征和技术优点,以使得可较好地理解随后对所述实施例的详细描述。下文中将描述所述实施例的额外特征和优点,其形成本发明的权利要求书的标的物。所属领域的技术人员应了解,所揭示的概念和具体实施例可容易地用作用于修改或设计用于实现本发明的相同目的的其它结构或过程的基础。所属领域的技术人员还应意识到,此类等效构造不脱离所附权利要求书中所阐述的本发明的精神和范围。
【专利附图】

【附图说明】
[0016]为更完整地理解本发明及其优点,现在参考以下结合附图进行的描述,在附图中:
[0017]图1图示了根据本文中所描述的实例实施例的实例计算环境;
[0018]图2a详细图示了根据本文中所描述的实例实施例的实例计算系统;
[0019]图2b详细图示了根据本文中所描述的实例实施例的存储装置;
[0020]图3图示了根据本文中所描述的实例实施例的实例存储装置,其在获取快照过程中允许读取和/或写入访问;
[0021]图4图示了根据本文中所描述的实例实施例,在利用卷快照过程中的用户操作的实例流程图;
[0022]图5图示了根据本文中所描述的实例实施例,在制作卷快照过程中的控制器操作的实例流程图;
[0023]图6图示了根据本文中所描述的实例实施例,在完成非增量快照后的操作中的控制器操作的实例流程图;
[0024]图7图示了根据本文中所描述的实例实施例,在完成增量快照后的操作中的控制器操作的实例流程图;
[0025]图8图示了根据本文中所描述的实例实施例,在使用快照恢复卷状态过程中的控制器操作的实例流程图;
[0026]图9提供根据本文中所描述的实例实施例的第一实例装置;以及
[0027]图10提供根据本文中所描述的实例实施例的第二实例装置。
【具体实施方式】
[0028]下文将详细讨论对各项实施例的实施和使用。但是应了解,本发明提供可实施于广泛的各种具体环境中的许多可应用的发明概念。所论述的具体实施例仅仅说明用以制作和使用本发明的具体方式,而不限制本发明的范围。
[0029]本发明将关于特定上下文,S卩,云计算环境中的实例实施例而描述,其中用户具有要存储到存储装置中的信息。然而,本发明也可应用到其它计算环境中,例如,客户端-服务器、独立局、瘦客户机等计算环境,其中用户具有要存储在存储装置中的信息。
[0030]图1图示了计算环境100。计算环境100包含可能正在使用耦合到存储装置115的计算机110的用户105。用户105可使用存储装置115来存储信息,例如数据、媒体以及应用程序等。计算机110可使用存储在存储装置115中的应用程序来处理数据、显示媒体
坐寸ο
[0031]尽管已理解计算环境可采用由多个用户使用的多个计算机并且能够在多个存储装置上存储信息,但是为了简化,只说明一个用户、一个计算机和一个存储装置。
[0032]存储装置115可实现为直接耦合到计算机110的固态存储器120 (例如,闪速存储器、固态硬盘驱动器等)和/或磁性媒体125 (例如,磁盘驱动器、磁带等),或者实现为通过网络接口 135和接入网络140耦合到计算机110的远程存储器130。存储装置115也可实现为上述装置的组合。
[0033]如先前所讨论的,可获得快照来保存存储装置、存储装置的卷、存储装置的一部分、存储装置上的一个文件或存储装置上的一组文件等的状态。快照可用于创建存储装置上的信息的副本或备份,以防止无意讹用和/或删除,允许回退等。例如,可在特定的时间获取快照,例如,在工作日结束的时候或在工作日开始的时候。随后,当信息被改变、删除、扩增等时,如果有需要的话,可以恢复到保存的状态(即,快照中的一个)。
[0034]然而,如果获得快照需要太多时间和/或开销时,用户可能不愿意获得快照或者获得所需的那么多快照。例如,设想获得快照可能需要几分钟来完成的情况,在此过程中,用户的系统可能经历明显的性能降低。用户可能不愿意在每当有需要时就承受这样的性能降低。然而,如果获得快照仅需几秒钟就能完成和/或性能降低较小,用户可能会觉得对性能的影响相比较而言是能够接受的。此外,更快更容易的快照可诱发用户更加频繁地制作快照。
[0035]图2a详细图示了计算系统200。计算系统200包含计算机205。块存储提供者(BSP)节点210可能与计算机205耦合。BSP节点210可用来存储计算机205所使用的信息,并且可实施先进的特征,例如,快照。BSP节点210可由块资源管理器(BRM) 215管理,所述块资源管理器215可管理卷在例如BSP节点210的BSP节点上的放置。
[0036]计算机205包含计算节点代理(CNA) 220,其可负责执行虚拟机(VM)实例,例如VM222。计算机205也包含虚拟块存储(VBS)接口 224,其可允许计算机205和其中的VM实例访问BSP节点,例如BSP节点210,并且利用所述BSP节点的先进特征。
[0037]VBS接口 224包含在用户空间执行的VBS客户端226和在内核空间执行的VBS启动器228。VBS客户端226可以是VBS启动器228的用户空间管理工具。例如,VBS客户端226可通过Unix输入/输出控制(ioctl)和Linux虚拟文件系统(sysfs)命令与VBS启动器228通讯。然而,VBS启动器228可以是向卷提供标准块装置接口的VBS块装置驱动器。VBS启动器228也可使用例如Linux网络块装置(NBD)的协议通信协议与BSP节点210通τΗ ο
[0038]BSP节点210包含为来自计算机205的信息提供存储的存储装置230,并且允许计算机205访问所述信息。存储装置230也可包含对例如快照的先进功能的支持。BSP节点210也包含BSP232,其可处理来自BRM215的请求,从而引起卷创建、对块访问请求进行检测
坐寸O
[0039]图2b详细图示了存储装置250。存储装置250可以是图2a中所示的存储装置230的实施。存储装置250包含VBS目标255,其可作为VBS块装置服务器来操作。VBS目标255可创建和/或删除卷文件,使用通信协议(例如,NBD协议)共享卷文件等。VBS目标255可与例如图2a中所示的VBS启动器228的VBS启动器通讯。
[0040]存储装置250也可包含由VBS目标255管理的卷文件260以及快照位图265。卷文件260和快照位图265可在媒体270上实施,媒体270例如动态存储器(例如,随机存取存储器等)、固态存储器、磁性媒体等。媒体270可代表存储装置250本地的文件系统。快照位图265可用来维持卷文件260中的哪些块已被改变的记录。快照位图265可记录卷文件260中从卷文件260创建以来已经改变(B卩,写入)的多个块。根据一项实例实施例,快照位图265中的单个比特可对应于卷文件260中的一个块。随后,如果将所述比特设置为特定值,那么卷文件260中相应的块从卷文件260创建以来或从最近的快照创建以来已经被修改。
[0041]使用快照位图265允许VBS目标255创建增量快照,所述增量快照是从最后快照或在快照位图265对应于第一快照情况下从卷创建以来给定卷文件改变的记录。增量快照有效地利用存储空间,因为仅存储卷文件的改变,从一个或一个以上增量快照重新创建卷文件所涉及的复杂性较小地增加。
[0042]根据一项实例实施例,创建快照可涉及使用快照位图来产生一组被改变的块,并且将这组被改变的块存储在固态存储器、磁性媒体、存储服务(例如,物体存储器(OBS ))或其组合中。也可存储快照时间戳来促进恢复。
[0043]根据一项实例实施例,快照位图265的大小可取决于多个因素,例如卷文件的预期大小、卷文件的块的大小、期望快照位图265记住卷文件访问的预期时间量、卷文件访问的预期频率等。如果使用过大的快照位图265,那么资源可能会被浪费,然而如果使用过小的快照位图265,那么由于资源的无用性,卷文件访问可能会丢失。
[0044]根据一项实例实施例,可使用多个快照位图265来产生单个卷文件的多个快照。例如,第一快照位图可用于第一快照并且记录从第一快照启动之后的卷文件访问,第二快照位图可用于第二快照并且记录从第一快照完成之后的卷文件访问,第三快照位图可用于第三快照并且记录从第二快照完成之后的卷文件访问,等等。当与存储多个卷文件相比时,存储多个快照位图可导致存储量显著降低,因为存储了单个卷文件和多个快照位图,而不是多个卷文件(其往往大于快照位图)。每个快照位图可用一个时间戳来标记,从而为恢复作准备。
[0045]根据一项实例实施例,VBS目标255可将每个卷作为稀疏文件存储在媒体270中。一般情况下,使用稀疏文件来存储卷暗示所述卷将仅占用实际需要的那么多空间。例如,仅存储了 50千兆字节信息的100千兆字节卷将仅占用50千兆字节媒体存储空间。与使用规则的非稀疏文件来存储卷的情形相比,其中100千兆字节卷将占用100千兆字节媒体存储空间,并不依赖于实际存储在所述卷中的信息量。
[0046]图3图示了存储装置300,其允许在获取快照过程中的读取和/或写入访问。存储装置300可以是图2a中所示的存储装置230的实施。通常,对快照的获取可能是漫长的过程,其中可能需要移动和/或存储大量信息。当制作卷文件的快照时,可能需要采取额外的措施来确保对卷文件的完全访问。
[0047]如先前所描述的,存储装置300包含VBS目标305、卷文件310以及快照位图315,从而允许获取快照。如先前所描述的,0BS335可用来存储卷文件310的被改变的块。然而,为了确保记录了卷文件310的改变(即,写入),可能需要将对卷文件310的写入存储达到制作快照所需的时间那么久,所述卷文件310可能被制作成只读卷文件,而所述快照被制作来帮助保护数据完整性。然而,对卷文件310的写入访问是被禁止的。
[0048]根据一项实例实施例,代替允许对卷文件310进行写入访问,写入缓冲区320和写入缓冲区位图325可用来存储对卷310的写入。与对卷文件310的写入访问尝试相关的信息可存储在写入缓冲区320中,而写入缓冲区位图325可用来指示卷文件310的哪些块已受到访问(即,写入)。写入缓冲区320和写入缓冲区位图325可在媒体330上实施。卷文件310和快照位图314也可在媒体330或另一个不同媒体上实施。
[0049]当对卷文件310作出读取访问尝试时,VBS目标305可咨询写入缓冲区位图325以确定从哪里检索被请求的信息:如果写入缓冲区位图325指示对应于所述读取访问尝试的块已经被改变,那么从写入缓冲区320检索,或者如果写入缓冲区位图325指示对应于所述读取访问尝试的块还没被改变,那么从卷文件310检索。[0050]根据一项实例实施例,一旦完成快照,就可将写入缓冲区320的内容写入到卷文件310中,并且丢弃(刷新)写入缓冲区320,即,用写入缓冲区320中的信息来对卷文件310进行更新。卷文件310可保持可用于读取和/或写入访问,同时写入缓冲区320的内容被写入到卷文件310中并且写入缓冲区320被丢弃。可将在对卷文件310进行更新的过程中接收到的写入访问直接写入到卷文件310中,并且如果将写入缓冲区位图325中相应的比特设置来指示已经记录了对所述块之写入访问尝试,那么可重新设置相应的比特。此外,丢弃写入缓冲区320中与相应的比特相关的写入访问尝试,而不是将其写入到卷文件中。
[0051]根据一项实例实施例,写入缓冲区位图325的大小可取决于多个因素,例如卷文件的预期大小、卷文件的块的大小、期望写入缓冲区位图325记住卷文件访问的预期时间量、卷文件访问的预期频率等。如果使用过大的写入缓冲区位图325,那么资源可能会被浪费,然而如果使用过小的写入缓冲区位图325,那么由于资源的无用性,卷文件访问可能会丢失。
[0052]图4图示了在利用卷快照过程中的用户操作400的实例流程图。用户操作400可指示当用户使用卷快照来保存卷状态以及恢复先前的卷状态时,出现在用户或者由用户正在操作的计算机(例如,虚拟机)上的操作。当所述用户或者由用户正在操作的计算机处于正常操作模式时,可发生用户操作400。
[0053]用户操作400可始于用户启动卷快照制作(框405)。作为说明性实例,用户可在以下时间启动快照制作:在工作日开始的时候、在工作日结束的时候、在工作日中按照预定的时间间隔、当用户到达认为是有价值的重要时刻(例如,完成一件工作草案等)、当用户接收到启动快照制作的指令,等等。
[0054]通过向卷的控制器发送指令或命令,执行快照应用程序或程序或者向管理员发送请求等,用户可启动卷快照制作。或者,快照制作可用于在特定的时间出现,例如,在一天开始的时候或在一天结束的时候,或者在发生一个事件的时候,例如,当用户每天第一次登录计算机的时候或者当用户在这一天结束时从所述计算机退出登录的时候等。
[0055]如先前所讨论的,卷快照可涉及卷控制器将所述卷设置成只读卷,缓冲对所述卷的写入,维持所述卷中是缓冲过的写入的目标的块的指示,以及维持所述卷中从快照制作启动之后已发生改变的块的指示等。此外,可使用多个缓冲区和指示制作多个快照。
[0056]在启动卷快照制作之后,用户可继续访问所述卷,就好像卷快照制作没有发生一样(框410)。例如,用户可执行对所述卷和存储在所述卷中的读取信息的读取访问尝试。此夕卜,用户也可执行对所述卷的写入访问尝试并且将信息存储在所述卷中。当快照制作发生时,通过跟踪以及缓冲与写入访问尝试相关的信息,所述卷的控制器可维持卷的一致性。
[0057]操作时,用户可确定需要将卷的状态回退(S卩,恢复)到早先的状态。例如,如果用户确定发生了错误并且从错误中恢复的最简单方法是恢复到早先的状态,或者错误地删除了或以其它方式丢失了信息并且恢复到早先状态是恢复所丢失的信息的唯一方法等,那么用户可确定需要回退。
[0058]用户可执行检查,以确定是否需要将所述卷的状态回退(框415)。如果不需要将所述卷的状态回退,那么用户可以继续访问所述卷中的信息(框410)。然而,如果需要将所述卷的状态回退,那么用户可启动将所述卷回退到早先的状态(框420)。根据一项实例实施例,通过向所述卷的控制器发送命令,执行回退应用程序和/或程序,或者向管理员发送请求等,用户可启动所述卷的回退。用户可包含关于用户希望回退到的那个卷状态的信息。例如,用户可提供对应于所述卷状态的时间,或者用户可提供状态修正编号等。
[0059]图5图示了在制作卷快照过程中的控制器操作500的流程图。在控制器控制对存储装置的访问情况下,控制器操作500可指示发生在存储装置的例如VBS目标的控制器中的操作。控制器操作500可在控制器处于正常操作模式时发生。
[0060]控制器操作500可始于控制器接收制作卷快照的请求(框505)。根据一项实例实施例,制作卷快照的请求可呈现为以下形式:指令或命令、快照应用程序或程序或者来自管理员的请求等。
[0061]在接收到制作快照的请求后,控制器就可启动卷副本制作(框510)。根据一项实例实施例,所述卷的副本可在以下装置上制作:另一种不同形式的本地媒体、另一种不同的存储装置(例如,不同的硬盘或者不同的固态驱动器等)、远程定位的存储装置或者云存储装置等。
[0062]根据一项实例实施例,如果快照是增量快照,那么可能没必要复制卷,这是因为所述卷的副本要么已经存在要么当前正在被复制。增量快照可基于与先前完整快照和中间增量快照相关的卷的快照。
[0063]因为潜在的大量信息需要被复制,所以制作卷的副本可能要花费较长的一段时间,因此控制器可能需要采取额外的措施来允许持续访问卷中的信息。根据一项实例实施例,通过在卷被复制时允许对所述卷的读取访问尝试并且当所述卷被复制时缓冲与对所述卷之写入访问尝试相关的信息,控制器可允许持续访问所述卷中的信息。
[0064]控制器可通过将所述卷设置为只读卷来继续允许访问卷中的信息(框515),因而防止所述卷发生改变。控制器可缓冲与对所述卷的写入访问尝试相关的信息,从而在制作快照时存储所述卷的改变。
[0065]根据一项实例实施例,控制器可按如下所述来调节对所述卷的访问。控制器可执行检查以确定是否有对存储在所述卷中的信息的访问尝试(框520)。如果没有对存储在所述卷中的信息的访问尝试,那么控制器可继续等待未来的对存储在所述卷中的信息的访问尝试。
[0066]如果有对存储在所述卷中的信息的访问尝试,那么控制器可执行检查以确定所述访问尝试是读取访问尝试还是写入访问尝试(框525 )。
[0067]如果所述访问尝试是写入访问尝试,那么控制器可将与所述写入访问尝试相关的信息存储在写入缓冲区中,并且更新指示符,例如,快照位图(框530)。所述写入缓冲区可用来存储要写入到所述卷中的信息,而所述快照位图(所述指示符)可用于存储特定信息,所述信息关于所述卷中哪个块已经被改变,即,所述卷中哪个块对应于与在所述写入缓冲区中缓冲的所述写入访问尝试相关的信息。除了存储要写入到所述卷中的信息之外,也可存储关于所述写入访问尝试的额外信息,例如,信息量、写入访问尝试的时间、哪个(些)块受写入访问尝试影响以及在所述块上的位置等。
[0068]根据一项实例实施例,第二指示符,例如写入缓冲区位图,可用来存储关于所述卷中哪个块对应于在所述写入缓冲区中缓冲的写入访问尝试的信息。在已经缓冲和记录了写入访问尝试以及与写入访问尝试相关的信息后(在快照位图和/或写入缓冲区位图中),控制器可返回到框520以等待未来的访问尝试。[0069]如果所述访问尝试是读取访问尝试,那么控制器可使用所述指示符、所述卷、所述写入缓冲区、所述写入缓冲区位图或其组合实现所述读取访问尝试(框535)。例如,如果所述指示符指示所述读取访问尝试是针对从所述卷快照启动后就没被修改的块,那么控制器可简单地通过从所述卷中检索被请求的信息来实现所述读取访问尝试。然而,如果所述指示符指示所述读取访问尝试是针对从所述卷快照启动后已经被修改的块,那么通过检查写入缓冲区位图以确定哪个写入访问尝试修改了所述块,并且随后从写入缓冲区中检索与修改了所述块的所述写入访问尝试相关的信息从而实现所述读取访问尝试,控制器可以实现所述读取访问尝试。此外,如果所述读取访问尝试向所述块请求的信息比存储在所述写入缓冲区中的信息多,例如,所述读取访问尝试请求一些已经被修改的信息以及一些还没被修改的信息,控制器可能需要访问所述卷。在已经实现所述读取访问尝试后,控制器可返回到框520以等待未来的访问尝试。
[0070]如果有增量快照,那么读取访问尝试可能需要检查中间增量快照的快照位图以确定所访问的块是否已经被修改。
[0071]根据一项实例实施例,由于增量快照可能基于早先制作的快照,因此可能没必要制作所述卷的副本。替代地,所述增量快照包含关于对所述卷的访问尝试(主要是写入访问尝试)的信息,所述访问尝试从上一次制作快照(增量快照或者非增量快照)到制作另一个快照之间出现。可将关于所述访问尝试的信息存储在与增量快照相关的写入位图、写入缓冲区以及写入缓冲区位图中。
[0072]如先前所讨论的,快照可以是增量快照或者非增量快照。非增量快照可以是只基于制作其所针对的卷的快照,而增量快照可以是不仅基于制作其所针对的卷,而且基于在制作所述增量快照之前所制作的所述卷的其它快照的快照。取决于所述快照的性质,即,增量快照或非增量快照,控制器对完成所述快照制作的作用可能不同。
[0073]图6图示了在完成非增量快照后的操作中的控制器操作600的流程图。在控制器控制对存储装置的访问情况下,控制器操作600可指示发生在存储装置的例如VBS目标的控制器中的操作。控制器操作600可在控制器处于正常操作模式时发生。
[0074]控制器操作600可始于控制器执行检查以确定快照是否完成(框605)。根据一项实施例,一旦所述卷的副本完成,所述快照可确定为完成,其中一旦所述副本完成,所述卷的副本将是所述快照。如果所述快照还没完成,那么控制器可以继续检查所述快照的完成情况。
[0075]如果所述快照完成,那么控制器可用与储存在所述写入缓冲区中的对所述卷的所述写入访问尝试相关的信息更新所述卷(框610)。如先前所讨论的,所述写入缓冲区可用来存储与在制作所述快照时发生的对所述卷的写入访问尝试相关的信息。可将与所述写入访问尝试相关的信息写入到所述卷中,并且如果将与所述写入访问尝试相关的块标记为已改变,那么可将对应于所述块的指示符清除,因为所述卷现在是最新的,并且不应该复制任何较旧的副本(框615)。
[0076]图7图示了在完成增量快照后的操作中的控制器操作700的流程图。在控制器控制对存储装置的访问情况下,控制器操作700可指示发生在存储装置的例如VBS目标的控制器中的操作。控制器操作700可在控制器处于正常操作模式时发生。
[0077]控制器操作700可始于控制器执行检查以确定快照是否完成(框705)。根据一项实施例,一旦所述卷的副本完成,所述快照可确定为完成,其中一旦所述副本完成,所述卷的副本将是所述快照。如果所述快照未完成,那么控制器可继续检查所述快照的完成情况。
[0078]如果所述快照完成,那么控制器可存储快照位图、写入缓冲区以及写入缓冲区位图,从而可以在有必要将所述卷的状态回退情况下随后要使用时对这三者进行检索(框710)。如果所述访问尝试是写入访问尝试,那么可将未来的对所述卷的访问尝试存储在新的快照位图、写入缓冲区以及写入缓冲区位图中,并且如果所述访问尝试是读取访问尝试,那么所述增量快照(以及所涉及的任何其它中间增量快照)的快照位图、写入缓冲区以及写入缓冲区位图,以及所述卷可用来实现所述读取访问尝试。
[0079]图8图示了在使用快照恢复卷状态中的控制器操作800的流程图。在控制器控制对存储装置的访问情况下,控制器操作800可指示发生在存储装置的例如VBS目标的控制器中的操作。控制器操作800可在控制器处于正常操作模式时发生。
[0080]控制器操作800可始于控制器接收将卷回退到特定状态的请求(框505)。根据一项实例实施例,将卷回退的请求可呈现为以下形式:指令或命令、快照应用程序或程序或者来自管理员的请求等。
[0081]在接收到将所述卷回退到所述特定状态的请求后,控制器就可确定所述卷的对应于所要状态的快照(框810)。例如,所述请求可提供特定时间,并且控制器可确定哪个快照对应于所述时间,或者哪个快照是用最接近所述时间但不比所述时间新的时间来印时间戳的快照。或者,所述请求可指定快照编号或者可用来识别特定快照的其它一些信息。如果控制器一直在制作增量快照,那么控制器也可识别在对应于所述请求的快照和所述卷的初始快照之间制作的中间增量快照。
[0082]随后,通过基于写入缓冲区位图以及对应于所要状态的快照位图来应用存储在写入缓冲区中的缓冲过的写入,控制器可重新创建对应于所要状态的所述卷的状态(框815)。如果所述快照是增量快照,那么控制器可能需要基于写入缓冲区位图以及对应于所述中间增量快照的快照位图,应用存储在写入缓冲区中的缓冲过的写入。
[0083]图9提供装置900的替代说明。装置900可能是存储装置的例如VBS目标的控制器的实施。装置900可用来实施本文讨论的各种实施例。如图9所示,网络接口 905用于发送以及接收信息和指示。网络接口 905可以是无线接口、有线接口或其组合。
[0084]请求处理单元910用于处理访问耦合到装置900的(多个)存储装置的请求。例如,请求处理单元910处理访问尝试、制作快照请求以及回退请求等。快照位图控制单元915用于为卷中的特定块产生指示符(例如,快照位图),所述块在制作快照过程中或者从为增量快照制作快照以来已经发生改变。例如,单个比特可对应于已经改变的块。写入缓冲区控制单元920用于控制对写入访问尝试的信息的缓冲,并且用于为卷中对应于缓冲过的信息的块以及所述写入访问尝试产生指示符,所述缓冲过的信息与所述写入访问尝试相关。快照恢复单元925用于基于一个快照或多个增量快照来恢复卷的状态。基于初始快照以及针对所述快照或者针对多个增量快照中的每一个快照的快照位图、写入缓冲区以及写入缓冲区位图,快照恢复单元925可恢复所述状态。
[0085]卷控制单元930用于控制卷,例如为所述卷设置读取/写入访问权限。卷控制单元930进一步用于启动对所述卷的复制,并且一旦完成对所述卷的复制,就更新所述卷。数据处理单元935用于处理读取请求并且基于卷、快照位图、写入缓冲区、写入缓冲区位图或其组合,产生在读取访问尝试中的信息。存储器940用于存储指示符(例如,快照位图945、写入缓冲区位图955等)、信息(例如,写入缓冲区950)等。
[0086]装置900的元件可作为特定的硬件逻辑块来实施。在一个替代方案中,装置900的元件可作为在处理器、控制器、专用集成电路等中执行的软件来实施。在另一个替代方案中,装置900的元件可作为软件和/或硬件的组合来实施。
[0087]例如,网络接口 905可作为特定的硬件块来实施,而请求处理单元910、快照位图控制单元915、写入缓冲区控制单元920、快照恢复单元925、卷控制单元930以及数据处理单元935可以是在微处理器或者自定义电路或者现场可编程逻辑阵列的自定义编译的逻辑阵列上执行的软件模块。
[0088]图10提供装置1000的替代说明。装置1000可能是存储装置的例如VBS目标的控制器的实施。装置1000可用于实施本文讨论的各种实施例。如图10所示,发射器1005用于发送信息和指示并且接收器1010用于接收信息和指示。发射器1005和接收器1010可能具有无线接口、有线接口或其组合。
[0089]处理器1015可能是微处理器、自定义电路、现场可编程逻辑阵列的自定义编译的逻辑阵列,可实施以下单元中的一些或全部:请求处理单元1060、快照位图控制单元1065、写入缓冲区控制单元1070、快照恢复单元1075、卷控制单元1080以及数据处理单元1085。存储器1020用于存储指示符、信息等。
[0090]以上描述的装置900和装置1000的实施例也可用包括功能步骤和/或非功能操作的方法来进行说明。先前的描述和相关流程图说明可在本发明的可行示例性实施例中执行的步骤和/或操作。通常,功能步骤根据实现的结果来描述本发明,而非功能操作描述用于实现特定结果的更具体的行为。虽然功能步骤和/或非功能操作可按特定顺序进行描述或要求,但本发明无需受限于步骤和/或操作的任何特定顺序或组合。此外,在叙述权利要求书并且在描述图4、图5、图6、图7和图8的流程图时使用(或不使用)的步骤和/或操作用来指示此类术语的所要特定使用(或不使用)。
[0091]虽然已详细地描述了本发明及其优点,但应理解,可在不脱离如所附权利要求书所界定的本发明的精神和范围的情况下对本发明做出各种改变、替代和更改。
[0092]此外,本申请案的范围不希望限于本说明书中所描述的过程、机器、制造、物质成分、构件、方法和步骤的特定实施例。如所属领域的技术人员将从本发明的揭示内容容易了解,可根据本发明利用执行与本文中所描述的对应实施例大致相同的功能或实现与本文中所描述的对应实施例大致相同的结果的目前存在或稍后将开发的过程、机器、制造、物质成分、构件、方法或步骤。因此,所附权利要求书既定在其范围内包括此类过程、机器、制造、物质成分、构件、方法或步骤。
【权利要求】
1.一种用于制作卷快照的方法,所述方法包括: 将所述卷设置为只读模式; 接收对所述卷的访问尝试; 在所述访问尝试是写入访问尝试的情况下, 在缓冲区中缓冲与所述写入访问尝试相关的信息,并且 基于与所述写入访问尝试相关的所述信息更新快照指示符,其中所述快照指示符包括关于所述卷中的特定块的块信息,所述块是所述写入访问尝试的目标;以及在所述访问尝试是读取访问尝试的情况下, 提供在所述读取访问尝试中请求的读取信息,其中所述读取信息是基于所述卷或者基于所述快照指示符、所述缓冲区以及缓冲区指示符的组合。
2.根据权利要求1所述的方法,其中所述快照包括非增量快照或者初始快照,并且其中所述方法进一步包括复制所述卷。
3.根据权利要求2所述的方法,其中所述复制包括将所述卷复制到第一存储装置中,所述第一存储装置不同于包含所述卷的第二存储装置。
4.根据权利要求2所述的方法,其中所述缓冲、所述更新以及所述提供是在所述卷被复制时执行的。
5.根据权利要求2所述的方法,其进一步包括在完成了对所述卷的所述复制后,基于所述卷、所述快照指示符、所述缓冲区、缓冲区指示符或其组合,产生更新的卷。
6.根据权利要求5所述的方法,其中产生更新的卷包括,针对与所述写入访问尝试相关的所述缓冲过的信息,将所述缓冲过的信息写入到所述更新的卷中。
7.根据权利要求6所述的方法,其中产生更新的卷进一步包括,在将所述缓冲过的信息写入到所述更新的卷中后,将所述快照指示符中针对与所述缓冲过的信息相关的所述块的指示清除。
8.根据权利要求2所述的方法,其中对所述卷的所述复制进一步包括存储关于所述卷的时间指示符或版本指示符。
9.根据权利要求1所述的方法,其中所述快照包括增量快照或者非初始快照,并且其中所述方法进一步包括: 存储所述快照指示符、所述缓冲区以及所述缓冲区指示符;以及针对在所述访问尝试后接收到的新的访问尝试,将新的快照指示符、新的缓冲区以及新的缓冲区指示符用于所述接收、所述缓冲、所述更新以及所述提供。
10.根据权利要求9所述的方法,其中所述存储进一步包括存储关于所述快照指示符、所述缓冲区以及所述缓冲区指示符的时间指示符或版本指示符。
11.一种操作方法,所述方法包括: 接收将卷状态回退的请求; 确定对应于所述状态的快照; 确定在所述快照以及所述卷的初始快照之间是否存在至少一个中间快照; 基于所述快照向所述卷应用改变;以及 在所述至少一个中间快照存在并且中间改变不发生在受所述快照影响的所述卷的块上的情况下,基于所述至少一个中间快照向所述卷应用所述中间改变。
12.根据权利要求11所述的方法,其中所述至少一个中间快照包括多个中间快照,并且其中所述基于所述至少一个中间快照向所述卷应用中间改变包括以相反时间顺序,从每一个所述中间快照向所述卷应用中间改变。
13.根据权利要求11所述的方法,其中基于所述快照向所述卷应用改变包括: 向所述卷应用所述改变;以及 在指示符指示所述卷中与相关于所述改变的块相同的块的情况下,在所述至少一个中间快照中重新设置所述指示符。
14.根据权利要求13所述的方法,其中所述改变整体上指定所述卷的块,并且其中向所述卷应用所述改变包括向所述卷写入所述块。
15.根据权利要求11所述的方法,其中确定对应于所述状态的快照包括选择与特定时间相关的快照,所述时间对应于与所述状态相关的状态时间。
16.根据权利要求11所述的方法,其中确定对应于所述状态的快照包括选择与特定时间相关的快照,所述时间最接近与所述状态相关的状态时间但不会在其后出现。
17.一种装置,其包括: 卷控制单元,其用于为卷设置读取和/或写入权限; 网络接口,其用于接收制作所述卷的快照的请求,并且接收对所述卷的访问尝试; 请求处理单元,其耦合到所述网络接口,所述请求处理单元用于确定访问请求的性质; 快照位图控制单元,其耦合到所述请求处理单元,所述快照位图控制单元用于基于写入访问尝试更新快照指示符,其中所述快照指示符包括关于所述卷中的特定块的块信息,所述块为所述写入访问尝试的目标; 写入缓冲区控制单元,其耦合到所述请求处理单元和所述卷控制单元,所述写入缓冲区控制单元用于缓冲与对所述卷的所述写入访问尝试相关的信息,并且基于与所述写入访问尝试相关的所述信息更新缓冲区指示符;以及 数据处理单元,其耦合到所述请求处理单元,所述数据处理单元用于从所述卷或者从快照指示符、缓冲区以及缓冲区指示符的组合产生在读取访问尝试中请求的读取信息。
18.根据权利要求17所述的装置,其中所述卷控制单元进一步用于启动对所述卷的复制。
19.根据权利要求18所述的装置,其中所述卷控制单元进一步用于在完成对所述卷的所述复制后,产生更新的卷。
20.根据权利要求19所述的装置,其中通过向所述卷应用所述快照指示符、所述缓冲区以及所述缓冲区指示符,所述卷控制单元产生所述更新的卷。
21.根据权利要求17所述的装置,其中所述快照包括增量快照,并且其中所述装置包括用于存储所述缓冲区、所述快照指示符以及所述缓冲区指示符的存储器,并且其中针对在所述访问尝试之后接收到的新访问尝试,网络接口、所述快照位图控制单元、所述写入缓冲区控制单元以及所述数据处理单元对新的缓冲区、新的快照指示符以及新的缓冲区指示符执行操作。
22.一种装置,其包括: 卷控制单元,其用于将卷设置为只读模式;接收器,其用于接收对所述卷的访问尝试,所述访问尝试是写入访问尝试或者读取访问尝试; 写入缓冲区控制单元,其耦合到所述接收器和所述卷,当所述访问尝试是写入访问尝试时,所述写入缓冲区控制单元用于在缓冲区中缓冲与对所述卷的写入访问尝试相关的信息; 快照位图控制单元,其耦合到所述接收器,当所述访问尝试是写入访问尝试时,所述快照位图控制单元用于基于所述写入访问尝试更新快照指示符,其中所述快照指示符包括关于所述卷中的特定块的信息,所述块是所述写入访问尝试的目标;以及 数据处理单元,其耦合到所述接收器和所述卷,当所述访问尝试是读取访问尝试时,基于所述卷或者基于所述快照指示符、所述缓冲区以及缓冲区指示符的组合,所述数据处理单元用于提供在所述读取访问尝试中请求的读取信息。
23.根据权利要求22所述的装置,其中所述卷控制单元进一步用于复制所述卷。
24.根据权利要求23所述的装置,其中所述卷控制单元进一步用于在所述卷控制单元完成了对所述卷的所述复制后,基于所述卷、所述快照指示符、所述缓冲区、缓冲区指示符或其组合产生更 新的卷。
25.根据权利要求22所述的装置,其中快照包括增量快照或非初始快照,并且其中所述装置进一步包括用于存储所述快照指示符、所述缓冲区、缓冲区指示符的存储器,并且其中所述接收器、所述写入缓冲区控制单元、所述快照位图控制以及所述数据处理单元用于根据新访问尝试执行操作,所述新访问尝试是在所述访问尝试之后接收到的。
【文档编号】G06F11/14GK103814359SQ201180071989
【公开日】2014年5月21日 申请日期:2011年12月2日 优先权日:2011年7月1日
【发明者】安德鲁·帕特森, 詹姆斯·休斯, 张 浩 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1