基于存储寿命和速度选择存储位置用于文件存储的制作方法

文档序号:6592603阅读:99来源:国知局
专利名称:基于存储寿命和速度选择存储位置用于文件存储的制作方法
技术领域
本发明涉及选择存储位置(storage location)。更具体而言,本发明涉及基于存 储寿命(longevity)和速度选择存储位置用于文件存储。
背景技术
现代计算系统利用许多不同类型的存储介质设备。存储介质设备在速度(例如, 读取速度或写入速度)和寿命(例如,失效前估计写入次数或失效前估计读取次数)方面 通常是不同的。即使在单个存储系统内,不同类型的存储介质或设备的速度和寿命也可能 是不同的。当被请求存储文件时,文件系统一般使用在请求时可用或空闲的任何存储位置。 文件系统通常从可用存储位置中进行选择,而不考虑所存储的文件的类型。从而,多种文件 类型(例如,被操作系统或软件应用使用的可执行文件、共享二进制文件、静态数据文件、 日志文件、配置文件、注册表文件等等)被简单地存储到当时可用的存储位置。然而,这种文件指派方法导致了例如计算系统中的可用存储空间的一些部分的失 效远远提前于可用存储空间的其他部分。另外,不被频繁访问的文件可能被存储在最快或 者反应最迅速的存储位置中,而被频繁访问的文件则可能被存储在低速存储位置中。本部分中描述的方法是可以实行的方法,但不一定是先前已经想到过或实行过的 方法。因此,除非另有指明,否则不应当仅因为本部分中描述的方法被包括在本部分中就认 为它们是现有技术。


在附图中以示例方式而非限制方式图示了本发明,附图中相似的标号指代类似的 要素,其中图1示出了根据一个或多个实施例用于选择存储位置的示例性系统;图2示出了根据一个或多个实施例的基于文件的文件类型和存储设备属性来选 择存储位置的流程图;图3示出了根据一个或多个实施例的使用临时文件的基于文件的文件类型和存 储设备属性来选择存储位置的流程图4示出了利用存储位置映射基于文件的文件类型和存储设备属性来选择存储 位置的流程图;并且图5示出了可用于实现一个或多个实施例的计算机系统的框图。
具体实施例方式在以下描述中,出于说明目的,阐述了许多具体细节以帮助全面理解本发明。然 而,很明显,没有这些具体细节也可以实现本发明。在其他情况下,公知的结构和设备以框 图形式示出,以避免不必要地模糊本发明。下面描述了若干特征,这些特征中每一个可以独立于其他特征使用,或者与其他 特征以任何方式结合使用。然而,任何单个特征可能不解决上述任何问题或者可能只解决 上述问题之一。上述问题中的一些可能不被这里描述的任何特征完全解决。虽然提供了标 题,但是与特定标题相关却不存在于具有该标题的部分中的信息也可能存在于说明书的其 他地方。概述提供了用于文件定位的方法。该方法包括通过将存储位置的速度和/或寿命与文 件的一部分的访问频率、文件的类型或者文件本身的访问频率相匹配来选择存储位置用于 文件存储。在一个实施例中,文件定位包括使用临时文件来填充可用存储空间,并且选择性 地删除临时文件或调整临时文件的大小以强制文件存储到其中临时文件已被删除或调整 大小的存储位置中。在一个实施例中,文件定位包括接收文件和文件系统所识别的用于存储该文件的 存储位置,并且将该文件存储在更适合于存储该文件的替换存储位置中。虽然这里记载了特定组件执行方法步骤,但是在其他实施例中,代表指定组件动 作的代理或机构可以执行方法步骤。另外,虽然本发明是针对单个系统上的组件来论述的, 但是本发明也可利用分布在多个系统上的组件来实现。此外,虽然本发明是针对固态驱动 器(SSD)来论述的,但是本发明的实施例也可应用到任何存储位置、存储设备(例如,旋转 盘驱动器、SSD、网络附接存储(NAS)、存储区域网络(SAN)等等)。本发明的实施例还包括任何包括用于执行这里描述的方法步骤的装置的系统。本 发明的实施例还包括带有指令的计算机可读介质,所述指令在被执行时使得这里描述的方 法步骤被执行。系统体系结构虽然这里描述了特定的系统体系结构,但是本发明的实施例可应用到可用于文 件定位的任何体系结构。图1示出了根据一个或多个实施例用于文件定位的示例性系统 (100)。如图1所示,系统(100)包括文件定位引擎(108)、(一个或多个)存储驱动器(112) 以及一个或多个文件仓库(114)。系统(100)还可包括其他组件,这些组件虽然没有示出, 但可用于实现一个或多个实施例。这些组件中的每一个可以位于相同的设备上,或者可位 于通过具有有线和/或无线网段的网络(例如,因特网、内联网、外联网、局域网(LAN)、广域 网(WAN)等等)耦合的分离设备上或者以其他方式耦合的分离设备上。在本发明的一个或 多个实施例中,系统(100)是利用客户端-服务器拓扑来实现的。此外,可以利用一个或多个接口从其他机器访问系统。在本发明的一个或多个实施例中,一个或多个用户可通过网 络连接(例如因特网)访问系统。系统所提供的信息和/或服务也可被存储并通过网络连 接来访问。存储仓库存储仓库(114) 一般表示一个或多个存储设备,这些存储设备具有其中可存储 文件的存储位置。存储仓库(114)的一些部分可以直接连接到系统(100),可以通过网络 (116)或其他适当的接口连接。存储仓库(114)可包括现有技术中已知的任何类型的存储 设备。例如,存储仓库(114)可包括传统的旋转盘片驱动器、固态驱动器(SSD)、传统旋转盘 片驱动器和SSD的混合组合、比如存储区域网络(SAN)之类的单独的存储系统或者网络附 接存储(NAS)设备。另外,存储仓库(114)内的每个存储设备可包括不同类型的存储位置。 例如,存储仓库(114)内的SSD可包括不同的单元,比如单级单元(SLC)、多级单元(MLC)或 其组合。从而,存储仓库(114)内的可供系统(100)存储的存储位置可以在单个存储设备 上或者多个存储设备上,这多个存储设备在不同的存储设备上有不同的配置或者甚至在单 个存储设备内有不同的配置。存储位置属性在一个实施例中,存储仓库(114)内的存储位置或数据存储设备的存储设备属性 (110)可能不同,所述存储位置属性例如是顺序写入速度、顺序读取速度、随机写入速度、随 机读取速度、寿命、每秒的输入/输出操作(IOPS)等等。存储位置或数据存储设备的寿命 一般表示在失效前存储位置或数据存储设备的估计寿命。例如,存储位置或数据存储设备 的寿命可以取决于在失效前可执行的写入的估计次数(以下称之为“失效前写入次数”)或 者在失效前可执行的读取的估计次数(以下称之为“失效前读取次数”)。这些估计可以是 具体的数字或者可以是几乎无限的。例如,存储设备可以允许几乎无限次数的读取而不失 效。存储位置、存储设备或存储系统的寿命还可基于任何其他适当因素(例如,制造商、年 龄、操作环境等等)。因此,寿命并不限于存储位置、存储设备或存储系统的任何特定属性。 另外,存储位置属性(110)还可包括存储位置或存储设备的实际使用情况。存储位置的实 际使用情况一般表示存储位置已被访问的次数(例如,存储位置已被写入或读取的次数)、 数据存储设备已被使用的时间,等等。与存储位置属性(110)相关的信息可以由制造商提供。例如,存储位置属性(110) 可以在与存储设备一起销售的压缩盘(CD)上提供。存储设备的存储位置属性(110)还可 以存储在存储设备本身上,使得访问存储设备的系统(100)可从存储设备读取存储位置属 性(110)。在另一实施例中,可以对存储设备或存储系统执行测试以确定存储设备或存储系 统的属性。例如,可对传统的旋转盘片驱动器的不同区域执行一系列读取和/或写入,以确 定旋转盘片驱动器内的不同区域的读取或写入速度。另一示例包括测试SSD中的单级单元 和同一 SSD内的多级单元的读取和写入速度。测试可表明单级单元更快。另一示例可包括 跟踪在(一个或多个)存储位置失效之前一个存储位置或一组存储位置被访问的次数,以 确定与这些存储位置具体相关联或者与整个存储设备相关联的寿命。文件类型信息在一个实施例中,存储在存储仓库(114)中的文件(104)具有文件类型(106)。文件(104)的文件类型(106)是可由应用、用户或系统定义的对文件(104)的分类。例如,由 字处理软件创建的文件(104)可具有文件类型“.doc”,而与图像相关的文件(104)可以具 有文件类型“.jpg”。在一个实施例中,文件(104)和文件(104)的文件类型(106)可以由 文件定位引擎(108)从不同的实体接收。例如,一个应用可以首先向文件系统过滤驱动器(未示出)提供文件(104)。文件 系统过滤驱动器一般表示在应用和文件系统之间逻辑上实现的软件和/或硬件。文件系统 过滤驱动器使用文件定位引擎(108)来指示文件系统在何处存储文件。另一方面,文件系 统过滤驱动器可以直接向文件系统(104)提供文件(104)和关于在何处存储文件(104)的 指令(参见以下联系图4论述的“存储位置映射”)。使用情况统计信息使用情况统计信息(102) —般表示基于被存储的特定文件(104)的使用情况或者 基于具有被存储的文件(104)的文件类型(106)的多个文件的使用情况的任何统计信息。在一个实施例中,由文件定位引擎(108)接收的文件类型(106)的使用情况统计 信息(102)可以包括诸如以下使用模式·访问频率(例如,写入访问的频率或读取访问的频率),·使用时机(例如,启动时、关机时、每日、每周、文件创建之后立即等等),·文件类型(106)的平均生存期(例如,短期生存、长期生存、永久等等),·使用文件类型(106)的进程的优先级(例如,用户定义的优先级、管理员定义的 优先级、赋予系统关键进程的优先级,等等)。使用模式对于不同的文件类型可能是不同的。例如,可执行文件、共享二进制文件 和静态文件可能从其在操作系统或应用补丁被安装时改变之后就很少被改变。因此,使用 情况统计信息(102)可以表明低写入频率。与之不同,日志文件和配置文件(例如,操作系 统注册表文件)可能非常频繁地改变。因此,使用情况统计信息(102)可以表明高写入频率。另一示例涉及可能被频繁读取但一般不会被改写的媒体文件。另外,使用情况统 计信息(102)还可以基于系统的类型而变化。例如,系统启动文件在经常被重启或开/关 的个人计算机上可能被频繁读取,而系统启动文件在服务器上可能很少被读取,因为服务 器很少被重启。文件类型(106)的使用情况统计信息(102)可以由文件定位引擎(108)从任何组 件获得或者可以由文件定位引擎(108)本身生成。使用情况统计信息(102)可以由文件系 统或另一实体收集并被提供给文件定位引擎(108)。文件定位引擎在一个实施例中,系统(100)内的文件定位引擎(108) —般表示包括逻辑的软件 和/或硬件,所述逻辑用于基于文件(104)的文件类型(106)和/或存储位置属性(110) 来确定在何处存储文件(104)(或者文件的一部分)。文件定位引擎(108)可被配置为确 定在存储仓库(114)中的哪个存储设备中存储文件(104)(如果使用多于一个存储设备的 话)。文件定位引擎(108)还可被配置为选择存储仓库(114)内的区域或特定存储位置来 存储文件(104)。文件定位引擎(108)可以是在一个或多个服务器上运行的应用,并且在一 些实施例中可以是对等应用或者驻留在单个计算系统(例如,个人计算机、手持式设备、电话亭、交通工具上的计算机或者任何其他具有存储设备的系统)上。在一个实施例中,文件定位引擎(108)接收到的文件(104) —般表示要被存储到 存储仓库(114)上的任何文件。文件(104)可被存储到存储仓库(114)以便立即访问,将 来访问,或者甚至只是用于备份,而以后可能再次被访问也可能不再被访问。存储驱动器在一个实施例中,(一个或多个)基于从文件定位引擎(108)直接或间接接收的 一组指令来存储并从存储仓库(114)取回文件。例如,文件定位引擎(108)可以向文件系 统提供文件(104)和用于存储文件的存储位置,文件系统随后将这些指令转发到(一个或 多个)存储驱动器(112)。(一个或多个)存储驱动器(112)所接收的指令可以简单地指 定存储设备,在此情况下(一个或多个)存储驱动器(112)确定在存储设备内的何处存储 文件。这些指令还可指定存储设备的区域、存储设备上的特定存储位置、存储仓库或者存储 仓库中的位置。基于文件类型和存储位置属性来选择存储位置 图2-4示出了根据本发明的一个或多个实施例的文件定位的流程图。在一个或多 个实施例中,以下描述的步骤中的一个或多个可被省略、重复和/或以不同的顺序执行。因 此,图2-4所示的步骤的具体安排不应被解释为限制了本发明的范围。图2示出了基于文件的文件类型和存储位置属性来选择存储位置的流程图。可以 为新接收的尚未被存储的文件或者为已被存储的文件选择存储位置。例如,可以为先前已 被存储的文件选择新存储位置,随后可将这些文件移动到新选择的存储位置。首先,获得文 件和文件的文件类型(步骤2020)。文件和文件的文件类型可以从同一来源(例如,软件应 用、文件系统等等)或者从不同来源获得。文件的文件类型可被包括在与文件相关联的元 文件中并与文件一起被接收。如果接收到未知的文件类型,则可将该文件分类到一般杂项 类别中。在一个实施例中,获得与文件的文件类型相关联的使用情况统计信息(步骤 204)。可以在每当接收到文件以及文件类型时自动获得使用情况统计信息。或者,可以基 于文件类型在本地系统内或通过网络搜索使用情况统计信息。例如,可以维护并周期性地 更新包含不同文件类型和相应的使用情况统计信息的表格。在一个实施例中,获得使用情 况统计信息可涉及使用时间戳。例如,每当一个文件被访问时,就可以记录一个时间戳,其 指示出访问时间和访问类型。这些时间戳随后可用于计算每类访问的访问频率。然后,同 一类型的多个文件的访问频率可以以某种方式被组合(例如,访问频率的平均、众数、中值 等等)以获得与该文件类型相关联的使用情况统计信息。在一个实施例中,识别可用于分配的存储位置(步骤206),直到基于文件类型的 使用情况统计信息和存储位置的属性找到适合于文件存储的存储位置为止(步骤208)。为 了找到合适的存储位置,将文件类型的使用情况统计信息与存储位置的属性相匹配。例如, 高强度的使用与允许高速读取/写入访问和/或失效前的较多次读取/写入的存储位置相 匹配。低强度的使用与允许较低速度读取/写入访问和/或失效前的软少次读取/写入的 存储位置相匹配。在一个实施例中,匹配是基于所有可用存储位置与许多不同文件类型的 使用情况统计信息之间的比较的。例如,在可用的存储位置中,前四分之一的最快或最持久 的存储位置与前四分之一的使用最频繁的文件相匹配。
另一示例涉及使用传统盘片驱动器和固态驱动器。传统盘片驱动器一般往往具有 非常高的寿命或估计生存期,这被定义为在失效前允许很多次读取或写入。然而,传统盘片 驱动器往往较慢。与之相比,固态驱动器一般具有较低的寿命(一般在失效前有5,000至 100, 000个读取/写入周期),但却提供更高的读取/写入速度。因此,如果例如操作系统 利用后台进程持续(例如每秒)记录用户活动(其中写入速度不重要),则传统盘片驱动器 可能更合适,因为传统盘片驱动器在失效前将允许极多次的写入。固态驱动器在此示例中 可能不合适,因为固态驱动器更可能因持续写入而失效。第三示例涉及要求多次随机访问读取的应用。传统盘片驱动器与固态驱动器相比 具有较慢的随机访问读取时间,因为传统盘片驱动器受盘片的旋转速度(一般在5,400rpm 和15,OOOrpm之间)和磁头在盘片上的移动所限。与之不同,固态驱动器不具有任何盘片、 磁头或其他可能极大影响随机访问读取的速度的移动部件。在此情况下,如果随机访问读 取速度很重要的话,则固态驱动器可能更适合于存储文件。在一个实施例中,文件访问的时机可用于确定合适的存储位置。例如,在一些情况 下,由浏览器应用创建的临时互联网文件或者用户下载的可执行文件可能在文件创建之后 立即被使用,在此之后则很少被使用。另外,同一用户可能往往会下载媒体文件到一个大的 媒体文件库中,但很少使用。在此示例中,考虑到基于用户习惯的预期使用,由浏览器应用 创建的临时互联网文件或用户下载的可执行文件可与高速存储位置相匹配。此外,下载到 很少使用的媒体文件的一个大的库中的媒体文件可与较慢速的存储位置相匹配。在一个实 施例中,文件可以周期性地被从快性能存储位置传递到慢性能存储位置。在该示例中,由浏 览器创建的临时互联网文件在从创建起一日或一周之后可被移动到较慢性能的存储位置, 因为预期使用强度会随着时间而降低。从高性能存储位置到慢性能存储位置的这种自动传 送的预定时间可由用户、管理员、制造商配置或者可基于用户的特定使用习惯来确定。在一个实施例中,文件类型的使用情况统计信息和存储位置的属性之间的匹配考 虑了操作环境或系统。例如,对不同文件类型的访问在膝上型电脑、服务器、手持设备、机场 电话亭等等中可能是不同的。机场电话亭上的启动文件可被存储在慢性能存储位置上,因 为机场电话亭很少被重启动,而膝上型电脑上的启动文件可被频繁访问并且相应地存储在 快性能存储位置中。另外,启动机场电话亭的速度对于用户来说可能是不重要的,而启动膝 上型电脑的速度对于用户来说则可能是很重要的。虽然以上提供的示例是针对文件的文件类型的使用情况统计信息来描述的,但是 上述示例中的每一个也可应用于基于特定文件的使用情况统计信息的存储位置匹配。例 如,控制建筑物中的电梯音乐的计算机系统可包含大量很少被使用的音频文件,而在建筑 物电梯中则持续读取并播放一个一分钟长的音频剪辑。在此情况下,当音频文件被接收到 时,计算机系统可将该音频文件存储在任何位置,然而计算机系统可将该一分钟长的音频 剪辑存储在具有高寿命的存储位置中,以允许持续读取访问,而不会失效。另外,当用户切 换在电梯中播放的音频文件时,系统可以将持续播放的新音频文件传送到具有高读取寿命 的存储位置。因此,在一个实施例中,文件定位是基于访问实际文件的频率和存储位置的寿 命的。一旦识别了用于存储文件的合适存储位置,根据一个或多个实施例文件系统就被 指示将文件存储在所识别的存储位置中(步骤210)。响应于这些指令,文件系统向用于存储文件的相应(一个或多个)存储驱动器提供文件和指令。
利用临时文件来选择存储位置图3示出了根据一个或多个实施例的使用临时文件的基于文件的文件类型和存 储设备属性来选择存储位置的流程图。用于存储位置选择的此方法涉及使用临时文件来填 充可用存储空间,并且选择性地删除临时文件以强制文件存储到其中临时文件已被删除的 存储位置中。首先,根据一个或多个实施例,临时填充文件被存储在可用存储位置中(步骤 302)。可用存储位置可以被分区成任意大小的多个区域,其中临时填充文件被存储在每个 区域中。区域的大小例如可以是存储设备中存储的文件的平均大小或者其任何变体。另外, 每个区域甚至可具有不同大小。在一个实施例中,存储位置被分区成区域,使得同一区域内 的存储位置具有相同的速度和/或寿命。在一个实施例中,以与以上参考步骤202描述的方式基本上相同的方式获得文件 和文件的文件类型(步骤304)。另外,以与以上参考步骤204描述的方式基本上相同的方 式为该文件类型获得使用情况统计信息(文件306)。在一个实施例中,识别具有临时填充 文件的存储位置(步骤308),直到基于文件类型的使用情况统计信息和存储位置的属性找 到适合于文件存储的存储位置为止(步骤310)。判定存储位置是否适合于文件存储的示例 性步骤在上文中针对步骤206和步骤208描述。根据一个或多个实施例,一旦识别了存储位置,就向文件系统给出删除所识别的 存储位置中的临时填充文件或者调整这些临时填充文件的大小的指令(步骤312)。例如, 如果给定的区域内的存储位置被识别用于文件存储,则包含所识别的存储位置的区域内的 所有(一个或多个)临时文件都可被删除或调整到较小的大小;或者可以只有所识别的存 储位置处的临时文件被删除或被调整到较小的大小。对临时填充文件进行删除或调整大小 使得文件系统确认所识别的存储位置实际上可用于分配。另外,由于可用存储位置的其余 部分被临时填充文件所占用,因此文件系统确定所识别的存储位置是仅有的空闲的用于分 配的存储位置。因此,当文件系统随后被指示存储文件时(步骤314),文件系统将文件存储 在所识别的存储位置中(步骤316)。利用存储位置映射来选择存储位置图4示出了利用存储位置映射基于文件的文件类型和存储设备属性来选择存储 位置的流程图。在一个实施例中,存储位置选择是通过截取从文件系统到存储驱动器的指 令、修改这些指令并且将经修改的指令提供给存储驱动器来执行的。或者,存储驱动器可执 行下面描述的步骤。来自文件系统的包括数据(例如文件)和文件系统选择来存储文件的 (一个或多个)文件存储位置的指令被逻辑上位于文件系统和(一个或多个)存储驱动器 之间的实体(例如,软件和/或硬件模块)所接收(步骤402)。在一个实施例中,此实体可 以是存储驱动器本身的一部分。文件的文件类型可以从除文件系统本身以外的另外的来源 (例如,文件系统过滤驱动器)接收(步骤404)。随后,获得与文件的文件类型相关联的使 用情况统计信息(步骤406)。然后,基于与文件类型相关联的使用情况统计信息和第二存 储位置的属性,识别比第一存储位置更适合于存储文件的(一个或多个)第二存储位置,如 以上联系图2所述(步骤208)。指令随后被发送到(一个或多个)存储驱动器以将文件存 储在第二存储位置中(步骤410)。因此,在一个或多个实施例中,文件系统选择的存储位置被用于存储文件的另一存储位置所替换。另外,记录文件存储位置到第二存储位置的映 射,其表明假定在第一存储位置中的文件实际上在第二存储位置中(步骤412)。以后每当 文件系统请求访问(读取或写入)该文件时,文件系统实际请求从第一存储位置读取文件 或向第一存储位置写入文件。然而,此访问指令也被截取,并且基于先前记录的映射,文件 被写入到第二存储位置或者从第二存储位置读取(步骤414)。因此,在一个实施例中,文件 系统不知晓文件的实际定位。实际定位是在文件系统级下处理的。基于存储位置的估计生存期的使用情况选择存储位置在一个或多个实施例中,存储位置选择是基于不同存储位置或数据存储设备的估 计生存期的相对使用情况的。如以上在“存储位置属性”部分中所述,不同的数据存储设备 的寿命或估计生存期可能不同。寿命或估计生存期甚至在同一数据存储设备内的不同存储 区域之间也可能不同。例如,失效前写入次数或失效前读取次数对于固态驱动器和传统旋 转盘片驱动器可能是不同的。使用情况是通过用实际使用除以估计生存期而确定的百分 比。例如,写入的使用百分比可通过用对一存储位置的实际写入次数除以失效前写入次数 来确定。一存储位置的相对使用百分比是该存储位置的使用百分比与其他存储位置的使用 百分比相比较的结果。在一个实施例中,存储位置被选择用于分配,使得不同存储区域上的使用百分比 大致是平衡的。例如,如果第一存储区域的失效前写入次数为100,000次写入,而实际使用 情况为50,000次写入,则第一存储区域的使用百分比为50%。另外,如果第二存储区域的 失效前写入次数是5,000次写入,而实际使用情况为2,000次写入,则第二存储区域的使 用百分比为40%。在这个涉及第一存储区域和第二存储区域的示例中,第二存储区域的相 对使用百分比最低。因此,第二存储区域将被分配用于第一存储请求,直到估计的5,000失 效前写入次数中的至少2,500次写入已完成为此,此时第二存储区域达到50%的使用百分 比。这样,不同存储区域上的使用百分比被保持大致相等,使得任何一个特定存储区域的失 效不会远早于其他存储区域。硬件概述图5是示出本发明的实施例可在其上实现的计算机系统500的框图。计算机系统 500包括用于传输信息的总线502或其他通信机构以及与总线502相耦合用于处理信息的 处理器504。计算机系统500还包括诸如随机访问存储器(RAM)或其他动态存储设备之类 的主存储器506,其耦合到总线502,用于存储信息和处理器504要执行的指令。主存储器 506还可用于存储在处理器504执行指令期间的临时变量或其他中间信息。计算机系统500 还包括只读存储器(ROM) 508或其他静态存储设备,其耦合到总线502,用于存储静态信息 和处理器504的指令。提供了诸如磁盘或光盘之类的存储设备510,其耦合到总线502,用 于存储信息和指令。计算机系统500可以经由总线502耦合到显示器512,例如阴极射线管(CRT),用 于向计算机用户显示信息。包括字母数字和其他键的输入设备514被耦合到总线502,用于 向处理器504传输信息和命令选择。另一类用户输入设备是光标控制装置516,例如鼠标、 轨迹球或光标方向键,用于向处理器504传输方向信息和命令选择,并用于控制显示器512 上的光标移动。该输入设备一般具有两个轴(第一轴(例如χ)和第二轴(例如y))上的 两个自由度,其允许设备指定平面中的位置。
本发明涉及使用计算机系统500来实现这里描述的技术。根据本发明的一个实施 例,这些技术由计算机系统500响应于处理器504执行包含在主存储器506中的一条或多 条指令的一个或多个序列而执行。这种指令可以被从另一计算机可读介质(如存储设备 510)读取到主存储器506中。对包含在主存储器506中的指令序列的执行使得处理器504 执行这里描述的过程步骤。在替换实施例中,可以使用硬线电路来替代软件指令或与软件 指令相组合以实现本发明。因此,本发明的实施例并不限于硬件电路和软件的任何特定组
I=I O这里所用的术语“机器可读介质”指参与提供使得机器以特定方式工作的数据的 任何介质。在利用计算机系统500实现的实施例中,例如,在向处理器504提供指令以供执 行时,涉及了各种机器可读介质。这种介质可以采取许多形式,包括但不限于存储介质和传 输介质。存储介质包括非易失性介质和易失性介质。非易失性介质例如包括光盘或磁盘, 如存储设备510。易失性介质包括动态存储器,如主存储器506。传输介质包括同轴电缆、 铜线和光纤,包括构成总线502的线路。传输介质也可以采取声波或光波的形式,例如在无 线电波和红外文件通信期间生成的声波或光波。所有这种介质都必须是有形的,以使得介 质所承载的指令能够被物理机构检测到,该物理机构将指令读取到机器中。机器可读介质的常见形式例如包括软盘、柔性盘、硬盘、磁带或任何其他磁介质, CD-ROM、任何其他光介质,穿孔卡、纸带、任何其他具有孔图案的物理介质,RAM、PROM和 EPROM、FLASH-EPR0M、任何其他存储器芯片或卡盘,下文中描述的载波,或者计算机可以读 取的任何其他介质。各种形式的机器可读介质可用于将一条或多条指令的一个或多个序列传送到处 理器504以供执行。例如,指令可以首先承载在远程计算机的磁盘上。远程计算机可以将 指令加载到其动态存储器中,并利用调制解调器经由电话线发送指令。计算机系统500本 地的调制解调器可以接收电话线上的文件,并使用红外发送器来将文件转换为红外信号。 红外检测器可以接收在红外信号中携带的文件,并且适当的电路可以将文件置于总线502 上。总线502将文件传送到主存储器506,处理器504从主存储器506取得指令并执行指 令。主存储器506接收的指令可以可选地在处理器504执行之前或之后存储在存储设备 510 上。计算机系统500还包括耦合到总线502的通信接口 518。通信接口 518提供到与 本地网络522相连接的网络链路520的双向文件通信耦合。例如,通信接口 518可以是综 合业务数字网络(ISDN)卡或调制解调器,以提供与相应类型电话线的数字通信连接。又例 如,通信接口 518可以是局域网(LAN)卡,以提供与兼容LAN的文件通信连接。也可以实现 无线链路。在任何这种实现方式中,通信接口 518发送并接收电的、电磁的或光信号,这些 信号携带了表示各种类型信息的数字数据流。网络链路520通常通过一个或多个网络提供到其他文件设备的文件通信。例 如,网络链路520可以通过本地网络522提供与主机计算机524或由因特网服务供应商 (ISP) 526操作的文件设备的连接。ISP 526进而通过全球分组文件通信网络(现在通常称 为“因特网”)528提供文件通信服务。本地网络522和因特网528都使用携带数字文件流 的电的、电磁的或光信号。经过各种网络的信号和在网络链路520上并经过通信接口 518 的信号(这些信号携带去往和来自计算机系统500的数字文件)是传输信息的载波的示例性形式。计算机系统500可以通过(一个或多个)网络、网络链路520和通信接口 518发 送消息并接收文件,其中包括程序代码。在因特网示例中,服务器530可以通过因特网528、 ISP 526、本地网络522和通信接口 518发送针对应用程序的请求代码。接收到的代码可以在接收时被处理器504执行,和/或被存储在存储设备510或 其他非易失性存储装置中以供以后运行。这样,计算机系统500可以获得载波形式的应用 代码。扩展和替换在以上说明书中,已参考对于每种实现方式可能不同的许多具体细节描述了本发 明的实施例。因此,关于本发明是什么以及申请人希望本发明是什么的唯一和排他指示是 根据本申请授权的那套采取其授权时的特定形式的权利要求,包括任何后续的更正。这里 针对这种权利要求中包含的术语明确阐述的任何限定都应当决定这种术语在权利要求中 使用时的含义。因此,在权利要求中没有明确记载的限定、要素、性质、特征、优点或属性都 不应当以任何方式限制这种权利要求的范围。因此,说明书和附图被认为是说明性的而不 是限制性的。
权利要求
一种用计算机实现的方法,包括获得多个存储位置中每一个的属性;获得文件和所述文件的文件类型;获得与所述文件类型相关联的至少一个使用情况统计信息,其中所述至少一个使用情况统计信息是通过监视具有所述文件类型的文件的使用情况来生成的;基于所述多个存储位置中的第一存储位置的属性和与所述文件的文件类型相关联的至少一个使用情况统计信息,选择所述第一存储位置来存储所述文件;以及使得所述文件被存储到所述第一存储位置。
2.如权利要求1所述的方法,还包括响应于预定时间段的终止,将所述文件从所述第一存储位置传送到第二存储位置, 其中所述第二存储位置与所述第一存储位置相比具有较低的性能。
3.如权利要求1所述的方法,还包括在所述多个存储位置中的每一个中存储临时填充文件; 其中使得所述文件被存储到所述第一存储位置包括删除所述第一存储位置中的临时填充文件或者调整所述第一存储位置中的临时填充 文件的大小,以释放所述第一存储位置用于存储所述文件。
4.如权利要求1所述的方法,其中使得所述文件被存储到所述第一存储位置包括 从文件系统接收将所述文件存储到第二存储位置的指令;确定所述第一存储位置是比所述第二存储位置更适合存储所述文件的位置;以及 指示存储驱动器将所述文件存储在所述第一存储位置而不是所述第二存储位置中。
5.如权利要求4所述的方法,还包括记录计划被存储在所述第二存储位置中的文件被存储在了所述第一存储位置中。
6.如权利要求5所述的方法,还包括接收来自所述文件系统的从所述第二存储位置取回所述文件的请求;以及 响应于来自所述文件系统的请求,从所述第一存储位置取回所述文件。
7.如权利要求1所述的方法,还包括 其中所述文件是从文件系统获得的;并且其中所述文件的文件类型是从文件系统过滤驱动器获得的。
8.如权利要求1所述的方法,其中所述至少一个使用情况统计信息是与所述文件类型 相关联的写入频率。
9.如权利要求1所述的方法,其中所述至少一个使用情况统计信息是与所述文件类型 相关联的读取频率。
10.如权利要求1所述的方法,其中基于所述第一存储位置的属性选择所述第一存储 位置包括基于与所述第一存储位置相关联的写入速度来选择所述第一存储位置。
11.如权利要求1所述的方法,其中基于所述第一存储位置的属性选择所述第一存储 位置包括基于与所述第一存储位置相关联的读取速度来选择所述第一存储位置。
12.如权利要求1所述的方法,其中基于所述第一存储位置的属性选择所述第一存储 位置包括基于与所述第一存储位置相关联的失效前写入次数来选择所述第一存储位置。
13.如权利要求1所述的方法,其中基于所述第一存储位置的属性选择所述第一存储2位置包括基于与所述第一存储位置相关联的失效前读取次数来选择所述第一存储位置。
14.如权利要求1所述的方法,其中基于所述第一存储位置的属性选择所述第一存储 位置包括基于在所述第一存储位置处每秒能够执行的输入/输出操作的数目(IOPS)来选 择所述第一存储位置。
15.如权利要求1所述的方法,其中所述多个存储位置被包括在与中央处理单元相分 离的一个或多个次存储设备中。
16.如权利要求1所述的方法,其中选择所述多个存储位置中的第一存储位置来存储 所述文件还基于所述多个存储位置中每一个的相对使用百分比。
17.如权利要求1所述的方法,其中使得所述文件被存储到所述第一存储位置包括从 原本存储所述文件的第二存储位置传送所述文件。
18. 一种用计算机实现的方法,包括 获得多个存储位置中每一个的寿命信息; 获得文件和所述文件的访问频率;基于所述多个存储位置中的第一存储位置的寿命和所述文件的访问频率,选择所述第 一存储位置来存储所述文件;以及使得所述文件被存储到所述第一存储位置。
19.如权利要求18所述的方法,其中所述第一存储位置与第二存储位置相比具有相对 较高的寿命。
20.如权利要求18所述的方法,其中使得所述文件被存储到所述第一存储位置包括 从文件系统接收将所述文件存储到第二存储位置的指令;确定所述第一存储位置是比所述第二存储位置更适合存储所述文件的位置;以及 指示存储驱动器将所述文件存储在所述第一存储位置而不是所述第二存储位置中。
21.如权利要求18所述的方法,还包括在所述多个存储位置中的每一个中存储临时填充文件; 其中使得所述文件被存储到所述第一存储位置包括删除所述第一存储位置中的临时填充文件或者调整所述第一存储位置中的临时填充 文件的大小,以释放所述第一存储位置用于存储所述文件。
22.一种用计算机实现的方法,包括在多个存储位置中的每一个中存储临时填充文件; 选择所述多个存储位置中的一存储位置来存储文件;通过以下步骤来使得所述文件被存储在所述多个存储位置中的所述一存储位置中 从所述多个存储位置中的所述一存储位置删除所述临时填充文件或者调整所述临时 填充文件的大小;以及随后请求存储所述文件。
23. 一种用计算机实现的方法,包括从文件系统接收将文件存储到第一存储位置的指令; 确定第二存储位置是比所述第二存储位置更适合存储所述文件的位置; 指示存储驱动器将所述文件存储在所述第二存储位置而不是所述第一存储位置中; 记录计划被存储在所述第一存储位置中的文件被存储在了所述第二存储位置中;接收来自所述文件系统的从所述第一存储位置取回所述文件的请求;以及 响应于来自所述文件系统的从所述第一存储位置取回所述文件的请求,从所述第二存 储位置取回所述文件。
24.一种计算机可读存储介质,包括一个或多个指令序列,所述指令序列在被一个或多 个处理器执行时使得获得多个存储位置中每一个的属性; 获得文件和所述文件的文件类型;获得与所述文件类型相关联的至少一个使用情况统计信息,其中所述至少一个使用情 况统计信息是通过监视具有所述文件类型的文件的使用情况来生成的;基于所述多个存储位置中的第一存储位置的属性和与所述文件的文件类型相关联的 至少一个使用情况统计信息,选择所述第一存储位置来存储所述文件;以及 使得所述文件被存储到所述第一存储位置。
25.如权利要求24所述的计算机可读存储介质,其中被所述一个或多个处理器执行的 一个或多个序列还使得响应于预定时间段的终止,将所述文件从所述第一存储位置传送到第二存储位置, 其中所述第二存储位置与所述第一存储位置相比具有较低的性能。
26.如权利要求24所述的计算机可读存储介质,其中被所述一个或多个处理器执行的 一个或多个序列还使得在所述多个存储位置中的每一个中存储临时填充文件; 其中使得所述文件被存储到所述第一存储位置包括删除所述第一存储位置中的临时填充文件或者调整所述第一存储位置中的临时填充 文件的大小,以释放所述第一存储位置用于存储所述文件。
27.如权利要求24所述的计算机可读存储介质,其中使得所述文件被存储到所述第一 存储位置包括从文件系统接收将所述文件存储到第二存储位置的指令;确定所述第一存储位置是比所述第二存储位置更适合存储所述文件的位置;以及指示存储驱动器将所述文件存储在所述第一存储位置而不是所述第二存储位置中。
28.如权利要求27所述的计算机可读存储介质,其中被所述一个或多个处理器执行的 一个或多个序列还使得记录计划被存储在所述第二存储位置中的文件被存储在了所述第一存储位置中。
29.如权利要求28所述的计算机可读存储介质,其中被所述一个或多个处理器执行的 一个或多个序列还使得接收来自所述文件系统的从所述第二存储位置取回所述文件的请求;以及 响应于来自所述文件系统的请求,从所述第一存储位置取回所述文件。
30.如权利要求24所述的计算机可读存储介质,其中被所述一个或多个处理器执行的 一个或多个序列还使得其中所述文件是从文件系统获得的;并且其中所述文件的文件类型是从文件系统过滤驱动器获得的。
31.如权利要求24所述的计算机可读存储介质,其中所述至少一个使用情况统计信息是与所述文件类型相关联的写入频率。
32.如权利要求24所述的计算机可读存储介质,其中所述至少一个使用情况统计信息 是与所述文件类型相关联的读取频率。
33.如权利要求24所述的计算机可读存储介质,其中基于所述第一存储位置的属性选 择所述第一存储位置包括基于与所述第一存储位置相关联的写入速度来选择所述第一存 储位置。
34.如权利要求24所述的计算机可读存储介质,其中基于所述第一存储位置的属性选 择所述第一存储位置包括基于与所述第一存储位置相关联的读取速度来选择所述第一存 储位置。
35.如权利要求24所述的计算机可读存储介质,其中基于所述第一存储位置的属性选 择所述第一存储位置包括基于与所述第一存储位置相关联的失效前写入次数来选择所述 第一存储位置。
36.如权利要求24所述的计算机可读存储介质,其中基于所述第一存储位置的属性选 择所述第一存储位置包括基于与所述第一存储位置相关联的失效前读取次数来选择所述 第一存储位置。
37.如权利要求34所述的计算机可读存储介质,其中基于所述第一存储位置的属性选 择所述第一存储位置包括基于在所述第一存储位置处每秒能够执行的输入/输出操作的 数目(IOPS)来选择所述第一存储位置。
38.如权利要求24所述的计算机可读存储介质,其中所述多个存储位置被包括在与中 央处理单元相分离的一个或多个次存储设备中。
39.如权利要求24所述的计算机可读存储介质,其中选择所述多个存储位置中的第一 存储位置来存储所述文件还基于所述多个存储位置中每一个的相对使用百分比。
40.如权利要求24所述的计算机可读存储介质,其中使得所述文件被存储到所述第一 存储位置包括从原本存储所述文件的第二存储位置传送所述文件。
41.一种计算机可读存储介质,包括一个或多个指令序列,所述指令序列在被一个或多 个处理器执行时使得获得多个存储位置中每一个的寿命信息;获得文件和所述文件的访问频率;基于所述多个存储位置中的第一存储位置的寿命和所述文件的访问频率,选择所述第 一存储位置来存储所述文件;以及使得所述文件被存储到所述第一存储位置。
42.如权利要求41所述的计算机可读存储介质,其中所述第一存储位置在旋转盘片驱 动器内,并且未被选择来用于存储所述文件的第二存储位置在固态驱动器内,其中所述旋 转盘片驱动器与所述固态驱动器相比具有相对较高的寿命。
43.如权利要求41所述的计算机可读存储介质,其中使得所述文件被存储到所述第一 存储位置包括从文件系统接收将所述文件存储到第二存储位置的指令;确定所述第一存储位置是比所述第二存储位置更适合存储所述文件的位置;以及指示存储驱动器将所述文件存储在所述第一存储位置而不是所述第二存储位置中。
44.如权利要求41所述的计算机可读存储介质,其中被所述一个或多个处理器执行的 一个或多个序列还使得在所述多个存储位置中的每一个中存储临时填充文件; 其中使得所述文件被存储到所述第一存储位置包括删除所述第一存储位置中的临时填充文件或者调整所述第一存储位置中的临时填充 文件的大小,以释放所述第一存储位置用于存储所述文件。
45.一种计算机可读存储介质,包括一个或多个指令序列,所述指令序列在被一个或多 个处理器执行时使得在多个存储位置中的每一个中存储临时填充文件; 选择所述多个存储位置中的一存储位置来存储文件;通过以下步骤来使得所述文件被存储在所述多个存储位置中的所述一存储位置中 从所述多个存储位置中的所述一存储位置删除所述临时填充文件或者调整所述临时 填充文件的大小;以及随后请求存储所述文件。
46.一种计算机可读存储介质,包括一个或多个指令序列,所述指令序列在被一个或多 个处理器执行时使得从文件系统接收将文件存储到第一存储位置的指令; 确定第二存储位置是比所述第一存储位置更适合存储所述文件的位置; 指示存储驱动器将所述文件存储在所述第二存储位置而不是所述第一存储位置中; 记录计划被存储在所述第一存储位置中的文件被存储在了所述第二存储位置中; 接收来自所述文件系统的从所述第一存储位置取回所述文件的请求;以及 响应于来自所述文件系统的从所述第一存储位置取回所述文件的请求,从所述第二存 储位置取回所述文件。
全文摘要
提供了用于选择存储位置的方法。该方法包括通过将存储位置的速度和/或寿命与文件的文件类型的访问频率或者文件本身的访问频率相匹配来选择存储位置用于文件存储。该方法通过将频繁访问的文件与更高性能的存储位置、存储设备或存储系统相匹配来实现了对存储位置的优化使用。
文档编号G06F17/30GK101911074SQ200980102072
公开日2010年12月8日 申请日期2009年1月9日 优先权日2008年1月10日
发明者克雷格·詹森, 加里·权, 巴希尔·托马斯 申请人:帝斯科匹尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1