压缩和重复数据删除分层驱动的制作方法

文档序号:9308601阅读:381来源:国知局
压缩和重复数据删除分层驱动的制作方法
【技术领域】
[0001]本公开涉及文件系统,并且更具体而言,涉及压缩和重复数据删除分层驱动。
【背景技术】
[0002]在具有大数据处理需求的企业环境中,降低总拥有成本是一个重要的考虑。例如,为了优化硬件利用并减少所需服务器的数量,可能期望在单个服务器上合并多个应用处理,例如通过利用虚拟化或其它技术在单个服务器上容纳多个服务。在另一个例子中,可以期望利用集群文件系统来为若干服务器提供共享的合并存储。
[0003]这种合并的服务器环境将常常经历具有许多并发数据请求的繁重的读写负荷。为了以及时的方式给这种数据请求提供服务并且为了满足应用性能需求,使用诸如固态盘的昂贵的高速介质可以是优选的。从而,最大化可用数据储存的利用变成降低总拥有成本的更大因素。
[0004]最大化数据储存利用的一种方法是压缩数据,这会以增加处理器开销为代价提供显著的空间节约。另一种方法是提供重复数据删除,其中数据的冗余拷贝被消除并且用对数据的单个拷贝的引用代替。这两种方法还可以组合并且可能对合并的服务器环境尤其有效。
[0005]为了提供更高的性能并且为了优化自由空间管理,诸如压缩和重复数据删除的特征通常在低层次紧密集成到文件系统中。但是,许多现有的文件系统不提供对压缩和重复数据删除的固有集成支持。而且,当系统已经在使用缺乏对压缩和重复数据删除特征的固有支持的特定文件系统时,迀移到具有这种特征支持的不同文件系统上常常是不可行或不实际的,尤其是对受限于特定众所周知的工作环境的生产系统。虽然开源文件系统可以允许添加新特征的可能性,但是这种任务可能需要大量的开发和测试资源来以确保正确的集成、兼容性和稳定性。
[0006]这部分中所描述的方法是可以被推行的方法,但不一定是之前已经被设想或推行的方法。因此,除非另外指出,否则不应当仅仅由于这部分中描述的任何方法被包括在这部分中就假设它们是现有技术。
【附图说明】
[0007]本发明是通过例子而不是通过限制的方式在附图的各图中例示的,并且在附图中相同的标号表示相同的元素,并且其中:
[0008]图1A是描绘根据实施例的利用压缩和重复数据删除分层(COLD)驱动来扩展文件系统功能的示例计算机系统的框图;
[0009]图1B是描绘根据实施例的由压缩和重复数据删除分层(COLD)驱动使用的示例元数据文件的框图;
[0010]图1C是描绘根据实施例的由压缩和重复数据删除分层(COLD)驱动创建的元数据记录的框图;
[0011]图2是描绘根据实施例的用于通过压缩和重复数据删除分层(COLD)驱动给数据请求提供服务的处理的流程图;
[0012]图3是可以实现实施例的计算机系统的框图。
【具体实施方式】
[0013]在以下描述中,为了解释,阐述了各种具体细节,以便提供对本发明的透彻理解。但是,显然,本发明没有这些具体细节也可以被实践。在其它情况下,众所周知的结构和设备以框图形式示出,以避免不必要地模糊本发明。
[0014]总体概述
[0015]在实施例中,文件系统操作经过居间文件系统驱动,该文件系统驱动在现有的基本文件系统之上提供逻辑文件系统。在一个实施例中,居间文件系统具体而言是压缩和重复数据删除分层驱动(“COLD驱动”)。COLD驱动提供在现有基本文件系统之上接口的上层操作系统驱动,从而通过提供具有压缩、重复数据删除、加索引和其它特征的逻辑文件系统来扩展基本文件系统的功能。COLD驱动所需的元数据可以作为基本文件系统的标准基本文件存储,从而允许现有的文件系统被原样使用。此外,通过使用诸如POSIX的可移植文件系统应用编程接口(API)来与下层基本文件系统接口,可以使COLD驱动模块化并可跨广泛的文件系统和操作系统移植。以这种方式,生产系统可以继续使用现有的众所周知的配置,同时COLD驱动提供在企业空间中需要的新特征,尤其是适于合并环境的存储优化特征。
[0016]系统概述
[0017]图1A是描绘根据实施例的利用压缩和重复数据删除分层(COLD)驱动130来扩展基本文件系统160功能的示例计算机系统100的框图。计算机系统100包括计算设备110和数据存储设备150。计算设备110包括操作系统111、应用120A、应用120B和应用120C。操作系统111包括COLD驱动130和基本文件系统接口 140。COLD驱动130包括压缩引擎132、重复数据删除引擎134和加索引引擎136。数据存储设备150包括基本文件系统160。基本文件系统160包括文件系统元数据162、基本数据文件165、C0LD数据文件170和COLD元数据文件180。
[0018]计算机系统100示出了其中单个计算设备110并发执行多个应用120A-120C的合并环境。应用120A-120C、COLD驱动130和基本文件系统接口 140可以全部驻留在存储器(例如,DRAM和/或高速缓存存储器)中。应用120A-120C可以针对基于数据库的应用、web服务、高性能计算(HPC)任务、以及其它通用应用。
[0019]应用120A-120C可以代表固有地执行的线程或者作为代替可以代表不同虚拟机上单独的虚拟处理。在利用虚拟化的情况下,虚拟机可以将传递或转化驱动用于对下层主机操作系统或操作系统111的基本文件系统接口 140的共享访问。
[0020]虽然在图1A中示出了单个计算设备110,但是,在备选实施例中,可以使用多个计算设备。例如,多个设备可以与基本文件系统160接口,作为集群文件系统。
[0021]数据存储设备150可以代表任何类型的存储池,包括一个或多个物理盘,诸如硬盘驱动器、固态盘和其它存储介质。数据存储设备150可以被设置为独立磁盘冗余阵列(RAID)或者适于高可用性和高性能的另一配置。数据存储设备150还可以由卷管理器管理,从而允许多个盘被动态地聚合。在一个实施例中,数据存储设备150可以是可本地访问的直接连接的储存器。在其它实施例中,对数据存储设备150的访问可以经存储区域网络(SAN)提供,诸如通过因特网小型计算机系统接口(iSCSI)目标,或者通过诸如网络文件系统(NFS)和通用因特网文件系统(CIFS)的网络访问协议。
[0022]处理概述
[0023]在详细讨论COLD驱动130的处理步骤之前,对COLD驱动130可以如何扩展基本文件系统160的功能提供广泛处理概述会是有帮助的。假定基本文件系统160具有4KB或4096字节的分配单元,并且COLD驱动130的逻辑块规模也被设置为4KB。应用120A可以请求创建具有12KB数据内容的新文件,该文件将通常填充基本文件系统160中的3个分配单元。文件创建请求被COLD驱动130截获,COLD驱动130经由压缩引擎132分析数据内容。压缩引擎132把数据内容分成每个4KB的3个逻辑块,并且确定这3个逻辑块是高度可压缩的。
[0024]由于逻辑数据是高度可压缩的,因此压缩引擎132把这3个逻辑块压缩为单独的独立压缩块,然后将所述单独的独立压缩块级联到一起。然后,基本文件系统接口 140被调用,以便把级联的压缩数据块写入新的COLD数据文件170中,该COLD数据文件170可以只占用基本文件系统160中的I个分配单元。文件系统元数据162也可以被更新,以反映新文件创建。包括指向每个压缩块的指针和解压缩元数据的元数据记录也被写入COLD元数据文件180。从而,当不考虑COLD驱动元数据的可忽略的贡献时,节省了 2个分配单元的空间。
[0025]当应用120A、120B或120C在稍后的时间请求读取COLD数据文件170时,COLD驱动130可以截获该请求并利用COLD元数据文件180经由压缩引擎132来解压缩适当的压缩块。此外,COLD驱动130可以截获信息调用(诸如文件列表调用),使得COLD数据文件170看起来像具有12KB文件规模的标准基本文件。诸如COLD元数据文件180的特殊元数据文件也可以隐藏不被用户访问和看到。从而,COLD驱动130可以透明地操作,而无需应用、终端用户或下层基本文件系统160的行为的任何改变。
[0026]除了压缩之外,COLD驱动130还可以提供基本文件系统160通常不可获得的其它有用功能。如图1A的COLD驱动130中所示,重复数据删除引擎134和加索引引擎136也存在,它们可以提供重复数据删除和加索引功能。用于这些功能的元数据可以存储在诸如COLD元数据文件180的元数据文件中。但是,由于这些元数据文件可以作为标准基本文件存储在基本文件系统160中,因此不需要改变基本文件系统160或文件系统元数据162的结构。
[0027]当作出对诸如基本数据文件165的基本文件的文件请求时,COLD驱动130可以以旁路模式操作,其中请求被直接传递到基本文件系统接口 140。这还可以在COLD驱动130断定以固有形式创建文件更高效的时候发生,例如,在要被写入的新文件已经被高度压缩的情况下。
[0028]COLD驱动操作
[0029]为了理解计算机系统100的操作和数据流,以一般化的方式审视COLD驱动130的处理步骤会是有指导性的。转向图2,图2是描绘根据实施例的用于通过压缩和重复数据删除分层(COLD)驱动130给数据请求提供服务的处理200的流程图。
[0030]在方框202,参考图1A,应用120A调用居间文件系统驱动(或COLD驱动130),以请求对可经由COLD驱动130访问的逻辑文件系统(或COLD文件系统)中的一个或多个逻辑文件进行一个或多个操作,其中COLD文件系统与COLD元数据文件180中的COLD元数据关联,COLD元数据文件180包括COLD文件系统中的逻辑文件与基本文件系统160中的基本文件之间的元数据映射。
[0031]在写操作的情况下,可以假设,在方框202之前,COLD数据文件170和COLD元数据文件180利用标准文件创建调用在基本文件系统160中创建并存储,但还没有填充数据。在读操作的情况下,可以假设,在方框202之前,COLD数据文件170已经填充了数据,并且COLD元数据文件180已经具有用于COLD数据文件170的对应的元数据记录。
[0032]COLD驱动130作为上层驱动位于现有的基本文件系统160之上。由于COLD驱动130处于应用120A-120C与基本文件系统接口 140之间,因此来自应用120A-120C的所有文件
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1