用于选择性地路由高速缓存的对象的系统和方法
【专利说明】
[0001] 相关申请的引用
[0002] 本申请要求2013年3月14日提交的美国申请No. 13/803,721的权益,所述美国 申请No. 13/803, 721要求2012年12月31日提交的美国临时申请No. 61/747, 547的权益, 两者通过引用将其全部内容结合于此。
技术领域
[0003] 本申请一般地涉及在系统中管理数据。更具体地,本申请涉及在系统中选择性地 路由高速缓存的对象。
【背景技术】
[0004] 图1示出了主机系统100,其包括应用105、内核I/O管理器110、文件系统120、122 和装置驱动器130、132,并示出了多个存储器组件138 (示出为盘C :134和盘Y :136)。在 操作中,当应用105寻求对文件"Z"的访问时,应用向内核I/O管理器110发送对于到文件 "Z"的句柄的请求。作为应答,内核I/O管理器110-一动作为应用和存储器装置之间的接 口一一解析到文件"Z"的路径以便获得句柄,并将句柄发送到应用。
[0005] 图1中的箭头示出了在系统的不同部分之中的通信的逻辑路径,其中应用105向 内核I/O管理器110发送请求,并且其中内核I/O管理器110通过检查根目录140来解析 路径,所述根目录140包括关于去往文件"Z"的路径的信息。
[0006] 如图1中所示,系统包括多个存储器装置,所述存储器装置诸如以盘C :134和盘 Y :136的形式。写在操作系统层之上的应用、诸如应用105通常不知道可以被它们使用的 优化的分区,并且因此将文件写入预定位置而不考虑被写入到的位置的属性。例如,许多操 作系统定义特定应用的数据目录,并且应用将把它们的所有数据写入到这些目录。临时文 件的使用在大多操作系统中被类似地定义,并且应用将为此目的而简单地使用由操作系统 接口定义的文件名和位置。这可能导致次优地使用多分区布局。使用可以提供性能和容量 改善的外部存储器导致其更复杂。
[0007] 但是,内核文件系统和应用堆栈可以被修改以便手动地选择在每个情况中应该使 用哪一个分区或挂载点,从而使能改善的性能。例如,应用可以通过用户配置(即,用户选 择保存文件的目录)或者通过在应用中的检测并使用外部存储器的代码,来明确地寻址外 部存储器。
【发明内容】
[0008] 提供了一种对解析到文件系统对象的路径的操作系统透明的将文件系统对象从 第一存储器装置路由到第二存储器装置的系统和方法。
[0009] 在一方面,提供了用于对操作系统透明地选择性地路由文件系统对象的方法。所 述方法包括:由处理器进行如下步骤,所述处理器被配置为在监控应用的控制之下实行选 择性路由,所述监控应用可通过操作系统操作并且包括具有重定向信息的中间分区,其中 所述处理器具有与第一和第二存储器装置的可操作连接以用于这样的选择性路由:确定是 否将文件系统对象从所述第一存储器装置路由到所述第二存储器装置;响应于确定路由所 述文件系统对象,使得所述文件系统对象被路由到所述第二存储器装置中的位置;以及用 文件系统对象在所述第二存储器装置中的位置来更新用于所述文件系统对象的中间分区 的重定向信息,其中,所述第一存储器装置包括所述操作系统用来解析用于贮存在所述第 一存储器装置中的文件系统对象的路径的目录,其中,所述目录包括重定向到所述中间分 区的信息,并且其中,使用所述中间分区的重定向信息,所述操作系统继续使用在所述第一 存储器装置中的目录以解析到贮存在所述第二存储器装置中的文件系统对象的路径,使得 将所述文件系统对象路由到所述第二存储器装置对所述操作系统透明。
[0010] 所述第一存储器装置可以包括所述操作系统用来解析用于贮存在所述第一存储 器装置中的文件系统对象的路径的与此相关联的目录,其中所述目录包括表示重定向到所 述中间分区的中间分区重定向。就这一点而言,使用所述中间分区重定向,所述操作系统 继续使用在所述第一存储器装置中的目录以解析到贮存在所述第二存储器装置中的文件 系统对象的路径,使得将所述文件系统对象复制到所述第二存储器装置对所述操作系统透 明。
[0011] 所述中间分区可以基于将文件从所述第一存储器装置路由(例如,复制)到所述 第二存储器装置而动态地改变,而所述操作系统用来解析用于贮存在所述第一存储器装置 中的文件系统对象的路径的目录不需要改变。例如,在复制所述文件系统对象之前,所述目 录可以包括重定向到中间分区的所述中间分区重定向。就这一点而言,在复制之前,操作系 统访问所述目录,被重定向到所述中间分区,并且反过来再次被重定向贮存在所述第一存 储器装置中的文件系统对象。
[0012] 所述第一存储器装置和所述第二存储器装置可以在一个或多个方面不同,这些方 面诸如位置、速度、大小、耐受力或性能。所述第二存储器装置可以是高速缓存,使得将文件 系统对象复制进所述第二存储器装置中提高访问所述文件系统对象的速度。
[0013] 在另一方面,提供了用于对操作系统透明地选择性地路由文件系统对象的监控装 置。所述监控装置包括:一个或多个存储器,其被配置为贮存中间分区,所述中间分区包括 重定向信息;以及处理器,其与所述一个或多个存储器通信。所述处理器被配置为在所述 监控装置的控制之下实行选择性路由,所述监控装置可通过所述操作系统操作,其中所述 处理器具有与第一和第二存储器装置的可操作连接以用于这样的选择性路由,并且被配置 为:确定是否将文件系统对象从所述第一存储器装置路由到所述第二存储器装置;响应于 确定路由所述文件系统对象,使得所述文件系统对象被路由到所述第二存储器装置中的位 置;以及用在所述第二存储器装置中的文件系统对象的所述位置更新用于所述文件系统对 象的中间分区的重定向信息,其中,所述第一存储器装置包括所述操作系统用来解析用于 贮存在所述第一存储器装置中的文件系统对象的路径的目录,其中,所述目录包括重定向 到所述中间分区的信息,并且其中,使用所述中间分区的重定向信息,所述操作系统继续使 用在所述第一存储器装置中的目录以解析到贮存在所述第二存储器装置中的文件系统对 象的路径,使得将所述文件系统对象路由到所述第二存储器装置对所述操作系统透明。
[0014] 所述第一存储器装置包括所述操作系统用来解析用于贮存在所述第一存储器装 置中的文件系统对象的路径的目录,其中所述目录包括表示重定向到所述中间分区的中间 分区重定向。就这一点而言,使用所述中间分区重定向,所述操作系统继续使用在所述第一 存储器装置中的目录以解析到贮存在所述第二存储器装置中的文件系统对象的路径,使得 将所述文件系统对象路由到所述第二存储器装置对所述操作系统透明。
[0015] 在浏览下述附图、详细说明以及权利要求之后,其它特征和优点将变得清晰。此 外,公开了其它实施例,并且每个实施例可以被单独或者组合使用。现将参考附图描述实施 例。
【附图说明】
[0016] 参考下述附图和说明可以更好地理解所述系统。在附图中,相似的参考标号表示 贯穿不同的视图的相对应的部分。
[0017] 图1示出了现有系统,其中内核I/O管理器解析到文件"Z"的路径。
[0018] 图2示出了在系统中的不同的层,其包括应用层、操作系统层和存储器装置层,以 及可以在该系统中操作的监控应用。
[0019] 图3A示出了系统,其包括应用、内核I/O管理器、根目录、中间分区、多个文件系 统、多个装置驱动器、盘C :和盘Y :。
[0020] 图3B示出了使用根目录和中间分区以解析到盘C :上的文件"Z"的路径的内核1/ 0管理器。
[0021] 图3C示出了将文件"Z"复制到盘Y:,以及对中间分区的改变以反映将文件"Z" 复制到盘Y :。
[0022] 图3D示出了利用根目录和中间分区以解析到盘Y :上的文件"Z"的路径的内核1/ 0管理器。
[0023] 图4是监控应用确定是否移动文件并对其作出应答、更新中间分区以反映文件的 移动的流程图。
[0024] 图5是监控应用确定在远程盘上的文件使用的频率并对其作出应答、将文件复制 到高速缓存的流程图。
[0025] 图6是内核I/O管理器利用根目录和中间分区解析文件的路径的流程图。
[0026]图7是被编程为特定计算机系统的通用计算机系统,其可以表示这里引用的任何 计算装置、诸如监控应用或内核I/O管理器。
【具体实施方式】
[0027] 图2示出了在系统中的不同的层,包括应用层200、操作系统层210、存储器装置层 220、以及可以在系统中操作的监控应用230。应用层200包括一个或多个应用。如图2所 示,应用层包括应用1202到应用N 204。操作系统层210包括内核212。
[0028] 一般来说,内核212被用作操作系统的一部分,提供硬件(诸如在存储器装置层 220中的存储器装置)以及在应用层200中运行的应用程序之间的层。
[0029] 内核212通过请求使其服务对在系统上运行的应用是可用的。请求之一涉及对 在存储器装置上的数据的访问,诸如打开0 (openO)、关闭()(closeO)、读取()(readO) 和写入0 (write ())请求。响应于请求,内核212用作应用和硬件之间的接口,提供硬件提 取使得应用不需要知道具体细节以寻址硬件,并提供文件系统提取使得应用可以打开文件 而不需要知道文件系统的特定结构。例如,响应于该请求,内核可以解析到硬件的路径,并 向应用发送路径的表示(诸如以句柄的形式)使得应用可以与在存储器装置层中的存储器 装置通信。以此方法,应用在寻址硬件时不需要知道细节,而是依赖于内核来解析寻址的细 T。
[0030] 如图2所示,系统可以包括存储器装置层220,所述存储器装置层220 -般表示在 系统中的一个或多个存储器装置。存储器装置层220可以包括多个存储器装置,诸如存储 器装置1222到存储器装置M 224。例如,一个存储器装置可以是硬盘盘,并且另一个存储器 装置可以是可拆卸存储器贮存装置。硬盘盘可以具有一组规则以最优化数据的高速缓存。 然而,可拆卸NAND闪速存储器贮存装置可以具有不同的一组规则以基于某些读取/写入模 式来最优化数据的高速缓存。因此,在具有不同属性的存储器装置中可以采用为所使用的 特定类型的数据以及其耐受力、错误校正和性能要求而优化的不同的物理分区。
[0031] 图2还示出了监控应用230。监控应用230可以包括两个部分:(1)被配置为管理 在存储器装置层中的文件系统对象(包括文件系统对象的移动(例如,复制))的软件(其 一示例是对在存储器装置层中的文件和对中间分区软件234的管理,下文讨论);以及(2) 一个或多个数据结构以使得对文件系统对象的管理对应用层200和/或操作系统层210透 明(其一示例是中间分区232,如下所讨论的
)。监控应用230确定在哪里放置文件系统对 象,以及使用一个或多个数据结构,使得在解析文件的路径的过程中的至少一个额外的重 定向,如在图3A-3D中讨论的。就这一点而言,监控应用230是对目录结构的补充,其中监 控应用230引用目录结构。因此,监控应用230用作与应用层200和操作系统层210分开 的并且除了应用层200和操作系统层210以外的虚拟层。
[0032] 虚拟层可以动态地改变以便反映文件系统对象的移动。在一实施例中,与存储器 装置相关联并被用于解析到文件系统对象的路径的一个或多个目录不响应于文件系统对 象的移动而改变。例如,文件系统对象可以被贮存在盘C :中,如参考图3A-3D所讨论的。 可以使用与盘C :相关联的目录以便解析到贮存在盘C :中的文件系统对象的路径。如下所 讨论的,目录(诸如根目录)包括对虚拟层的重定向(诸如到虚拟层中的中间分区的重定 向)。在一实施例中,监控应用230写入到目录(诸如根目录)使得目录包括到虚拟层的 重定向。就这一点而言,当将文件系统对象从盘C :复制到盘Y :,所使用以解析路径的与盘 C:相关联的目录(诸如根目录)不改变(例如,根目录在将文件系统对象复制到盘Y:之前 和之后都包括到中间分区的重定向)。虚拟层(诸如中间分区)由监控应用230动态地改 变以反映将文件系统对象复制到盘Y:。如在下文中更加详细讨论的,监控应用230可以 修改虚拟层(例如,中间分区)的一部分以反映将系统文件对象复制到盘Y:。在操作中, 在将文件系统对象复制到盘Y:之前,操作系统层(诸如内核212)访问目录(诸如根目录) 以解析到文件系统对象的路径,被重定向到虚拟层,这导致返回到盘C:的另一重定向。同 样地,在将文件系统对象复制到盘Y :之后的操作中,操作系统层访问目录以解析到所述文 件系统对象的路径,被重定向到虚拟层,这导致到盘Y :的重定向。以此方法,对文件系统对 象的复制对操作系统层透明。例如,操作系统层不需要被特别地通知文件系统对象到盘Y : 的移动。相反,由于重定向到与盘C :相关联的目录中的虚拟层,并且由于对虚拟层的动态 的修改以引导到对文件系统对象的新的复制,操作系统层能够解析到在盘Y:中的文件系 统对象的复制品的路径。
[0033] 在替换实施例中,与存储器装置相关联并且被用于解析到所述文件系统对象的路 径的一个或多个目录响应于文件系统对象的移动而改变。更具体地,目录(诸如根目录) 和虚拟层(诸如中间分区)可以被修改以反映对所述文件系统对象的复制。例如,文件系 统对象可以贮存在盘C中。可以使用与盘C :相关联的目录(诸如根目录)以便解析到贮存 在盘C :中的文件系统对象的路径。在将文件系统对象从盘C :复制到盘Y :之前,目录不包 括到中间分区的重定向。相反,目录包括到贮存在盘C:上的文件系统对象的路径的指示, 诸如图1所示。在将文件系统对象从盘C:复制到盘Y:之后,用于盘C:和虚拟层(诸如中 间分区)的目录(诸如根目录)两者都动态地改变以反映将所述文件系统对象到盘Y :的复 制。例如,改变盘C:的目录(诸如根目录),以指示到虚拟层的重定向(诸如到中间分区的 重定向)。此外,虚拟层被修改以反映到盘Y :中的文件系统对象被复制的位置的另一重定 向。在操作中,在将文件系统对象复制到盘Y:之前,操作系统层(诸如内核212)访问目录 (诸如根目录)以解析到所述文件系统对象的路径。同样地,在将文件系统对象复制到盘 Y :之后的操作中,操作系统层仍访问与盘C :相关联的目录以解析到所述文件系统对象的 路径,被重定向到所述虚拟层,这导致到盘Y :的重定向。再一次,对所述文件系统对象的复 制对所述操作系统层透明。例如,操作系统层不需要被特别地通知文件系统对象到盘Y :的 移动。相反,因为操作系统使用与盘C :相关联的目录(诸如根目录),并且由于对到在与盘 C :相关联的目录中的虚拟层的重定向的动态修改,以及虚拟层的动态修改以引导到文件系 统对象的新的复制,操作系统层能够解析到文件系统对象在盘Y :中的复制品的路径。
[0034] 就这一点而言,由于在系统中的该额外的虚拟层,在监控应用230在系统中移动 文件系统对象的事件中,应用层200和/或操作系统层210不需要被修改。更具体地,监控 应用230可以管理在存储器装置层中的文件系统对象以确定是否、何时和/或往哪里移动 文件系统对象。决定在存储器装置层220中的不同的存储器装置之中是否、何时和/或往 哪里移动文件系统对象可以取决于一个或多个条件,诸如例如,在系统中的文件系统对象 的使用和/或在系统中的存储器装置的特性。
[0035] 在存储器装置层220中的存储器装置可以是相同的或者可以相互不同。当不同 时,存储器装置可以在一个或多个方面存在不同。不同的方面的示例包括,但不限于:位 置(例如,在系统中所述存储器装置对于另一计算装置是被认为是远程的还是本地的);速 度;大小(例如,目录大小);耐受力;性能;特定应用的信息(诸如,数据库和应用高速缓存 位置);在监控器应用和贮存控制器固件之间交换的特定控制器的信息;等。
[0036] 例如,在系统中的存储器装置的速度可能变化。更具体地,第一存储器装置在响应 于用于文件系统对象的读取、写入和/或擦除请求方面相比于第二存储器装置可能更慢。 特别地,第一存储器装置可以包含硬盘盘,而第二存储器装置可以包含高速缓存。因此,第 一存储器装置的速度比第二存储器装置慢。如在下文中更加详细讨论的,监控应用可以确 定将文件系统对象移动(诸如将其复制)到系统中的另一存储器装置。移动文件系统对象 的决定可以例如基于一个或多个因素,诸如在系统中的存储器装置的速度(例如,当前贮 存文件系统对象的存储器装置以及将接收文件系统对象的复制品的存储器装置)以及访 问文件系统对象的频率。
[0037] 尽管下文讨论了存储器装置的不同速度的例子,存储器装置之间的任何不同的方 面可以是监控应用在不同的存储器装置之中移动文件系统对象的基础。作为另一示例,在 系统中的两个存储器装置可以都是对于在系统中的另外的计算装置来说本地的,但存储器 装置的不同之处可能在于一个存储器装置具有较大的存储器容量并且比另一存储器装置 慢。所提供的示例仅是为了说明的目的。考虑了确定是否、何时和/或往哪里移动文件系 统对象的其它基础。
[0038] 当监控应用230确定移动文件系统对象时,监控应用230更新在系统中的一个或 多个数据结构。该一个或多个数据结构可以由应用层200和/或操作系统层210使用以 便访问移动的数据结构(诸如当解析到文件系统对象的路径时导致至少一个额外的重定 向)。如在下文中更加详细讨论的,一个或多个数据结构可以以若干方式之一布置。例如, 数据结构可以包括已有的数据结构(诸如,被用于解析到文件的路径的数据结构,其一个 示例是存储器装置的挂载点(mouting point))以及与监控应用230相关联的数据结构(诸 如,中间分区232)。更具体地,文件系统可以修改被用于解析到文件的路径的数据结构。例 如,可以修改挂载点(其一个示例是根目录)以指向中间分区。对挂载点的修改可以进行 一次(诸如当安装监控应用230时),可以在启动系统时进行,和/或可以当新的存储器装 置安装在系统中时进行。此外,监控应用230可以响应于在系统中移动文件系统对象而修 改中间分区232。
[0039] 返回参考图2,监控应用230包括中间分区232以及对存储器装置层中的文件和对 中间分区软件234的管理。对存储器装置层中的文件和对中间分区软件234的管理被配置 为:(1)确定是否、何时和/或往哪里移动文件系统对象;以及(2)管理中间分区。如上所 讨论的,对在系统中的文件系统对象的管理可以基于一个或多个条件。文件系统对象可以 包括对应用层200和/或文件系统层210可用的任何信息。文件系统对象的一个特定示例 包括文件,所述文件是对应用层200和/或文件系统层210可用的自我包含的信息。
[0040] 对监控应用230及其组件部分的描述仅是用于说明的目的。例如,尽管图2将对 存储器装置层中的文件以及对中间分区软件234的管理示出为单个软件体,在对存储器装 置层中的文件以及对中间分区软件234的管理中包括的逻辑可以在不同的模块中被划分。 此外,对存储器装置层中的文件以及对中间分区软件234的管理中的逻辑可以在单个计算 装置中,或者可以在系统中的不同的计算装置之中被划分。此外,监控应用230-一包括中 间分区232和对存储器装置层中的文件以及对中间分区软件234的管理一一可以被贮存在 系统中的若干地点之一。例如,监控应用230可以被贮存在与在应用层200和/或操作系 统层230中的装置相同的计算装置中。更具体地,监控应用230可以被贮存在主机计算装 置上。在替换实施例中,中间分区232可以被贮存在与贮存对存储器装置层中的文件以及 对中间分区软件234的管理的计算装置不同的计算装置上。
[0041] 作为另一示例,中间分区232可以存在作为通过诸如FUSE或者专用的内核驱动器 的技术(取决于操作系统)由对在存储器装置层中的文件和中间分区软件234的管理掌管 (host)的临时文件系统。可替换地,中间分区232可以是物理分区或者正调用的应用可访 问的已有分区中的目录。
[0042]如上所讨论的,中间分区232包含一个或多个数据结构以使能系统中的(一个或 多个)不同的层(诸如应用层200和/或操作系统层210)来访问被移动的文件系统对象 而不改变系统中的(一个或多个)不同的层的逻辑或固件。更具体地,如在下文中更加详 细讨论的,在应用层200中的应用和/或在操作系统层210中的内核212可以使用中间分 区232(并可以进一步使用(一个或多个)存储器装置的挂载点)以解析到移动的文件系 统对象的路径。以此方法,文件系统对象的移动对在应用层200中的应用和在操作系统层 210中的内核212透明,使得在任何一层中的软件不需要被修改。
[0043] 图3A-D示出了用于系统的具有文件的贮存的改变、以及对中间分区的改变的一 系列操作。图3A示出了主机系统300,所述主机系统300包括应用105、内核I/O管理器 110、根目录310、中间分区305、多个文件系统120、122以及多个装置驱动器130、132。图 3A还示出了多个存储器组件138,被示出为盘C : 134和盘Y : 136。图3A还示出了文件" Z " 被贮存在盘C:上。图3A仅是主机系统和多个存储器组件之间的划分的一个示例。在替换 实施例中,多个存储器组件(诸如盘C:130)的部分或全部可以包括在主机系统中。此外, 主机系统300的指定仅是为了说明的目的。更少、更多或不同的组件可以被包括在主机系 统中。
[0044] 操作系统可以使用一个或多个数据结构以便解析访问存储器装置上的文件的路 径。数据结构的一个示例是存储器装置的挂载点,所述存储器装置的挂载点可以被用于解 析访问存储器装置上的文件的路径。挂载点的特定的示例是根目录。可替换地,解析访问 存储器装置上的文件的路径的数据结构可
以不同于根目录。如在下文的说明1中所述的, 可以使用与根目录分开的目录(例如,子目录)。
[0045] 根目录取决于操作系统可以采用不同的形式。在Windows类型的操作系统中,用 于每个贮存装置以及硬盘盘(HDD)的分区(例如,逻辑上独立的区)的根目录,并且它们例 如被标记为,Y :用于可拆卸闪速存储器装置,C :用于HDD的第一分区,D :用于HDD的第二分 区等。Unix类型的操作系统对于系统上的所有存储器装置使用单个根目录,其中在文件系 统的顶部处的目录由正斜杠(/)指定。此外,Unix类型的操作系统包括根目录中的第一级 (first tier)的目录,诸如/bin,/usr,/etc,/misc〇
[0046] 根目录310是用于盘C:的挂载点的示例。如图3A中所示,根目录310包括重定 向(redirect) 312。重定向312被配置为动作以将该路径的解析重定向到系统的另一部分。 例如,当内核I/O管理器110正解析到系统中的文件的路径时,重定向作用为将该解析从根 目录重定向到中间分区305。重定向312的一个示例是软链接。软链接(也被称为符号链 接)是特殊类型的文件或目录入口(entry),所述特殊类型的文件或目录入口包含以绝对 或相对路径的形式的到另一文件或目录的引用、并且影响路径名解析。以此方法,软链接可 以被用作到另一文件的指针或者间接手段(indirection)。当应用要求文件时,操作系统自 动地解引用该指针,从而从应用中提取文件的位置。软链接在大多数文件系统中是可用的, 这些文件系统包括下述用于安卓(Androicf )的ext4文件系统。此外,一个软链接可以指 向另一软链接。
[0047] 以此方法,根目录被修改使得:在一实施例中,被用于解析在各个盘上的文件的路 径的根目录的部分被替换为完全由到系统的不同部分(诸如,到中间分区305)的重定向 (诸如,软链接)构成。
[0048] 图3B示出了内核I/O管理器110使用根目录310和中间分区305以解析到盘C: 上的文件"Z"的路径的一个示例。图3A-D仅是例示。每个操作系统实现其用于分析符号 链接的各个逻辑,并且因此可能偏离该描述。在图3B和3D中的箭头例示了在解析文件"Z" 的路径时的系统的不同部分之间的通信的逻辑路径。在下文中,针对图6讨论在解析路径 时内核I/O管理器110的具体通信。如图3B中所示,内核I/O管理器110接收来自应用 105的对于到文件"Z"的句柄的请求。该请求例如包括:以C :\1\2\3\4\5\Z的形式的串。 内核I/O管理器110读取串中的C :\1并且访问在C :盘中的根目录310以解析到文件"Z" 的路径。由于根目录310已经通过重定向被修改过,内核管理器改变串的路径。例如,重定 向可以指示X :\7,其指向中间分区。因此,内核I/O管理器110用X :\7替换C :\1以将串 修改为X :\7\2\3\4\5\Z。使用修改过的串,内核I/O管理器110与中间分区305通信。中 间分区包括回到C :盘(在该例子中C :\2)上的部分的另一重定向(例如,另一软链接),使 得内核I/O管理器110最终解析到C :盘上的文件"Z"的路径。因此,即使文件"Z"被贮存 在C :盘上,但是C :盘根目录也将内核I/O管理器110重定向为离开根目录,仅被重定向到 C :盘的另一部分。
[0049] 图3C示出了文件"Z"向盘Y :的复制、以及对中间分区305的改变以反映文件"Z" 向盘Y:的复制。如上所讨论的,监控应用230可以确定将文件复制到系统的另一部分、诸 如,盘Y:。响应于将文件"Z"复制到盘Y:,修改中间分区305。具体地,将中间分区305 中的重定向从指向C :\2改变为指向Y :\6。如上所讨论的,文件的移动(诸如,将文件"Z" 复制到盘Y:)并不一定需要改变根目录310。
[0050] 图3D示出了内核I/O管理器110使用根目录310和中间分区305以解析到盘Y : 上的文件"Z"的路径。在包括以C :\1\2\3\4\5\Z的形式的串的请求的示例中,内核I/O管 理器110读取串中的C :\1并且访问C :盘中的根目录310以解析到文件"Z"的路径。由于 根目录310通过重定向修改过,内核管理器改变串的路径到X:\7,其指向中间分区。使用修 改过的串,内核I/O管理器110与中间分区305通信,所述中间分区305包括到Y :盘(在 该情况中是包括复制的Y :\6)上的一部分的另一重定向,使得内核I/O管理器110最终解 析到Y :盘上的文件"Z"的路径。因此,即使文件"Z"被移动到Y :盘,但是内核I/O管理器 使用到包括到复制的文件"Z"的路径的中间分区305的额外的重定向,仍然可以解析该路 径。
[0051] 以此方法,图3A-D示出了中间分区305的使用,其中通过中间分区305,使用指向 其它链接的链接、指回适合于所使用的数据的类型的持久贮存介质,来路由关键应用目录。 因此,监控器应用230检查数据是如何被使用的,并且在中间分区305中重新写入链接以在 这些分区之间透明地移动数据而不影响正调用的应用。
[0052]例示1 :
[0053] 下文是使用监控应用230用于安卓(Android)操作系统的例示。在安卓操作系统 中,/data/data/目录被用于存应用特定的(application-specific)内容。每个应用具 有其自己的子目录,所述子目录通常进一步被分为多个子目录,每一个子目录具有其自己 的内容特性。用于安卓操作系统的网络浏览器应用具有下述目录结构:
[0054] rootiandroid :/data/data/com. google, android. browser#Is-l
[0055] drwxrwx-x app_57 app 57 2012-02-01 15 :14app_appcache
[0056] drwxrwx-x app_57 app 57 2012-02-01 15 :14app_databases
[0057] drwxrwx-x app_57 app 57 2012-02-01 15 :14app_geolocation
[0058] drwxrwx-x app_57 app 57 2012-02-01 15 :15app_icons
[0059] drwxrwx-x app_57 app_57 2012-02-01 15 :15cache
[0060] drwxrwx-x app-57 app-57 2012-02-01 15 :15databases
[0061] drwxr-xr-x system system 2011-11-29 12:161ib
[0062] drwxrwx-x app-57 app-57 2012-02-01 15 :14shared-prefs
[0063] 上述目录的一些,诸如高速缓存和数据库(cache和databases),可能受益于移动 到不同的物理分区。例如,高速缓存(cache)目录可以被移动到不同的分区,而留下符号链 接。目录结构现在看起来如下:
[0064] rootiandroid:/data/data/com. google, android. browser#ls-l
[0065] drwxrwx-x app-57 app-57 2012-02-01 15 :14app-appcache
[0066] drwxrwx-x app-57 app-57 2012-02-01 15 :14app-databases
[0067] drwxrwx-x app-57 app-57 2012-02-01 15 :15app-geolocation
[0068] drwxrwx-x app-57 app-57 2012-02-01 15 :15app-icons
[0069] lrwxrwx-x app-57app-57 2012-02-01 15 :21cache_>/intermediate/cache
[0070] drwxrwx-x app_57 app_57 2012-02-01 15 :15databases
[0071] drwxr-xr-x system system 2011-11-29 12:161ib
[0072] drwxrwx一x app-57 app-57 2012-02-01 15 :14shared-prefs
[0073] 在中间分区305中的/intermediate目录具有下述内容:
[0074] rootiandroid:/intermediate#ls-l
[0075] lrwxrwx-x app_57 app_57 2012-02-01 15 :21cache->/cache/browser cache/ cache
[0076] 在/intermediate目录中的链接可以被重写为指向任何其它位置(在该情况中指 向装置的/cache物理分区)。以此方法,/intermediate目录可以被用于指向数据被移动 的位置。
[0077]例示2:
[0078] 下文是使用监控应用230回放电影或者其他类型的视频的另一例示。电影通常需 要巨大的贮存容量。取决于贮存配置,电影可以由小文件的群组构成,每个小文件包括一 段电影,其中小文件的群组被配置为按次序执行。在操作中,正调用的应用预期播放与调 用的文件相关联的电影段而调用下一小文件。该示例包括,但不限于,HTTP上的动态自适 应流媒体(DASH),以及苹果(Apple)的HTTP实时流媒体(HLS)。更具体地,DASH使能通过 Internet从传统的HTTP网络服务器传送的高质量的媒体内容流。DASH通过将内容分为一 系列小的基于HTTP的文件分段而运作,每个分段包含短时间间隔的回放时间的内容,该内 容的持续时间可能是多个小时,诸如电影或者体育赛事的直播。使得可以以多个不同的比 特率获得所述内容,g卩,使得可以以覆盖回放时间的对齐的短时间间隔的不同的比特率获 得编码的可选分段。由于内容被DASH客户端回放,因此,客户端基于当前的网络环境自动 地从各可选者中选择下一分段以下载并回放。
[0079] 此外,因为电影需要巨大的贮存容量,电影通常被贮存在大的贮存装置(其可以 是太位字节(Terabyte)量级的贮存容量)上,所述贮存装置可以是远离回放装置、并可以 与回放装置分开。因此,电影文件可以在不同的装置上播放,所述不同的装置诸如具有较小 的贮存容量的膝上型计算机(或其它数字播放器)。在操作中,数字播放器可以访问可用于 播放的电影文件列表。用户通过数字播放器可以选择一个电影文件播放。监控应用230可 以监控贮存在大贮存装置中的所
选择电影文件的播放。此外,监控应用230可以将在选择 的电影中尚未播放的文件复制到更快的贮存装置(诸如,与数字播放器相关联的存储器)。 监控应用230也可以将文件的复制品的位置贮存在中间分区305(例如,指向与数字播放器 相关联的存储器的软链接)中。因此,当内核I/O管理器访问文件以选择电影时,内核I/O 管理器将被重定向到与数字播放器相关联的存储器。
[0080] 除了操作性改变以外,监控应用230可以修改呈现给用户的文件的组织。在上述 讨论的电影文件示例中,一些电影可以被贮存在大并且慢的贮存装置上,并且其它电影可 以贮存在更快、更小的贮存装置(诸如,本地数字播放器)上。监控应用230还可以被配置 将贮存在系统中的各种装置(诸如大并且慢的贮存和本地数字播放器)上的(诸如,在目 录列表中)所有电影文件向用户示出为被贮存在单个盘(诸如,与本地数字播放器相关联 的盘)上。以此方法,监控应用可以向用户呈现用于所有特定类型的文件(诸如,电影文 件)的单个盘的目录列表,即使各文件位于不同的盘上。
[0081] 图4是监控应用230确定是否移动文件并对其作出应答、更新中间分区以反映该 文件的移动的流程图400。在402处,监控应用230确定对文件的移动(诸如复制)是否被 正当(wanrrented)。该确定可以基于文件的使用和/或文件所存在之上的盘的一个或多 个特征。例如,监控应用230可以监控一个或多个文件中的哪些已经被访问以便确定是否 将访问相同的一个或多个文件。响应于确定相同的一个或多个文件将被访问,监控应用230 可以确定移动文件。作为另一示例,监控应用230可以预期文件(或者一系列文件)的未 来使用,并且基于预期的使用而移动文件(或者该一系列文件)。预期的未来使用可以基 于分析过去的使用。例如,在上述例示2中,一系列文件相互相关联并且被配置为按次序执 行。在一系列文件中的文件之一被访问的事件中,监控应用230可以确定在次序中在后的 文件将被访问,并且预期地复制在次序中在后的文件。
[0082] 在404处,监控应用230确定哪个盘来复制文件。如图4所示,是否移动文件以及 往哪里移动文件的所述确定被示出为分开的步骤。可替换地,是否移动文件以及往哪里移 动文件的所述决定可以在单个步骤中作出。在406中,响应于确定将文件复制到另外的盘, 监控应用使得文件被移动(例如,被复制)到确定的盘。监控应用可以使得文件以若干方 式之一被复制,诸如通过指示另外的装置进行文件到确定的盘的复制,或者通过监控应用 自己进行到确定的盘的复制。此外,在408处,用文件已经被复制到哪个位置的信息来更新 中间分区。
[0083] 图5是监控应用230确定在远程盘上的文件使用的频率并对其作出应答、将文件 复制到高速缓存的流程图500。在520处,监控应用230确定来自远程盘的文件是否被频繁 地使用。监控应用230可以将频繁定义为在预定时间段中预定数量的访问。响应于确定文 件被频繁地使用,在504处,文件被复制到高速缓存。因此,监控应用230例如可以基于容 量管理来选择将高速缓存目录从一个分区移动到另一个。由于这通过中间链接完成,因此 应用不知道该改变并且不需要任何信令来使用该新的位置。以此方法,监控应用使能目录 结构的灵活的并且可扩展的改变以利用可变的性能分区,并且允许实时地将正确的数据定 位到正确的位置,而不修改主机应用。
[0084] 图6是内核I/O管理器110利用根目录310和中间分区305来解析文件的路径的 流程图600。在602处,内核I/O管理器110接收来自应用105的解析到文件的路径的请 求。响应于接收来自应用105的请求,在604处,内核I/O管理器110发送请求到文件系统 驱动器,所述文件系统驱动器拥有如在来自应用的请求中指示的盘的根目录。由于根目录 的之前的修改,在606处,内核I/O管理器110接收来自根目录的指示到中间分区305的重 定向的信息。在608处,内核I/O管理器110访问中间分区305以解析到文件的路径。例 如,内核I/O管理器110可以发送请求到文件系统驱动器,所述文件系统驱动器拥有中间分 区305以便访问中间分区305。如上所讨论的,中间分区305可以包括第二重定向。在610 处,响应于向中间分区305的请求,内核I/O管理器110接收第二重定向。在612处,内核 I/O管理器110使用第二重定向以便解析到请求的文件的路径。
[0085] 图7是一种通用计算机系统700,其被编程为可以表示这里所引用的任何计算装 置的特定的计算机系统,所述计算装置诸如,但不限于,监控应用或者内核I/O管理器。监 控应用和/或内核I/O管理器可以被部署在网络部署中使用的通用计算机系统中。计算机 系统700可以作为服务器或作为在服务器-客户端用户网络环境中的客户端用户计算机, 或作为在对等式(或分布式)网络环境中的对等计算机系统。计算机系统700也可以实现 为或者合并在各种装置中,所述各种装置诸如个人计算机(PC)、平板PC、机顶盒(STB)、个 人数字助理(PDA)、移动装置、掌上型计算机、膝上型计算机、桌上型计算机、通信装置、无线 电话、陆线电话、控制系统、照相机、扫描仪、传真机、打印机、寻呼机、个人信赖装置、网络装 置、网络路由器、交换机或网桥或者能够执行明确该机器将采取的行动的指令集(顺序的 或相反)的任何其它机器。在特定的实施例中,计算机系统700可以利用提供声音、视频或 数据通信的电子装置实现。此外,尽管可能描述了单个计算机系统,术语"系统"也应当被 用来包括独自地或共同地执行一组或多组指令以进行一个或多个计算机功能的系统或子 系统的任意集合。
[0086]计算机系统700可以包括处理器702,例如,中央处理单元(CPU)、图形处理单元 (GPU)或两者。处理器可以是各种系统中的组件。例如,处理器可以是标准个人计算机或工 作站的一部分。处理器可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门 阵列、服务器、网络、数字电路、模拟电路、其组合或者其它现在已知的或将来开发的用于分 析和处理数据的装置的一个或多个。在这里以及下述权利要求中所讨论的处理器和存储器 可以被具体化在或实现在一个或多个物理芯片或电路组合中。处理器可以执行软件程序, 诸如手动产生的代码(即,编程的)。
[0087]计算机系统700可以包括可以通过总线通信的存储器704。存储器可以是主存储 器、静态存储器或者动态存储器。存储器可以包括,但不限于诸如各种类型的易失性和非易 失性贮存介质的计算机可读贮存介质,其中所述计算机可读贮存介质包括但不限于随机存 取存储器、只读存储器、可编程只读存储器、电可编程只读存储器、电可擦除只读存储器、闪 速存储器、磁带或盘、光学介质及其类似者。在一情况中,存储器包括用于处理器的高速缓 存或随机存取存储器。可替换地或者另外地,存储器可以与处理器分开,诸如处理器的高 速缓存存储器、存储器或者其它存储器。存储器可以是用于贮存数据的外部存储器装置或 数据库。示例包括硬盘驱动器、光盘("⑶")、数字视频光盘("DVD")、存储器卡、存储器 条、软盘、通用串行总线("USB")存储器装置或者可操作为贮存数据的任何其它装置。存储 器可操作以贮存可以由处理器执行的指令706。在附图中(诸如图3A-D和4-6)所示出的 或者这里所描述的功能、动作或任务可以通过编程的处理器执行贮存在存储器中的指令进 行。所述功能、动作或任务独立于特定类型的指令集、贮存介质、处理器或处理策略并且可 以由软件、硬件、集成电路、固件、微代码以及类似物单独或组合操作而进行。同样地,处理 策略可以包括多重处理、多任务处理、并行处理以及类似者。
[0088] 计算机系统700还可以包括显示单元712,诸如液晶显示器(IXD)、有机发光二极 管(OLED)、平板显示器、固态显示器、阴极射线管(CRT)、投影仪、打印机或者用于输出确定 的信息的其它现在已知或将来开发的显示装置。显示器可以作为用于使用户看到处理器的 功能的界面,或者特别地作为具有软件贮存在存储器中的界面。
[0089] 当计算机系统700包含监控应用时,存储器704包括中间分区305。尽管在图7中 示出了单个存储器,中间分区305可以被贮存在与贮存指令706的存储器分开的存储器中, 所述指令706被配置为进行这里所讨论的监控应用的功能。
[0090] 此外,计算机系统700可以包括被配置为允许用户与系统的任何组件交互的输入 装置714。输入装置可以是数字键盘、键盘或者光标控制装置(诸如鼠标)、或操纵杆、触屏 显示器、遥控或可操作以与系统交互的任何其它装置。
[0091] 计算机系统700还可以包括磁盘或光学盘单元。磁盘盘单元可以包括可嵌入一个 或多个指令集412(例如软件)的计算机可读介质。此外,指令可以进行一个或多个这里所 述的方法或逻辑。在由计算机系统700执行的期间,指令可以完全或至少部分留在存储器 704中和/或处理器702中。存储器704和处理器702还可以包括如上所讨论的计算机可 读介质。
[0092] 本公开考虑包括指令或者响应于传播的信号接收并执行指令的计算机可读介质, 使得连接到网络716的装置可以在网络之上通信声音、视频、音频、图像或任何其它数据。 此外,指令可以通过通信接口 718在网络之上被发送和接收。通信接口可以是处理器的一 部分或者可以是单独的组件。通信接口可以在软件中创建或者可以是硬件中的物理连接。 通信接口被配置为与网络、外部介质、显示器或者系统中的任何其它组件或其组合连接。与 网络的连接可以是物理连接(诸如有线以太网连接)或者可以如下文所讨论的无线地建 立。同样地,与系统的其它组件的额外的连接可以是物理连接或者可以无线地建立。在服 务提供者服务器的情况中,服务提供者服务器可以通过通信接口与用户通信。
[0093] 网络可以包括有线网络、无线网络或其组合。无线网络可以是蜂窝电话网络、 802. 11、802. 16、802. 20或WiMax网络。此外,网络可以是公用网络(诸如因特网)、私有网 络(诸如内联网)或其组合,并且可以利用现在可用或将来开发的多个网络协议,包括但不 限于基于TCP/IP的网络协议。
[0094] 计算机可读介质可以是单个介质,或者计算机可读介质可以是单个介质或多个介 质,诸如贮存一个或多个指令集的中央式的或分布式的数据库和/或相关联的高速缓存和 服务器。术语"计算机可读介质"还可以包括能够贮存、编码或携带指令集的任何介质,所 述指令集用于由处理器执行或者使计算机系统700进行这里所公开的任何一个或多个的 方法或操作。
[0095] 计算机可读介质可以包括固态存储器,诸如存储器卡或者具有一个或多个非易失 性只读存储器的其它包封。计算机可读介质也可以是随机存取存储器或者其它非易失性可 重新写入的存储器。此外,计算机可读介质可以包括磁光的或者光学介质,诸如磁盘或磁带 或者抓捕载波信号的其它贮存装置,所述载波信号诸如在传输介质之上通信的信号。附件 到电子邮件的数
字文件或者其它自我包含的信息文档或文档组可以被认为是分布介质,所 述分布介质是有形的贮存介质。计算机可读介质优选地是有形的贮存介质。相应地,本公 开可以被认为包括在其中可以贮存数据或指令的计算机可读介质的任何一个或多个或分 布介质以及其它等价物和后续介质。
[0096] 可替换地或者另外地,专用的硬件实现方式,诸如专用集成电路、可编程逻辑阵列 和其它硬件装置,可以被构造为实现一个或多个这里所述的方法。可以包括各种实施例的 设备和系统的应用可以宽泛地包括多种电子和计算机系统。这里所述的一个或多个实施 例可以利用两个或多个特定互联的硬件模块或装置实现功能,或者作为专用集成电路的一 部分,所述硬件模块或装置具有可以在模块之间或者穿过模块通信的数据信号和相关的控 制。相应地,本系统可以包含软件、固件和硬件实现方式。
[0097] 这里所述的方法可以被由计算机系统执行的软件程序实现。此外,实现方式可以 包括分布式处理、组件/对象分布式处理和并行处理。可替换地,虚拟计算机系统处理可以 被构造为实现如这里所述的方法或功能的一个或多个。
[0098] 尽管关于特定标准和协议描述可以被实现在特定实施例中的组件和功能,但是组 件和功能不限于这样的标准和协议。例如,用于因特网和其它分组交换网络传输的标准 (例如,TCP/IP、UDP/IP、HTML、HTTP、HTTPS)表示现有技术的示例。这样的标准被基本上具 有相同功能的更快或更加有效的等价物周期性地替代。相应地,具有与这里所公开的那些 相同或相似的功能的替代的标准和协议被认为是其等价物。
[0099] 这里所述的说明意欲提供对各种实施例的结构的普遍理解。所述说明不意欲作为 使用这里所述的结构或方法的设备、处理器和系统的所有元件和特征的完整描述。在回顾 本公开之后,许多其它实施例对本领域技术人员来说是显而易见的。本公开可以使用或从 本公开中得出其它实施例,使得可以作出结构的和逻辑的替换和改变而不脱离本公开的范 围。此外,所述说明仅是代表性的并且可能没有按比例绘制。所述说明中的某些比例可能 被夸大,而其它比例可能被缩小。相应地,本公开和附图将本认为是示意性的而不是限制性 的。
[0100] 上述公开的主题将被认为是说明性的,而不是限制性的,并且所附权利要求意欲 覆盖落入本说明书的真实精神和范围中的所有这样的修改、改进和其他实施例。因此,为最 大化法律所允许的程度,所述范围由下述权利要求及其等价物的最宽允许的解释确定,并 且不应被前述详细的说明限定或限制。
【主权项】
1. 一种对操作系统透明地选择性地路由文件系统对象的方法,所述方法包括: 由处理器进行如下步骤,其中,所述处理器被配置为在监控应用的控制之下实行选择 性路由,所述监控应用可通过操作系统操作并且包括具有重定向信息的中间分区,其中所 述处理器具有与第一和第二存储器装置的可操作连接以用于这样的选择性路由: 确定是否将文件系统对象从所述第一存储器装置路由到所述第二存储器装置; 响应于确定路由所述文件系统对象,使得所述文件系统对象被路由到所述第二存储器 装置中的位置;以及 用文件系统对象在所述第二存储器装置中的位置来更新用于所述文件系统对象的中 间分区的重定向信息,其中所述第一存储器装置包括所述操作系统用来解析用于贮存在所 述第一存储器装置中的文件系统对象的路径的目录, 其中,所述目录包括重定向到所述中间分区的信息,并且 其中,使用所述中间分区的重定向信息,所述操作系统继续使用在所述第一存储器装 置中的目录以解析到贮存在所述第二存储器装置中的文件系统对象的路径,使得将所述文 件系统对象路由到所述第二存储器装置对所述操作系统透明。2. 如权利要求1所述的方法,其中,使得所述文件系统对象被路由到所述第二存储器 装置中的位置包含使得所述文件系统对象被复制到所述第二存储器装置中的位置。3. 如权利要求2所述的方法,其中,在使得所述文件系统对象被复制到所述第二存储 器装置中的位置之前: 所述文件系统对象被贮存在所述第一存储器装置中的位置中; 所述目录包括所述重定向到所述中间分区的信息;并且 用于所述文件系统对象的所述中间分区的重定向信息包含所述文件系统对象在所述 第一存储器装置中的位置; 其中,所述文件系统对象在所述第一存储器装置中的位置的中间分区的重定向信息被 用于将所述操作系统重定向到贮存在所述第一存储器装置中的位置处的所述文件系统对 象。4. 如权利要求1所述的方法,其中,所述第一存储器装置和所述第二存储器装置在一 个或多个方面不相同。5. 如权利要求4所述的方法,其中,所述一个或多个方面包含位置、速度、大小、耐受力 或性能。6. 如权利要求5所述的方法,其中,所述第二存储器装置包含高速缓存。7. 如权利要求1所述的方法,其中,所述文件系统对象包含文件。8. 如权利要求1所述的方法,其中,所述文件系统对象包含多个文件的一个或多个,所 述多个文件被配置为按次序执行; 其中,确定是否路由所述文件系统对象包含确定所述多个文件之一是否已经被访问以 用于执行;并且 其中,路由所述文件系统对象包含复制所述多个文件中的、在所述次序中比用于执行 的所述访问的文件更靠后的一个或多个文件。9. 如权利要求8所述的方法,其中,所述多个文件包含用于电影的一系列文件; 其中,所述多个文件之一已经被数字播放器访问; 其中,所述第一存储器装置远离所述数字播放器;并且 其中,所述第二存储器装置与所述数字播放器相关联。10. 如权利要求1所述的方法,其中,所述目录包含所述第一存储器装置的挂载点。11. 如权利要求10所述的方法,其中,所述挂载点包含所述第一存储器装置的根目录。12. 如权利要求11所述的方法,其中,用于解析所述文件系统对象的路径的所述根目 录包含一个或多个中间分区软链接,所述一个或多个中间分区软链接的每一个被配置为重 定向到所述中间分区。13. 如权利要求12所述的方法,其中,用于解析文件系统对象的所述中间分区包含软 链接。14. 一种对操作系统透明地选择性地路由文件系统对象的监控装置,所述监控装置包 括: 一个或多个存储器,其被配置为贮存中间分区,所述中间分区包括重定向信息;以及 处理器,其与所述一个或多个存储器通信,所述处理器被配置为在所述监控装置的控 制之下实行选择性路由,所述监控装置可通过所述操作系统操作,其中所述处理器具有与 第一和第二存储器装置的可操作连接以用于这样的选择性路由,并且所述处理器被配置 为: 确定是否将文件系统对象从所述第一存储器装置路由到所述第二存储器装置; 响应于确定路由所述文件系统对象,使得所述文件系统对象被路由到所述第二存储器 装置中的位置;以及 用在所述第二存储器装置中的文件系统对象的所述位置更新用于所述文件系统对象 的中间分区的重定向信息, 其中,所述第一存储器装置包括所述操作系统用来解析用于贮存在所述第一存储器装 置中的文件系统对象的路径的目录, 其中,所述目录包括重定向到所述中间分区的信息,并且 其中,使用所述中间分区的重定向信息,所述操作系统继续使用在所述第一存储器装 置中的目录以解析到贮存在所述第二存储器装置中的文件系统对象的路径,使得将所述文 件系统对象路由到所述第二存储器装置对所述操作系统透明。15. 如权利要求14所述的监控装置,其中,所述处理器被配置为通过使得所述文件系 统对象被复制到所述第二存储器装置中的位置而使得所述文件系统对象被路由到所述第 二存储器装置中的位置。16. 如权利要求15所述的监控装置,其中,在使得所述文件系统对象被复制到所述第 二存储器装置中的位置之前: 所述文件系统对象被贮存在所述第一存储器装置中的位置中; 所述目录包括所述重定向到所述中间分区的信息;并且 用于所述文件系统对象的所述中间分区的重定向信息包含所述文件系统对象在所述 第一存储器装置中的位置; 其中,所述文件系统对象在所述第一存储器装置中的位置的中间分区的重定向信息被 用于将所述操作系统重定向到贮存在所述第一存储器装置中的位置处的所述文件系统对 象。17. 如权利要求14所述的监控装置,其中,所述第一存储器装置和所述第二存储器装 置在一个或多个方面不相同。18. 如权利要求17所述的监控装置,其中,所述一个或多个方面包含位置、速度、大小、 耐受力或性能。19. 如权利要求18所述的监控装置,其中,所述第二存储器装置包含高速缓存。20. 如权利要求14所述的监控装置,其中,所述文件系统对象包含文件。21. 如权利要求14所述的监控装置,其中,所述文件系统对象包含多个文件的一个或 多个,所述多个文件被配置为按次序执行; 其中,所述处理器被配置为通过确定所述多个文件之一是否已经被访问以用于执行而 确定是否路由所述文件系统对象;并且 其中,所述处理器被配置为通过复制所述多个文件中的在次序中比用于执行的所述访 问的文件更靠后的一个或多个文件而路由所述文件系统对象。22. 如权利要求21所述的监控装置,其中,所述多个文件包含用于电影的一系列文件; 其中,所述多个文件之一已经被数字播放器访问; 其中,所述第一存储器装置远离所述数字播放器;并且 其中,所述第二存储器装置与所述数字播放器相关联。23. 如权利要求14所述的监控装置,其中,所述目录包含所述第一存储器装置的挂载 点。24. 如权利要求23所述的监控装置,其中,所述挂载点包含所述第一存储器装置的根 目录。25. 如权利要求24所述的监控装置,其中,用于解析所述文件系统对象的路径的所述 根目录包含一个或多个中间分区软链接,所述一个或多个中间分区软链接的每一个被配置 为重定向到所述中间分区。26. 如权利要求25所述的监控装置,其中,用于解析文件系统对象的路径的所述中间 分区包含软链接。27. -种确定文件系统对象在系统中的位置的方法,所述系统包括一个或多个应用、一 个或多个操作系统、第一存储器装置以及第二存储器装置,所述方法包括: 接收访问所述文件系统对象的请求,所述请求包括路径; 请求访问所述路径的挂载点; 响应于请求访问,从所述挂载点接收到中间分区的第一重定向; 使用所述第一重定向将请求发送到所述中间分区; 从所述中间分区接收第二重定向;以及 使用来自所述中间分区的第二重定向而确定用于所述文件系统对象的句柄。
【专利摘要】公开了一种用于使用监控应用的监控应用和方法。监控应用被配置为管理在存储器装置层中的文件系统对象(包括复制文件系统对象),并且被配置为管理一个或多个数据结构以使对文件系统对象的管理对应用层和/或操作系统层透明。
【IPC分类】G06F3/06, G06F17/30
【公开号】CN104903890
【申请号】CN201380062426
【发明人】J·G·哈恩
【申请人】桑迪士克科技股份有限公司
【公开日】2015年9月9日
【申请日】2013年12月16日
【公告号】EP2939145A2, US20140188791, WO2014105481A2, WO2014105481A3