基于时间的数据分割的制作方法

xiaoxiao2020-7-22  14

基于时间的数据分割的制作方法
【专利摘要】根据一种实施方式,存储系统的文件系统(FS)被分割成多个FS分区,其中每个FS分区存储数据文件的段。响应于将文件写至存储系统的请求,文件被存储在FS分区的基于文件的时间属性所选择的第一FS分区中,以使得具有类似时间属性的文件被存储在相同的FS分区中。
【专利说明】基于时间的数据分割
[0001]相关申请
[0002]该申请涉及2011年3月31日提交的名称为“Resource Efficient Scale-OutFile Systems”的同时待审的美国专利申请N0.13/077,779,其全部内容通过引用被合并于此。
【技术领域】
[0003]本发明的实施方式一般地涉及存储系统的文件系统。特别地,本发明的实施方式涉及基于时间进行数据分割。
【背景技术】
[0004]由原始数据(primary data)增长和由新的工作量(如盘式备份)的出现而引起对建立更大存储系统的需求的不断增加。为了更好的性能和成本效率,传统上被存储在磁带上的备份现在正被存储在盘式存储系统上。这种备份系统具有通常比传统原始存储系统(primary storage system)大几倍的巨大占用空间(footprint),并且仍然不能满足最大的企业客户的需求。
[0005]不幸地,由于巨大内存需求,扩展文件系统容量不是微不足道的问题,对于重复项消除系统(deduplicated system)尤其如此。重复项消除文件系统在内存中为每个物理数据块维持一些元数据。该元数据开销的范围从对于最佳文件系统而言的每个块几个比特变化到对于更基本实施而言的超过十二字节。向系统增加内存以扩展容量并不是微不足道的。传统的服务器类母板对能够被附加至其上的内存数量具有限制。主内存也是“高价”资源,其不仅仅是系统中最贵部件之一,其还经常是最耗能部件之一。因此,一直存在减小文件系统的内存占用空间的需要。
【专利附图】

【附图说明】
[0006]通过示例的方式来阐述本发明的实施方式,但是并不限制在附图的图示中,在附图中类似的参考指示相似的元件。
[0007]图1是示出根据本发明一种实施方式的存储系统的框图;
[0008]图2是示出根据本发明一种实施方式的段存储引擎的框图;
[0009]图3是示出根据本发明一种实施方式的存储系统的框图;
[0010]图4是示出根据本发明一种实施方式的用于管理存储系统的资源的方法的流程图;
[0011]图5是示出根据本发明一种实施方式的用于管理由存储系统的文件系统分区使用的资源的方法的流程图;
[0012]图6是示出根据本发明另一实施方式的用于管理由存储系统的文件系统分区使用的资源的方法的流程图;
[0013]图7是示出根据本发明另一实施方式的用于管理由存储系统的文件系统分区使用的资源的方法的流程图;
[0014]图8是示出根据本发明另一实施方式的存储系统的框图;
[0015]图9是示出典型文件系统的索引节点(inode)的示例的图;
[0016]图10是示出根据本发明一种实施方式的用于分割文件系统的方法的流程图;
[0017]图11是示出根据本发明另一实施方式的用于分割文件系统的方法的流程图;
[0018]图12是示出可以与本发明实施方式一起使用的数据存储系统的示例的框图;
[0019]图13是可以与本发明一种实施方式一起使用的数据处理系统的框图。
【具体实施方式】
[0020]本发明的不同实施方式和方面将参考以下所讨论的细节而被描述,并且附图将阐述所述不同实施方式。以下描述和附图是本发明的说明,并不被解释为限制本发明。多个具体细节被描述以提供本发明的不同实施方式的透彻理解。但是,在某些情况下,熟知的或传统细节不被描述以便提供本发明实施方式的简明讨论。
[0021]说明书中对“一种实施方式”或“实施方式”的引用意味着结合该实施方式描述的特定的特征、结构、或特性可以被包括在本发明的至少一种实施方式中。说明书中不同地方出现的短语“在一种实施方式中”并不必都指相同的实施方式。
[0022]根据一些实施方式,文件系统被分割成多个文件系统分区。文件系统分区被托管(host)在存储系统中,并分享存储计算节点的系统内存。每个文件系统分区可以被存储在存储系统的多个存储单元中的一个存储单元中。每个文件系统分区包括元数据,该元数据具有足够的信息来在由文件系统分区代表的单个较大逻辑文件系统中识别其自身。这种元数据还包括足够的信息以允许访问其相关的数据。当正在被访问时,每个文件系统分区可以被交换至系统内存中。类似的,当不被访问时,每个文件系统分区可以被交换出系统内存。
[0023]在一种实施方式中,文件系统分区根据调度或驱逐算法(eviction algorithm)而被交换至和交换出内存,这确保一旦分区被加载至内存中,足够的IO需求在被考虑交换出之前在文件系统分区上被执行。这确保交换分区的花费被摊销到多个IO操作之上。即使没有足够的当前待定的IO请求,调度算法保持文件系统分区被加载至预期的潜在的将来的IO操作中。调度算法还是公平无饥饿的。
[0024]在一种实施方式中,文件系统按照某种方式被分割以确保存在强输入输出(IO)局域性(locality),即,10请求在给定时间时被仅仅指向一个或较少的文件系统分区。在一种实施方式中,基于文件的时间属性(例如其最后被修改的时间),文件被分组到分区中。对于长期备份和归档工作量,该分割方案提供较好的10局域性。由于文件通常是局域性域(例如,应用程序常常访问文件的部分或全部),所以通过在一个文件系统分区中存储文件的所有内容,这降低了大量的用于访问文件的文件系统分区交换。
[0025]图1是示出根据本发明一种实施方式的存储系统的框图。参考图1,系统100包括但不限于通过网络103通信地耦合至存储系统104的一个或多个客户端系统101-102。客户端101-102可以是任何类型的客户端,诸如服务器、个人计算机(如台式电脑、笔记本电脑、和平板电脑)、“瘦”客户端、个人数字助理(PDA)、激活Web的装置、游戏设备、媒体播放器、或移动电话(如,智能手机)等。网络103可以是任何类型的网络,诸如,局域网(LAN)、广域网(WAN)(如因特网)、企业内部网、城域网(MAN)、存储区域网(SAN)、总线、或它们的组合,有线的和/或无线的网络。
[0026]存储系统104可以包括任何类型的服务器或服务器集群。例如,存储系统104可以是用于各种不同目的中的任何目的(诸如,用于向多个用户提供对共享数据的访问和/或用于备份任务关键数据)的存储服务器。存储系统104可以是例如文件服务器(例如,用于提供NAS能力的装置)、基于块的存储服务器(例如,被用于提供SAN能力)、统一存储设备(例如结合NAS和SAN能力的设备)、近线存储设备、直接附加存储(DAS)设备、磁带备份设备、或基本上任何其他类型的数据存储设备。存储系统104可以具有分布式结构,或者它的所有部件可以被集成在单个单元中。存储系统104可以被实施为归档和/或备份系统的一
部分,如可以从马萨诸塞州霍普金顿的EMC?公司购买的重复项消除存储系统。
[0027]在一种实施方式中,存储系统104包括但不限于通信连接的系统接口 106、文件系统控制107、和一个或多个存储单元108-109。存储系统104的文件系统可以被分割成多个文件系统分区,其中每个文件系统分区可以被存储在存储单元108-109中的一个存储单元中。存储单元108-109可以经由互联体或总线120彼此相互地通信耦合,其中存储单元108-109可以是物理和/或逻辑存储单元或存储体。在一种实施方式中,存储单元108-109中的第一存储单元作为活动存储器进行操作以存储外部或新用户数据,而存储单元108-109中的第二存储单元作为目标存储器进行操作以根据归档原则或方案周期性地归档或传送来自活动存储器的数据。存储单元108-109可以是例如,传统的磁盘、光盘(如基于CD-ROM或DVD的存储器)、磁带存储器、磁光(MO)存储媒介、固态盘、基于闪存的设备、或任何其他类型的适用于存储大卷数据的非易失性存储设备。存储单元108-109还可以是这些设备的结合。在盘存储媒介的情况下,存储单元108-109可以被组织成一个或多个卷的独立磁盘冗余阵列(RAID)。
[0028]在一种实施方式中,如图1所示的存储系统可以被用作存储层级中的一层存储器,所述存储层级包括其他层级的存储器。在该层级中的一层或多层存储器可以利用不同种类的存储设备和/或可以被针对不同特性(如随机更新性能)而被优化。基于数据管理策略来周期性地在层之间移动文件以实现针对文件的当前存储需求的成本有效匹配。例如,文件可以最初被存储在为读写提供高性能的存储器层中。随着文件的成熟,其可能根据本发明被移动至某层存储器中。在不同的实施方式中,层包括不同的存储技术(例如,磁带、硬盘驱动器、基于半导体的存储器、光驱动器)、不同的位置(例如,本地计算机存储器、本地网络存储器、远程网络存储器、分布式存储器、云存储器、归档存储器、库存储器等)、或任何其他用于分层式数据存储系统的合适存储器。
[0029]回顾图1,根据一种实施方式,文件系统被分割成多个文件系统分区114-115,其中,每个文件系统分区可以被存储在存储系统104的存储单元108-109中的一个存储单元中。文件系统分区114-115中的每个文件系统分区包括元数据,该元数据具有足够的信息以在由文件系统分区114-115代表的单个较大逻辑文件系统中识别其自身。这种元数据还包括足够的信息以允许访问其相关的数据。
[0030]响应于数据文件将被写至分区114-115中,段存储引擎(未示出)被配置成根据种种分段策略或规则将数据文件分成多个段。文件系统控制107可以被实施为段存储引擎的一部分。如果段之前还没有被存储在分区中,则段存储引擎仅仅在分区中存储段。在段之前已经被存储的事件中,元数据存储能够使用之前存储的段进行文件重建的信息。因此,数据文件的段被以重复项消除的方式而存储在每个分区114-115中或分区114-115的至少一些之上。此外,元数据被添加到分区114-115中的至少一些,以使得文件可以独立于其他分区而被访问。存储在分区中的数据可以以压缩形式被存储(例如,无损压缩:霍夫曼编码、Lempel-Ziv韦尔奇编码;增量编码:对段加上差异的引用;子分段:子段列表或对子段的引用等)。在一种实施方式中,不同分区可以使用不同的压缩(例如,主或活动分区不同于其他分区,一个分区不同于另一个分区,等等)。
[0031]每个分区的元数据包括足够的信息以提供对其包含的文件的访问。当活动分区故障时,包含在另一分区中的元数据可以被用于恢复活动分区。当一个分区不可用时(例如,底层的存储单元已经故障,或正被升级,等等),系统保持启动和运行以提供对任何未存储在故障分区中的文件的访问。当文件被删除时,关联于系统中的文件的元数据被更新以体现该文件已经被删除。
[0032]在一种实施方式中,元数据信息包括文件名称、与文件名称相关联的段被存储于其中的分区、使用这些段的文件的重建信息、以及任何其他合适的元数据信息。在一种实施方式中,元数据的副本被存储在用于存储在分区上的文件的那个分区上,以使得被存储在分区上的文件可以仅使用存储在该分区上的信息而被访问。在一种实施方式中,在主元数据丢失、毁坏、损坏等的事件中,主要的元数据信息集合可以通过使用关联于存储系统的所有分区的信息而被重建。分区的元数据可以使用存储在主分区或其他一个分区或多个分区(复制品分区)上的元数据信息而被重建。元数据信息进一步包括索引信息(例如,存储单元中段的位置信息)。在一种实施方式中,元数据包括基本段信息(prime segmentinformation),该基本段信息可以被用于提供文件系统的共同点和/或在文件系统故障事件中重建文件系统。
[0033]回顾图1,当正被访问时,文件系统分区114-115中的每个分区可以由文件系统控制107的分区管理器111交换至系统内存110中。类似地,每个文件系统分区在其没有正被访问时可以被分区管理器111交换出系统内存110。因此,文件系统分区可以使用有限数量的内存进行访问。特别地,当文件系统分区被交换至系统内存110中时,其元数据(例如,元数据112-113)实际上被交换至系统内存110中,从而使得对应文件系统分区的数据可以被访问。在整个申请中,出于阐述的目的,当文件系统分区被交换至或交换出内存时,指的是将相关联的元数据交换至或交换出内存。
[0034]在一种实施方式中,文件系统分区108-109根据调度或驱逐算法而被交换至和交换出内存120,其确保一旦分区被加载至内存120中,足够的IO请求在其被考虑交换出之前在文件系统分区上被执行。这确保交换分区的花费被摊销到多个IO操作之上。即使没有足够的当前待定的IO请求,调度算法保持文件系统分区被加载至预期的潜在的将来的IO操作中。调度算法还是公平且无饥饿的。
[0035]在一种实施方式中,文件系统按照某种方式被分割以确保存在强输入输出(IO)局域性,即,IO请求在给定时间时被仅仅指向一个或较少的文件系统分区。在一种实施方式中,基于文件的时间属性(例如它们最后被修改的时间),文件被分组到分区中。对于长期备份和归档工作量,该分割方案提供较好的IO局域性。由于文件通常是局域性域(例如,应用程序常常访问文件的部分或全部),所以通过在一个文件系统分区中存储文件的所有内容,这降低了大量的用于访问文件的文件系统分区交换。
[0036]图2是示出根据本发明一种实施方式的段存储引擎的框图。注意仅出于阐述的目的,具有与先前附图或描述相同或相似功能的某些部件的某些参考编号可以保持相同。参考图2,在一种实施方式中,段存储引擎200包括接口 202、分段器204、复制消除器206、文件系统控制208、命名空间210、以及分区接口 212。文件系统控制208可以被实施为图1的文件系统控制107的一部分。段存储引擎200经由接口 202接收一个或多个数据项。一个或多个数据项或一个或多个文件被分段器204和文件系统控制208处理。分段器204基于各种规则或考量将一个或多个数据项分成段。例如,一个或多个数据项可以通过使用基于内容的技术(例如,当功能等于一值时或当该值为最小值、最大值或相对于针对数据项计算的其他功能值的其他值时,功能在数据项的不同位置处被计算)、不基于内容的技术(例如,基于数据项属性,如,字节长度、标题、创建日期)、或任何其他合适技术来识别段边界而被分到段中。在一种实施方式中,段被限制成最小和/或最大长度、限制成每数据项最小或最大数量的段、或任何其他合适限制。
[0037]在一种实施方式中,文件系统控制208处理用于指示关联于数据项的一个或多个段的信息。在一些实施方式中,指纹列表被用于指示关联于数据项的段。文件系统控制208将段关联信息传递至索引(未示出)。该索引被用于定位经由分区接口 212存储在一个或多个分区中的段。复制消除器206识别新接收到的段是否已经被存储在一个或多个分区中。在段已经被存储在一个或多个分区中的事件中,存储对先前存储的段的引用,而不是存储新接收到的段。
[0038]接口 202被配置成接收检索数据项的请求。接口 202经由命名空间210与文件系统208通信,以识别经由分区接口 212存储在分区中合适的段。文件系统208与索引通信以定位经由分区接口 212存储在分区中合适的段。合适的段被用于构件所请求的数据项。响应于该请求,数据项经由接口 202而被提供。在一种实施方式中,文件系统208和/或索引使用基于内容的标识符(例如指纹)树以能够文件关联于数据段和它们在分区中的位置。在关联于给定文件或数据项的段改变的事件中,基于内容的标识符(ID)将改变,并且所述改变将从关联于文件名称(目录结构)的树的底部有效地延伸(ripple)至顶部,因为合适的基于内容的ID使用树结构很容易被识别。
[0039]在一种实施方式中,文件系统引擎107进一步包括分区管理器111,该分区管理器111被配置成根据至少一个分区策略214将文件系统分割成多个文件系统(FS)分区并基于分区策略214管理由FS分区消耗的资源。例如,分区策略214可以包括驱逐算法或交换方案,以将FS分区交换至或交换出系统内存。在一种实施方式中,当第一 FS分区没有正被访问时,该第一 FS分区可以被交换出内存以为将被访问的第二 FS分区释放空间。因此,文件系统分区可以使用有限数量的内存而被访问。注意图1-2所示的部分或所有部件可以以软件、硬件或二者的结合来实施。
[0040]图3是示出根据本发明一种实施方式的存储系统的框图。例如,系统300可以作为图1的存储系统104的部分而被实施。参考图3,存储单元301-303可以表示图1的存储单元108-109中的至少部分存储单元。存储单元301-303可以在单个计算节点中实施。存储单元301-303中的每个存储单元通过存储ID而被识别,存储ID唯一地标识对应的存储单元。存储单元301-303可以是物理的和/或逻辑的存储单元或存储体。[0041]根据一种实施方式,系统300表示归档存储系统。在正常操作期间,外部的或新的用户数据被写至第一分区,在该实施例中,第一分区为分区304,第一分区还被称为活动分区或主分区。周期性地,存储在第一分区中的数据被迁移到第二分区,在该实施例中,第二分区为分区305,该第二分区还被称为目标分区。当第二分区已经被填充至预定阈值时,目标分区被密封以称为归档分区,该实施例中的分区306,其可以是只读分区。然后另一分区可以被分派并指定为新的目标分区以对来自活动分区的其他数据进行归档。
[0042]数据迁移可以根据不同的数据迁移策略来执行。根据一些实施方式,文件被存储为一个或多个段,其中段在存储系统中进行重复项消除(例如,仅仅一个复本被存储且被/可以被用于重建多个文件)(例如,在系统的一个分区中进行重复项消除)。段被存储在主或活动分区(例如,分区301)中并周期性地(例如,每周)基于传输协议(例如,分区超过容量限制、每小时段的数量、暂停时间等)、或当分区为满或符合一个或多个条件(例如,80%满、小于20%的活动性、在最后一小时已经不具有访问性),属于基于迁移策略(例如,在预定时间段内还未被修改或访问的特定文件类型文件将被迁移,等等)识别的文件的段被转移至第二分区(例如,分区302)。
[0043]随着第二分区被填充,元数据被转移至第二分区,以使得第二分区具有所有必要信息以访问在第二分区中的文件。元数据使得系统能够重建存储在系统中(例如,整个系统中、分区中等等)文件和/或将存储在系统中的文件与其文件名称相关联。这还允许系统断电或降低分区的存储单元的功率以节省能源或使分区离线以升级分区或使得系统能够具备容错性因此在任何给定分区故障的情况下系统可以运行。当分区填满时,系统将段从主分区转移至另一分区。系统可以通过逐渐增加分区而被扩展。文件可以使用单一名称空间而被访问以为使用接口提供方便。由于仅一个重复项消除引擎被用于多个分区,所以硬件可以被有效的使用。
[0044]在一种实施方式中,文件通过独立于文件存储在其中的分区的名称被标识。当文件被接收以将被存储时,名称也被接收到以与该文件相关联。当读取文件的请求被接收到时,名称也被接收到。系统查询关联于系统中文件的元数据以识别关联于接收到的名称的文件。然后查询关联于被识别的文件的元数据以确定在其中存储被识别的文件的分区。在一种实施方式中,关联于系统中文件的元数据可以被保持在主分区或活动分区中。可替代地,元数据可以被保持在每个分区中,其中关联于该元数据的文件被存储在内。此外,元数据可以在许多分区(例如,针对容差)上按分布的或冗余的方式来保持。而且,元数据可以被保持在分开的分区或分区、或任何其他合适的存储位置。
[0045]在一些实施方式中,对于关联于文件的元数据的更新仅对于存储在活动分区中的元数据的复本进行。当活动分区故障时,系统使用包含在其他附加分区(例如,之前的活动分区)中的元数据来提供对仍在系统中的文件的访问。在一种实施方式中,当分区不可用时(例如,基本的存储单元已经故障、正被升级,等等),系统保持启动和运行以向未存储在故障分区中的任何文件提供访问。
[0046]回顾图3,在一种实施方式中,分区301-303中的每个分区可以存储用于表示已经被分割成多个分区304-306的文件系统的部分或分区的元数据,其中文件系统分区304-306共同表示存储系统300的单个较大逻辑文件系统(也被称为文件系统分区集合或文件系统集合)。文件系统分区304-306作为单个计算节点被托管在存储系统300中并共享系统内存110。每个文件系统分区包括元数据(未示出),该元数据具有足够的信息以在由文件系统分区表示的单个较大逻辑文件系统中识别其自身。这种元数据还包括足够的信息以访问其相关联的数据。
[0047]根据本发明的一种实施方式,文件系统集合的每个FS分区包含元数据,该元数据具有使得对应分区能够单独识别和配置的足够信息。某些信息特定于FS分区和关联于整个FS集合的部分信息。在一种实施方式中,存储在活动分区和归档分区中的FS集合特定信息可以是不同的,而FS分区特定信息可以是相似的。
[0048]在一种实施方式中,特定于FS分区的FS分区元数据包括但不限于以下中的至少一些:分区的位移名称、分区的版本、分区的访问状态、相关联的容器设置ID、分区通用唯一标识符(UUID)、发起者UUID、非易失随机访问存储器(NVRAM) ID、分区运行时状态、及分区密封状态。
[0049]FS分区的访问状态可以是ENABLED、DISABLED、或PROBLEM。容器集ID包括关联于FS分区中的容器集的名称,其中容器类保存FS分区的所有数据。FS分区的分区UUID唯一地标识对应的FS分区。发起者UUID唯一地标识分区的发起者并可以被用于复制目的。NVRAM ID被用于识别相关联的针对对应分区的NVRAM区域。分区运行时状态包含指示分区的运行时状态的信息。分区运行时状态可以是以下状态之一:正在初始化、正在恢复NVRAM、准备(例如,已经被安装)开启、正在核查(例如,离线工具正在访问分区)、已核查(例如,离线工具已经完成分区的访问)、未安装、以及损坏。分区密封状态指示对应分区是否已经被密封。如果分区已经被密封,在该分区上不能执行进一步的写入访问。
[0050]在一种实施方式中,保持在每个归档分区中的上述信息可以被独立地用于唯一地确定每个归档分区。如果分区是健康的,文件系统可以促使分区在线。如果文件系统确定该分区不健康,这可以标志并保持分区离线和/或将该分区列入至问题状态。因此,只要活动分区健康,文件系统可以保持在线。一个或多个归档分区可以被损坏,但是文件系统保持可用。
[0051]此外,每个FS分区进一步包括相关于整个文件系统集合的一些元数据。在一种实施方式中,这种元数据包括但不限于集合分区类型(例如,活动、目标、或归档)和集合ID,该集合ID唯一地标识对应分区是其成员的集合。另外,每个归档FS分区中的元数据进一步包括报头和分区表,该报头具有版本号、序列号、和校验值。分区表包括标识相关联的分区是其成员的文件系统集合的集合ID、集合中的分区数量、集合中所有归档分区的UUID、以及表示文件系统集合的共同点的基本或基本段。
[0052]在一种实施方式中,保持在活动分区中的上述信息帮助识别集合(文件系统)的所有不同分区。文件系统使用该信息来发现所有分区并试图将它们置于在线。但是,如果活动分区被破坏,集合信息为不可用并且文件系统不能立即被置于在线。该集合信息然后必须通过探索系统上所有可用的归档分区而被组合。归档分区将它们本身识别为集合的部分并且来自归档分区的信息可以被用于重新创建归档分区的集合信息。
[0053]在一种实施方式中,当被访问时,每个文件系统分区可以被分区管理器111交换至系统内存110中,类似地,当未被访问时,每个文件系统分区可以被分区管理器111交换出系统内存。在该实施例中,假设仅存在用于FS分区从内存110分配的两个内存插槽307-308,并且存在三个FS分区304-306。首先,FS分区304-305的元数据分别被作为元数据307-308的部分加载至内存110。随后,当访问存储在FS分区306中的数据的请求被接收到时,FS分区304-305中此刻未被访问的一个分区被识别并从内存110卸载,从而使得分区306的元数据可以被加载至相同的内存插槽中而无需分配额外的内存插槽。因此内存使用占用空间可以被大大减小。
[0054]图4是示出根据本发明一种实施方式的用于管理存储系统的资源的方法的流程图。方法400可以由图3的系统300执行。参考图4,在块401处,存储系统的文件系统被分割成多个FS分区。每个FS分区包括文件的重复项消除段。随后,在块402处,确定是否存在不具有任何待决IO请求的任何FS分区。如果不存在,在块407处,处理线程进入睡眠状态。如果存在至少一个FS分区不具有任何待决IO请求,在块403处,确定该至少一个FS分区是否可以被驱逐,例如,根据文件系统驱逐策略。如果是这样,在块404处,可以被驱逐的第一 FS分区被从内存卸载(例如,交换出)以为第二 FS分区腾出空间。在块405处,第二FS分区被加载至(例如,交换至)内存中,从而使得第二 FS分区的数据可以在不必分配额外内存的情况下被访问。在一种实施方式中,第二 FS分区被加载至相同的内存插槽中,第一FS分区已经被从该内存插槽交换出。在块406处,可选择地,令牌被指定给第二 FS分区并且用于第二 FS分区的已经被排列的任何待决IO请求被执行。
[0055]具有正确数据分区是必要条件,但是不是减少交换至和交换出内存310的分区数量的充分条件。文件系统经常服务来自不同用户和/或主机的同时请求,并且这些各自的IO请求可以是彼此独立的。例如,在备份情况中,一个主机可能正在进行备份并因此访问保存最近数据(recent data)的分区,而另一主机可能正在对历史数据进行监管查询并因此访问不同分区。可能的是,尽管最佳数据分割方案被置于独立的IO资源仅访问一个分区的情形;但是,因为系统必须在独立的IO请求之间转换(juggle),所以FS分区可仍旧被交换至其中或交换出。
[0056]回顾图3,在一种实施方式中,根据调度或驱逐算法310文件系统分区被分区管理器111交换至内存区域中或交换出内存区域,以确保一旦分区被加载至内存中并且在被考虑交换出之前足够的IO请求在文件系统分区上被执行。这确保交换分区的花费被摊销到多个IO操作之上。即使不存在足够的当前待决IO请求,调度算法保持文件系统分区被加载期望潜在的进一步的IO操作。调度算法还是公平无饥饿的。
[0057]在一种实施方式中,驱逐策略310基于令牌的驱逐策略。在基于令牌调度的基本原理是当被加载至内存中时将令牌(具有初始值)分配至FS分区。令牌确定在可以被交换出之前分区可以停留在内存中多长时间。在一种实施方式中,令牌每一次被消耗或扣除,IO请求(处于批处理粒度)在相关联的FS分区上被执行。令牌还按照固定的时间间隔被周期性地的拿走。在FS分区已经用尽其所有令牌之后,其被认为用于交换出的候选。
[0058]基于令牌的驱逐策略保证了 FS分区在被加载之后不会被快速地交换出。当然,其令牌计数必须在可以被考虑替换之前达到零。因此,在被加载时FS分区接收机会以服务至少一些IO请求。此外,周期性地扣除令牌保证FS分区将总是耗尽令牌并将被考虑交换出。这避免了解饿情景。正等待被加载至内存中的FS分区将总是寻找耗尽令牌并被驱逐的一些其他FS分区。根据一种实施方式,当FS分区的令牌计数达到零时,如果不存在对FS分区的待决IO请求,则FS分区被交换出;否则,FS分区保留在内存中直到一个或多个待决IO请求已经被执行。[0059]图5是示出根据本发明实施方式的用于管理由存储系统的文件系统分区使用的资源的方法的流程图。方法500可以由图3的系统300来执行。参考图5,在块502处,响应于访问FS分区的请求,确定与FS分区相关联的元数据是否已经被加载至内存中。如果相应的FS分区未被加载,则在块503处,IO请求被排队以用于在文件系统分区被加载至内存中之后的随后执行。此外,相应的FS分区被调度以被加载(例如交换至)。
[0060]如果FS分区已经被加载,则在块504处,IO请求被调度以被执行并且与FS分区相关联的待决IO请求计数被递增。该待决IO请求计数表示用于FS分区的当前待决的将被执行的IO请求的数量。因此,每个FS分区域与单独的待决IO请求计数相关联。随后在块505处,当接收到指示IO请求的执行已经完成的信号时,待决IO请求计数被递减。可选择地,在块506处,FS分区的令牌也被递减。注意,块501、块502-504、及块505-506处涉及的操作可以按照不同进程或线程来执行,其可以由操作系统独立地和/或基本同时地执行。
[0061]图6是示出根据本发明另一实施方式的用于管理由存储系统的文件系统分区使用的资源的方法。方法600可以由图3的系统300执行,其可以是周期性执行的维护或内务整理的部分线程。参考图6,在块601处,当前被加载至存储系统的内存中的一个或多个FS分区列表被识别,一个或多个FS分区是共同表示存储系统的单个较大逻辑文件系统的多个FS分区部分。在块602处,对于每个加载的FS分区,关联令牌被检查以确定令牌值是否达到预定值(如零)。如果未达到,则在块603处,令牌值被递减。一旦FS分区的令牌值达到零,则FS分区被认为是将被交换出去的候选。上述过程被针对加载至内存中的每个FS分区反复执行。
[0062]图7是示出根据本发明另一实施方式的用于管理由存储系统的文件系统分区使用费资源的方法的流程图。方法700可以由图3的系统300执行。参考图7,在块701处,一个或多个FS分区列表当前被加载至内存中。在块702处,对于每个加载的FS分区,对应令牌被检查仪确定令牌值是否达到零。如果令牌值达到零,在块703处,确定是否存在FS分区的任何待决IO请求。如果 不存在,在块704处,FS分区可以关闭并从内存中交换出去。注意,方法500-700可以经由不同进程或线程来独立地和/或基本同时地执行。
[0063]根据一些实施方式,每个FS分区存储具有相似特性(如访问模式)的文件的段。例如,文件可以基于文件的时间属性被存储在多个FS分区中。在一种实施方式中,具有相似访问时间(如最后修改时间)的文件被存储在相同的分区中。也就是说,已经以类似时间帧被修改的文件可以被分组到相同的FS分区中。基于时间的分区方案后的基本思想是基于文件的时间创建分区。例如特定的示例,如果文件系统具有100个文件Π……Π00 (按照修改时间排序)并且十个分区被创建,包括分区Pi……pio,每个分区具有10个文件,则分区Pl将包括η……HO,ρ2将包括fll……f20,以此类推。
[0064]文件通常是位置网域,即应用常常访问部分或全部文件。通过在一个分区上存储文件的全部内容减少了访问文件的分区交换。在长期备份/归档工作量中,文件更可能是被按照它们的修改时间顺序被访问。典型的访问查询(例如在监管查询期间)具有例如“产生在日期X和y之间发送的所有邮件”的形式。这种查询被按照时间顺序扫描文件来处理并因此自然利用文件分割基于的时间排列。如“产生具有字X和y的所有文件”的关键字查询通过首先查阅倒排索引结构来回答。倒排索引将按照修改时间顺序组织并返回相符文件,因为在该顺序中索引结构被递增排列(例如,当文件被创建/修改时文件被插入至索引中)。
[0065]对于基于时间的分割方案,这两种工作量下的分区的访问模式将是连续的,S卩,来自一个分区的所有相关文件将在转移到下一个分区前被访问。数据基于时间的分割还给出好的重复项消除性能。围绕相同或相似时间帧创建的文件与时间间隔长创建的文件相比更可能具有较多共同数据。数据分割方案还应该容易被设置和维护。在基于时间分割方案中,无论文件被创建或更新,必须将其写入到或移动(从其当前分区)到保持最后修改数据的分区中。将文件从一个分区移动到另一个分区可能是非常昂贵的操作,但是大量工作量(长期归档/备份工作量)主要是写一次读多次(WORM),其中一旦数据被第一次写入时文件被创建并且以后从不更新。
[0066]WORM数据集理想地适用于基于修改时间的分割方案。所有新的数据必须被只写入至一个分区,即,当前分区。一旦当前分区填满,其可以被标志为只读并且另一个新的当前分区被创建以开始填充。因此,任何时刻,只存在一个可写分区和多个只读分区。可写分区与只读分区相比通常具有非常大的内存需求,因此,只具有一个可写分区进一步降低了系统内存需求。
[0067]图8是示出根据本发明另一实施方式的存储系统的框图。例如,系统800可以作为图1的存储系统104的部分而被实施。参考图8,类似于图3的系统300,分区301-303可以表示图1的分区108-109的至少部分分区。分区301-303可以在单个计算节点中被实施。分区301-303中的每个分区由唯一标识对应分区的分区ID来标识。分区301-303中的每个分区进一步包括元数据,该元数据包括独立存储与此的足够信息接入数据。系统800进一步包括分区管理器111,该分区管理器111具有与图3所示的分区管理器相同或相似功能。例如,分区管理器111被配置成根据交换或驱逐方案(如如上所述基于令牌的方案)将FS分区801-803中的任何一个分区作为FS分区元数据307-308的部分交换至或交换出内存110,以使得所利用的资源按照有效的方式被管理。
[0068]根据一种实施方式,当文件将被写入至分区301-303的FS分区801-803中的一个时,文件被写入至基于分区算法810 (如,基于将来可能的文件访问模式)而选择的FS分区中。在一种实施方式中,文件可以基于文件的时间属性被写至FS分区。由于FS分区801-803被基于文件的时间属性而被限定或分组,所以FS分区801-803中的每个分区关联于特定时期。如上所述,围绕相同或相似时间帧创建的文件更可能被一起访问。因此,当文件被访问时,较少的FS分区将需要被交换至或交换出内存110。
[0069]用于分割的文件时间属性可以是与图9所示文件相关联的数据结构900的最后访问时间属性901、最后修改时间属性902、及最后状态改变时间属性903中的任何一者。在一种实施方式中,用于分割的时间属性可以是文件的创建时间。数据结构900表示部分标准文件系统数据结构的索引节点。索引节点被用于存储关于文件的信息,其中数据块是用于存储文件实际数据的结构。包含在索引节点中的信息可以包括例如文件所有权、文件访问许可、文件大小、文件类型和文件数据块的盘上的位置的参考。该文件数据位置的参考通过索引节点中的指针来提供,其还可以参考间接块,该间接块反过来参考数据块,这依赖于文件中的数据量。
[0070]回顾图8,根据一种实施方式,系统800是归档系统,其中外部或新的用户数据通常被写至作为活动分区的分区801。存储在分区801中的数据可以迁移至分区802,分区802为目标分区。当分区802填满时,分区802被密封并且变为已归档的分区803 (例如,只读分区)。另一个分区被分配为新的目标分区。根据一种实施方式,在数据迁移过程中,存储在活动分区(例如801)中的文件基于文件的时间属性(例如,最后修改时间属性)而被扫描,并被转移至目标分区(例如分区802),以使得存储在目标分区中的文件以类似时间帧被最后修改。
[0071]图10是示出根据本发明一种实施方式的用于分割文件系统的方法的流程图。方法1000可以由图8的系统800来执行。参考图10,在块1001处,存储系统的文件系统被分割成多个FS分区。每个FS分区域特定时期相关联。响应于写文件的请求,在块1002,文件的时间属性被确定。在一种实施方式中,时间属性为文件的最后修改时间属性。在块1003处,FS分区被基于文件的时间属性识别。在块1004处,文件被存储在被识别的FS分区中。
[0072]图11是示出根据本发明另一实施方式的用于分割文件系统的方法的流程图。方法1100可以由图8的系统800来执行。参考图11,在块1101处,用于将数据从活动分区迁移至目标分区的请求被接收。活动分区和目标分区中的每一个分区包含在分区之上可被重复项消除的文件的段。响应于请求,在块1102处,存储在活动分区中的所有文件按照根据文件时间属性(例如,最后修改的时间属性)的顺序被扫描。在块1103处,经扫描的文件被从活动分区转移至目标分区以用于归档,以使得目标分区包含具有相似访问模式的文件。
[0073]图12是示出可以与本发明的实施方式一起使用的数据存储系统的示例的框图。例如,系统1200可以作为图1所示的存储系统的部分而被实施。在该示例中,系统1200可以是重复项删除数据存储系统。参考图12,系统1200包括但是不限于文件服务接口 1201、内容存储管理器1202、具有段指纹1204的段存储管理器1203、及用于管理存储在一个或多个盘1206的容器中的段的容器管理器1405。
[0074]根据一种实施方式系统1200以内容依赖方式将数据对象(例如,文件)拆分成不同长度的段并针对每个段计算指纹。系统1200使用指纹来识别重复段和用于引用段的段描述符的部分二者。其表示文件为指纹分段序列。在写期间,系统1200识别重复段并尽力只存储任何特定段的一个复本。在存储新段之前,系统1200可以使用各种压缩算法(如各种Ziv-Lempel算法)来压缩段。在一种实施方式中,系统1200支持多种访问协议,这些访问协议在公共文件服务接口 1201上被分层。支持的协议包括网络文件系统(NFS)、通用互联网文件系统(CIFS)、及虚拟磁带库接口(VTL)等。系统1200包括用于管理系统的管理接口。管理接口可以是文件服务接口 1201的一部分。
[0075]当数据流进入系统1200时,其通过标准接口中的一个到达通用类文件服务层,该通用类文件服务层管理名称空间和文件元数据。文件服务层向管理文件中数据内容的内容存储管理器1202转达写请求。内容存储管理器1202将数据流拆分成段,使用段存储管理器1203来执行重复项消除,以及保持文件的引用轨迹(例如,在逻辑数据对象和物理数据对象之间进行映射)。段存储管理器1203进行重复项消除的实际工作。其将经重复项消除的(唯一的)段包装成相对大的单元,使用各种压缩方法(如Ziv-Lempel算法)压缩这种单元,以进一步压缩数据,并且然后将压缩的结果写至由容器管理器1205管理的容器中。
[0076]为了从系统1200读取数据流,客户端通过标准接口中的一个和文件服务层1201来驱动读操作。内容存储器1202使用对重复项消除段的引用来向客户端传递期望的数据流。段存储管理器1203预读取、解压缩、读取和高速缓存来自容器管理器1205的数据段。根据一种实施方式,内容存储管理器1202对重复项消除的数据对象实施字节范围写和读,其中对象是客户数据字节的线性序列并具有固有的和客户可设定属性或元数据。对象可以是常规文件、整卷或盒式磁带的备份图像。
[0077]为了将字节范围写至对象中,内容管理器1202执行多个操作。首先,锚定以内容依赖方式将字节范围分割成不同长度的段。然后段指纹计算散列(如SHA-1散列)并基于该散列生成段描述符。每个段描述符包括至少指纹和大小的段信息。进一步地,段映射建立段树,该段树记录对象字节范围和段描述符之间的映射。目的是表示使用对重复项消除的段的引用的数据对象。为了读取对象中的字节范围,内容存储管理器1202遍历通过上述段映射操作而创建的段树,以获得相关段的段描述符。其从段存储(未示出)获取段并将请求的字节范围返回至客户端。
[0078]段存储管理器1203本质上管理由它们的段描述符1204键控的段的数据库。为了支持写操作,其接受具有它们的段描述符的段并存储它们。为了支持读操作,其获取由它们的段描述符指定的段。为了写数据段,段存储执行多个操作。首先,段筛选确定段是否是复本。这是用于消除重复段的关键操作并可以触发盘1/0,因此,其开销可以显著影响吞吐量性能。进一步地,容器包装向作为系统中存储单元的容器中添加将被存储的段。该包装操作还使用各种压缩算法(如各种ZiV-Lempel算法)来压缩段数据。当被完全包装时,容器被附加至容器管理器1205。最后,在容器已经被附加至容器管理器1205后,段索引更新段索弓丨,该段索引将段映射至持有该段的容器。为了读取数据段,段存储管理器1203执行某些操作。首先,段查询查找存储所请求的段的容器。该操作可以触发盘I/O搜索盘上的索引,因此其是吞吐量敏感的。容器检索通过调用容器管理器1205来读取所指示的容器的相关部分。容器拆包解压缩容器的检索部分并返回所请求的数据段。
[0079]容器管理器1205向段存储1203提供存储容器记录提取,而不是块提取。容器包括具有用于存储的段的段描述符的元数据部分。它们在可以被附加的新容器和被删除的旧容器中是不变的,但是一旦写入容器不能被修改。当段存储管理器1203附加容器时,容器管理器1205返回容器ID,该容器ID在系统的生命中是唯一的。容器管理器1205负责分配、解除分配、读、写及可靠存储容器。其支持元数据部分或一部分数据部分的读取,但是其仅支持所有容器的附加。如果容器未满但是需要被写入盘,其被补全为它的全尺寸。容器管理器1205被建立在标准块存储1206上。如软件RAID-6、连续数据清理、容器验证和端到端数据核查的先进技术被应用以确保高级别的数据完整性和可靠性。
[0080]容器提取提供多个益处:1)固定的容器尺寸使得容器分配和解除分配变得容易;2)大粒度的容器写实现高效的盘吞吐量使用;以及3)适当大小的容器尺寸允许有效的完全条带RAID写,这能够使有效的软件RAID在存储层实施。根据一种实施方式,系统1200的某些组件(如文件服务接口)包括逻辑,该逻辑被配置成检查接收到的特定请求是否能够可以对不变数据对象的完整性让步并被配置成使用上述技术从用于请求的授权代理请求必要的认可。其它配置也可以存在。
[0081]图13是可以与本发明一种实施方式一起使用的数据处理系统的框图。例如,系统1300可以被用作图1所示的客户端或服务计算机。注意,尽管图13示出了计算机系统的不同组件,但是并不意欲表示互联这些组件的任何特定的结构或方式,因为这些细节并不与本发明密切相关。还将理解网络计算机、掌上电脑、手机、及其他具有较少组件或可能更多组件的数据处理系统也可以与本发明一起使用。图13的计算机系统可以例如是苹果Macintosh计算机或IBM可兼容PC。
[0082]如图13所示,作为数据处理系统形式的计算机系统1300包括耦合至处理器1303和R0M1307、易失性RAM1305、及非易失性内存1306的总线或互联1302。处理器1303可以包括多个处理器和/或核逻辑,该多个处理器和/或核逻辑构成系统的中央处理器(CPU)并从而控制系统的所有操作。根据某些实施方式,处理器1303通过执行存储在存储器1305-1307中任何一个存储器中的软件(例如,应用程序和操作系统等)来实现上述过程。处理器1303可以包括一个或多个可编程通用或专用微处理器、数据信号处理器(DSP)、可编程控制器、专用集成电路(ASIC)、可编程逻辑设备(PLD)等或这些设备的组合。
[0083]如图13所示,处理器1303 (可以是例如因特尔处理器或PowerPC处理器)被耦合至高速缓存内存1304。总线1302将这些不同组件互相连接在一起,并且还将这些组件1303和1305-1307连接至显示控制器和显示设备1308,并连接至输入/输出(I/O)设备1310,该输入/输出设备1310可以是鼠标、键盘、调制解调器、网络接口、打印机、及本领域已知的其他设备。
[0084]通常,输入/输出设备1310通过输入/输出控制器1309被f禹合至系统。易失性RAM1305通常被实施为动态RAM (DRAM),该DRAM需要持续的电力以为了更新或保持内存中的数据。非易失性内存1306通常是磁硬盘、磁光盘、光盘、DVD RAM、闪存、或甚至在从系统移除电力后保持数据的其它类型的内存系统。通常,非易失性内存还将是随机访问内存,尽管这并不需要。
[0085]尽管图13示出非易失性内存是直接耦合至数据处理系统中的其他组件的本地设备,但是将理解本发明可以利用远离系统的非易失性内存,如通过网络接口(如调制解调器或以太网接口)被耦合至数据处理系统的网络存储设备。总线1302可以包括通过如本领域已知的各种桥、控制器、和/或适配器彼此连接的一个或多个总线。在一种实施方式中,I/O控制器1309包括用于控制USB外围设备的USB (通用串行总线)适配器。可替代地,I/O控制器1309可以包括IEEE-1394适配器,也被称为火线(FireWire)适配器,以用于控制火线设备。其它组件也可以被包括。
[0086]已经从对计算机内存内数据比特进行操作的算法和符号表示方面阐述了之前详细描述的一部分。这些算法描述和表示是数据处理领域中的技术人员更有效地向本领域技术人员传达他们的工作的主旨的方式。于此的算法通常被构思成实现期望结果的一系列有条理的操作。这些操作为请求物理量的物理处理的那些操作。
[0087]然而应该牢记,所有这些和类似术语将与合适的物理量相关联,并且只是被应用至这些量的方便标签。除非特别规定,否则如上文讨论所呈现的,将理解在整个说明书中,利用如以下权利要求书中陈述的那些术语的讨论指的是计算机系统或类似电子计算设备的动作和处理,其用于将被表示为计算机系统的寄存器和内存内的物理(电子)量进行操纵并变换成被类似地表示为计算机系统内存或寄存器或其它信息存储、传输或显示设备内的物理量的其他数据。
[0088]本发明的实施方式还涉及用于执行于此的操作的装置。这种计算机程序被存储在永久性计算机可读介质上。机器可读介质包括用于以机器(如计算机)可读形式存储信息的任何机制。例如,机器可读(如,计算机可读)介质包括机器(如,计算机)可读存储介质(如,只读内存(“ROM”)、随机接入内存(“RAM”)、磁盘存储介质、光存储介质、闪存设备)。
[0089]之前附图描述的过程或方法可以由处理逻辑来执行,该处理逻辑包括硬件(如,电路、专用逻辑等)、软件(如,包含在永久性计算机可读介质上)、或二者的结合。尽管过程或方法在上文从某些顺序操作的方面进行了描述,但是应该理解描述的某些操作可以以不同顺序被执行。此外,某些操作可以并行地而不是顺序地被执行。
[0090]本发明的实施方式未参考任何特殊的编程语言而被描述。将理解各种编程语言可以被用于实施于此描述的本发明的实施方式的教导。
[0091]在之前的说明书中,本发明的实施方式已经参考其特定的示例性实施方式而被描述。显然的是,在不脱离所附权利要求书陈述的本发明的广泛精神和范围的情况下对其可以进行各种修改。因此,说明书和附图将被认为是说明性的意义而非限制性的意义。
【权利要求】
1.一种用于提供文件系统的计算机实施的方法,该方法包括: 将存储系统的文件系统(FS)分割成多个FS分区,每个FS分区存储数据文件的段;以及 响应于将文件写至所述存储系统的请求,将所述文件存储在所述多个FS分区的基于该文件的时间属性所选择的第一 FS分区中,以使得具有类似时间属性的文件被存储在相同的FS分区中。
2.根据权利要求1所述的方法,其中存储在每个FS分区中的所述数据文件的段在所述FS分区内被进行重复项消除。
3.根据权利要求1所述的方法,其中,所述多个FS分区中的每一个FS分区与特定时间段相关联。
4.根据权利要求3所述的方法,其中所述文件的所述时间属性为表示该文件最后被修改的时间的最后修改时间属性。
5.根据权利要求1所述的方法,其中所述FS分区被存储在多个分区中,包括用于接收新的用户数据文件的活动分区和用于归档来自所述活动分区的数据的目标分区。
6.根据权利要求5所述的方法,该方法还包括: 响应于从所述活动分区向所述目标分区迁移数据的请求,基于所述文件的时间属性选择所述活动分区中的文件;以及 将所选择的文件从所述活动分区转移至所述目标分区。
7.根据权利要求1所述的方法,其中存储在所述FS分区中的数据文件为写一次读多次(WORM)的数据文件。
8.根据权利要求1所述的方法,该方法还包括: 当所述多个FS分区的第二 FS分区未正被访问时,将所述第二 FS分区从访问就绪状态移除;以及 当所述多个FS分区的第三FS分区将被访问时,将所述第三FS分区带入至访问就绪状态中。
9.根据权利要求8所述的方法,其中将所述第二FS分区从访问就绪状态移除包括将关联于所述第二 FS分区的元数据从所述存储系统的系统内存卸载,所述系统内存在所述多个FS分区之间被共享,并且其中将所述第一 FS分区带入至访问就绪状态中包括将关联于所述第一 FS分区的元数据加载至所述系统内存中。
10.一种具有存储在其上的指令的计算机可读存储介质,当所述指令被计算机执行时,促使所述计算机执行用于管理文件系统的资源的方法,该方法包括: 将存储系统的文件系统(FS)分割成多个FS分区,每个FS分区存储数据文件的段;以及 响应于将文件写至所述存储系统的请求,将所述文件存储在所述多个FS分区的基于该文件的时间属性所选择的第一 FS分区中,以使得具有类似时间属性的文件被存储在相同的FS分区中。
11.根据权利要求10所述的计算机可读存储介质,其中存储在每个FS分区中的所述数据文件的段在所述FS分区内被进行重复项消除。
12.根据权利要求10所述的计算机可读存储介质,其中,所述多个FS分区中的每一个FS分区与特定时间段相关联。
13.根据权利要求12所述的计算机可读存储介质,其中所述文件的所述时间属性为表示该文件最后被修改的时间的最后修改时间属性。
14.根据权利要求10所述的计算机可读存储介质,其中所述FS分区被存储在多个分区中,包括用于接收新的用户数据文件的活动分区和用于归档来自所述活动分区的数据的目标分区。
15.根据权利要求14所述的计算机可读存储介质,其中该方法还包括: 响应于从所述活动分区向所述目标分区迁移数据的请求,基于所述文件的时间属性选择所述活动分区中的文件;以及 将所选择的文件从所述活动分区转移至所述目标分区。
16.根据权利要求10所述的计算机可读存储介质,其中存储在所述FS分区中的数据文件为写一次读多次(WORM)的数据文件。
17.根据权利要求10所述的计算机可读存储介质,其中该方法还包括: 当所述多个FS分区中的第二 FS分区未正被访问时,将所述第二 FS分区从访问就绪状态移除;以及 当所述多个FS分区中的第三FS分区将被访问时,将所述第三FS分区带入至访问就绪状态中。
18.根据权利要求17所述的计算机可读存储介质,其中将所述第二FS分区从访问就绪状态移除包括将关联于所述第二 FS分区的元数据从所述存储系统的系统内存卸载,所述系统内存在所述多个FS分区之间被共享,并且其中将所述第一 FS分区带入至访问就绪状态中包括将关联于所述第一 FS分区的元数据加载至所述系统内存中。
19.一种存储系统,该存储系统包括: 系统内存; 在所述系统内存中被执行的文件系统(FS); 被耦合至所述文件系统和所述系统内存的分区管理器,其中该分区管理器被配置成: 将所述文件系统分割成多个FS分区,每个FS分区存储数据文件的段;以及 响应于将文件写至所述存储系统的请求,将所述文件存储在所述多个FS分区的基于该文件的时间属性所选择的第一 FS分区,以使得具有类似时间属性的文件被存储在相同的FS分区中。
20.根据权利要求19所述的系统,其中存储在每个FS分区中的所述数据文件的段在所述FS分区内被进行重复项消除。
21.根据权利要求19所述的系统,其中所述多个FS分区中的每个FS分区与特定时间段相关联。
22.根据权利要求21所述的系统,其中所述文件的所述时间属性为表示该文件最后被修改的时间的最后修改时间属性。
【文档编号】G06F17/30GK103635900SQ201280025415
【公开日】2014年3月12日 申请日期:2012年3月7日 优先权日:2011年3月31日
【发明者】S·麦卓, W·W·苏 申请人:伊姆西公司

最新回复(0)