基于闪存的数据档案存储系统的制作方法

文档序号:6349800阅读:146来源:国知局
专利名称:基于闪存的数据档案存储系统的制作方法
技术领域
本发明涉及存储系统并且更具体地涉及数据档案存储系统。
背景技术
存储系统是提供与在可写入持久存储介质(诸如非易失性存储器和盘)上组织数据有关的存储服务的计算机。存储系统可以被配置成根据信息递送的客户端/服务器模型操作以由此使多个客户端(例如应用)能够访问系统供应的数据。存储系统通常采用如下存储架构,该存储架构按照具有随机模式和流访问模式两种的文件系统格式和块格式两种供应数据。盘一般提供良好的流性能(例如读取大型顺序块或者“轨道读取”),但是对随机访问(即读取和写入单独盘扇区)执行不好。换而言之,盘在流或者顺序模式中操作效率最高, 而小型随机块操作可能大大降低盘性能。数据档案存储系统(诸如带或者盘系统)通常由在设备的寿命内很少访问(例如读取或者写入)的大型慢速带或者盘驱动器构成。例如,通常仅可以访问存储于带或者盘档案设备上的信息以(i )执行一致性校验来保证存档的信息仍然有效和/或(i i )例如出于灾害或者顺应性的目的而取回存档的信息。另外,带或者盘档案系统通常存储于如下环境上受控区域中,该区域提供足以适应系统的占地面积(占用空间(footprint))、安全性和/或功率。例如,在带档案系统的情况下,大型带机器人消耗并且因此需要大量占用空间以适应用来访问带驱动器的机械臂的摆动。类似地,盘档案系统消耗并且需要大量占用空间以适应用来容纳盘驱动器的机柜。此外,用于这些档案系统的受控环境包括用来提供驱动器的可靠操作所需要的大量功率的电源。带和盘档案系统一般采用常规数据去重和压缩方法以紧凑地存储数据。这些系统通常向不同存储元件上(例如在不同盘轴(spindle)或者不同带上)分布去重和压缩的数据的片段或者部分,并且因此需要在访问时收集那些分布的部分以重建数据。数据的部分分布于不同元件之间,因为数据通常仅在档案系统上积累(即未删除)。也就是说,出于顺应性 (例如财务和/或医疗记录)的目的而随时间维护所有可能的数据版本。在去重的情况下,数据容器(诸如文件)可以切分成多个部分,可以检验每个部分以确定它先前是否存储于档案系统上。例如,可以针对文件的每个部分提供指纹,并且可以搜索数据库寻找该指纹。如果在数据库中找到指纹,则仅记录对该数据库指纹(即对先前存储的数据)的引用。然而如果指纹(文件的部分)不在数据库中(先前未存储),则在系统上并且可能在系统的不同元件上存储该部分(用于该部分的指纹也存储于数据库中)。假设向档案系统提供对取回存档文件的特定版本的请求。在带档案系统的情况下,可能必须读取多个带以取回文件的所有部分,这是耗时的。在盘档案系统的情况下,可能需要向多个盘驱动器供电并且读取这些盘驱动器以取回文件的所有部分。这里可能有对一次可以上电和运行的盘数量的限制。此外还需要有限时间段顺序遍历所有盘。

发明内容
本发明通过提供如下基于闪存的数据档案存储系统来克服现有技术的劣势,该系统具有由多个密集闪存设备(即能够按照小型外形规格(form factor)存储大量数据的闪存设备)构造的大容量存储阵列。闪存设备例如为多层单元(MLC)闪存设备,这些MLC闪存设备被紧密地封装以提供的低功率高性能数据档案系统,该系统每平方英寸具有比更密集的带或者盘驱动器明显更多的容量。基于闪存的数据档案系统可以适于采用常规数据去重和压缩方法以紧凑地存储数据。然而,不同于常规带和盘档案系统,MLC闪存设备的访问性能明显更快,因为存储介质为电子存储器。也就是说,不存在与磁盘驱动器那样需要用于电子存储器的旋起(spin up)时间,即向MLC设备供应功率、取回数据、然后切断到设备的功率。基于闪存的档案系统的性能比任何基于机械或者机电设备的系统明显更好。另外,基于闪存的档案系统具有比带和/或盘档案系统小的占用空间并且消耗更少功率。有利地,将闪存设备用于数据档案系统无需用于操作的环境上受控区域。也就是说,与带和/或盘档案系统相比,闪存设备是无需消耗大量占地面积和/或功率的固态半导体设备。另外,仅需向访问的那些闪存设备提供功率,即到系统的其他半导体设备的功率可以保持关断。此外,基于闪存的档案系统提供比盘驱动器档案系统高的性能,因为对存储于闪存设备上的数据的随机访问快速且高效。在操作中,向数据档案存储系统传输数据集。在存储于电子存储介质(例如MLC闪存设备)阵列上之前对接收的数据集的去重并且压缩该数据集。当数据档案存储系统接收从数据档案取回(读取)数据的数据访问请求时,存储系统首先标识请求的数据存储于其上的那些设备。然后将标识的设备上电并且从它们读取数据。然后在向请求方返回之前解压和恢复数据。然后将设备掉电。


结合其中相似标号表明相同或者功能上相似元件的附图、参考下文描述可以更好地理解本发明的上述和更多优点
图1是如下环境的示意框图,该环境包括根据本发明的一个示例实施例可以有利地使用的存储系统;
图2是根据本发明的一个示例实施例可以有利地使用的存储操作系统的示意框图; 图3是图示了根据本发明的一个示例实施例可以有利地使用的存储架构的组织的示意框图4是详述根据本发明一个示例实施例的用于在数据档案存储系统上存储数据的过程的步骤的流程图5是详述根据本发明一个示例实施例的用于执行数据去重的过程的步骤的流程并且
图6是详述根据本发明一个示例实施例的用于从数据档案存储系统读取数据的过程的步骤的流程图。
具体实施例方式A.数据档案环境
图1是包括如下存储系统的环境100的示意框图,该存储系统可以被配置成提供本发明的数据档案存储系统。存储系统120是如下计算机,该计算机提供与在可写入持久电子和磁存储介质上组织信息有关的存储服务。为此,存储系统120包括由系统总线125互连的处理器122、存储器124、网络适配器126、存储适配器1 和电子存储介质140。存储系统120也包括如下存储操作系统200,该存储操作系统200实施虚拟化系统以在电子和磁存储介质140、150上将信息在逻辑上组织为数据容器(诸如文件和逻辑元件(Iim))的分级结构。存储器IM包括处理器和适配器可寻址的用于存储与这里描述的实施例关联的软件程序和数据结构的存储位置。处理器和适配器又可以包括被配置成执行软件程序并且操纵数据结构的处理元件和/或逻辑电路。存储操作系统200 (该系统的部分通常驻留于存储器中并且由处理元件执行)尤其(inter alia)通过调用如下存储操作在功能上组织存储系统,这些存储操作支持在系统上执行的软件过程。本领域技术人员将清楚其他处理和存储器装置(包括各种计算机可读介质)可以用来存储和执行与这里描述的实施例有关的程序指令。电子存储介质140被示例地配置成提供能够例如在存储系统失去功率的情况下维持数据的持久存储空间。因而电子存储介质140可以具体化为具有备用电池或者其他内置式最后状态留置能力(例如闪存)的固态设备(SSD)的大容量随机访问存储器阵列,该最后状态留置能力在阵列失去功率的任何情况下都保持存储器的最后状态。SSD可以包括如下闪存存储器设备(“闪存设备”),这些设备例如是具有良好读取性能(即对闪存设备的读取操作主要由于它们的存储模型而明显快于写入操作)的面向块的半导体设备。闪存设备的类型包括在每个单元中存储单个位的单层单元(SLC)闪存设备和在每个单元中存储多位 (例如2、3或者4位)的多层单元(MLC)闪存设备。虽然MLC闪存设备比SLC设备更密集, 但是例如在用坏之前向MLC闪存设备持续写入的能力比SLC设备明显更有限。电子存储介质的部分例如组织为用来暂存(“录入”)某些如下数据访问操作(诸如写入操作)的非易失性日志(NVL0G 146),在系统的一致性模型事件(例如一致性点(CP))期间在向电和/或磁存储介质存储与这些操作关联的数据之前,这些操作由虚拟化系统处理。在1998年10月 6日颁布的美国专利号5,819,292, David, Hitz等人的标题为ifeiAot/ for Maintaining Consistent States of a File System and for Creating User-Accessible Read-Only Copies of a File中描述了 CP,在通过引用将其内容结合于此。另外,在本发明的一个示例实施例中,电子存储介质可以存储签名数据库170和例如组织为文件175的块引用计数数据结构。签名数据库170和块计数引用文件175例如用来对向数据档案存储系统写入的数据执行下文进一步描述的去重操作。网络适配器1 包括通过计算机网络160 (诸如局域网)将存储系统120连接到客户端110而需要的机械、电和信令电路,计算机网络160可以包括点到点连接或者共享介质的。客户端110可以是配置成执行应用112 (诸如数据库应用)的通用计算机。另外,客户端110可以根据信息递送的客户端/服务器模型来与存储系统120交互。也就是说,客户端可以请求存储系统的服务,并且系统可以通过在网络160上交换分组来返回客户端请求的服务的结果。客户端可以在访问文件形式的信息时通过TCP/IP发出包括如下内容的分组,这些分组包括基于文件的访问协议(诸如共同因特网文件系统(CIFS)协议或者网络文件系统(NFS)协议)。替代地,客户端可以在访问Um或者块形式的信息时发出如下分组, 这些分组包括基于块的访问协议(诸如在TCP之上封装的小型计算机系统接口(SCSI)协议 (iSCSI)、在FC之上封装的SCSI (FCP)、在以太网之上的FC之上(FCoE)的SCIS)。存储适配器1 与在存储系统上执行的存储操作系统200配合以管理对磁存储介质150 (例如具体化为硬盘驱动器(HDD))的访问。存储适配器包括通过输入/输出(I/O) 互连布置(诸如常规高性能光纤信道串行链路拓扑)耦合到HDD的I/O接口电路。信息由存储适配器取回,并且如果必要,则在通过系统总线125向网络适配器1 转发之前由处理器122 (或者适配器128)处理,其中信息被格式化成分组并且向客户端110返回。举例而言,数据档案存储系统将电子介质用于数据的存储。然而,在替代实施例中,可以利用包括 HDD和SSD的混合介质架构。在2008年2月12日提交的美国临时专利申请号61/028,107、 Jeffrey S. Kimmel 等人的标题为/^^rit/Uia Storage System Architecture Φ T 可以有利地使用的混合介质架构的例子,通过引用将其内容结合于此。B.存储操作系统
图2是可以与本发明一起有利地使用的存储操作系统200的示意框图。存储操作系统包括组织为网络协议栈210的一系列如下模块,这些模块包括网络驱动器模块(例如以太网驱动器)、网络协议模块(例如以太网协议模块及其支持传送机制(传送控制协议模块和用户数据报协议模块))以及文件系统协议服务器模块(例如CIFS服务器、NFS服务器等)。 此外,存储操作系统200包括实施存储介质协议(诸如独立(或者廉价)盘冗余阵列(RAID) 协议)的介质存储模块220和实施存储介质访问协议(如例如小型计算机系统接口(SCSI) 协议)的介质驱动器模块230。如这里所述,介质存储模块220可以替代地被实施为奇偶校验保护(RAID)模块并且具体化为单独硬件部件,诸如RAID控制器。桥接存储介质软件模块与网络和文件系统协议模块的是可以具体为文件系统MO 的虚拟化系统。虽然可以利用任何类型的文件系统,但是在一个示例实施例中,文件系统 240利用数据布局格式并且实施如这里进一步描述的数据布局技术。如这里所用,术语“存储操作系统”一般指代在计算机上可操作用于执行如下存储功能的计算机可执行代码,该存储功能管理数据访问并且可以在存储系统120的情况下实施通用操作系统的数据访问语义。存储操作系统也可以实施为微内核、在通用操作系统(诸如UNIX 或者Windows NT )之上操作的应用程序或者实施为具有可配置功能的通用操作系统,其被配置用于如这里描述的存储应用。此外,本领域技术人员还将理解这里描述的本发明可以应用于任何类型的具体化为或者包括存储系统的专用(例如文件服务器、文件或者存储服务装置)或者通用计算机 (包括独立计算机或者其部分)。另外,本发明的教导可以适合于多种存储系统架构,包括但不限于网络附着的存储环境、直接附着到客户端或者主机计算机的存储区域网络和盘组件。术语“存储系统”因此应当广义地解释除了任何被配置成执行存储功能并且与其他设备或者系统关联的子系统之外的此类系统。
虽然其他页面大小(例如2KB)也可以有利地与本发明一起使用,但是按照例如大小为4KB的页面单位访问(例如经由读取和写入操作)访问存储于闪存设备上的数据。为了在页面上写入先前写入的数据,必须擦除页面;而在一个示例实施例中,擦除单位是包括多个(例如64个)页面的块、即具有256kB大小的“闪存块”。因此,即使可以在页面基础上访问(读取和写入)存储于设备上的数据,但是设备的清除或擦除仍然在块基础上发生。闪存设备的缓慢写入性能的原因涉及到设备中的空闲空间管理,即如果不存在充足存储空间以适应向块的页面的写入操作,则有效数据必须移向设备内的另一个块,使得可以擦除和释放整个块的页面用于将来分配。闪存设备的这样的写入行为通常制约它在要求写入性能的系统中的有效性。C.存储架构
图3是图示了根据本发明的数据档案存储系统的一个示例实施例可以利用的示例性介质存储架构300的组织的示意框图。该架构包括如下文件系统M0,该文件系统设置于奇偶校验保护(RAID)模块320上以控制闪存阵列340的SSD的操作以提供存储系统120的总存储空间。闪存(SSD)控制器330实施用于访问它的相应介质(分别为闪存或者盘)的存储协议。如这里进一步所述,阵列340的每个SSD具有例如由SSD控制器330a提供的关联转译模块335。SSD控制器330向RAID模块320导出几何信息,其中几何信息包括设备机型类型和设备的大小(块数),例如在设备块数(dbn)方面供模块320使用。在闪存阵列340的情况下,dbn例如为SSD控制器330向RAID模块呈现的并且在SSD内受到向闪存物理地址的转译映射的逻辑地址。SSD控制器例如呈现可以针对块大小例如为4KB的随机写入访问而优化的每个扇区接口 512字节。文件系统240例如实施如下数据布局技术,这些数据布局技术改进向电子存储介质140的闪存阵列340的读取和写入性能。例如,文件系统利用如下数据布局格式,该数据布局格式提供向数据容器(例如文件)的快速写入访问,由此实现高效供应涉及闪存阵列 340的随机(和顺序)数据访问操作。为此,文件系统例如实施一组用于实现正在闪存阵列 340的SSD上的空闲可用空间中的任何处放置数据的随处写入算法。由于闪存阵列340例如由SSD构造,所以随机访问是一致的(即未与HDD同样基于机械定位)。因而,文件系统240与SSD配合以提供用于闪存阵列340的如下数据布局引擎, 该数据布局引擎改进写入性能而不降低阵列的顺序读取性能。在一个示例实施例中,文件系统240是具有如下格式表示的基于消息的系统,该格式表示是使用(例如4KB块)并且使用索引节点(“i节点”)描述数据容器(例如文件)的基于块的。如这里所述,文件系统实施任意的每个对象存储(例如文件块编号)到物理存储 (例如物理卷块编号)的映射。映射粒度例如是基于块的以保证适应填充介质的可用存储空间的小分配(例如4KB)。然而,本领域技术人员将理解介质存储架构应当可应用于任何种类的如下对象,该对象实施于存储上并且实施足以提供精细粒度以适应基于块的放置的转译。文件系统也例如使用数据结构存储如下元数据,该元数据描述它在阵列的存储设备上的布局。文件系统240提供语义能力,以便在对存储于存储设备(诸如闪存阵列340的 SSD)上的信息的基于文件的访问中使用。此外,文件系统提供卷管理能力,以便在对存储的信息的基于块的访问中使用。也就是说,除了提供文件系统语义之外,文件系统240提供诸如(i)存储设备的聚集、(ii)设备的存储带宽的聚集、(iii)可靠性保证(诸如镜像和/或奇偶校验(RAID))以及(iv)瘦供给这样的功能。至于以后,文件系统240还与媒体存储模块220的奇偶校验保护(RAID)模块320 配合以控制对闪存阵列340的存储操作。在闪存阵列340的情况下,存在例如与阵列的SSD 关联的可靠性控制的分级。例如,在页面基础上,每个SSD并入纠错码(ECC)能力。这为闪存块内的页面提供低级可靠性控制。当具体化多个SSD内的闪存块时还实施更高级的可靠性控制以在那些设备中的一个或者多个失效时实现从错误恢复。高级可靠性控制例如具体化为RAID模块320配置的冗余性布置,诸如RAID级实施。信息存储例如优选地实施为一个或者多个包括一个或者多个如下SSD的存储卷,这些 SSD配合以限定卷块编号空间在(一个或多个)卷上的总逻辑布置。这里,RAID模块320将卷内的SSD组织为一个或者多个奇偶校验组(例如RAID组),并且管理用于在每组的SSD上放置数据的奇偶校验计算和拓扑信息。RAID模块还根据一种或者多个RAID实施(例如RAID 1、4、5和/或6实施)配置RAID组,从而以由此在例如一个或者多个SSD失效的情况下提供对SSD的保护。也就是说,RAID实施通过跨RAID组中的所给定数量的SSD写入数据“条” 并且适当存储关于条式数据的冗余信息(例如奇偶校验)来增强数据存储的可靠性/完整性。在闪存阵列340的情况下,RAID模块320例如将多个SSD组织为一个或者多个奇偶校验组(例如RAID组),并且管理用于在每组的设备上放置数据的奇偶校验计算和拓扑信息。为此,RAID模块还将数据组织为RAID组内的块条,其中条可以包括跨SSD的对应定位的闪存页面。也就是说,条可以跨越横跨整个RAID组的SSD 0上的第一页面0、SSD 1上的第二页面0等而奇偶校验分布于设备的页面之中。注意,其他RAID组布置是可能的,诸如提供如下逻辑RAID实施方式,其中文件中的每个预定(例如第8个)块为奇偶校验块。卷可以实施为虚拟卷并且进一步组织为例如闪存阵列340和盘阵列350的一个或者多个聚集。在2008年8月5日颁布的美国专利号7,409,494, John K. Edward等人的标
Extension of Write Anywhere File System Laj^wi中描述的聚集和虚拟卷,通过引用将其内容结合于此。简言之,聚集包括如下一组或者多组SSD (诸如RAID组),这些SSD 由文件系统分派成存储系统的一个或者多个虚拟卷(vvol)。每个vvol在利用文件系统布局实施的算法时具有它自己的逻辑性质,诸如“时间点”数据图像(即快照)操作功能。聚集具有它自己的物理卷块编号(pvbn)空间并且在该pvbn空间内维护元数据,诸如块分配结构。每个vvol可以与如下容器文件关联,该容器文件是聚集中的如下“隐藏”文件(用户不可访问),该文件保持由vvol使用的每个块。当对vvol操作时,文件系统240使用由 RAID模块320提供的拓扑信息将wbn (例如wbn X)转译成SSD上的dbn位置。wbn标识容器文件内的文件块编号(fbn)位置,使得可以在容器文件中的fbn X找到vvol中的具有wbn X的块。文件系统使用容器文件的间接块将fbn转译成聚集内的物理vbn (pvbn) 位置,然后可以使用由RAID模块320供应的拓扑信息从存储设备取回该块。在一个示例实施例中,RAID模块320在执行数据的写入分配时(即在闪存阵列340 的wbn存储空间中搜索空闲未分配空间时)导出供文件系统240使用的拓扑信息。该拓扑信息例如包括Pvbn到dbn的映射。对于闪存阵列340,由文件系统用来执行写入分配的块分配记账结构被修改大小以适应以第一数据布局格式(例如依次顺序)向阵列的数据写入。为此,文件系统240在阵列340中例如在256KB闪存块的基础上顺序执行写入分配;即闪存阵列中的vvbn例如映射到256KB闪存块。一旦存储操作系统擦除闪存块并且将闪存块标示为“已释放”(例如作为空闲wbn),就可以在闪存块中的所有六十个4KB页面(例如页面0至页面63)内(根据CP 的写入操作)顺序写入数据,这时访问下一个空闲闪存块并且从页面0至页面63顺序发生写入操作。文件系统240使用的记账结构275 (例如空闲块映射)例如由段清理过程270维护并且指示可用于分配的空闲闪存块。例如执行段清理以释放间接映射到闪存块的一个或者多个所选区域。这些所选区域的包含有效数据的页面(“有效页面”)移向不同区域,并且释放所选区域用于后续重用。 段清理合并碎片空闲空间以改进例如向下层闪存块的写入效率。以这一方式,利用文件系统240的操作以提供在闪存阵列340上的随处写入能力(包括段清理)。举例而言,段清理过程270可以具体化为如下扫描器,该扫描器与文件系统内的写入分配器一起操作以在“清理”(清除)SSD时遍历(漫步)缓冲器和i节点树。D.数据档案操作
本发明的实施例提供如下基于闪存的数据档案存储系统,该系统具有由多个闪存设备构造的大容量存储阵列。闪存设备例如为如下多层单元(MLC)闪存设备,这些设备例如紧密封装成小型外形规格以提供低功率高性能数据档案系统,该系统每立方英寸具有比带或者盘驱动器更多的容量。基于闪存的数据档案系统可以适于采用常规数据去重和压缩方法以紧凑地存储数据。然而不同于常规带和盘档案系统,MLC闪存设备的访问性能更快,因为存储介质为电子存储器。也就是说,无与磁盘驱动器那样需要用于电子存储器的旋起时间、 即向MLC设备供应功率、取回数据、然后切断供给设备的功率。基于闪存的档案系统的性能比任何基于机械或者机电设备的系统更好。另外,基于闪存的档案系统具有比带和/或盘档案系统更小的占用空间并且消耗更少功率。有利地,将闪存设备用于数据档案系统无需用于操作的环境上受控区域。也就是说,与带和/或盘档案系统相比,闪存设备是无需消耗大量占地面积和/或功率的固态半导体设备。另外,仅需向访问的那些闪存设备提供功率,即到系统的其他半导体设备的功率可以保持关断。此外,基于闪存的档案系统还提供比盘驱动器档案系统更高的性能,因为对存储于闪存设备上的数据的随机访问快速而高效。在操作中,例如从客户端110向数据档案存储系统传输数据集。接收的数据集在存储于电子存储介质(例如MLC闪存设备)阵列上之前由数据档案存储系统去重并且压缩。 当数据档案存储系统接收从数据档案对取回(读取)数据的数据访问请求时,SSD控制器330 首先标识请求的数据存储于其上的那些设备。标识的设备然后由SSD控制器330上电并且从它们读取数据。然后在向请求方返回之前解压和恢复数据。然后将设备掉电。图4是详述根据本发明一个示例实施例的用于在数据档案存储系统上存储数据的过程400的步骤的流程图。过程400在步骤405中开始并且继续步骤410,其中接收将存储于数据档案上的新数据集。举例而言,新数据集将存储于用于长期存储的例如文件系统的备份映像等数据档案上。可以使用涉及数据档案存储系统的常规文件传送协议和/或数据备份协议来接收数据集。在一个示例实施例中,然后在下文参照图5描述的步骤500中对接收的数据集的去重。应当注意,在替代实施例中可以不对数据集去重和/或可以使用除了在过程500中描述的技术之外的技术来对数据集去重。这样,对去重的数据集的描述应当仅解释为举例。一旦已经对数据集去重,然后就在步骤415中压缩数据集。可以使用例如ZIP、LZW 等任何压缩技术来压缩数据集。应当注意,在替代实施例中可以不压缩数据集。这样,对压缩数据集的描述应当解释为仅解释为举例。然后在步骤420中在数据档案存储系统的SSD 上存储去重和压缩的数据集。过程400然后在步骤425中完成。图5是详述根据本发明一个示例实施例的数据去重过程500的步骤的流程图。过程500在步骤505中开始并且继续步骤510,其中例如数据档案存储系统接收新数据集。在一个示例实施例中,接收的数据集可以包括涉及数据档案存储系统的新带备份数据流。举例而言,文件系统240实施下文描述的示例去重技术。然而应当注意,在本发明的替代实施例中可以利用任何数据去重技术。这样,这里描述的去重技术应当仅解释为举例。响应于接收新数据集,文件系统240在步骤515中块化(分割)数据集为块。文件系统240可以使用任何可接受的数据分割形式来块化数据集。在一个示例实施例中,文件系统240将数据块化为具有例如32KB大小的固定大小的块。然而应当注意,在替代实施例中可以利用附加和/或可变大小。另外,本发明可以与其他用于根据数据集生成数据块的技术一起利用。这样,对利用固定大小的块的描述应当仅理解为举例。然后在步骤520中生成块的签名。举例而言,可以通过散列化块内包含的数据并且利用所得散列值作为签名来生成签名。如本领域技术人员将理解的那样,应当选择强散列函数以避免冲突,即具有不同内容的块散列化到相同的散列值。然而,应当注意,在替代实施例中可以利用用于生成签名的不同技术。这样,对散列化块中的数据以生成签名的描述应当仅理解为举例。一旦已经生成块的签名,文件系统240就在步骤525中确定生成的签名是否位于签名数据库170内。这可以例如使用常规散列表查找技术来实现。如果签名未存储于签名数据库内,则过程500转向步骤530,其中文件系统240在签名数据库内加载签名。如果签名不在签名数据库内,则先前尚未存储与签名关联的块,即这是块的首次出现。此外,然后在步骤532中存储块。在步骤535中,进行附加块是否在数据集内的确定。如果是,则过程 500循环回到步骤520,其中文件系统240生成数据集中的下一个块的签名。否则,过程500 在步骤540中完成。然而如果生成的签名位于签名数据库270内,则文件系统240在步骤M5中用指向先前存储的块的指针替换传入数据集中的块。也就是说,文件系统240通过用指向先前存储的数据集的指针替换重复数据块来对数据去重。例如可以将数据流ABA去重为AB<指向先前存储的A的指针〉。由于指针的大小通常明显小于块的大小(通常小若干数量级),所以出现存储空间的大量节省。文件系统240然后在步骤550中递增块引用计数器文件175 中的适当计数器。过程500继续步骤535以确定任何附加块是否在数据集中。如果在数据集中无附加块,则过程在步骤535中完成。然而如果有附加块,则过程循环回到步骤520。图6是详述根据本发明一个示例实施例的用于从数据档案存储系统读取数据的过程600的步骤的流程图。过程600在步骤605中开始并且继续步骤610,其中从客户端接收如下数据访问请求,该请求寻求读取存储于数据档案存储系统上的数据。然后在步骤615中标识存储系统内的如下SSD,这些SSD存储请求的数据。然后在步骤620中向标识的SSD施加功率。通过利用MLC SSD的特征,仅需在SSD出现I/O操作之时向SSD施加功率。这显著减少了根据本发明一个示例实施例的数据档案存储系统的总功率要求。在步骤625中从标识的SSD读取请求的数据。可以使用常规MLC SSD读取技术来执行这该读取操作。然后在步骤630中解压读取的数据。解压例如利用使来自过程400的步骤415的压缩反向的技术,即相同的、但是在解压模式中利用的压缩技术。如本领域技术人员将理解的那样,这可以根据诸如对称、不对称等压缩类型而变化。如果数据集在它原先存储于数据档案存储系统上时未加密,则无需解压数据并且可以跳过步骤630。另外,然后在步骤635中恢复读取的数据。由于去重在原先向数据档案存储系统写入数据集时为可选步骤,所以步骤635为可选。然后在步骤640中向客户端返回现在为其解压和恢复形式(即其原有格式)的请求的数据。这可以例如通过网络协议栈210创建适当消息以通过网络160转发请求的数据来实现。上电的SSD然后在步骤645中掉电。过程 600然后在步骤650中完成。前文描述已经涉及本发明的具体实施例。然而将清楚可以对描述的实施例做出其他变化和修改而又达到一些或者所有它们的优势。例如清楚地设想这里描述的部件和/或结构可以实施为软件(该软件包括计算机可读介质,该计算机可读介质具有在计算机上执行的程序指令)、硬件、固件或者其组合。另外可以用在可编程处理器上执行的软件、硬件或者硬件与软件的组合实施每个模块。也就是说,在替代实施例中,模块可以实施为例如在微处理器、控制器内具体化的逻辑电路(例如可编程门阵列或者专用集成电路(ASIC))。因而本说明书将仅解释为示例而不是以别的方式限制本发明的范围。因此所附权利要求书的目的在于覆盖如落入本发明的真实精神和范围内的所有这样的变化和修改。
权利要求
1.一种数据档案存储系统,包括与处理器操作互连的多层单元闪存设备阵列,所述处理器被配置成执行包括文件系统的存储操作系统,所述文件系统被配置成响应于接收用于在所述数据档案存储系统上存储的数据集来(i )对所述接收的数据集去重、(ii )压缩所述接收的数据集并且(iii )在所述多层单元闪存设备阵列中存储所述接收的数据集。
2.根据权利要求1所述的数据档案存储系统,其中所述文件系统还被配置成响应于接收针对数据的请求来(iv)标识存储所述请求的数据的所述多层单元闪存设备中的一个或者多个、(ν)向标识的多层单元闪存设备施加功率、(vi)从所述标识的多层单元闪存设备读取所述请求的数据并且(vii)从所述标识的多层单元闪存设备移除功率。
3.根据权利要求2所述的数据档案存储系统,其中所述文件系统还被配置成(viii)解压读取的请求的数据并且(ix)恢复所述读取的请求的数据。
4.根据权利要求1所述的数据档案存储系统,其中所述数据集包括备份数据流。
5.根据权利要求1所述的数据档案存储系统,其中所述去重包括块化所述接收的数据集为多个块;为所述多个块中的每个块生成签名;确定生成的签名是否在签名数据库中;响应于确定所述生成的签名在所述签名数据库中,用指针替换具有所述生成的签名的块,所述指针指向具有所述生成的签名的先前存储的块;并且响应于确定所述生成的签名不在所述签名数据库中,在所述签名数据库中放置所述生成的签名并且存储具有所述生成的签名的所述块。
6.一种数据档案存储系统,包括与处理器操作互连的多层单元闪存设备阵列,所述处理器被配置成执行包括文件系统的存储操作系统,所述处理器与闪存控制器操作互连,所述闪存控制器被配置成响应于来自所述存储操作系统的命令来控制到闪存设备阵列的功率,并且其中所述文件系统被配置成(i)接收数据集、(ii)对接收的数据集去重并且(iii)在所述多层单元闪存设备阵列中存储去重的数据集。
7.根据权利要求6所述的数据档案存储系统,其中所述文件系统还被配置成(iv)标识存储数据访问请求所请求的数据的所述多层单元闪存设备阵列中的一组多层单元闪存设备、(ν)读取请求的数据、(vi)恢复所述读取的请求的数据并且(vii)返回所述读取的请求的数据。
8.根据权利要求7所述的数据档案存储系统,其中存储所述数据访问请求所请求的数据的所述多层单元闪存设备阵列中的所述组多层单元闪存设备在被读取之前由所述闪存控制器上电。
9.根据权利要求7所述的数据档案存储系统,其中存储所述数据访问请求所请求的数据的所述多层单元闪存设备阵列中的所述组多层单元闪存设备在所述数据访问请求所请求的所述数据被读取之后由所述闪存控制器掉电。
10.根据权利要求6所述的数据档案存储系统,其中所述去重包括块化所述接收的数据集为多个块;为所述多个块中的每个块生成签名;确定所述生成的签名是否在签名数据库中;响应于确定所述生成的签名在所述签名数据库中,用指针替换具有所述生成的签名的块,所述指针指向具有所述生成的签名的先前存储的块;并且响应于确定所述生成的签名不在所述签名数据库中,在所述签名数据库中放置所述生成的签名并且存储具有所述生成的签名的所述块。
11.一种数据档案存储系统,包括与处理器操作互连的多层单元闪存设备阵列,所述处理器被配置成执行包括文件系统的存储操作系统,所述处理器与闪存控制器操作互连,所述闪存控制器被配置成响应于来自所述存储操作系统的命令来控制到闪存设备阵列的功率,并且其中所述文件系统被配置成(i)接收数据集、(ii)压缩接收的数据集并且(iii)在所述多层闪存设备阵列中存储压缩的数据集。
12.根据权利要求11所述的数据档案存储系统,其中所述文件系统还被配置成(iv)标识存储数据访问请求所请求的数据的所述多层单元闪存设备阵列中的一组多层单元闪存设备、(ν)读取请求的数据、(vi)解压读取的请求的数据并且(vii)返回所述读取的请求的数据。
13.一种用于在数据档案存储系统上执行的方法,包括 接收用于在所述数据档案存储系统上存储的数据集; 对接收的数据集执行去重过程;压缩去重的数据集;在多层单元闪存设备阵列上存储压缩的数据集;从所述数据档案存储系统的客户端接收涉及存储的数据的读取请求;控制器确定存储所述请求的数据的一组多层单元闪存设备;向所述组多层单元闪存设备施加功率;从所述组多层单元闪存设备读取所述请求的数据;解压读取的请求的数据;恢复解压的数据;响应所述读取请求;并且移除到所述组多层单元闪存设备的功率。
14.根据权利要求13所述的方法,其中所述去重过程包括块化所述接收的数据集为多个预定义大小的块。
15.根据权利要求13所述的方法,其中所述数据集包括备份数据流。
16.根据权利要求13所述的方法,其中压缩所述去重的数据集包括利用对称压缩技术。
17.根据权利要求13所述的方法,其中所述去重过程包括 块化所述接收的数据集为多个块;为所述多个块中的每个块生成签名; 确定所述生成的签名是否在签名数据库中;响应于确定所述生成的签名在所述签名数据库中,用指针替换具有所述生成的签名的块,所述指针指向具有所述生成的签名的先前存储的块;并且响应于确定所述生成的签名不在所述签名数据库中,在所述签名数据库中放置所述生成的签名并且存储具有所述生成的签名的所述块。
18.一种方法,包括从客户端接收用于在数据档案存储系统上存储的数据集,其中所述数据档案存储系统包括与被配置成控制多层单元闪存设备阵列的控制器操作互连的处理器;在所述处理器上执行的存储操作系统的一个或者多个模块对接收的数据集去重;并且所述控制器在所述多层单元闪存设备阵列上存储去重的数据集。
19.根据权利要求18所述的方法,还包括压缩所述接收的数据集。
20.根据权利要求19所述的方法,其中压缩所述接收的数据集包括利用对称压缩技术。
21.根据权利要求18所述的方法,其中对所述接收的数据集去重包括 块化所述接收的数据集为多个块;为所述多个块中的每个块生成签名; 确定所述生成的签名是否在签名数据库中;响应于确定所述生成的签名在所述签名数据库中,用指针替换具有所述生成的签名的块,所述指针指向具有所述生成的签名的先前存储的块;并且响应于确定所述生成的签名不在所述签名数据库中,在所述签名数据库中放置所述生成的签名并且存储具有所述生成的签名的所述块。
全文摘要
提供一种基于闪存的数据档案存储系统,该系统具有由多个密集闪存设备构造的大容量存储阵列。闪存设备例如为多层单元(MLC)闪存设备,这些MLC闪存设备被紧密地封装以提供低功率高性能数据档案系统,该系统每平方英寸具有比更密集的带或者盘驱动明显更多的容量。基于闪存的数据档案系统可以适于采用常规数据去重和压缩方法以紧凑地存储数据。另外,基于闪存的档案系统具有比带和/或盘档案系统更小的占用空间并且消耗更少功率。
文档编号G06F3/06GK102460371SQ201080029689
公开日2012年5月16日 申请日期2010年4月29日 优先权日2009年4月30日
发明者特里默 D., C. 米勒 S., R. 克莱曼 S. 申请人:网络存储技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1