用于提供快照的文件系统的分层存储管理的制作方法

文档序号:6477834阅读:189来源:国知局
专利名称:用于提供快照的文件系统的分层存储管理的制作方法
技术领域
本发明涉及数据存储系统,更具体地说,涉及存储了表明在特定时间点存储的数
据的状态的快照的数据存储系统。
背景技术
许多数据存储系统根据文件比喻来组织存储的数据。在这些存储系统中,相关数据存储在一个文件中,而数据存储系统存储了多个文件。然后,数据存储系统存储对多个文件的索引,以允许访问这些文件中的数据。单个文件可以存储在数据存储设备中的相邻的或完全不同的位置。将数据存储在数据存储设备中的完全不同的位置,常常导致当要在已经存储了许多文件的设备上存储大的数据文件时,大的数据文件必须分解为适合存储设备内的空闲区域的数据块。当向现有文件中添加另外的数据时,数据也常常存储在完全不同的位置。将存储的数据组合成数据存储设备上的结构化文件被称为形成文件系统。
数据存储系统常常存储当前存储在文件系统中的所有文件的数据的时间点副本或映像。这些映像被称为快照(或克隆或快闪副本)。快照的内容是在捕获快照时存储在现用文件系统内的数据。数据存储系统可以使用快照来将文件系统的状态存储在诸如另一个磁盘驱动器或磁带存储系统之类的辅助存储器系统上。数据存储系统也可以使用文件系统快照来允许重新创建被删除的数据(即,访问已经被删除或更新的文件的以前的版本)。
为最小化创建快照的时间以及用于维护快照的存储空间,拍摄文件系统的快照的某些方法推迟了原始文件系统中的数据实际复制到快照的时间,直到原始系统中的数据被修改(例如,被盖写或删除)。因为直到对原始数据执行写入之前数据不被复制到快照数据中,因此,使用这种方法的系统被称为"写入时复制"系统。"写入时复制"技术常常用于实现文件版本控制,通过维护单个文件的快照,而不是整个系统,可以使文件的多个版本在文件系统中并行地存在。"写入时复制"系统可以利用由文件系统软件所创建的控制结构,以描述文件的结构以及包含文件系统的磁盘的用途的元数据,以便修改过的文件的未修改的数据块不需复制到快照中。这些系统创建快照元数据集,包括描述了原始文件系统中的原始数据文件的位置的文件索引,以便从原始文件内的元数据以及文件的快照副本中都可以引用未修改的数据块。这会创建多个对原始文件系统中的同一个数据块的多个索引原始文件系统的元数据中的索引和每一个快照数据集中的索引。 原始文件系统内的多个对单个数据块的索引的存在影响原始文件系统的要求。利用其中每一个快照都存储了对原始数据块的索引的快照的文件系统必须维护每一个对该数据块的索引的指示或映射,以便判断数据块是否正在使用中还是空闲。若没有多个索引,单个比特就可以足以表明数据块是否正在使用中还是空闲。然而,在有多个索引的情况下,可能需要多个比特来跟踪多个索引,确保在声明数据块"空闲"之前不存在对数据块的索引。
由于较高速度的存储设备(如硬盘驱动器阵列)比慢一些的设备(如光盘和磁带驱动器)更加昂贵(每存储字节),因此,某些较大的文件系统使用分层存储管理器(HSM)自动地在高成本和低成本的存储介质之间移动数据。在使用HSM的文件系统(诸如,例如,来自IBM的ADSTAR分布式存储管理器、Tivoli的StorageManager Extended Edition,或Legato的NetWorker)中,大多数文件系统数据被存储在较慢的脱机设备中,并根据需要,复制到更快的联机磁盘驱动器中。HSM监视文件系统中的数据的使用,标识文件系统中的哪些文件长时间没有被访问,并将它们的所有数据或某些数据迁移到较慢的存储设备中。这就释放了更快的联机存储器中的空间,从而允许存储额外的文件和更多的数据。事实上,HSM通过将更快的磁盘驱动器变成较慢的大容量存储设备的高速缓存,提供了存储大量的数据的经济的解决办法。 在典型的HSM情况下,频繁地被使用的数据文件存储在硬盘驱动器上,而在某一时间段内未被使用的数据文件被迁移到磁带驱动器中。当用户尝试访问已经被迁移到磁带的数据文件时,文件自动地并透明地恢复到联机硬盘驱动器,可使操作完成得好像数据从来没有被迁移那样。优点是,尽管存储的数据的总量可以比可用的磁盘存储器的容量大得多,由于只有很少被使用的文件位于磁带上,因此,用户通常不会注意任何速度减慢。
这里发明人认识到,在利用快照的文件系统中,跟踪多个对单个数据块的索引的必要性会大大地使文件系统的操作复杂化,特别是在文件系统也使用HSM的情况下。例如,当HSM将文件迁移到磁带时,希望能够回收由该文件的数据块占用的磁盘空间。然而,在存在快照的情况下,这些数据块仍可以由快照从文件的较旧的版本引用,因此,直到文件的所有其他版本也都被迁移到磁带之前不能被释放。此外,尽管一旦一个文件的所有版本都被迁移HSM就可以回收由该文件占用的所有磁盘空间,被单独地存储并由不同文件版本的快照共享的数据块将作为单独的副本冗余地存储在磁带上。即,可以占据磁盘上的极少空间的快照将占用磁带上整个文件系统所占用的那么大的空间。另外,当HSM将迁移的文件返回到联机存储器时,将为返回的数据分配新的数据块,不能定位其他对初始块的其他联机索引。结果,恢复迁移的文件可能导致不需要的数据复制,并比从来没有被迁移的文件需要更大的联机存储空间。

发明内容
解决了现有技术的各种缺点,通过本发明的示例性实施例可以提供额外的优点,
这些示例性实施例与用于管理已经被选择从文件系统内的第一存储级别迁移到第二存储级别的文件的存储的方法相关。选定文件是从多个源文件中选择的,每一个源文件都在文件系统内组织成一个或多个数据块。文件系统具有多个源文件中的每一个源文件的索引节点。每一个索引节点都具有对所述对应的源文件的一个或多个数据块中的每一个的索引。文件系统被配置为定期生成多个源文件中的所述源文件的快照文件。文件系统具有每一个快照文件的索引节点。在生成快照文件时,每一个快照文件的索引节点都具有对所述对应的源文件的所述一个或多个数据块中的每一个数据块的索引。该方法包括将所述选定文件的索引节点的所述对应的索引中维护的物理磁盘地址处所述选定文件的存储在所述第一存储级别中的所述一个或多个数据块中的每一个数据块从所述第一存储级别复制到所述第二存储级别。该方法进一步包括在引用了所述选定文件的被复制到所述第二存储级别的所述一个或多个数据块中的任何一个数据块的所述文件系统中的每一个快照文件的索引节点的每一个索引中维护逻辑照抄地址。每一个逻辑照抄地址都表明,需要另外的处理以 获得被所述索引引用的所述数据块的所述物理磁盘地址。该方法进一步包括更新文件系 统,以包括用于通过选定的文件的索引节点控制对一个或多个数据块的访问的受管理的区 域。


现在将参考下面的附图,只作为示例,对本发明的实施例进行描述,其中 图1是显示了提供分层系统管理的文件系统的一般系统体系结构的示例性实施
例的方框图。 图2A是显示了具有索引节点和相关数据块的文件系统数据结构集的示例性实施 例的方框图。 图2B是显示了具有索引节点和关联的间接块的和数据块的文件系统数据结构集 的示例性实施例的方框图。 图3是显示了文件系统目录和关联的结构的示例性实施例的方框图。 图4是显示了其中一个以上的索引节点包含同一个磁盘地址的文件系统数据结
构集的示例性实施例的方框图。 图5A-5B描述了本发明的示例性实施例的总体操作和控制流的流程图,其中,由 快照文件系统的分层系统管理器执行数据迁移。 图6是描述了本发明的示例性实施例的总体操作和控制流的流程图,其中,在读
取或写入请求期间,由快照文件系统的分层系统管理器执行脱机数据的恢复。 图7是描述了本发明的示例性实施例的总体操作和控制流的流程图,其中,在删
除或截断请求期间,由快照文件系统的分层系统管理器执行脱机数据的恢复。 图8A是显示了在文件系统数据结构集的示例性实施例中在生成时快照的结构的
方框图。 图8B是显示了在文件系统数据结构集的示例性实施例中在对对应的源文件进行 属性修改时阴影索引节点的结构的方框图。 图8C是显示了在文件系统数据结构集的示例性实施例中在对对应的源文件进行 盖写时阴影索引节点的结构的方框图。 图9是显示了多处理器计算机系统的示例性实施例的方框图。
图10是显示了计算机系统的示例性实施例的方框图。
具体实施例方式
下面的公开描述了用于为维护指出了在特定时间点存储的数据的状态的文件系 统提供有效的分层存储管理的技术和机制的示例性实施例。下文旨在提供本发明的示例性 实施例的详细描述,不应该理解为对本发明本身的限制。相反,任意数量的其他实施例都 可以落在本发明的范围内,本发明的范围在示例性实施例的描述之后的权利要求中进行限定。 本发明的示例性实施例可以在将数据存储在大容量存储设备上的计算机系统上 或与其结合实现。这里所描述的大容量存储系统的特征不应该理解为对本发明的限制,应该注意的是,示例性实施例可以在具有与这里所提供的示例特征或结构不同的数据存储设 备上或与其结合实现。可以在其上实现本发明的示例性实施例的文件系统的一个示例是 IBM的General Parallel File System(GPFS) 。 GPFS类似于符合Xopen文件系统标准的文 件系统,相应地,所有这样的文件系统都适合于与本发明的示例性实施例一起使用。然而, 本发明不应该理解为仅限于与这样的文件系统一起使用。示例性实施例可以在各种其他文 件系统上或与其结合实现,包括各种磁盘文件系统、网络文件系统,以及特殊用途的文件系 统。 这里所描述的本发明的示例性实施例可以被配置为与基于下面的元数据结构实 现文件和目录的文件系统一起操作 文件系统管理定义的磁盘集(或其他介质)并以有助于一致的添加、修改和删除 数据和数据文件的方式提供对数据的访问的软件组件。该术语还用于描述特定磁盘集(或 其他介质)内包含的数据集和元数据。文件系统可与能够通过名称被访问的任何数据存储 介质一起使用,数据位于不相邻的块中;相应地,其中,这里使用了术语"磁盘"、"磁盘存储 器"、"存储器"等等,这是存储介质的比较一般的特征。
数据/文件系统数据在特定的应用程序的上下文中具有含义的任意的比特串。
文件可以被计算机应用程序访问的命名的比特串。文件具有某些标准属性,如长 度、修改时间,以及最后一次访问的时间。 数据块文件系统存储器的包含以后被用户或其他应用程序检索和使用的用户数 据的区域。在示例性文件系统中,文件的数据可以存储在通过存储在文件的索引节点中的 磁盘地址指针引用的一个或多个单独的数据块中。
快照在给定时间点捕获文件系统的状态的文件或一组文件。 元数据由文件系统软件所创建的控制结构,以描述文件的结构以及包含文件系 统的磁盘的用途。适用于示例性的文件系统的元数据的特定类型特别具有下列特征,并包 括目录、模式、索引节点、分配图,以及日志。 目录将名称与一组由索引节点表示的数据关联的控制结构。示例性文件系统可 以利用以类似于其他文件数据的存储的方式存储在数据块中的目录项,并利用存储了类似 于由其他数据文件使用的那些目录信息的目录信息的文件的元数据结构(包含目录块的 磁盘地址的索引节点加间接块)。目录能够包含大量的目录项。目录可以包含引用其他目 录的项,以便创建分层目录结构,被另一个目录中的一个项引用的目录被称为子目录。本发 明不仅限于如这里所描述的示例性文件系统中的目录的格式及其他元数据的细节,替代示 例性文件系统可以利用其他目录和元数据存储结构。 索引节点包含文件的文件属性(例如,所有者、访问权限、修改时间、文件大小), 加一系列指向包含构成此文件的数据的磁盘区域(或其他存储介质)的指针的元数据结 构。索引节点可以通过间接块来补充,比方说,如果文件比较大的话,间接块用额外的指针 补充索引节点。在这里所描述的示例性文件系统中,索引节点的关联的集合被称为"索引节 点文件",而索引节点文件是被作为常规文件存储的(索引节点加间接块)。其他示例性文 件系统也可以使用索引节点和索引节点文件中的数据的集合的不同的表示法。在这里所描 述的示例性文件系统中,索引节点内包含的某些或全部信息的集合被称为"节点信息"。
分配图文件系统可以用来表明磁盘的特定区域(或诸如索引节点之类的其他控
9制结构)是否正在使用中或可用的控制结构。这允许软件向新文件有效地分配可用的块和 索引节点。 超级块包含全局文件系统配置数据的元数据元素。具体来说,它包含用于定位索 引节点和分配图的信息。
日志用于在发生故障的情况下使其他类型元数据保持同步(g卩,状态一致)以防
止损失的一组记录。日志包含描述对多个结构的相关的更新的单一记录。
现在请参看图1,图1显示了其中可以应用本发明的示例性实施例的示例性完整
系统体系结构100。系统体系结构包括用于存储一个或多个数据文件的快照文件系统102。
这些文件系统捕获和维护一个或多个快照数据集104。这些快照数据集104可以被文件
系统102用于许多目的,诸如,例如,有效地进行通信并将备份数据集存储在远程备份系统
上,恢复意外删除的文件,以及检索被意外或者故意盖写的数据。 文件系统102包括允许其他应用程序在诸如磁盘驱动器、非易失性存储器之类的 存储设备或其他数据存储设备上存储和检索数据的计算机程序。文件系统102中的文件是 任意大小的命名的数据对象。文件系统102提供接口,这些接口允许应用程序创建文件并 为文件命名,存储文件或向文件中写入数据,从文件中读取数据,删除文件,以及对文件执 行其他操作。 文件结构定义了存储设备上的文件系统102中的数据的组织。单个文件可以分为 固定大小的多个数据块,用于在存储设备上进行分配。可以根据实际应用程序环境和存储 器的可用的类型和大小,设置可以用字节或比特表示的块大小,单个已分配的块可以包含 整个文件或单个文件的一部分。 除文件数据其本身之外,文件系统102还可以包含将文件名映射到数据文件的目 录,包含有关文件的信息的文件元数据,包括文件数据在存储设备上的位置(即,哪些设备 块存放了文件数据),记录了哪些设备块当前正被用来存储元数据和文件数据的分配图,以 及包含有关文件结构的总体信息(例如,目录的位置、分配图、及其他元数据结构)的超级 块。文件系统102中的每一个文件都通过索引节点表示,该索引节点描述了文件的属性,并
包含作为用于查找存储器中的文件的数据的起点的寻址结构。目录将文件名映射到为文件 分配的索引节点(例如,使用标识它们驻留在文件系统中何处的文件的索引节点号码),并 构成文件的组织层次结构。 可以实现本发明的示例性实施例,以支持快照文件系统(诸如,例如,图1的文件 系统102)上包含的数据的有效的分层系统管理。如图所示,在其上文件系统102存在于系 统体系结构100中的计算机或处理单元通过网络110和分层系统管理器(HSM) 106与脱机 存储系统108进行通信。脱机存储单元108是不位于文件系统102的处理单元上或不在其 控制下的存储设备。脱机存储设备的示例包括软盘、光盘,以及磁带。HSM 106与脱机存储 系统108结合使用,以自动地在被与文件系统102相同的处理使用的联机存储设备和脱机 存储设备之间移动在文件系统102内的文件的数据块。 将文件系统102与脱机存储器108连接的网络IIO,可以是,例如,诸如公众业务电 话网络(PSTN)之类的电路交换网。网络IIO可以是,例如,分组交换网络。分组交换网络 可以是,例如,诸如全球因特网之类的广域网(WAN)、专用WAN、局域网(LAN)、电信网络或上 文所提及的网络的任何组合。在替代示例中,网络110可以是,例如,有线、无线、广播,或点
10对点网络。作为另一个示例,文件系统102在与脱机存储器108的计算机系统相同的计算 机系统上执行。 文件系统102和脱机存储器108的计算机系统可以是,例如,一个或多个PC(例 如,运行Microsoft Windows操作系统的一个版本的IBM或兼容的PC工作站,运行Mac OS 操作系统的一个版本的Macintosh计算机,或等效的计算机),个人数字助理(PDA)、游戏控 制台,或任何其他计算机处理设备。作为替代,文件系统102和脱机存储器108的计算机系 统可以是服务器(例如,执行S皿0S、AIX、或Li皿x操作系统的一个版本的一个或多个计算 机)。 图2A显示了与示例性文件系统内存储的数据关联的示例性数据结构集200。数 据结构集200包括被分配给一个文件并包含该文件的元数据204的索引节点202。元数据 204可以包括,例如,文件的创建时间、大小、访问权限、指向数据块的指针,及其他关联的数 据。索引节点202由索引节点号码唯一地进行标识,索引节点内的数据被文件系统用来定 位关联的文件。索引节点202进一步包含磁盘地址206,这是指向文件的数据块208的指 针。磁盘地址206指定特定磁盘驱动器的标识,以及磁盘驱动器内包含数据块208的扇区 或块。 索引节点202可以按顺序存储在用户不可见的固定大小的索引节点的索引节点 文件内的文件系统中。可以根据到索引节点文件的偏移量,访问具有特定索引节点号码的 索引节点文件中的索引节点;偏移量是通过将索引节点号码乘以每一个索引节点的长度, 然后读取偏移了该计算出的值的索引节点文件中的数据结构来确定的。
图2B显示了描述示例性文件系统内存储的数据的第二示例性数据结构集250。尽 管数据结构集200适合用于与其中磁盘地址206可以存储在索引节点本身内的小型文件, 但是,数据结构集250也可以用于较大的文件。在数据结构集250中,索引节点252的磁盘 地址256指向一个或多个间接数据块258,每一个数据块258都包含一个或多个指针,指向 实际数据块或者包含进一步的磁盘寻址信息的其他间接块。在图2中,间接数据块258包 含第一直接磁盘地址260和第二直接磁盘地址262,分别指向与索引节点252关联的文件的 第一数据块264和第二数据块266。 图3显示了示例性文件系统目录结构。目录结构300包括目录文件302,该目录 文件302包含两个目录项或记录第一 目录记录304和第二目录记录310。第一 目录记录 304的数据包含文件名306和索引节点号码308。目录文件302由文件系统进行管理,而目 录记录304将用户分配的文件名306映射到唯一地标识与此目录条目关联的文件的索引节 点316的索引节点号码308。与目录记录310关联的结构类似于与目录记录304关联的结 构。 这种目录项也可以被称为链接。这样的链接可以指向用户文件、其他目录,或其他 文件系统对象。在示例性文件系统中,目录可以对文件系统中的文件规定分层的命名结构, 其中,层次结构的根是文件系统的根目录。从根目录或根的子目录,可访问文件系统内的文 件和目录。 一个文件能够具有一个以上的目录条目,如此,一个以上的名称,供用户对它进 行访问。 可以实现这里结合本发明的示例性实施例所描述的示例性文件系统,以定义存储 在一个或多个大容量存储设备上的数据的结构,支持并行地创建、修改和删除这些存储设备上的多个文件,并使链接和写入一致。如果每个文件具有至少一个目录条目并且每个目 录条目链接到当创建链接时它所链接的同一个文件,则可以说文件系统链接一致。写入一 致文件系统维护了单个文件内或文件之间的按序写入的顺序。例如,在向第一文件写入之 后向第二文件写入并且迫使该第一文件中的被写入的数据写入到非易失性存储器的应用 程序,只有在第一文件中有数据的情况下才需要数据存在于第二文件中。保持了此属性的 文件系统可以说是写入一致的。 这里所描述的示例性文件系统是快照文件系统。快照文件系统被配置为捕获文件 系统的一个或多个快照,以创建数据集,该数据集保持了在捕获快照时数据存储在文件系 统内时的数据的状态。使用写入时复制技术,快照只包含自从创建快照以来改变的文件系 统数据的副本。快照功能可以允许备份或镜像程序与用户更新并行地运行,到创建快照的 时间为止仍能获取文件系统的一致的副本。快照可以提供联机文件备份能力,利用该能力, 允许轻松地从诸如偶然的删除之类的常见的问题中恢复,并允许将一个文件与该文件的较 旧的版本进行比较。可以实现示例性快照文件系统,以创建和捕获快照,包括文件系统中的 所有文件,以保持一致的文件系统图像数据集,并在捕获快照之后进行修改之前有效地复 制文件系统中的旧数据。 在示例性快照文件系统中,在捕获快照之后,快照维护处理可以增强对现用文件 系统的修改。当在捕获快照之后首次修改现用文件系统内的数据时,在修改原始文件内的 该数据之前,此处理可以将该数据的原始版本(即,在捕获快照时存在的数据的版本)复制 到快照数据集中。此系统的操作导致当修改现用文件系统内的文件时,快照的内容所需的 存储空间随着时间而增大。 在示例性快照文件系统中,文件系统图像数据集中的文件的快照可以包含文件的 索引节点的副本以及被该索引节点引用的任何间接块。快照文件中的数据块指针将与原始 文件引用相同的数据块,直到写入时复制(copy-onirite)操作创建新的数据块,并删除 引用。图4显示了描述了这种快照文件系统内的存储的数据的第三示例性数据结构集400。 数据结构集400包含三个索引节点现用文件系统中的第一索引节点402,快照数据集416 中的旧版本的第二索引节点408,以及快照数据集中的另一个旧版本的第三索引节点412, 分别包含第一磁盘地址404、第二磁盘地址410,以及第三磁盘地址414,每一个都指向同一 个数据块406。如图4所示,具有为其存储了一个以上的版本的文件的快照文件系统可以具 有多个对单个数据块的引用。 图5A和5B显示了本发明的示例性实施例的处理和控制流,其中,实现了图1中的 示例性系统体系结构100的诸如HSM 106之类的分层系统管理器,以对快照文件系统进行 操作。在此示例性实施例中,HSM控制存储在文件系统中的数据块沿着数据迁移和调用路径 在原始文件系统中的更快的联机存储器(例如,硬盘驱动器阵列)和连接到HSM的慢一些 的脱机存储器(例如,磁带)之间的自动移动的分割的或分层的层次结构。HSM连续地监视 文件系统数据和联机存储容量,并包括用于确定何时在存储级别之间迁移数据的策略。这 些策略可以基于,例如,诸如大小、自从最后一次访问以来的时间长度之类的文件属性,及 如网络或系统管理员所指定的其他标准。HSM自动地调用已经被迁移的如果被用户访问的 数据,并将它恢复到文件系统中的其原始位置。 一般而言,HSM可以操作,以管理在文件系 统内组织的数据的存储,通过将不经常被访问或以别的方式认为不那么关键的数据移动到脱机存储器,而对最终用户来说,呈现此数据仍在磁盘上的效果。 在图5A-5B中所显示的示例性实施例中,控制流500在步骤502中开始,HSM选择 一个文件从联机存储器迁移到脱机存储器,流程直接进入步骤504,其中HSM锁定对选定的 文件的访问,以防止对文件的并发更新,直到HSM操作完成。在本示例性实施例中,可以通 过HSM选择任何文件,无论它是现用版本还是快照副本,以便迁移到脱机存储器,而所有文 件都独立地迁移。 在选择要迁移的文件时,HSM,在步骤506中,着手将选定的文件的每一个数据块 复制到脱机存储器。被迁移的文件的索引节点作为"存根文件"保留在联机存储器中,对用 户应用程序,似乎是原始文件,确保HSM操作的透明性。可选地,在某些示例性实施例中, HSM可以在联机存储器中的存根文件中留下选定的文件的少量的原始数据,如第一数据块。 在完成复制之后,然后在步骤508中,HSM检查原始文件系统中的索引节点文件,以判断被 迁移的数据块中是否有数据块被文件的一个以上的快照版本引用。在示例性实施例中,此 判断可以这样进行,例如,通过检查元数据中维护的相关的状态信息或索引节点文件中的 每一个索引节点的磁盘地址指针,或通过扫描可能具有同一个数据块的引用的文件的快照 版本。 对于被发现引用迁移的数据块的文件的每一个版本,在步骤510中,HSM更新文 件的关联的索引节点的属性,以说明迁移。这是通过更新具有共享的对迁移的数据块的引 用的快照文件的索引节点内包含的磁盘地址指针来执行的。更具体地说,被实际迁移到每 一个共享数据块的文件的索引节点的磁盘地址指针被保留原样,但是对于具有索引节点 并带有对发现的迁移的数据块的共享的引用的每一个随后的快照文件,HSM将指向索引节 点中的共享数据块的物理磁盘地址指针替换为这里被称为"逻辑照抄地址"的逻辑"照抄 (ditto)"值。 照抄值是预留值,表示磁盘地址值不是真实的磁盘地址,因此,表示需要另外的处 理才能访问数据。在示例性实施例中,磁盘地址的"照抄"值可以作为"-l"来存储。索引 节点文件仍保留在原始文件系统中,或者如任何其他文件那样被访问,但是由于"-l"不是 有效的磁盘块地址,应用程序将能够认识到,这是照抄值。 于在步骤510中做出的任何更新之后,在步骤512中,HSM着手更新文件系统属性
以说明迁移,和对迁移的文件的快照版本的磁盘地址做出的任何更新。在本示例性实施例
中,HSM是通过设置涵盖了迁移的数据的"受管理的区域"来做到这一点的,这允许它截取随
后的对迁移的文件的读取和写入操作,并根据需要恢复迁移的数据。为了当具有共享的引
用的文件的快照版本被访问时也可以恢复迁移的数据块,如下面将说明的,HSM也设置每一
个快照文件的受管理的区域,指向共享数据块的物理磁盘地址指针被替换为逻辑照抄值。
受管理的区域提供应用程序控制对已经从联机存储空间迁移的数据块的访问的机制。在示
例性实施例中,可以通过其起始偏移、长度,以及事件生成标记,来描述每一个受管理的区
域。例如,在具有offset = 0, length = 8192以及flags = READ | WRITE | TRUNCATE的受管
理的区域中,任何访问偏移0和8191之间的文件数据的尝试都将触发特定的事件,如下文
所述。实际事件类型取决于访问类型例如,写入尝试会生成写入事件。 在更新索引节点和文件系统属性之后,HSM,在步骤514中,可以解除分配每一个
迁移的数据块的联机存储器。由于在步骤510中冗余的对每一个数据块的物理引用都被转
13换为逻辑照抄地址,HSM可以立即回收所有迁移的数据块的文件系统的联机存储空间,不管 对任何共享数据块的引用的数量如何。在以此方式删除原始数据块之后,在步骤516中, HSM解除锁定对选定文件的访问,这可使对该文件的任何待办的操作得到处理,原始数据文 件的正常的文件系统活动恢复。延迟的更新被处理,应用程序再次能够访问原始文件系统 数据。 在文件系统中的文件已经被HSM迁移到脱机存储器之后,HSM可以随后决定迁移 具有现在包含指向已经被迁移的共享数据块的逻辑照抄地址指针的索引节点的文件。在 本发明的示例性实施例中,可以根据如上文所描述的示例性控制流程500开始这种迁移, 只是由选定的文件共享的已经迁移的数据块不被复制到脱机存储器,而是在步骤506中, HSM将检测将数据块标识为已经被迁移的照抄值,从而知道避免复制它和将它冗余地存储 起来。在步骤506中,HSM将只将利用索引节点中的物理块地址引用的联机数据块复制到脱 机存储器。即,在本示例性实施例中,如果数据块尚未在另一个迁移中被移到脱机存储器, 则根据如上文所描述的步骤506-514,它将被复制和解除分配,但是,如果索引节点提供逻 辑照抄地址,则HSM不会在脱机存储器中制作数据块的冗余副本。在这样的情况下,HSM将 在已迁移的文件内保留照抄地址的偏移,因为此信息是恢复数据和重建对每一个共享数据 块的多个共享引用所需的,如下文所述。在示例性实施例中,这可以,例如,通过记录照抄地 址的范围,提供表示每一个照抄地址的位图,或保留已迁移的文件的数据块指针,来实现。
在替代示例性实施例中,可以如此实现HSM,以便当将文件迁移到脱机存储器时 HSM不立即回收共享磁盘块的磁盘空间,而是等待,直到引用了共享数据块的每个快照文件 也都被迁移到脱机存储器。在此示例性实施例中,当生成照抄值时,HSM将保留指向数据块 的物理磁盘地址指针,以便读取快照文件时,不会需要从脱机存储器恢复原始文件的操作。 尽管在此示例性实施例中文件系统将等待比较长的时间才能回收已迁移的数据块的磁盘 空间,但是,当读取快照文件时,可以避免脱机存储器访问。对于其中对快照文件的访问是 常见的文件系统操作,即使原始文件长时间没有被访问,此替代实现方式可以就总体工作 负荷而言提供较佳的折中。 对于使用分层系统管理和供用户或应用程序访问文件的接口,诸如,例如,标准 POSIX文件系统接口,的快照文件系统,可以实现本发明的示例性实施例,以支持用户访问 已经从脱机存储器迁移的文件。可以以多种不同的方式处理这些访问,取决于访问类型和 文件的位置。 例如,用户或其他进程可以请求读取或修改已经迁移到脱机存储器的数据,结果, 数据必须由HSM恢复到联机存储器。在这样的情况下,必须恢复以满足对文件的读取或写 入访问的已迁移的数据块可能已经与文件一起或者与文件的另一个快照版本一起迁移,正 在被访问的实际文件与文件的另一个快照版本具有共享数据块引用,该共享数据块引用在 迁移期间被修改为照抄值。图6显示了本发明的示例性实施例的过程和控制流程,其中,根 据上文所描述的示例性控制流程500迁移的数据被HSM恢复,以满足读取或写入请求。
在图6中所显示的示例性实施例中,当在步骤602中做出读取或写入请求时开始 控制流程600。然后,过程根据正在被访问的文件引用的数据块的当前存储情况前进。如 果做出访问具有表示对其索引节点中的迁移的数据块的引用的逻辑照抄地址的联机文件 的请求,则由HSM设置的涵盖正在被访问的文件的逻辑照抄地址的受管理的区域将在步骤604中截取读取或写入请求,并向HSM指出,必须从脱机存储器中恢复已迁移的数据。存储 在磁盘地址中的照抄值表示推断的引用,HSM必须使用已迁移的文件的索引节点内的磁盘 地址,检索已迁移的数据块的实际磁盘地址。因此,HSM将如此对待请求,好像它是对包含 在物理磁盘地址被转换为逻辑照抄地址之前被联机文件的索引节点引用的数据块的已迁 移的文件的访问。HSM在步骤606中,将以下面针对直接向脱机文件发出读取或写入请求时 所描述的方式将已迁移的文件恢复到联机存储器。 在本示例性实施例中,如果作为替代做出读取或写入请求以访问脱机文件,过程 将从步骤602进入步骤610,在该步骤中,由HSM设置的涵盖已迁移的文件受管理的区域将 截取请求并向HSM指出,必须从脱机存储器恢复已迁移的数据。然后,HSM将在步骤612中 恢复被文件的索引节点中的物理(即,非照抄)磁盘地址引用的已迁移的数据块。对于用 照抄值标记的文件的索引节点中的任何磁盘地址,如果读取或写入请求指向由照抄值表示 的特定已迁移的数据块,HSM将在步骤614中,如在步骤606中针对向具有逻辑照抄地址的 联机文件发出的请求那样,以下面的方式对待请求,即,好像它是对包含在其物理磁盘地址 被转换为逻辑照抄地址之前被联机文件的索引节点引用的数据块的已迁移的文件的访问。 然而,HSM不会恢复对应于用照抄值标记的最初被访问的文件的索引节点中的任何其他磁 盘地址的数据。因此,在某些情况下,恢复操作可以将逻辑照抄地址原封不动地保留在被访 问的文件的索引节点中。 在以这样的方式从脱机存储器恢复必要的数据块之后,HSM在步骤608中着手更
新对被恢复的共享数据块的磁盘地址索引,然后,在步骤616中,将控制返回到文件系统,
以便现在恢复的数据可以被访问,以满足原始文件请求,原始数据文件的正常的文件系统
活动可以恢复。在示例性实施例中,对于被多个索引共享的每一个已恢复的数据块,使用当
具有照抄值的文件被迁移时保留的逻辑照抄地址的位置,HSM可以在步骤608中,恢复文件
中的物理磁盘地址,以便每一个已迁移的数据块只需要一个恢复操作,并只需要在联机存
储器中进行一次新的块分配。即,一旦在读取或写入请求中修复了数据块,如果需要,HSM可
以将任何或全部对应的逻辑照抄地址替换为已恢复的数据块的物理磁盘地址。 在替代示例性实施例中,可以推迟向对应的逻辑照抄地址的更新,直到进行随后
的引用,从而可以避免文件被删除,而无法进行随后的访问。例如,如果对文件进行的访问
是盖写整个数据块的写入请求,如果HSM只替换被恢复的文件中的逻辑照抄地址,则当在
被更新之前向新的磁盘块复制原始数据时它可以避免在对共享数据块的写入中通常产生
的"写入时复制"损失。在此示例中,HSM为正在向其写入的数据分配新的数据块,但是,在
脱机存储器中保留数据块的原始共享副本,直到,如果对到共享数据块的其中一个其他逻
辑照抄地址进行访问,或直到具有其他逻辑照抄地址的所有文件被删除。即,HSM在已迁移
的数据块的磁盘地址和与其他照抄值关联的磁盘地址之间保持关联,并将原始文件的索引
节点中的磁盘地址(照抄或物理)替换为联机存储器中的新分配的数据块的地址。这节省
了与当原始文件不再需要原始数据时从原始数据块恢复原始数据关联的磁盘1/0,如果或
直到原始数据块被访问。 在其他文件访问情况下,用户或进程可以请求删除或截断具有已经被迁移到脱机 存储器的一个或多个共享数据块的文件。在这些情况下,HSM必须保留共享数据。图7显 示了本发明的示例性实施例的过程和控制流程,其中,根据如上文所描述的示例性控制流程500迁移的数据被HSM恢复,以满足删除或截断请求。 在图7中所显示的示例性实施例中,控制流程700从在步骤702中做出的删除或截断请求时开始。在步骤704中,HSM开始恢复正在被当前请求访问的文件的索引节点在物理上引用的每一个共享数据块。对于被恢复的每一个共享数据块,在步骤706中,HSM将共享对被恢复的数据块的索引的其他文件中的至少一个文件的索引节点内的照抄值替换为对应的物理磁盘地址。然后,HSM在步骤708中将控制返回到文件系统,以便可以解除分配相应的数据空间,以满足原始文件请求,原始数据文件的正常的文件系统活动可以恢复。
在替代示例性实施例中,HSM不必在向具有已经迁移到脱机存储器的一个或多个共享数据块的文件发出删除或截断请求时执行恢复操作。相反,HSM可以向具有对共享数据块的索引的其中一个文件分配脱机共享数据块的所有权。这种所有权变更可以通过更新文件的索引节点内包含的相关元数据来进行,这将使文件系统避免让HSM恢复数据,直到需要改数据例如以满足对数据块的读取或写入访问权限。 现在请参看图8A-8C,显示了与替代示例性文件系统内存储的数据关联的第三种数据结构集的示例。这种文件系统通过创建利用推断的逻辑照抄地址指针的快照数据集来引用文件的最近的版本内的数据,而不是创建多个对联机存储器中的原始数据块的物理索引(即,在数据迁移之前),与上文所描述的其他示例性文件系统不同地实现了快照。
图8A显示了与此替代快照文件系统关联的初始快照数据集结构800的示意图。显示的快照数据集802是空白的,代表当自从捕获快照以来没有更新原始文件系统时的快照。用于从快照数据集检索数据的过程首先检查快照的索引节点文件,以判断正在被检索的数据文件的快照数据集802内是否存在有效索引节点数据。快照数据集802内不存在索引节点数据表示,自从捕获快照以来没有修改被请求的数据,该快照"内"的被请求的数据位于现用文件系统的原始数据文件中。这导致对现用文件系统的索引节点804的推断的索引812访问被请求的数据块。 当进行访问捕获的快照内的数据块810的尝试,并且快照数据集不包含与被请求的数据文件关联的索引节点的数据时,使用现用文件系统的索引节点804内的物理磁盘地址808来访问数据块。类似地,当快照数据集802内没有有效索引节点数据时,使用现用文件系统的索引节点804内的推断的对元数据集806的索引来访问文件的元数据。
图8B显示了与此示例性文件系统关联的已更新的属性数据结构820的示例。在数据结构820中,阴影索引节点822存储在快照数据集802内。阴影索引节点822代表被捕获到快照数据集802中的数据文件的索引节点,其中,自从捕获快照以来,元数据节点824中存储的索引节点的文件属性已经改变。在更新现用文件系统内的索引节点元数据之前,索引节点数据已经从现用文件系统复制到快照数据集802中。此结构导致包含当捕获快照时存在于关联的文件中的属性的元数据节点824。 阴影索引节点822内的磁盘地址826包含"-l"照抄值,表示这是阴影索引节点,实际数据块810的真实的磁盘地址存储在现用文件系统的索引节点804中。存储在磁盘地址826中的照抄值表示推断的索引828,表明应该使用现用文件系统的索引节点804内的磁盘地址808来检索在此情况下仍是原始文件的一部分的数据块810的实际磁盘地址。如此,原始索引节点的文件属性被按原样复制,但是,存储在快照索引节点文件中的阴影索引节点内的磁盘地址被替换为逻辑照抄地址。
图8C显示了与此替代示例性文件系统关联的更新的数据块存储数据结构830的示例。数据块存储数据结构830代表自从捕获快照以来已经更新的数据块810。在更新数据块810之前位于现用文件系统中的数据块810在捕获快照之后已经被移动或复制到快照数据集802。数据块存储数据结构830显示了,快照数据集802内的阴影索引节点822不仅包含有效元数据824,而且现在还包含磁盘地址826中的有效物理索引。现在是快照数据集802的一部分的磁盘地址826表明数据块810的存储位置。 在本发明的示例性实施例中,可以和此替代类型的脱机存储器系统和快照文件系统一起实现HSM,以自动地在联机存储器设备和脱机存储器之间在文件系统内移动数据。在一个示例性实施例中,可以实现HSM,按与上文利用示例性控制流程500、600,以及700所描述的类似的方式,在发出文件访问请求时,执行数据迁移和恢复数据,但有些例外,下面将进行描述。 在本示例性实施例中,不执行示例性控制流程500中的在迁移文件之后将也引用了被迁移的数据的文件的索引节点中的物理磁盘地址转换为照抄值的步骤510。而是在迁移之后立即解除分配由文件占用的磁盘空间。这是因为,正在被迁移的文件引用的任何共享数据块将被其他文件的索引节点内的逻辑照抄地址引用,不管数据块是联机存储还是被迁移脱机。另外,在示例性控制流程500中的步骤512中,HSM不需要设置包含逻辑照抄地址的快照文件版本的受管理的区域,因为这种快照文件系统已经被配置为实现照抄解析。此外,在本示例性实施例中,在向具有逻辑照抄地址的联机文件发送读取或写入请求时,文件系统将把照抄地址解析为被迁移的文件。结果,HSM可以将数据块恢复到该文件,不用转换引用了被恢复的数据块的任何其他照抄值。即,在将共享数据块恢复到联机存储时,HSM不会恢复对数据块的任何物理索引。 通过在联机存储器中创建逻辑块指针来引用正在迁移脱机的被文件的多个快照版本共享的数据,并通过当将共享数据恢复到联机存储器时将引用被文件的多个快照版
本共享的脱机数据的逻辑块指针替换为物理磁盘指针,可以以较少的成本实现示例性实施例,以提供存储了表明特定时间点存储的数据的状态的快照的文件系统的有效的分层存储管理。 本发明的示例性实施例可以在一个计算机系统中以集中方式实现,或者以其中不同的元件跨多个互连的计算机系统分布的分布式计算体系结构操作来实现。图9显示了示例性分布式计算环境1600的方框图,包括通过多个网络适配器1604彼此连接在一起的多个节点1602。每一个节点1602都是独立的计算机,有其自己的操作系统映像1608、系统存储器总线1618上的存储器1610,处理器1606。系统输入/输出总线1616连接了 1/0适配器1612和网络适配器1604。每一个网络适配器都通过网络交换机1620彼此链接起来。在示例性实施例中,网络可以是带有对应的光纤网络交换机的光纤网络。
示例性实施例可以,例如,被实现为在包括带有一个或多个处理器1606的N个节点1602的分布式计算环境1600中进行操作。在示例性实施例中,每一个处理节点都是运行AIX操作系统的RISC/6000计算机。在替代示例性实施例中,某些或所有处理节点1602可以包括不同类型的计算机和/或不同的操作系统1608。 本发明的示例性实施例可以以硬件、软件或硬件和软件的组合来实现。根据示例性实施例的系统可以使用一个计算机系统以集中方式,或者以其中不同的元件跨多个互连的计算机系统分布的分布式方式来实现。硬件和软件的示例性的组合可以是具有这样的计算机程序的通用计算机系统,当加载并执行该计算机程序时,控制计算机系统以便它执行这里描述的方法。 本发明的示例性实施例还可以嵌入在计算机程序产品中,这种计算机程序产品包括能够实现这里所描述的方法的特征,在加载到计算机系统中时,能够执行这些方法。本上下文中的计算机程序装置或者计算机程序是指以任何语言、代码或注释表达的一组指令的任何表达式,用于导致具有信息处理能力的系统直接或者在下列操作中的任何一种或两种操作都执行之后执行特定的功能a)转换到另一种语言、代码或注释;以及b)以不同的材料形式再现。 本发明的示例性实施例可以在任何类型的计算机系统上实现,也可以在可以适用于执行这里所描述的方法和/或功能的其他设备上实现。示例性计算机系统可以包括,其中,一个或多个计算机和至少一个计算机可读介质,该介质允许计算机系统从计算机可读介质中读取数据、指令、消息或消息数据包,及其他计算机可读取的信息。计算机可读介质可以包括,例如,诸如R0M、 FLASH存储器、磁盘驱动器存储器、CD-ROM之类的非易失性存储器,及其他永久存储器,以及,例如,诸如RAM、缓冲存储器、高速缓冲存储器之类的易失性存储器,以及网络线路。此外,计算机可读介质还可以包括如包括允许计算机读取这样的计算机可读取的信息的有线网络或无线网络的网络链路和/或网络接口之类的暂时状态介质中的计算机可读取的信息。 图10显示了示例性计算机系统1700。计算机系统1700包括诸如处理器1704之类的一个或多个处理器。处理器1704连接到通信基础架构1702(例如,通信总线、跨接棒或网络)。这里利用此示例性计算机系统,描述了本发明的示例性实施例。在阅读此描述之后,如何使用其他计算机系统和/或计算机体系结构来实现示例性本发明的实施例对于本领域的技术人员来说是清楚的。 示例性计算机系统1700包括显示器接口 1708,用于转发来自通信基础架构1702或来自未显示的帧缓冲存储器的图形、文本,及其他数据,以便显示在显示单元1710上。计算机系统1700还包括主存储器1706,优选情况下,随机存取存储器(RAM),还可以包括辅助存储器1712。辅助存储器1712可以包括,例如,硬盘驱动器1714和/或可移动存储驱动器1716,代表软盘驱动器、磁带驱动器、光盘驱动器等等。可移动存储驱动器1716从可移动存储单元1718中读取和/或向其中写入。可移动存储单元1718代表可由可移动存储驱动器1716读取并向其中写入的软盘、磁带、光盘等等。可以理解,可移动存储单元1718包括其中存储了计算机软件和/或数据的计算机可用存储介质。 示例性辅助存储器1712可以包括允许计算机程序或其他指令加载到计算机系统1700中的其他类似的装置。这样的装置可以包括,例如,可移动存储单元1722和接口 1720。这样的装置的示例包括程序盒和盒式接口 (如在视频游戏设备中见到的那些)、可移动的存储器芯片(如EPROM或PROM)和关联的插槽,及允许将软件和数据从可移动存储单元1722传输到计算机系统1700的其他可移动存储单元1722和接口 1720。
示例性计算机系统1700还可以包括通信接口 1724。通信接口 1724允许在计算机系统1700和外部设备之间传输软件和数据。通信接口 1724的示例可以包括调制解调器、网络接口 (如以太网卡)、通信端口、PCMCIA插槽和卡等等。通过通信接口 1724传输软件
18和数据呈现信号的形式,信号可以是,例如,能够通过通信接口 1724接收到的电子、电磁、光学或其他信号。这些信号通过通信路径、或信道1726提供到通信接口 1724。信道1726承载信号并可以使用线路或电缆、光纤、电话线、移动电话链路、RF链路,和/或其他通信信道来实现。 这里所使用的术语"计算机程序介质"、"计算机可用介质"以及"计算机可读介质"一般是指诸如主存储器1706和辅助存储器1712、可移动存储驱动器1716、安装在硬盘驱动器1714中的硬盘之类的介质,以及信号。这些计算机程序产品是用于向计算机系统1700提供软件的装置。计算机可读介质允许计算机系统1700从计算机可读介质中读取数据、指令、消息或消息数据包,及其他计算机可读信息。计算机可读介质,例如,可以包括非易失性存储器,如软盘、ROM、FLASH存储器、磁盘驱动器存储器、CD-ROM,及其他永久存储器。例如,在计算机系统1700之间运输诸如数据和计算机指令之类的信息是有用的。此外,计算机可读介质还可以包括如包括允许计算机读取这样的计算机可读取的信息的有线网络或无线网络的网络链路和/或网络接口之类的暂时状态介质中的计算机可读信息。
计算机程序(也叫做"计算机控制逻辑")存储在主存储器1706和/或辅助存储器1712中。也可以通过通信接口 1724接收计算机程序。具体来说,计算机程序,当执行时,使处理器1704能执行计算机系统1700的特征。相应地,这样的计算机程序代表计算机系统1700的控制器。可以实现这样的计算机程序,以便当执行该程序时,使计算机系统1700能执行如这里所讨论的本发明的示例性实施例的特征。 因此,本发明的示例性实施例的一个或多个方面可以包括在具有,例如,计算机可用介质的一件产品中(例如,一个或多个计算机程序产品)。介质中包含了,例如,用于提供和促进本发明的功能的计算机可读程序代码装置。该产品可以作为计算机系统的一部分或单独地销售。此外,还可以提供至少一个由机器可读取的程序存储设备,其中有形地体现由机器可执行的至少一个指令程序以执行上文所描述的本发明的示例性实施例的功能。
可以以对于每一个特定应用程序所希望的任何组合,实现为本发明的示例性实施例描述的变化。如此,可能对于特定应用程序有特定优点的这里所描述的特定局限性,和/或实施例增强,未必用于所有应用程序。此外,并非这里对于本发明的示例性实施例所描述的方面的所有的局限性都需要在方法、系统和/或设备中实现。
权利要求
一种用于管理已经被选择从文件系统内的第一存储级别迁移到第二存储级别的文件的存储的方法,选定文件是从多个源文件中选择的,每一个源文件都在所述文件系统内组织成一个或多个数据块,所述文件系统具有所述多个源文件中的每一个源文件的索引节点,每一个索引节点都具有对对应的源文件的所述一个或多个数据块中的每一个的索引,所述文件系统被配置为定期生成所述多个源文件中的所述源文件的快照文件,所述文件系统具有每一个快照文件的索引,在生成所述快照文件时,每一个快照文件的索引节点都具有对所述对应的源文件的所述一个或多个数据块中的每一个数据块的索引,所述方法包括将所述选定文件的索引节点的对应的索引中维护的物理磁盘地址处所述选定文件的存储在第一存储级别中的所述一个或多个数据块中的每一个数据块从所述第一存储级别复制到第二存储级别;在引用了所述选定文件的被复制到所述第二存储级别的所述一个或多个数据块中的一个数据块的所述文件系统中的每一个快照文件的索引节点的每一个索引中维护逻辑照抄地址,每一个逻辑照抄地址都表明,需要另外的处理以获得被所述索引引用的所述数据块的所述物理磁盘地址;以及更新所述文件系统,以包括用于通过所述选定文件的索引节点控制对所述一个或多个数据块的访问的受管理的区域。
2. 根据权利要求1所述的方法,进一步包括在所述第一存储级别中解除分配所述选定文件的被复制到所述第二存储级别的所述 一个或多个数据块。
3. 根据权利要求1所述的方法,进一步包括在具有对所述选定文件的被复制到所述第二存储级别的所述一个或多个数据块中的 每一个数据块的索引的每一个快照文件也都被选择用于迁移之后,在所述第一存储级别中 解除分配该数据块。
4. 根据权利要求2所述的方法,其中,当所述文件系统生成所述快照文件时,所述文件 系统被配置为在引用了所述对应的源文件的所述一个或多个数据块中的一个数据块的每 一个快照文件的索引节点的每一个索引中分配逻辑照抄地址。
5. 根据权利要求4所述的方法,其中,对于引用了所述对应的源文件的数据块的每一 个快照文件的索引节点的每一个索引,所述文件系统被配置为当在所述源文件中修改所述 数据块时,将该索引中的所述逻辑照抄地址转换为物理磁盘地址。
6. 根据权利要求2所述的方法,进一步包括在引用了所述选定文件的被复制到所述第二存储级别的所述一个或多个数据块中的 任何一个数据块的所述文件系统中的每一个快照文件的索引节点的每一个索引中分配逻 辑照抄地址,以及更新所述文件系统以包括具有向其分配了逻辑照抄地址的索引的每一个快照文件的 受管理的区域,每一个受管理的区域都通过所述对应的快照文件的索引节点,控制对被复 制到所述第二存储级别的所述一个或多个数据块的访问。
7. 根据权利要求5所述的方法,进一步包括在所述选定文件的被复制到所述第二存储级别的所述一个或多个数据块已经在所述第一存储级别中解除分配之后,接收读取或修改所述选定文件的请求;将所述选定文件的在所述选定文件的索引节点的对应的索引中维护了物理磁盘地址 的所述一个或多个数据块中的每一个数据块,从所述第二存储级别复制到所述第一存储级 别;以及满足读取或修改所述选定文件的请求,其中,如果在所述选定文件的索引节点的被请求读取或修改所述选定文件的请求直接 访问的所述一个或多个数据块中的任何一个数据块的所述对应的索引中维护了逻辑照抄 地址,则将所述多个源文件的为其在索引节点的到通过请求直接地访问的一个或多个数据 块的所述对应的索引中维护了物理磁盘地址,并且为其在所述选定文件的索引节点的所述 对应的索引中维护了逻辑照抄地址的每一个源文件的一个或多个数据块中的每一个数据 块,从所述第二存储级别复制到所述第一存储级别。
8. 根据权利要求5所述的方法,进一步包括接收读取或修改具有带有引用了所述选定文件的被复制到所述第二存储级别并在所 述第一存储级别中解除分配的所述一个或多个数据块中的一个数据块的索引中的逻辑照 抄地址的索引节点的所述文件系统内的第一快照文件的请求;将所述选定文件的在所述选定文件的索引节点的所述对应的索引中维护了物理磁盘 地址的所述一个或多个数据块中的每一个数据块,从所述第二存储级别复制到所述第一存 储级别;以及满足读取或修改所述选定文件的所述请求。
9. 根据权利要求6所述的方法,进一步包括在所述选定文件的被复制到所述第二存储级别的所述一个或多个数据块已经在所述 第一存储级别中解除分配之后,接收读取或修改所述选定文件的请求;将所述选定文件的在所述选定文件的索引节点的所述对应的索引中维护了物理磁盘 地址的所述一个或多个数据块中的每一个数据块,从所述第二存储级别复制到所述第一存 储级别;以及满足读取或修改所述选定文件的请求,其中,如果在所述选定文件的索引节点的被请求读取或修改所述选定文件的请求直接 访问的所述一个或多个数据块中的任何一个数据块的所述对应的索引中维护了逻辑照抄 地址,则将所述多个源文件的为其在索引节点的到通过请求直接地访问的一个或多个数据 块的所述对应的索引中维护了物理磁盘地址,并且为其在所述选定文件的索引节点的所述 对应的索引中维护了逻辑照抄地址的每一个源文件的一个或多个数据块中的每一个数据 块,从所述第二存储级别复制到所述第一存储级别。
10. 根据权利要求9所述的方法,进一步包括将引用了被复制到所述第一存储级别的所述一个或多个数据块中的一个数据块的所 述文件系统中的每一个快照文件的索引节点的每一个索引中的每一个逻辑照抄地址转换 为在所述第一存储级别中向其复制了所述对应的数据块的所述物理磁盘地址。
11. 根据权利要求9所述的方法,进一步包括对于引用了被复制到所述第一存储级别的为其接收了随后的访问所述快照文件的请 求的所述一个或多个数据块中的一个数据块的所述文件系统中的每一个快照文件,将所述快照文件的索引节点的每一个索引中的每一个逻辑照抄地址转换为在所述第一存储级别 中向其复制了所述对应的数据块的所述物理磁盘地址。
12. 根据权利要求6所述的方法,进一步包括接收读取或修改具有带有引用了所述选定文件的被复制到所述第二存储级别并在所 述第一存储级别中解除分配的所述一个或多个数据块中的一个数据块的索引中的逻辑照 抄地址的索引节点的所述文件系统内的第一快照文件的请求;将所述选定文件的为其在所述选定文件的索引节点的所述对应的索引中维护了物理 磁盘地址的所述一个或多个数据块中的每一个数据块,从所述第二存储级别复制到所述第 一存储级别;以及满足读取或修改所述选定文件的请求。
13. 根据权利要求12所述的方法,进一步包括将引用了被复制到所述第一存储级别的所述一个或多个数据块中的一个数据块的所 述文件系统中的每一个快照文件的索引节点的每一个索引中的每一个逻辑照抄地址转换 为在所述第一存储级别中向其复制了所述对应的数据块的所述物理磁盘地址。
14. 根据权利要求12所述的方法,进一步包括对于引用了被复制到所述第一存储级别的为其接收了随后的访问所述快照文件的请 求的所述一个或多个数据块中的一个数据块的所述文件系统中的每一个快照文件,将所述 快照文件的索引节点的每一个索引中的每一个逻辑照抄地址转换为在所述第一存储级别 中向其复制了所述对应的数据块的所述物理磁盘地址。
15. 根据权利要求5所述的方法,进一步包括在所述选定文件的被复制到所述第二存储级别的所述一个或多个数据块已经在所述 第一存储级别中解除分配之后,接收删除或截断所述选定文件的请求;以及将所述选定文件的为其在引用了所述选定文件的所述一个或多个数据块中的一个数 据块的文件系统中的每一个快照文件的索引节点的所述对应的索引中维护了逻辑照抄地 址的所述一个或多个数据块中的每一个数据块,从所述第二存储级别复制到所述第一存储 级别。
16. 根据权利要求6所述的方法,进一步包括在所述选定文件的被复制到所述第二存储级别的所述一个或多个数据块已经在所述 第一存储级别中解除分配之后,接收删除或截断所述选定文件的请求;将所述选定文件的为其在引用了所述选定文件的所述一个或多个数据块中的一个数 据块的文件系统中的每一个快照文件的索引节点的所述对应的索引中维护了逻辑照抄地 址的所述一个或多个数据块中的每一个数据块,从所述第二存储级别复制到所述第一存储 级别;以及将引用了被复制到所述第一存储级别的所述一个或多个数据块中的每一个数据块的 所述文件系统中的所述快照文件的索引节点的所述索引中的至少一个逻辑照抄地址转换 为在所述第一存储级别中向其复制了所述对应的数据块的所述物理磁盘地址。
17. 根据权利要求1所述的方法,其中,所述多个源文件的每一个源文件的索引节点具 有指向一个或多个间接数据块的磁盘地址指针,所述一个或多个间接数据块包含对所述源 文件的所述一个或多个数据块的索引。
18. 根据权利要求1所述的方法,其中,所述第一存储级别是在处理单元控制下的联机 存储器设备,在所述处理单元上执行了所述文件系统。
19. 根据权利要求18所述的方法,其中,所述联机存储器设备包括硬盘驱动器阵列。
20. 根据权利要求18所述的方法,其中,所述第二存储级别包括通过网络与所述文件 系统进行通信的脱机存储器设备。
21. 根据权利要求20所述的方法,其中,所述脱机存储器设备包括从软盘、光盘以及磁 带中选择的存储介质。
22. 根据权利要求1所述的方法,其中,所述选定文件是基于由文件系统管理员指定的 标准确定的。
23. 根据权利要求1所述的方法,其中,所述文件系统符合Xopen文件系统标准。
24. —种在其上存储了计算机可读指令的计算机可用介质,该计算机可读指令供处理 器执行,以执行根据权利要求1到23中任一权利要求所述的方法。
25. —种数据处理系统,包括 中央处理单元;用于存储数据和被中央处理单元执行的程序的随机存取存储器; 包括非易失性存储设备的第一存储级别;以及存储在随机存取存储器中的计算机可读指令,供中央处理单元执行,以执行根据权利 要求1到23中任一权利要求所述的方法。
全文摘要
一种用于管理已经被选择从文件系统内的第一存储级别迁移到第二存储级别的文件的存储的方法。包括将选定文件的索引节点的对应的索引中维护的物理磁盘地址处选定文件的存储在第一存储级别中的一个或多个数据块中的每一个数据块从第一存储级别复制到第二存储级别;在引用了选定文件的被复制到第二存储级别的一个或多个数据块中的一个数据块的文件系统中的每一个快照文件的索引节点的每一个索引中维护逻辑照抄地址;以及更新文件系统以包括用于通过选定文件的索引节点控制对一个或多个数据块的访问的受管理的区域。
文档编号G06F17/30GK101743546SQ200880024829
公开日2010年6月16日 申请日期2008年7月21日 优先权日2007年8月6日
发明者F·施穆克, W·索东 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1