首页> 中国专利> 用于选择性地路由高速缓存的对象的系统和方法

用于选择性地路由高速缓存的对象的系统和方法

摘要

公开了一种用于使用监控应用的监控应用和方法。监控应用被配置为管理在存储器装置层中的文件系统对象(包括复制文件系统对象),并且被配置为管理一个或多个数据结构以使对文件系统对象的管理对应用层和/或操作系统层透明。

著录项

  • 公开/公告号CN104903890A

    专利类型发明专利

  • 公开/公告日2015-09-09

    原文格式PDF

  • 申请/专利权人 桑迪士克科技股份有限公司;

    申请/专利号CN201380062426.3

  • 发明设计人 J·G·哈恩;

    申请日2013-12-16

  • 分类号

  • 代理机构北京市柳沈律师事务所;

  • 代理人万里晴

  • 地址 美国得克萨斯州

  • 入库时间 2023-12-18 10:50:22

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-02-13

    授权

    授权

  • 2016-08-10

    著录事项变更 IPC(主分类):G06F17/30 变更前: 变更后: 申请日:20131216

    著录事项变更

  • 2015-10-07

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20131216

    实质审查的生效

  • 2015-09-09

    公开

    公开

说明书

相关申请的引用

本申请要求2013年3月14日提交的美国申请No.13/803,721的权益, 所述美国申请No.13/803,721要求2012年12月31日提交的美国临时申请 No.61/747,547的权益,两者通过引用将其全部内容结合于此。

技术领域

本申请一般地涉及在系统中管理数据。更具体地,本申请涉及在系统中 选择性地路由高速缓存的对象。

背景技术

图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”的路径以便获得句柄,并将句柄发送到应用。

图1中的箭头示出了在系统的不同部分之中的通信的逻辑路径,其中应 用105向内核I/O管理器110发送请求,并且其中内核I/O管理器110通过 检查根目录140来解析路径,所述根目录140包括关于去往文件“Z”的路 径的信息。

如图1中所示,系统包括多个存储器装置,所述存储器装置诸如以盘C: 134和盘Y:136的形式。写在操作系统层之上的应用、诸如应用105通常 不知道可以被它们使用的优化的分区,并且因此将文件写入预定位置而不考 虑被写入到的位置的属性。例如,许多操作系统定义特定应用的数据目录, 并且应用将把它们的所有数据写入到这些目录。临时文件的使用在大多操作 系统中被类似地定义,并且应用将为此目的而简单地使用由操作系统接口定 义的文件名和位置。这可能导致次优地使用多分区布局。使用可以提供性能 和容量改善的外部存储器导致其更复杂。

但是,内核文件系统和应用堆栈可以被修改以便手动地选择在每个情况 中应该使用哪一个分区或挂载点,从而使能改善的性能。例如,应用可以通 过用户配置(即,用户选择保存文件的目录)或者通过在应用中的检测并使 用外部存储器的代码,来明确地寻址外部存储器。

发明内容

提供了一种对解析到文件系统对象的路径的操作系统透明的将文件系 统对象从第一存储器装置路由到第二存储器装置的系统和方法。

在一方面,提供了用于对操作系统透明地选择性地路由文件系统对象的 方法。所述方法包括:由处理器进行如下步骤,所述处理器被配置为在监控 应用的控制之下实行选择性路由,所述监控应用可通过操作系统操作并且包 括具有重定向信息的中间分区,其中所述处理器具有与第一和第二存储器装 置的可操作连接以用于这样的选择性路由:确定是否将文件系统对象从所述 第一存储器装置路由到所述第二存储器装置;响应于确定路由所述文件系统 对象,使得所述文件系统对象被路由到所述第二存储器装置中的位置;以及 用文件系统对象在所述第二存储器装置中的位置来更新用于所述文件系统 对象的中间分区的重定向信息,其中,所述第一存储器装置包括所述操作系 统用来解析用于贮存在所述第一存储器装置中的文件系统对象的路径的目 录,其中,所述目录包括重定向到所述中间分区的信息,并且其中,使用所 述中间分区的重定向信息,所述操作系统继续使用在所述第一存储器装置中 的目录以解析到贮存在所述第二存储器装置中的文件系统对象的路径,使得 将所述文件系统对象路由到所述第二存储器装置对所述操作系统透明。

所述第一存储器装置可以包括所述操作系统用来解析用于贮存在所述 第一存储器装置中的文件系统对象的路径的与此相关联的目录,其中所述目 录包括表示重定向到所述中间分区的中间分区重定向。就这一点而言,使用 所述中间分区重定向,所述操作系统继续使用在所述第一存储器装置中的目 录以解析到贮存在所述第二存储器装置中的文件系统对象的路径,使得将所 述文件系统对象复制到所述第二存储器装置对所述操作系统透明。

所述中间分区可以基于将文件从所述第一存储器装置路由(例如,复制) 到所述第二存储器装置而动态地改变,而所述操作系统用来解析用于贮存在 所述第一存储器装置中的文件系统对象的路径的目录不需要改变。例如,在 复制所述文件系统对象之前,所述目录可以包括重定向到中间分区的所述中 间分区重定向。就这一点而言,在复制之前,操作系统访问所述目录,被重 定向到所述中间分区,并且反过来再次被重定向贮存在所述第一存储器装置 中的文件系统对象。

所述第一存储器装置和所述第二存储器装置可以在一个或多个方面不 同,这些方面诸如位置、速度、大小、耐受力或性能。所述第二存储器装置 可以是高速缓存,使得将文件系统对象复制进所述第二存储器装置中提高访 问所述文件系统对象的速度。

在另一方面,提供了用于对操作系统透明地选择性地路由文件系统对象 的监控装置。所述监控装置包括:一个或多个存储器,其被配置为贮存中间 分区,所述中间分区包括重定向信息;以及处理器,其与所述一个或多个存 储器通信。所述处理器被配置为在所述监控装置的控制之下实行选择性路 由,所述监控装置可通过所述操作系统操作,其中所述处理器具有与第一和 第二存储器装置的可操作连接以用于这样的选择性路由,并且被配置为:确 定是否将文件系统对象从所述第一存储器装置路由到所述第二存储器装置; 响应于确定路由所述文件系统对象,使得所述文件系统对象被路由到所述第 二存储器装置中的位置;以及用在所述第二存储器装置中的文件系统对象的 所述位置更新用于所述文件系统对象的中间分区的重定向信息,其中,所述 第一存储器装置包括所述操作系统用来解析用于贮存在所述第一存储器装 置中的文件系统对象的路径的目录,其中,所述目录包括重定向到所述中间 分区的信息,并且其中,使用所述中间分区的重定向信息,所述操作系统继 续使用在所述第一存储器装置中的目录以解析到贮存在所述第二存储器装 置中的文件系统对象的路径,使得将所述文件系统对象路由到所述第二存储 器装置对所述操作系统透明。

所述第一存储器装置包括所述操作系统用来解析用于贮存在所述第一 存储器装置中的文件系统对象的路径的目录,其中所述目录包括表示重定向 到所述中间分区的中间分区重定向。就这一点而言,使用所述中间分区重定 向,所述操作系统继续使用在所述第一存储器装置中的目录以解析到贮存在 所述第二存储器装置中的文件系统对象的路径,使得将所述文件系统对象路 由到所述第二存储器装置对所述操作系统透明。

在浏览下述附图、详细说明以及权利要求之后,其它特征和优点将变得 清晰。此外,公开了其它实施例,并且每个实施例可以被单独或者组合使用。 现将参考附图描述实施例。

附图说明

参考下述附图和说明可以更好地理解所述系统。在附图中,相似的参考 标号表示贯穿不同的视图的相对应的部分。

图1示出了现有系统,其中内核I/O管理器解析到文件“Z”的路径。

图2示出了在系统中的不同的层,其包括应用层、操作系统层和存储器 装置层,以及可以在该系统中操作的监控应用。

图3A示出了系统,其包括应用、内核I/O管理器、根目录、中间分区、 多个文件系统、多个装置驱动器、盘C:和盘Y:。

图3B示出了使用根目录和中间分区以解析到盘C:上的文件“Z”的路 径的内核I/O管理器。

图3C示出了将文件“Z”复制到盘Y:,以及对中间分区的改变以反映 将文件“Z”复制到盘Y:。

图3D示出了利用根目录和中间分区以解析到盘Y:上的文件“Z”的 路径的内核I/O管理器。

图4是监控应用确定是否移动文件并对其作出应答、更新中间分区以反 映文件的移动的流程图。

图5是监控应用确定在远程盘上的文件使用的频率并对其作出应答、将 文件复制到高速缓存的流程图。

图6是内核I/O管理器利用根目录和中间分区解析文件的路径的流程 图。

图7是被编程为特定计算机系统的通用计算机系统,其可以表示这里引 用的任何计算装置、诸如监控应用或内核I/O管理器。

具体实施方式

图2示出了在系统中的不同的层,包括应用层200、操作系统层210、 存储器装置层220、以及可以在系统中操作的监控应用230。应用层200包 括一个或多个应用。如图2所示,应用层包括应用1202到应用N 204。操 作系统层210包括内核212。

一般来说,内核212被用作操作系统的一部分,提供硬件(诸如在存储 器装置层220中的存储器装置)以及在应用层200中运行的应用程序之间的 层。

内核212通过请求使其服务对在系统上运行的应用是可用的。请求之一 涉及对在存储器装置上的数据的访问,诸如打开()(open())、关闭()(close ())、读取()(read())和写入()(write())请求。响应于请求,内核212 用作应用和硬件之间的接口,提供硬件提取使得应用不需要知道具体细节以 寻址硬件,并提供文件系统提取使得应用可以打开文件而不需要知道文件系 统的特定结构。例如,响应于该请求,内核可以解析到硬件的路径,并向应 用发送路径的表示(诸如以句柄的形式)使得应用可以与在存储器装置层中 的存储器装置通信。以此方法,应用在寻址硬件时不需要知道细节,而是依 赖于内核来解析寻址的细节。

如图2所示,系统可以包括存储器装置层220,所述存储器装置层220 一般表示在系统中的一个或多个存储器装置。存储器装置层220可以包括多 个存储器装置,诸如存储器装置1222到存储器装置M 224。例如,一个存 储器装置可以是硬盘盘,并且另一个存储器装置可以是可拆卸存储器贮存装 置。硬盘盘可以具有一组规则以最优化数据的高速缓存。然而,可拆卸NAND 闪速存储器贮存装置可以具有不同的一组规则以基于某些读取/写入模式来 最优化数据的高速缓存。因此,在具有不同属性的存储器装置中可以采用为 所使用的特定类型的数据以及其耐受力、错误校正和性能要求而优化的不同 的物理分区。

图2还示出了监控应用230。监控应用230可以包括两个部分:(1)被 配置为管理在存储器装置层中的文件系统对象(包括文件系统对象的移动 (例如,复制))的软件(其一示例是对在存储器装置层中的文件和对中间 分区软件234的管理,下文讨论);以及(2)一个或多个数据结构以使得对 文件系统对象的管理对应用层200和/或操作系统层210透明(其一示例是中 间分区232,如下所讨论的)。监控应用230确定在哪里放置文件系统对象, 以及使用一个或多个数据结构,使得在解析文件的路径的过程中的至少一个 额外的重定向,如在图3A-3D中讨论的。就这一点而言,监控应用230是对 目录结构的补充,其中监控应用230引用目录结构。因此,监控应用230用 作与应用层200和操作系统层210分开的并且除了应用层200和操作系统层 210以外的虚拟层。

虚拟层可以动态地改变以便反映文件系统对象的移动。在一实施例中, 与存储器装置相关联并被用于解析到文件系统对象的路径的一个或多个目 录不响应于文件系统对象的移动而改变。例如,文件系统对象可以被贮存在 盘C:中,如参考图3A-3D所讨论的。可以使用与盘C:相关联的目录以便 解析到贮存在盘C:中的文件系统对象的路径。如下所讨论的,目录(诸如 根目录)包括对虚拟层的重定向(诸如到虚拟层中的中间分区的重定向)。 在一实施例中,监控应用230写入到目录(诸如根目录)使得目录包括到虚 拟层的重定向。就这一点而言,当将文件系统对象从盘C:复制到盘Y:, 所使用以解析路径的与盘C:相关联的目录(诸如根目录)不改变(例如, 根目录在将文件系统对象复制到盘Y:之前和之后都包括到中间分区的重定 向)。虚拟层(诸如中间分区)由监控应用230动态地改变以反映将文件系 统对象复制到盘Y:。如在下文中更加详细讨论的,监控应用230可以修改 虚拟层(例如,中间分区)的一部分以反映将系统文件对象复制到盘Y:。 在操作中,在将文件系统对象复制到盘Y:之前,操作系统层(诸如内核212) 访问目录(诸如根目录)以解析到文件系统对象的路径,被重定向到虚拟层, 这导致返回到盘C:的另一重定向。同样地,在将文件系统对象复制到盘Y: 之后的操作中,操作系统层访问目录以解析到所述文件系统对象的路径,被 重定向到虚拟层,这导致到盘Y:的重定向。以此方法,对文件系统对象的 复制对操作系统层透明。例如,操作系统层不需要被特别地通知文件系统对 象到盘Y:的移动。相反,由于重定向到与盘C:相关联的目录中的虚拟层, 并且由于对虚拟层的动态的修改以引导到对文件系统对象的新的复制,操作 系统层能够解析到在盘Y:中的文件系统对象的复制品的路径。

在替换实施例中,与存储器装置相关联并且被用于解析到所述文件系统 对象的路径的一个或多个目录响应于文件系统对象的移动而改变。更具体 地,目录(诸如根目录)和虚拟层(诸如中间分区)可以被修改以反映对所 述文件系统对象的复制。例如,文件系统对象可以贮存在盘C中。可以使用 与盘C:相关联的目录(诸如根目录)以便解析到贮存在盘C:中的文件系 统对象的路径。在将文件系统对象从盘C:复制到盘Y:之前,目录不包括 到中间分区的重定向。相反,目录包括到贮存在盘C:上的文件系统对象的 路径的指示,诸如图1所示。在将文件系统对象从盘C:复制到盘Y:之后, 用于盘C:和虚拟层(诸如中间分区)的目录(诸如根目录)两者都动态地 改变以反映将所述文件系统对象到盘Y:的复制。例如,改变盘C:的目录 (诸如根目录),以指示到虚拟层的重定向(诸如到中间分区的重定向)。此 外,虚拟层被修改以反映到盘Y:中的文件系统对象被复制的位置的另一重 定向。在操作中,在将文件系统对象复制到盘Y:之前,操作系统层(诸如 内核212)访问目录(诸如根目录)以解析到所述文件系统对象的路径。同 样地,在将文件系统对象复制到盘Y:之后的操作中,操作系统层仍访问与 盘C:相关联的目录以解析到所述文件系统对象的路径,被重定向到所述虚 拟层,这导致到盘Y:的重定向。再一次,对所述文件系统对象的复制对所 述操作系统层透明。例如,操作系统层不需要被特别地通知文件系统对象到 盘Y:的移动。相反,因为操作系统使用与盘C:相关联的目录(诸如根目 录),并且由于对到在与盘C:相关联的目录中的虚拟层的重定向的动态修 改,以及虚拟层的动态修改以引导到文件系统对象的新的复制,操作系统层 能够解析到文件系统对象在盘Y:中的复制品的路径。

就这一点而言,由于在系统中的该额外的虚拟层,在监控应用230在系 统中移动文件系统对象的事件中,应用层200和/或操作系统层210不需要被 修改。更具体地,监控应用230可以管理在存储器装置层中的文件系统对象 以确定是否、何时和/或往哪里移动文件系统对象。决定在存储器装置层220 中的不同的存储器装置之中是否、何时和/或往哪里移动文件系统对象可以取 决于一个或多个条件,诸如例如,在系统中的文件系统对象的使用和/或在系 统中的存储器装置的特性。

在存储器装置层220中的存储器装置可以是相同的或者可以相互不同。 当不同时,存储器装置可以在一个或多个方面存在不同。不同的方面的示例 包括,但不限于:位置(例如,在系统中所述存储器装置对于另一计算装置 是被认为是远程的还是本地的);速度;大小(例如,目录大小);耐受力; 性能;特定应用的信息(诸如,数据库和应用高速缓存位置);在监控器应 用和贮存控制器固件之间交换的特定控制器的信息;等。

例如,在系统中的存储器装置的速度可能变化。更具体地,第一存储器 装置在响应于用于文件系统对象的读取、写入和/或擦除请求方面相比于第二 存储器装置可能更慢。特别地,第一存储器装置可以包含硬盘盘,而第二存 储器装置可以包含高速缓存。因此,第一存储器装置的速度比第二存储器装 置慢。如在下文中更加详细讨论的,监控应用可以确定将文件系统对象移动 (诸如将其复制)到系统中的另一存储器装置。移动文件系统对象的决定可 以例如基于一个或多个因素,诸如在系统中的存储器装置的速度(例如,当 前贮存文件系统对象的存储器装置以及将接收文件系统对象的复制品的存 储器装置)以及访问文件系统对象的频率。

尽管下文讨论了存储器装置的不同速度的例子,存储器装置之间的任何 不同的方面可以是监控应用在不同的存储器装置之中移动文件系统对象的 基础。作为另一示例,在系统中的两个存储器装置可以都是对于在系统中的 另外的计算装置来说本地的,但存储器装置的不同之处可能在于一个存储器 装置具有较大的存储器容量并且比另一存储器装置慢。所提供的示例仅是为 了说明的目的。考虑了确定是否、何时和/或往哪里移动文件系统对象的其它 基础。

当监控应用230确定移动文件系统对象时,监控应用230更新在系统中 的一个或多个数据结构。该一个或多个数据结构可以由应用层200和/或操作 系统层210使用以便访问移动的数据结构(诸如当解析到文件系统对象的路 径时导致至少一个额外的重定向)。如在下文中更加详细讨论的,一个或多 个数据结构可以以若干方式之一布置。例如,数据结构可以包括已有的数据 结构(诸如,被用于解析到文件的路径的数据结构,其一个示例是存储器装 置的挂载点(mouting point))以及与监控应用230相关联的数据结构(诸如, 中间分区232)。更具体地,文件系统可以修改被用于解析到文件的路径的数 据结构。例如,可以修改挂载点(其一个示例是根目录)以指向中间分区。 对挂载点的修改可以进行一次(诸如当安装监控应用230时),可以在启动 系统时进行,和/或可以当新的存储器装置安装在系统中时进行。此外,监控 应用230可以响应于在系统中移动文件系统对象而修改中间分区232。

返回参考图2,监控应用230包括中间分区232以及对存储器装置层中 的文件和对中间分区软件234的管理。对存储器装置层中的文件和对中间分 区软件234的管理被配置为:(1)确定是否、何时和/或往哪里移动文件系统 对象;以及(2)管理中间分区。如上所讨论的,对在系统中的文件系统对 象的管理可以基于一个或多个条件。文件系统对象可以包括对应用层200和 /或文件系统层210可用的任何信息。文件系统对象的一个特定示例包括文 件,所述文件是对应用层200和/或文件系统层210可用的自我包含的信息。

对监控应用230及其组件部分的描述仅是用于说明的目的。例如,尽管 图2将对存储器装置层中的文件以及对中间分区软件234的管理示出为单个 软件体,在对存储器装置层中的文件以及对中间分区软件234的管理中包括 的逻辑可以在不同的模块中被划分。此外,对存储器装置层中的文件以及对 中间分区软件234的管理中的逻辑可以在单个计算装置中,或者可以在系统 中的不同的计算装置之中被划分。此外,监控应用230——包括中间分区232 和对存储器装置层中的文件以及对中间分区软件234的管理——可以被贮存 在系统中的若干地点之一。例如,监控应用230可以被贮存在与在应用层200 和/或操作系统层230中的装置相同的计算装置中。更具体地,监控应用230 可以被贮存在主机计算装置上。在替换实施例中,中间分区232可以被贮存 在与贮存对存储器装置层中的文件以及对中间分区软件234的管理的计算装 置不同的计算装置上。

作为另一示例,中间分区232可以存在作为通过诸如FUSE或者专用的 内核驱动器的技术(取决于操作系统)由对在存储器装置层中的文件和中间 分区软件234的管理掌管(host)的临时文件系统。可替换地,中间分区232 可以是物理分区或者正调用的应用可访问的已有分区中的目录。

如上所讨论的,中间分区232包含一个或多个数据结构以使能系统中的 (一个或多个)不同的层(诸如应用层200和/或操作系统层210)来访问被 移动的文件系统对象而不改变系统中的(一个或多个)不同的层的逻辑或固 件。更具体地,如在下文中更加详细讨论的,在应用层200中的应用和/或在 操作系统层210中的内核212可以使用中间分区232(并可以进一步使用(一 个或多个)存储器装置的挂载点)以解析到移动的文件系统对象的路径。以 此方法,文件系统对象的移动对在应用层200中的应用和在操作系统层210 中的内核212透明,使得在任何一层中的软件不需要被修改。

图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的指定仅是为了说明的目的。更少、更多或 不同的组件可以被包括在主机系统中。

操作系统可以使用一个或多个数据结构以便解析访问存储器装置上的 文件的路径。数据结构的一个示例是存储器装置的挂载点,所述存储器装置 的挂载点可以被用于解析访问存储器装置上的文件的路径。挂载点的特定的 示例是根目录。可替换地,解析访问存储器装置上的文件的路径的数据结构 可以不同于根目录。如在下文的说明1中所述的,可以使用与根目录分开的 目录(例如,子目录)。

根目录取决于操作系统可以采用不同的形式。在Windows类型的操作 系统中,用于每个贮存装置以及硬盘盘(HDD)的分区(例如,逻辑上独立 的区)的根目录,并且它们例如被标记为,Y:用于可拆卸闪速存储器装置, C:用于HDD的第一分区,D:用于HDD的第二分区等。Unix类型的操作 系统对于系统上的所有存储器装置使用单个根目录,其中在文件系统的顶部 处的目录由正斜杠(/)指定。此外,Unix类型的操作系统包括根目录中的 第一级(first tier)的目录,诸如/bin,/usr,/etc,/misc。

根目录310是用于盘C:的挂载点的示例。如图3A中所示,根目录310 包括重定向(redirect)312。重定向312被配置为动作以将该路径的解析重定向 到系统的另一部分。例如,当内核I/O管理器110正解析到系统中的文件的 路径时,重定向作用为将该解析从根目录重定向到中间分区305。重定向312 的一个示例是软链接。软链接(也被称为符号链接)是特殊类型的文件或目 录入口(entry),所述特殊类型的文件或目录入口包含以绝对或相对路径的 形式的到另一文件或目录的引用、并且影响路径名解析。以此方法,软链接 可以被用作到另一文件的指针或者间接手段(indirection)。当应用要求文件 时,操作系统自动地解引用该指针,从而从应用中提取文件的位置。软链接 在大多数文件系统中是可用的,这些文件系统包括下述用于安卓的ext4文件系统。此外,一个软链接可以指向另一软链接。

以此方法,根目录被修改使得:在一实施例中,被用于解析在各个盘上 的文件的路径的根目录的部分被替换为完全由到系统的不同部分(诸如,到 中间分区305)的重定向(诸如,软链接)构成。

图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:\l并且访问在C:盘中的根 目录310以解析到文件“Z”的路径。由于根目录310已经通过重定向被修 改过,内核管理器改变串的路径。例如,重定向可以指示X:\7,其指向中 间分区。因此,内核I/O管理器110用X:\7替换C:\l以将串修改为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:盘的另一部分。

图3C示出了文件“Z”向盘Y:的复制、以及对中间分区305的改变以 反映文件“Z”向盘Y:的复制。如上所讨论的,监控应用230可以确定将 文件复制到系统的另一部分、诸如,盘Y:。响应于将文件“Z”复制到盘Y:, 修改中间分区305。具体地,将中间分区305中的重定向从指向C:\2改变 为指向Y:\6。如上所讨论的,文件的移动(诸如,将文件“Z”复制到盘Y:) 并不一定需要改变根目录310。

图3D示出了内核I/O管理器110使用根目录310和中间分区305以解 析到盘Y:上的文件“Z”的路径。在包括以C:\1\2\3\4\5\Z的形式的串的 请求的示例中,内核I/O管理器110读取串中的C:\l并且访问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的额外的重定向,仍然可以解析该路径。

以此方法,图3A-D示出了中间分区305的使用,其中通过中间分区305, 使用指向其它链接的链接、指回适合于所使用的数据的类型的持久贮存介 质,来路由关键应用目录。因此,监控器应用230检查数据是如何被使用的, 并且在中间分区305中重新写入链接以在这些分区之间透明地移动数据而不 影响正调用的应用。

例示1:

下文是使用监控应用230用于安卓(Android)操作系统的例示。在安 卓操作系统中,/data/data/目录被用于贮存应用特定的(application-specific) 内容。每个应用具有其自己的子目录,所述子目录通常进一步被分为多个子 目录,每一个子目录具有其自己的内容特性。用于安卓操作系统的网络浏览 器应用具有下述目录结构:

rootandroid:/data/data/com.google.android.browser#Is-1

drwxrwx--x app_57  app 57 2012-02-01 15:14app_appcache

drwxrwx--x app_57  app 57 2012-02-01 15:14app_databases

drwxrwx--x app_57  app 57 2012-02-01 15:14app_geolocation

drwxrwx--x app_57  app 57 2012-02-01 15:15app_icons

drwxrwx--x app_57  app_57 2012-02-01 15:15cache

drwxrwx--x app_57  app_57 2012-02-01 15:15databases

drwxr-xr-x system  system 2011-11-29 12:16lib

drwxrwx--x app_57  app_57 2012-02-01 15:14shared_prefs

上述目录的一些,诸如高速缓存和数据库(cache和databases),可能 受益于移动到不同的物理分区。例如,高速缓存(cache)目录可以被移动 到不同的分区,而留下符号链接。目录结构现在看起来如下:

rootandroid:/data/data/com.google.android.browser#1s-1

drwxrwx--x app_57  app_57 2012-02-01 15:14app_appcache

drwxrwx--x app_57  app_57 2012-02-01 15:14app_databases

drwxrwx--x app_57  app_57 2012-02-01 15:15app_geolocation

drwxrwx--x app_57  app_57 2012-02-01 15:15app_icons

lrwxrwx--x app_57app_57 2012-02-01 15:21cache->/intermediate/cache

drwxrwx-x app_57  app_57 2012-02-01 15:15databases

drwxr-xr-x system  system 2011-11-29 12:16lib

drwxrwx—x app_57  app_57 2012-02-01 15:14shared_prefs

在中间分区305中的/intermediate目录具有下述内容:

rootandroid:/intermediate#1s-1

lrwxrwx-x app_57  app_57 2012-02-01 15:21cache->/cache/browser  cache/cache

在/intermediate目录中的链接可以被重写为指向任何其它位置(在该情 况中指向装置的/cache物理分区)。以此方法,/intermediate目录可以被用于 指向数据被移动的位置。

例示2:

下文是使用监控应用230回放电影或者其他类型的视频的另一例示。电 影通常需要巨大的贮存容量。取决于贮存配置,电影可以由小文件的群组构 成,每个小文件包括一段电影,其中小文件的群组被配置为按次序执行。在 操作中,正调用的应用预期播放与调用的文件相关联的电影段而调用下一小 文件。该示例包括,但不限于,HTTP上的动态自适应流媒体(DASH),以 及苹果(Apple)的HTTP实时流媒体(HLS)。更具体地,DASH使能通过 Internet从传统的HTTP网络服务器传送的高质量的媒体内容流。DASH通 过将内容分为一系列小的基于HTTP的文件分段而运作,每个分段包含短时 间间隔的回放时间的内容,该内容的持续时间可能是多个小时,诸如电影或 者体育赛事的直播。使得可以以多个不同的比特率获得所述内容,即,使得 可以以覆盖回放时间的对齐的短时间间隔的不同的比特率获得编码的可选 分段。由于内容被DASH客户端回放,因此,客户端基于当前的网络环境自 动地从各可选者中选择下一分段以下载并回放。

此外,因为电影需要巨大的贮存容量,电影通常被贮存在大的贮存装置 (其可以是太位字节(Terabyte)量级的贮存容量)上,所述贮存装置可以 是远离回放装置、并可以与回放装置分开。因此,电影文件可以在不同的装 置上播放,所述不同的装置诸如具有较小的贮存容量的膝上型计算机(或其 它数字播放器)。在操作中,数字播放器可以访问可用于播放的电影文件列 表。用户通过数字播放器可以选择一个电影文件播放。监控应用230可以监 控贮存在大贮存装置中的所选择电影文件的播放。此外,监控应用230可以 将在选择的电影中尚未播放的文件复制到更快的贮存装置(诸如,与数字播 放器相关联的存储器)。监控应用230也可以将文件的复制品的位置贮存在 中间分区305(例如,指向与数字播放器相关联的存储器的软链接)中。因 此,当内核I/O管理器访问文件以选择电影时,内核I/O管理器将被重定向 到与数字播放器相关联的存储器。

除了操作性改变以外,监控应用230可以修改呈现给用户的文件的组织。 在上述讨论的电影文件示例中,一些电影可以被贮存在大并且慢的贮存装置 上,并且其它电影可以贮存在更快、更小的贮存装置(诸如,本地数字播放 器)上。监控应用230还可以被配置将贮存在系统中的各种装置(诸如大并 且慢的贮存和本地数字播放器)上的(诸如,在目录列表中)所有电影文件 向用户示出为被贮存在单个盘(诸如,与本地数字播放器相关联的盘)上。 以此方法,监控应用可以向用户呈现用于所有特定类型的文件(诸如,电影 文件)的单个盘的目录列表,即使各文件位于不同的盘上。

图4是监控应用230确定是否移动文件并对其作出应答、更新中间分区 以反映该文件的移动的流程图400。在402处,监控应用230确定对文件的 移动(诸如复制)是否被正当(wanrrented)。该确定可以基于文件的使用和 /或文件所贮存在之上的盘的一个或多个特征。例如,监控应用230可以监控 一个或多个文件中的哪些已经被访问以便确定是否将访问相同的一个或多 个文件。响应于确定相同的一个或多个文件将被访问,监控应用230可以确 定移动文件。作为另一示例,监控应用230可以预期文件(或者一系列文件) 的未来使用,并且基于预期的使用而移动文件(或者该一系列文件)。预期 的未来使用可以基于分析过去的使用。例如,在上述例示2中,一系列文件 相互相关联并且被配置为按次序执行。在一系列文件中的文件之一被访问的 事件中,监控应用230可以确定在次序中在后的文件将被访问,并且预期地 复制在次序中在后的文件。

在404处,监控应用230确定哪个盘来复制文件。如图4所示,是否移 动文件以及往哪里移动文件的所述确定被示出为分开的步骤。可替换地,是 否移动文件以及往哪里移动文件的所述决定可以在单个步骤中作出。在406 中,响应于确定将文件复制到另外的盘,监控应用使得文件被移动(例如, 被复制)到确定的盘。监控应用可以使得文件以若干方式之一被复制,诸如 通过指示另外的装置进行文件到确定的盘的复制,或者通过监控应用自己进 行到确定的盘的复制。此外,在408处,用文件已经被复制到哪个位置的信 息来更新中间分区。

图5是监控应用230确定在远程盘上的文件使用的频率并对其作出应 答、将文件复制到高速缓存的流程图500。在520处,监控应用230确定来 自远程盘的文件是否被频繁地使用。监控应用230可以将频繁定义为在预定 时间段中预定数量的访问。响应于确定文件被频繁地使用,在504处,文件 被复制到高速缓存。因此,监控应用230例如可以基于容量管理来选择将高 速缓存目录从一个分区移动到另一个。由于这通过中间链接完成,因此应用 不知道该改变并且不需要任何信令来使用该新的位置。以此方法,监控应用 使能目录结构的灵活的并且可扩展的改变以利用可变的性能分区,并且允许 实时地将正确的数据定位到正确的位置,而不修改主机应用。

图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使用 第二重定向以便解析到请求的文件的路径。

图7是一种通用计算机系统700,其被编程为可以表示这里所引用的任 何计算装置的特定的计算机系统,所述计算装置诸如,但不限于,监控应用 或者内核I/O管理器。监控应用和/或内核I/O管理器可以被部署在网络部署 中使用的通用计算机系统中。计算机系统700可以作为服务器或作为在服务 器-客户端用户网络环境中的客户端用户计算机,或作为在对等式(或分布 式)网络环境中的对等计算机系统。计算机系统700也可以实现为或者合并 在各种装置中,所述各种装置诸如个人计算机(PC)、平板PC、机顶盒(STB)、 个人数字助理(PDA)、移动装置、掌上型计算机、膝上型计算机、桌上型 计算机、通信装置、无线电话、陆线电话、控制系统、照相机、扫描仪、传 真机、打印机、寻呼机、个人信赖装置、网络装置、网络路由器、交换机或 网桥或者能够执行明确该机器将采取的行动的指令集(顺序的或相反)的任 何其它机器。在特定的实施例中,计算机系统700可以利用提供声音、视频 或数据通信的电子装置实现。此外,尽管可能描述了单个计算机系统,术语 “系统”也应当被用来包括独自地或共同地执行一组或多组指令以进行一个 或多个计算机功能的系统或子系统的任意集合。

计算机系统700可以包括处理器702,例如,中央处理单元(CPU)、图 形处理单元(GPU)或两者。处理器可以是各种系统中的组件。例如,处理 器可以是标准个人计算机或工作站的一部分。处理器可以是通用处理器、数 字信号处理器、专用集成电路、现场可编程门阵列、服务器、网络、数字电 路、模拟电路、其组合或者其它现在已知的或将来开发的用于分析和处理数 据的装置的一个或多个。在这里以及下述权利要求中所讨论的处理器和存储 器可以被具体化在或实现在一个或多个物理芯片或电路组合中。处理器可以 执行软件程序,诸如手动产生的代码(即,编程的)。

计算机系统700可以包括可以通过总线通信的存储器704。存储器可以 是主存储器、静态存储器或者动态存储器。存储器可以包括,但不限于诸如 各种类型的易失性和非易失性贮存介质的计算机可读贮存介质,其中所述计 算机可读贮存介质包括但不限于随机存取存储器、只读存储器、可编程只读 存储器、电可编程只读存储器、电可擦除只读存储器、闪速存储器、磁带或 盘、光学介质及其类似者。在一情况中,存储器包括用于处理器的高速缓存 或随机存取存储器。可替换地或者另外地,存储器可以与处理器分开,诸如 处理器的高速缓存存储器、存储器或者其它存储器。存储器可以是用于贮存 数据的外部存储器装置或数据库。示例包括硬盘驱动器、光盘(“CD”)、数 字视频光盘(“DVD”)、存储器卡、存储器条、软盘、通用串行总线("USB") 存储器装置或者可操作为贮存数据的任何其它装置。存储器可操作以贮存可 以由处理器执行的指令706。在附图中(诸如图3A-D和4-6)所示出的或者 这里所描述的功能、动作或任务可以通过编程的处理器执行贮存在存储器中 的指令进行。所述功能、动作或任务独立于特定类型的指令集、贮存介质、 处理器或处理策略并且可以由软件、硬件、集成电路、固件、微代码以及类 似物单独或组合操作而进行。同样地,处理策略可以包括多重处理、多任务 处理、并行处理以及类似者。

计算机系统700还可以包括显示单元712,诸如液晶显示器(LCD)、有 机发光二极管(OLED)、平板显示器、固态显示器、阴极射线管(CRT)、 投影仪、打印机或者用于输出确定的信息的其它现在已知或将来开发的显示 装置。显示器可以作为用于使用户看到处理器的功能的界面,或者特别地作 为具有软件贮存在存储器中的界面。

当计算机系统700包含监控应用时,存储器704包括中间分区305。尽 管在图7中示出了单个存储器,中间分区305可以被贮存在与贮存指令706 的存储器分开的存储器中,所述指令706被配置为进行这里所讨论的监控应 用的功能。

此外,计算机系统700可以包括被配置为允许用户与系统的任何组件交 互的输入装置714。输入装置可以是数字键盘、键盘或者光标控制装置(诸 如鼠标)、或操纵杆、触屏显示器、遥控或可操作以与系统交互的任何其它 装置。

计算机系统700还可以包括磁盘或光学盘单元。磁盘盘单元可以包括可 嵌入一个或多个指令集412(例如软件)的计算机可读介质。此外,指令可 以进行一个或多个这里所述的方法或逻辑。在由计算机系统700执行的期间, 指令可以完全或至少部分留在存储器704中和/或处理器702中。存储器704 和处理器702还可以包括如上所讨论的计算机可读介质。

本公开考虑包括指令或者响应于传播的信号接收并执行指令的计算机 可读介质,使得连接到网络716的装置可以在网络之上通信声音、视频、音 频、图像或任何其它数据。此外,指令可以通过通信接口718在网络之上被 发送和接收。通信接口可以是处理器的一部分或者可以是单独的组件。通信 接口可以在软件中创建或者可以是硬件中的物理连接。通信接口被配置为与 网络、外部介质、显示器或者系统中的任何其它组件或其组合连接。与网络 的连接可以是物理连接(诸如有线以太网连接)或者可以如下文所讨论的无 线地建立。同样地,与系统的其它组件的额外的连接可以是物理连接或者可 以无线地建立。在服务提供者服务器的情况中,服务提供者服务器可以通过 通信接口与用户通信。

网络可以包括有线网络、无线网络或其组合。无线网络可以是蜂窝电话 网络、802.11、802.16、802.20或WiMax网络。此外,网络可以是公用网络 (诸如因特网)、私有网络(诸如内联网)或其组合,并且可以利用现在可 用或将来开发的多个网络协议,包括但不限于基于TCP/IP的网络协议。

计算机可读介质可以是单个介质,或者计算机可读介质可以是单个介质 或多个介质,诸如贮存一个或多个指令集的中央式的或分布式的数据库和/ 或相关联的高速缓存和服务器。术语“计算机可读介质”还可以包括能够贮 存、编码或携带指令集的任何介质,所述指令集用于由处理器执行或者使计 算机系统700进行这里所公开的任何一个或多个的方法或操作。

计算机可读介质可以包括固态存储器,诸如存储器卡或者具有一个或多 个非易失性只读存储器的其它包封。计算机可读介质也可以是随机存取存储 器或者其它非易失性可重新写入的存储器。此外,计算机可读介质可以包括 磁光的或者光学介质,诸如磁盘或磁带或者抓捕载波信号的其它贮存装置, 所述载波信号诸如在传输介质之上通信的信号。附件到电子邮件的数字文件 或者其它自我包含的信息文档或文档组可以被认为是分布介质,所述分布介 质是有形的贮存介质。计算机可读介质优选地是有形的贮存介质。相应地, 本公开可以被认为包括在其中可以贮存数据或指令的计算机可读介质的任 何一个或多个或分布介质以及其它等价物和后续介质。

可替换地或者另外地,专用的硬件实现方式,诸如专用集成电路、可编 程逻辑阵列和其它硬件装置,可以被构造为实现一个或多个这里所述的方 法。可以包括各种实施例的设备和系统的应用可以宽泛地包括多种电子和计 算机系统。这里所述的一个或多个实施例可以利用两个或多个特定互联的硬 件模块或装置实现功能,或者作为专用集成电路的一部分,所述硬件模块或 装置具有可以在模块之间或者穿过模块通信的数据信号和相关的控制。相应 地,本系统可以包含软件、固件和硬件实现方式。

这里所述的方法可以被由计算机系统执行的软件程序实现。此外,实现 方式可以包括分布式处理、组件/对象分布式处理和并行处理。可替换地,虚 拟计算机系统处理可以被构造为实现如这里所述的方法或功能的一个或多 个。

尽管关于特定标准和协议描述可以被实现在特定实施例中的组件和功 能,但是组件和功能不限于这样的标准和协议。例如,用于因特网和其它分 组交换网络传输的标准(例如,TCP/IP、UDP/IP、HTML、HTTP、HTTPS) 表示现有技术的示例。这样的标准被基本上具有相同功能的更快或更加有效 的等价物周期性地替代。相应地,具有与这里所公开的那些相同或相似的功 能的替代的标准和协议被认为是其等价物。

这里所述的说明意欲提供对各种实施例的结构的普遍理解。所述说明不 意欲作为使用这里所述的结构或方法的设备、处理器和系统的所有元件和特 征的完整描述。在回顾本公开之后,许多其它实施例对本领域技术人员来说 是显而易见的。本公开可以使用或从本公开中得出其它实施例,使得可以作 出结构的和逻辑的替换和改变而不脱离本公开的范围。此外,所述说明仅是 代表性的并且可能没有按比例绘制。所述说明中的某些比例可能被夸大,而 其它比例可能被缩小。相应地,本公开和附图将本认为是示意性的而不是限 制性的。

上述公开的主题将被认为是说明性的,而不是限制性的,并且所附权利 要求意欲覆盖落入本说明书的真实精神和范围中的所有这样的修改、改进和 其他实施例。因此,为最大化法律所允许的程度,所述范围由下述权利要求 及其等价物的最宽允许的解释确定,并且不应被前述详细的说明限定或限 制。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号