多路并行现用文件系统的制作方法

文档序号:6461392阅读:172来源:国知局
专利名称:多路并行现用文件系统的制作方法
技术领域
本发明涉及一种多路并发可写文件系统。
背景技术
文件系统提供一个用于存储信息的结构,例如存储在如磁盘驱动器,
CD-ROM驱动器等的存储装置中的应用程序,文件系统信息,其他数据等(以 下统称为简单数据)。多数文件系统的一个问题是一旦文件系统由于未知原因 被破坏,大量数据就会丢失。
为了避免类似的 丢失,文件系鄉常创建文件备份。创建文件系统的备 份的一个非常有效的方法就是创建该文件系统的快照(snapshot)。快照是在一 致性点状态时的文件系统的映像,在文件系统中的点是自相容的。如果其中存 储的 能构成一个有效的文件系统映像,则该文件系统是自相容的。
在某些文件系统中,例如随意可写文件系统分布(WAFL)文件系统,可以 ilOT文件系统中与数据组织有关的信息复制来创建该文件系统的快照。然后, 只要数据本身保存在存储装置中,就可以通过快照W数据进^H方问。这些文件 系统中提供例如M框图(block map)的机制来保存这些数据。
通常,快照是只读的。只读的快照可以用于调用之前的数据文本来修复文件 系统中的损害。这些功能十分有用。但是,这些类型的快照并不能提供特定的 其他可能有用的功能。

发明内容
如果快照也能够可写,以便用户可以修改快照,则这会更有利。这肯,有 多项好处
使纠正快照中存储的错误条目成为可能。 ^ffl除想要从文件系统中清除的资料成为可能。
使对文件系统中(或基于文件系统保持的数据)的"经验"文本做出改动 成为可能。文件系统的"经验"文本是灾难性错误不能导致"真正"有效文本 中数据丢失的文件系统的文本。使操文件系统中的操作的倒置错误升级,或在有保护的情况下对文件系统 某些,,或数据库的操作成为可能。
可写的快照实际上是另一个1J1文件系统。因为该现用文件系统是基于来 自与另一现用文件系统的数据的,对现用文件系统的经验性的修改和变化可以 被制成可写快照,而不必冒对原始现用文件系统造成损害的风险。另外,由于 快照可以通过仅对原始信息的复制和对现有数据的保存而创建,可写快照(例 如,新建现用文件系统)可以利用少数系统资源而简单地创建。
这里描述的上述优点和其他优点由本发明的一个实施例提供,其中多个现 用文件系统被维护,^现用文件系统初始访问与另一个现用文件系统共享的 数据,并且其中对每一个现用文件系统的变动都不会反映在其它现用文件系统 中。
优选实施例中,当一个第二现用文件系统基于一个第一5见用文件系统被 创建时,第一现用文件系统和第二现用文件系统初始共享数据。当改动发生在 第一现用文件系统中时,修改后的数据被记录在第一现用文件系统中的不与第 二现用文件系统共享的特定区域。当变动发生在第二现用文件系统中时,修改 后的数据被记录在第二现用文件系统中的不与第一现用文件系统共享的特定区 域。
更多的快照更适宜由多个现用文件系统中的任何一个创建,每一个快照在 过去的一致性点处构成其各自的现用文件系统的映像。每个快照包括用于文件 系统数据的一个完整的层次,与多个现用文件系统的现用文件系统数据分开并 隔离。这些快照之一M使该快照可写并从任意现用文件系统中切断指向新的 现用文件系统的快照指针而被接着转换成一个新的文件系统。
本发明同样围纟^括用于执行上 作指令的存储器及实^± 作的存 储系统。
简要说明的提供用于使本发明的本质育,被更快的理解。m以下对4, 实施例及相应的附图的说明能够对本发明的内容更为详尽的理解。


图i说明了根据本发明的可以被转换成一现用文件系统的快照的创造。 图2说明了根据一个现用文件系统的快照的该现用文件系统的发散。
图3说明了图2中现用文件系统和快照之间的关系。图4说明了根据本发明的倉,被转换成一现用文件系统的快照的链。
图5说明了图4中JIil文件系统和快照之间的关系。
图6说明了根据本发明已经被转换成一现用文件系统的快照。
图7说明了图6中现用文件系统、新现用文件系皿快照之间的关系。
图8说明了根据本发明旨,转换成一现用文《牛系统的快照的一个更复杂的链。
图9说明了用于根据本发明被转换成一现用文件系统的快照之一的如图8 所示的链。
图10说明了根据本发明多个现用文件系统和与其关联的快照之间的更多 的可能关系。
图11说明了根据本发明包括多个mffl文件系统的存储系统的框图。 图12说明了根据本发明被多路并行文件服务器使用的包括多路并行的现 用文件系统的文件系统簇的框图。
具体实施方式
词典
以下对本发明涉及或关联到的术语进fiH兑明。以下只^t这些术语进行举 例说明,对其通常含义并未进行限定。
~~通常指任何信息。谈到一个存储装置或一文件系统,任何存储在 存储装置或文件系统中的数据,包括但是并非限定于应用程序和数据,多媒体 数据,存储装置或文件系统中的组织数据,等等。
组织 ~通常,详细说明文件系统中其他数据的布局的数据。在一个 随意可写文件系统分布(WAFL)设计中,组织数据包括一个根结点用于直接 或间接(例如, 其他结点)指向代表文件系统中全部文件的 块。在WAFL 设计中,所有数据包括组织数据(及根结点及其它结点)均被存储在数据块中。
结点——通常,指一个信息结点。在WAFL设计中, 一个信息结点包括有 关文件系统中其它数据块的数据。
自相容(在文件系统的范围内)——通常,当存储在一个文件系统中的数 据(其包括有关该文件系统的组织的数据)构成一个有效的文件系统映像时, 该文件系统称为自相容。
一致性点^ffl常, 一个一性致点或指(a)文件系统自相容的时间,或指(b)在一致性点时的文件系统中保持的一组数据。
快照~~ffi常,快照是在一致点时间时的文件系统中保持的数据的写记录。
尽管,在一优选实施例中,每一个决照都是(a)以与现用文件系统类似的格式 保持禾卩(b)利用文件系统名条是可参考的,但本发明在此处没有对其中某一种 情况做出特别限制。
现用文件系统~~ffl常,现用文件系统指一组離多被访问和修改的数据。
文件系统层次~~ffi常,文件系统层次或涉及(a)将数据组织成名字空间 (namespace),或者(b) —组数据块及其互联,用于记录和访问信息,无论 数据还是元数据均被保持在存储装置中。
如上所述,对这些术语的普通含义的说明并非对其进行限定,仅是執列说 明。本发明的其他及进一步的应用,包括这些术语和概念的扩展,对本领域技 术人员来说都是清楚的。本发明其它及进一步的应用均是本发明范围和精神的 一部分,对本领域技术人员来说都是显而易见的。
快照和现用文件系统
图1说明了根据本发明的可以被转换成一现用文件系统的快照的创建。
图1中的文件系统腦存在于一个或多个存储装置,例如硬盘驱动器, CD-ROM,或其他装置,在一个优选实施例中,文件系统100是一个WAFL系 统,尽管并非必须是上述情况。
文件系统100包括根结点110和数据120,以及其他数据。文件系统100 中的全部结点和 优选的被存储在数据块中,尽管并非必须是上述情况。
根结点110存储文件系统脂的部分组织数据。特别的,根结点110指向 数据和其它结点以及依次指向存储在文件系统100所有信息的数据的其它数据。 这样从根结点no开始就可以到达在文件系统100中存储的任意信息。
快照130由文件系统100形成。在图1中,快照130的元素由虚线示出, 用于区别文件系统100中的其它元素。根据本发明的一个优选实施例,快照可 以iM在文件系统100的一致性点时简单地复制根结点110到快照根结点140 来形成。在一些实施例中,附加的组织数据可能也需要被复制。然后,只要由 根结点iio (及其它任意复制的组织 )指向的所有数据和结点都被保存,快 照根结点140将指向一个对文件系统100的有效复制。
快照根结点140被创建后,快照130和文件系统100实际上共,储在一个或多个存储體上的娜。因此,快照130雌的包括与文件系统100相同 的存储在一个或多个存储装置中的物理数据120,如在图1中由环绕数据120 周围的双实线和虚线边界示出。换句话说,快照和文件系统重叠。这样允许有 效利用存储空间和其它系统资源快速地创建快照130。
文件系统100 {腿的包括用于指向文件系统100的快照的快照数据150。 特别的,快照数据中的指针160优选的指向那些决照的根结点。
快照130优选的包括用于指向其它快照的快照数据170。然而,快照130 的快照数据170能够和文件系统100的快照数据150区分开来,这是因为快照 130优选的不指向它自己。上述区别在图1中由在文件系统100中切断快照 150周围的快照130而示出。
4腿的,根据本发明的齡文件系统的快照包括文件系统M的一个完整 的层次,与现用文件系统的现用文件系统数据分开并隔离。该层次包括在快照 的根结点中,并且可能包含为快照复制的其它结点和数据中(未示出)。
对于快照,没有对文件系统层次的特殊要求以复制最初用于相关联的现用 文件系统的名字空间。在一个优选实施例中,在快照根结点(和其它组织数据) 中的文件名可以通过口^#代码或其它技术压縮,这样可以4吏为每个决照所必须 存储的组织数据最小化。但是,在一个可替换实施例中,在一些 的可能情 况下,优先的以用户相对容易的阅读的形式,存储每个决照的原始名称空间和 其它组织数据。这样有益于用户基于这种快照的备份和恢复操作。
图2说明了根据一个现用文件系统的快照的该现用文件系统的发散。
由于文件系统100是有效的,必须能够提供一个机制用于实现在文件系统 中数据的变动。然而,为了保持决照130的完整性,快照根结点140指向的数 据必须被保存。因此,例如当文件系统100中的 120改变时,修改后的数 据120'被存储在一个或多个存储装置中。文件系统100的根结点110和任何插 进的结点以及组织数据被更新以便指向修改后的数据120'。此外,没有修改的 娄 120被存储在一个或多个存储装置中。快照根结点140继续指向该未修改 的数据,从而保存快照130的完整性。
同样的,当 从现用文件系统100中被删除时,指向该数据的指针从文 件系统中去除。然而,如果数据本身包括在快照130中,则该数据将被保存。 (当快照本身被去除时该数据实际被删除。)在实际操作中,为文件系统100的多处改变而对根结点110、其它结点、 以及数据的改变都在写入一个或多个存储装置前被存储。 Jd丞的改变被写入后,
文件系统100自相容(也就是,在一致性点)。优选的,快照仅在该一致性点舰行。
根据本发明,快照130可以M使快照可写的方式被转换成一个新的J, 文件系统。为了修改可写快照130中的数据,修改的数据被写入一个或多个存 储装置中。指向修改的数据的根结点140和任何插进的结点以及组织数据被更 新。此外,如果麵仍包括在文件系统腦中,贝眛改变的 的复本被保存。 这-一处理实质上等同于当文件系统100被修改时,已存储的还未改变的数据只 是根结点110指向的数据。
换句话说,当对第一J細文件系统(例如,文件系统100)改动时,修改
的数据被记录在第一现用文件系统的中的不与第二5见用文件系统(例如,可写
快照130)共享的特定区域。同样的,当对第二现用文件系统改动时,修改的数 据被记录在第二现用文件系统中的不与第一现用文件系统共享的特定区域。结 果是,对第一现用文件系统的改动不反映在第二现用文件系统中,对第二现用 文件系统的改动不反映在第一现用文件系统中。
被创建后,快照130基本上与文件系统100重叠。如果在创建快照后不久 使其可写,则由可写快照构成的新的现用文件系统将初始与己存在的现用文件 系统共享其几乎全部数据。结果是,本发明允许有效的利用例如处理时间及存 储空间的资源来创建一个完整的新的现用文件系统。
存储改变的数据及保存未改变的数据的处理使文件系统100和快照130(无 论是只读还是可写的)从一个向另一个发散。该发散iM减少文件系统100与 快照130之间的重叠部分在图2中典型示出。
图3说明了图2中现用文件系统和快照之间的关系。这种类型的图示提供 了在文件系统与其快照之间关系的简化视图。图3中,文件系统100指向快照 130。另外,文件系统100与快照130都指向其他快照(未示出)。
图4说明了根据本发明的能够被转换成5鹏文件系统的快照的链。图中, 第二快照180已从文件系统100中创建。由于在第二快照创建时,快照100仍 指向快照130,所以快照180包括指向快照130的快照数据190。
快照130和快照180中的任一个或二者可以ffi51使其成为可写快照而被转换为 M文件系统。由于数据被写AJJOT文件系统(例如,文件系统ioo,可写 快照130,或可写快照180)中的任意一个,文件系统会从一个向另一个发散。
图5说明了图4中现用文件系统和快照之间的关系。图5中,文件系统100 指向快照130和快照180。同样的,快照180指向快照130,快照130依次指向 另一个或多个决照。
图6说明了根据本发明已经被转换成一现用文件系统的快照。在该图中, M使快照180成为可写快照,该决照180己被转换为现用文件系统180'。由 于该新的现用文件系统可以被修改,它不再{,文件系统100的真实快照。作 为结果,文件系统100的快照数据150中的指向快照180的快照指针已被切断, 例如被删除。
图7说明了图6中现用文件系统、新的现用文件系统及快照之间的关系。 图中,5JOT文件系统100指向快照130。同样的,3E鹏文件系统180'也指向快照 130。如上所述,文件系统100雌的不再包括指向快照180的快照指针。但是, 文件系统100仍可包括指向文件系统180的指针,例如允许从一个文件统到另 一个文件系统的遍历。该文件系统内部指针在图7中用虚线示出,以区别其它 快照指针。
图8说明了根据本发明能够转换成一现用文件系统的快照一个更复杂的 链。图8中,文件系统800为一现用文件系统。由该文件系统已经建立了 4个 快照。快照810为最早建立的,其次为快照820,再次为快照830,最后建立的 为快照840。任意比快照810早建立的快照都己被删除,从而释放不再与其它任 意快照或现用文件系统重叠的数据所占用的存储空间。快照810至快照840中 的每一个都可以Mil使其成为可写快照而转换为一现用文件系统。
图9说明了用于根据本发明被转换成一现用文件系统的快照的如图8所示 的链。
图9中,快照830已被转换为现用文件系统830,,在现用文件系统830,中, 数据可以被修改,增加,和删除。作为结果,文fl^系统800优选的不再指向快 照830作为快照。mffi文件系统830'可以继续指向快照810和快照820。
图10说明了根据本发明多个现用文件系统和与其关联的快照之间的更多 的可能关系。
图10的上部与图9相符,除了增加的由现用文件系统创建的快照以外。由此,快照1000巳由文件系统800创建,快照IOIO己由文件系统830'创建。此 夕卜,快照810已被删除,以释放一个或多个存储装置的空间。
1M文件系统800和现用文件系统830'均可追溯到一个公共快照820。然 而,当那个快照被删除后,现用文件系统不再共享一个公共快照。这种情况涉 及文件系统1020及决照1030至快照1050。这种配置说明,有可能依靠现用文 件系统和与其关联的快照之间的链形成"森林"(也就是,非连接的树的集合), 全部都在一存储装置或一组存储装置中。尽管事实上文件系统及其快照不再指 向一公共快照,但这些决照与现用文件系统依然共享某些数据(也就是,重叠), 从而保持本发明的功效。
如上所述,新的现用文件系统由快照创建,但是,本发明并未要求为了创 建一新的现用文件系统而实际创建一个决照。相反,所需要的是沿在快照中已 建立的结构的线建立结构,即沿在快照根结点中已建立的组织数据的线建立组 织数据,和由该组织数据指向的数据的保存。
此外,本发明并不限制上述特定配置,相反,上述配置是举例说明了mffl 文件系统、快照及新的现用文件系统之间的一些可能的关系。其它配置也是可 能的,并包括在本发明的范围内。
系统元素
图11说明了根据本发明包括多个JIffl文件系统的存储系统的框图。 系统1100包括了至少一个文件系统处理器1110 (也就是,控制器)和至 少一个存储装置1120,例如硬盘或CD-ROM驱动器。该系统,包括一个与 至少一个计算装置或网络连接的接口 1130,用于接收和发:it信息。在一个可选 的实施例中,处理器1100为通过接口 1130与存储系统相连的计算装置的处理 器。
处理器1110在受程序和 存储器的控制下执行与文件系统相关联的任
务,如这里描述的,程序和数据存储器包括适当的软件,用于控制处理器iiio
执行对存储装置1120的操作(和可能控制存储装置1120以便与处理器1110协作)。
在一个优选实施例中,至少一个所述存储装置1120包括一个或多个根记录 1140。每一个根记录1140包括指定在一个JJW文件系统的文件系统层次中的根 数据块(也就是,结点)的两个或多个(4 为两个)入口。如果只有一个现用文件系统,则{她的有一个所述根记录;如果有一个以上所述现用文件系统, 则优选的有一个以上所述根记录。
如上所述, 一个以上JJOT文件系统会存在于存储驢1120中。在所述情况 中,文件系统的维护者(即,在程序控制下操作的处理器iiio)优选的指定和 有序的维护一个以上的根记录1140,用于每一个所述mffl文件系统。
只读快照在存在于存储装置1120中。在这种情况下,从现用文件系统指向 快照的指针和从快照指向其它快照的指针均存储在存储装置中,如上所述。
高可用性
图12说明了根据本发明包括被多路并行文件服务器使用的多路并行的现 用文件系统的文件系统簇的框图。
一个文件系统簇包括多个文件系统处理器1200和一个或多个文件系统盘 1210。在一个优选实施例中,旨所述处理器1200被设置作为文件服务器操作, 能够接收文件服务器请求和做出文件服务器响应,例如使用公知的文件服务器 协议。在一优选实施例中, 一个或多个文件服务器盘1210包括多个这样的盘使 得对于整个高可用性簇没有一个盘1210呈现单点故障。 结合本发明使用的 随意可写文件系统分布(WAFL)结合,配置。
如上所述,多个处理器1200保存多个并行可写现用文件系统1210以及与 这些并行可写现用文件系统关联的快照。现用文件系统和快照保存在相同的一 组盘1220中。由此,该一组处理器1200和一组盘1220提供一个高可用性的簇, 而不需要资源的实质复制。
可替换实施例
本发明可以通过创建和保存多个mffl文件系统的方法,以及执4亍该方法的 软件和/或硬件例如一个或多个存储装置,或者以其它不同实施例来实现。
如上所述,本发明的优选实施例已经M:优选的处理步骤及数据结构说明
了。但是,本领域技术人员可以认识到,在研究了本申请后,本发明的实施例 可以M使用适应于在程序控制下的特殊处理步骤和数据结构的一个或多个通 用处理器或专用处理器来实施。该特殊的处理步骤和数据结构可以以存储在存 储器、传送至存储器l^自存储器(例如,固定的存储器例如DRAM, SRAM, 硬盘,高速缓冲存储器等,以及可移动存储器例如软盘,CD-ROM,数据磁带 等)的信息形式实现。该存储器包括处理微行的指令(例如,直接可执行的目标代码,编译后执行的源代码,通过解释后可执行的代码),使用所述设备
执4m里描述的im处理步骤和数据结构不需要不适当的实验或者其它发明。
此外,尽管以上揭示了本发明的优选实施例,本领域技术人员在熟读本申 请后育,理解,在不脱离本发明的内容,范围和精神的前提下,可以对本发明 做出变化。
权利要求
1、一种操作多个现用文件系统的方法,包括产生多个现用文件系统中的第一现用文件系统的快照,其中该第一现用文件系统管理多个数据块,并且快照初始访问与第一现用文件系统共享的多个数据块;和通过将快照设置为可写快照而将该快照转换到第二现用文件系统,其中在转换之后,对第一现用文件系统或者第二现用文件系统的改动不存储在多个数据块的任一个中。
2、 如权利要求1所述方法,其中快照包括完整的文件系统层次,该完整的 文件系统层次不与第一现用文件系统共享。
3、 如权利要求1所述方法,还包括从多个J,文件系统中的一个形成多个 快照,每个决照在过去的一个一致性点处形成其相应的5鹏文件系统的映像。
4、 如权利要求3所述方法,其中多个决照中的每一个被设置成可写快照并 且转换成新的现用文件系统。
5、 如权利要求4所述方法,其中多个决照中的每一个在设置成可写快照之 后被删除。
6、 如权利要求1所述方法,其中第一现用文件系统包括指向快照的快照指针。
7、 如权利要求1所述方法,其中第一现用文件系统包括指向第二现用文件 系统的文件系统内部指针。
8、 如权利要求6所述方法,还包摘争决照指针从第一J鹏文件系统提供到 第二现用文件系统。
9、 如权利要求1所述方法,还包括4顿哈希代码来压縮该快照。
10、 一种存储系统,包括存储装置;连接计算装置或网络的接口,用于接收和发送信息;禾口用于控制存储装置和存f線置中的信息检索的控制器,该控制器在,聘的控 制下操作用于产生多个现用文件系统中的第一现用文件系统的快照,其中该第 一现用文件系统管理多个数据块,并且快照初始访问与第一现用文件系统共享的多个数据块;禾口 将快照设置为可写快照而将该决照转换至勝3见用文件系统,其中在转 换之后,对第一现用文件系统或第二现用文件系统的改动不存储在多个数据块的任一个中。
11、 如权利要求io所述的存储系统,其中快照包括完整的文件系统层次,该完整的文件系统层次不与第一现用文件系统共享。
12、 如权利要求10所述的存储系统,其中控制器在程序的控制下操作以便 从多个现用文件系统中的一个形成多个决照,每个決照在过去的一个一致性点 处形成其相应的现用文件系统的映像。
13、 如权利要求12所述存储系统,其中多个决照中的每一个被设置成可写 快照并且转换成新的现用文^牛系统。
14、 如权利要求13所述存储系统,其中多个决照中的每一个在设置成可写 快照之后被删除。
15、 如权利要求10所述存储系统,其中第一5細文件系统包括指向快照的 快照指针。
16、 如权利要求10所述存储系统,其中第一现用文件系统包括指向第二现 用文件系统的文件系统内部指针。
17、 如权利要求15所述存储系统,其中控制SE程序的控制下操作以便将 快照指针从第一现用文件系统提供到第二现用文件系统。
18、 如权禾腰求10所述存储系统,其中控制驗程序的控制下操作以便使 用哈希代码来压缩该快照。
全文摘要
本发明涉及多路并行现用文件系统。多个现用文件系统(100)的维护,其中每一现用文件系统初始访问与另一现用文件系统共享的数据(120),其中对每一现用文件系统的改动都不反映在其他现用文件系统中。当第二现用文件系统基于第一现用文件系统被创建时,该第一现用文件系统和第二现用文件系统初始共享数据。当对第一现用文件系统进行改动时,修改的数据被记录在第一现用文件系统中的不与第二现用文件系统共享的特定区域中。当对第二现用文件系统进行改动时,修改的数据被记录在第二现用文件系统中的不与第一现用文件系统共享的特定区域中。同样的,创建多个现用文件系统。
文档编号G06F12/00GK101286165SQ20081008303
公开日2008年10月15日 申请日期2003年6月3日 优先权日2002年6月7日
发明者B·路易斯, D·希茨, J·爱德华兹 申请人:网络装置公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1