一种低功耗的高性能重复数据删除系统的制作方法

文档序号:7570290阅读:255来源:国知局
专利名称:一种低功耗的高性能重复数据删除系统的制作方法
技术领域
本发明涉及重复数据删除领域,特别涉及到重复数据删除系统中能耗和计算性能的优化问题。
背景技术
随着计算机技术的发展,信息化使得数据保护的重要性越来越高,定期存储数据与转储数据是人们最初用来保护数据的主要手段之一,这种方式一定程度上保护了用户的数据安全,随着时间的发展,很快人们发现这种级别的数据保护已经难以满足现有的需求,两次备份之间仍然存在大量的数据丢失的危险,于是,连续数据保护技术(continuous data protection,⑶P)应运而生,顾名思义,连续数据保护可以提供更细粒度的数据保护,甚至可以对每次写请求进行备份与保护,当然,如此细粒度的数据保护需要付出更多的存储代价,随着数据量的不断增大,备份数据产生的存储代价也越来越让人难以接受。从 ESG(Enterprise Strategy Group)统计信息得到,需要保护的数据总量以每年60%的速度增长,目前需要存储的数据总量已经达到Perabyte数量级。面对如此庞大的数据量,传统的备份方法造成的存储开销将非常巨大。然而,传统的备份技术,特别是全量备份、增量备份产生的备份数据大部分都是重复的,没必要对已经备份的重复数据再进行备份。因此,重复数据删除技术被引入。目前,基于重复数据删除技术的连续数据保护技术是一个热点, 通过丢弃在数据备份过程当中产生的重复数据,可以有效降低存储系统的开销。例如Data Domain Deduplication File System (DDFS),对一个月产生的备份数据进行重复数据删除工作,最终可以达到38. 的压缩率,从而像预期的那样大大的减少了存储开销。参阅图1,展示了一般重复数据删除系统的数据删除过程,具体的步骤如下所述 步骤S101.接收备份中心到达的待备份的数据块。步骤S102.计算接收到的数据块的摘要。步骤S103.通过摘要比较判断接收到的数据块是否重复,过滤掉重复的数据并对所有数据创建相应的元数据。步骤S104.压缩已经去重的数据和元数据。步骤S105.加密压缩后的数据。步骤S106.将加密过的数据通过网络发送到备份中心进行备份。在上述步骤中,数据块的去重是通过比较数据块的摘要来实现的,这就要求计算摘要的算法必须要有很低的碰撞率,现有的重复数据删除系统中采用的摘要算法一般是 MD5、SHA-1和SHA-256。在比较摘要的算法中,一般要先用Bloomfilter算法进行初步判断, 然后再通过比较基于磁盘的索引来做进一步的判断。通常,为了加快磁盘索引的比较,会在内存中保存一部分索引作为cache,以此来减少磁盘的读写操作,从而加速比较的过程。参阅图2,示出现一般重复数据删除系统去除重复数据块的比较流程,具体步骤如下所述
步骤S201.计算数据块摘要。
步骤S202.计算Bloomfilter,判断相应的位置是否已经置位,如果没有被置位, 则该数据块是唯一的,创建元数据;否则,需要进行进一步判断。步骤S203.将新的摘要和存储在cache中的索引进行比较,如果有相同的,则数据块重复,记录重复的数据在备份中心存储的位置,并创建元数据;否则,需要和磁盘上的索引再进行比较,如果也没有相同的,则数据块唯一,创建元数据,否则,数据块重复。步骤S204.如果数据块重复,读出它的索引记录的磁盘位置的后续几个扇区的索引,更新cache,利用数据的局部性原理来减少磁盘访问次数。以往对于基于重复数据删除技术的研究中,人们通常将研究重点放在如何减少索引的比较上(因为传统磁盘的访问时间是以上流程中最耗时的一个环节),而没有人关注重复数据删除过程中存在的大量的计算问题。随着时间的推移,网络的传输速度的提高以及大容量高速存储器的应用(例如固态硬盘的使用),目前制约重复数据删除系统吞吐率的因素(网络传输和磁盘随即访问速度等)在不久的将来将不再成为问题;而与此同时,重复数据删除过程中的大量的复杂的计算任务给CPU的带来的计算压力将成为新的系统瓶颈。

发明内容
本发明的目的是为了解决现有重复数据删除系统的性能低下和高功耗的问题,提供了一种基于低功耗处理器的高性能重复数据删除系统。该系统可以很好的提高重复数据删除系统的系能,同时低功耗的处理器的使用大大的降低了整个系统的能耗。本发明就是研究如何通过将复杂的计算任务分配到通用协处理器上(例如威盛处理器VIA处理器协处理器和图形处理器GPU)来加速计算过程,以此来提高系统的吞吐率; 同时,利用低功耗协处理器在能耗方面的优势将会降低整个系统的耗能,最终实现一个低功耗的高吞吐率的重复数据删除系统。本发明提供的低功耗高性能的重复数据删除系统,由以下三部分组成(参见图9) 生产中心、计算中心和备份中心(也称容灾中心),三部分分别部署在三个节点(计算机)上。 其中,生产中心和备份中心分别部署在两个单核2. 66GHZ的htel Xeon节点,每台机器拥有4GB的内存和一个由6个磁盘构成的硬件raid-Ο。计算节点部署在1. 6GHZ的VIA nano 平台上,它拥有2GHZ的内存和由两块磁盘构成的raid-0。生产中心产生要备份的数据,本发明在块设备层实现数据保护,在块设备层截获用户的写请求,复制写请求的数据并将该数据发送到同一个局域网内的计算中心节点。计算中心接收生产中心节点的数据处理请求,进行数据的重复性判断,删除重复的数据并加密不重复的数据,然后将加密后的不重复数据发送到备份中心做永久存储;备份中心负责接收计算中心发送过来的元数据和不重复的数据并将它们以合理的布局方式存储起来。为了提高数据的压缩率以节省存储时间并减少计算数据摘要需要的时间,首先对数据进行压缩处理;为了减少数据比较的大小,我们对要处理的每个待处理的数据块计算其摘要,将数据块内容的比较转换为数据块摘要的比较,这样可以减少比较的时间提高系统的运行时间;使用Bloomfilter技术进一步减少磁盘比较的次数;最后为了保护数据的安全性,对不重复的数据做加密操作然后发送到远端备份中心。我们可以看到,计算中心存在大量的计算任务,复杂的大量计算会给系统运行带来很大的压力并严重影响系统的性能。为了加速这些计算过程以提高系统的运行效率,本发明所述计算中心采用如下方法加速计算过程并降低功耗 第1、使用协处理器加速系统的计算
第1. 1、使用威盛处理器VIA的协处理加速摘要计算和数据加密过程; 第1.2、使用图形加速显卡GPU加速系统中的压缩过程; 第1.3、使用GPU加速系统中的数据摘要计算; 第1. 4、使用GPU加速Bloomfilter过程; 第1. 5、使用GPU处理整个数据初步查重过程; 第2、多线程并行处理的流水线机制
第2. 1、多线程流水线机制; 第2. 2、压缩在前的流水线; 第2. 3、压缩在后的流水线; 第2. 4、使用GPU做主要计算的流水线。可选的,使用威盛处理器VIA的协处理加速摘要计算,具体为用威盛平台上自带的协处理器Padlock加速SHA-I数据摘要计算过程,Padlock提供了加速引擎之一 PHE,可以通过VIA处理器的特殊的汇编指令来使用该加速引擎加速摘要计算(SHAl)计算过程,通过C语言封装这些汇编语言指令成两个统一的C函数调用VIA_SHA1,VIA_SHA1使用C语言的内嵌汇编特点封装了 PadLock提供的汇编语言编程接口,调用上面两个C函数调用进行摘要的计算过程并以此达到加速计算的目的。优选的,使用威盛处理器VIA的协处理和数据加密过程,具体为用威盛平台上自带的协处理器Padlock加速AES数据加密计算过程,Padlock提供了硬件加速引擎ACE和 ACE2来加速加密计算过程。通过调用处理器上特殊的汇编指令可以调用PadLock的加速引擎来加速加密计算,通过C语言封装这些汇编语言指令成统一的C函数调用VIA_AES,VIA_ AES使用C语言的内嵌汇编特点封装了 PadLock提供的汇编语言编程接口,调用封装好的程序进行加密的计算过程并以此达到加速计算的目的。优选的,使用GPU加速系统中的压缩过程。具体为利用GPU的统一计算架构CUDA 这一编程模型编写成一个压缩计算库CompressionGPU ;CompressionGPU包含如下函数接口 ComGPUInit,ComGPUKernel, CompressionGPUDestroy ;调用 ComGPUInit 负责 GPU 端的内存申请工作,ComGPMernel从全局数据缓冲区取得数据,调用传输到计算显卡的显存中, 计算显卡开辟足够多的执行线程,每个线程对其中的一个待处理的数据块进行压缩处理, 每个线程根据自己的线程ID确定要压缩的数据的起始位置,并从起始位置读出要压缩的数据块长度(数据经过读线程处理后数据的每个数据块长度固定),然后使用Iz jb压缩算法对该数据进行压缩处理。ComGPUDestroy负责ComGPUInit申请的内存的销毁工作。这样所有的数据块的并发处理可以减少压缩所需要的时间,提高系统的性能。可选的,使用GPU加速系统中的数据摘要计算。摘要计算是典型的数据密集型的计算,GPU的单指令多数据计算模型适合处理这种计算。具体为利用CUDA这一编程模型封装成一个摘要计算库SHA1GPU;SHA1GPU包含如下函数接口 SHA1GPU包含如下的函数接口 SHAlGPUInit, SHAlGPUKernel, SHAlGPUDestroy ;SHAlGPUInit 负责 GPU 端的内存分配工作, SHAlGPUKernel负责将压缩产生的数据拷贝到GPU显存中,GPU开启足够多的执行线程,每
7个线程负责计算一个待处理的的数据块的摘要,并将结果返回到CPU ;SHAlGPUDestroy负责销毁SHAlGPUInit申请的内存。优选的,使用GPU加速Bloomfilter过程。Bloomfilter计算是典型的数据密集型的计算,GPU的单指令多数据计算模型适合处理这种计算。具体为首先我们利用CUDA编程模型封装BloomfiIter计算过程成一个库BloomfiIterGPU ;BloomfiIterGPU包含如下函数接口 BFGPUInit,BFGPUKernel,BFGPUDestroy ;BFGPHnit 在GPU 的显存中开辟一个大的缓冲区做为了 bloomf ilter计算的summary vector, Bloomf ilter计算线程对于摘要计算的结果进行处理,然后调用BFGPMernel在计算显卡开辟足够多的执行线程,每个线程对其中的一个待处理的数据块进行Bloomfilter计算,所有的线程并发执行,每个根据自己的线程ID确定要做Bloomfilter计算的数据起始位置,然后读取固定长度的数据(摘要计算的结果,长度为160位)来做Bloomfilter计算。优选的,系统的流水线处理,整个重复数据删除的过程可以分为以下几个步骤数据接收,数据压缩,数据摘要计算,Bloomfilter计算和数据加密计算,备份数据的发送,每个步骤完成数据的一项处理任务,这些任务会在不同的硬件上执行,相互之间的数据依赖关系很弱,不同的计算任务可以并行地执行,结合每个计算任务相应的优化算法,采用流水线提高程序的并发度可以进一步提高系统的性能。可选的,数据压缩优先的流水线处理机制。在进行重复数据删除的过程中, 数据流经主线程接收与预处理后,首先流入数据压缩线程,再依次流经摘要计算线程、 BloomFilter线程和数据加密线程,最后经过数据处理线程对元数据和已经去重的数据写磁盘进行备份。压缩优先的处理过程可以提高降低摘要计算所需要的数据量减少摘要计算的时间。对于压缩计算的时间少于摘要计算的时间和加密计算的时间的系统,采用此种流水线可以减少整个系统的运行时间。可选的,压缩在后的流水线。数据流经主线程接收与预处理后,首先流入数据摘要计算线程,再依次流入BloomFilter线程、数据压缩和数据加密线程,最后经过数据处理线程对元数据和已经去重的数据写磁盘进行备份。对于数据重复率大于2 1的数据集,不对全部的数据进行数据压缩,仅仅对非重复的数据进行压缩处理,可以大大的减少压缩的数据量,节省计算的时间,提高系统的吞吐量。可选的,使用GPU做主要计算的流水线。我们看到,初步查重过程中的压缩计算、 摘要计算还有Bloomfilter计算都可以使用GPU来处理,CPU和GPU之间的数据传输需要占用一定的时间,将上述计算放到GPU上顺序的做处理可以减少CPU和GPU之间的数据传输次数(6次减少为两次)和需要传输的数据量(两次中间结果不需要传递),这样的流水线对于只应用GPU来加速的系统取得比较好的效果。与现有的技术相比,本发明具有如下优点
本发明的目的是解决在不久的将来可能成为重复数据删除系统瓶颈的系统计算问题, 通过将计算问题放到协处理器来缓解主处理器的压力,并利用协处理器强大的计算能力来将计算过程进行加速达到系统性能提升的目的;同时,利用协处理器的低功耗的特点,来实现系统功耗的降低。(1)本发明公开的计算问题优化是用通用协处理器和GPU来实现的,相比现有的专用协处理器加速计算具有更好的通用性、更低的实现成本。
(2)本发明公开的重复数据删除系统是在低耗能的平台上实现的,通过流程的优化和计算问题的优化,其性能可以和服务器相媲美,可以完全替代服务器。(3)本发明公开的重复数据删除系统具有很高的吞吐率,更低廉的成本和更低的能耗,更加符合当前倡导的节能环保的精神。


图1为重复数据删除的基本流程图。图2为重复数据删除中数据查重流程图,即基本流程图的步骤sl02和sl03。图3为重复数据删除系统中数据批量化汇集的操作原理。图4为多线程并行处理的流水线机制原理图。图5为GPU加速压缩算法的流程图。图6为压缩优先的流水线处理机制流程图。图7为摘要计算优先的流水线处理机制流程图。图8为使用GPU做初步查重计算的流水线机制流程图。图9为重复数据删除系统的架构图。
具体实施例方式为了使本发明上述的目的、特征和优点更加浅显易懂,下面结合附图和具体实施方式
作进一步说明。实施例1
参阅图3,示出本发明的数据批量化汇集算法。具体的原理及操作步骤如下所述 步骤S301,对从网络接收到的数据块,生成其相应的元数据信息。步骤S302,将步骤S301中生成的元数据挂载到相应的全局元数据链表上,以待后面线程的使用。步骤S303,获得数据块的大小,保存到全局数据缓冲区的相应位置。步骤S304,将数据块放到全局数据缓冲区的对应位置。对数据流的批次封装,主要是为了把传统上串行的重复数据删除流程改为流水线机制而做的数据预处理。同时,对数据流批次封装,把数据和元数据分开来存储,也是为后续的GPU并行计算做好准备。实施例2:
参阅图4,示出本发明的GPU压缩算法的流程。具体的原理及操作步骤如下所述 步骤S401,获得当前进程的ID。步骤S402,因为数据是在累积的过程中预先组织好的。所以可以根据之前的线程 ID来得到线程要处理的数据在总的数据块的位置。步骤S403,从数据块的起始位置得到线程要处理的数据块的大小,存放在上一步骤得到的指针位置的。步骤S404,使用某 种压缩算法对该数据块做压缩处理。实施例3 参阅图5,示出本发明用GPU做Bloomfilter的流程。具体的原理及操作步骤如下所

步骤S501,获取当前线程的ID。步骤S502,获取该线程要处理的数据,数据是预先组织好的,所以根据当前线程 ID就可以获得数据在总数据块的首地址。数据长度是固定的(160位)。步骤S503,使用某种算法对该块数据做Bloomfilter计算。实施例4
参阅图6,示出本发明的压缩优先流水线处理机制流程。集体的原理及操作步骤如下所

步骤S601,主线程从网络上获取数据,提取元数据信息,进行批次封装,最后将封装好的数据块挂载到数据压缩线程的处理队列中,等候数据压缩线程的处理。步骤S602,数据压缩线程从自己的任务队列链表中摘取一个节点,根据元数据信息,对数据区中的每一个数据块进行压缩,并且将压缩后的长度存储到相应的元数据信息中;压缩后的数据重新组成数据块,和元数据一起封装成新的节点,并将新的节点挂到摘要计算线程的任务队列链表上,然后再从任务队列上顺序摘取下一个节点,进行下一批次的计算。步骤S603,摘要计算线程从自己的任务队列链表上摘取一个节点,根据元数据信息,对数据区中的每一个数据块进行摘要计算,并将计算结果保存在元数据信息中,并将该节点挂到Bloomfilter线程的任务队列链表上。然后再顺序从任务队列中摘取下一个节点,进行下一批次的摘要计算。步骤S604,Bloomfilter线程从自己的任务队列上摘取一个节点,根据元数据信息中存储的摘要进行Bloomfilter计算,进行初次判断如果Bloomfilter判断该摘要已经存在,则需要和已经存储在磁盘上的元数据信息逐个比较,看该摘要是否真的重复,如果重复,则丢弃数据,更新元数据相应信息并保存;否则,该摘要不重复,相应的,其对应的数据块也是唯一的,需要保存数据和元数据信息。至此,数据过滤的任务完成,将过滤后的数据和元数据封装成新的节点并将其挂到加密线程的任务队列链表上。然后再顺序从任务队列中摘取下一个节点,进行下一批次的重复数据过滤计算。步骤S605,加密线程从自己的任务队列中摘取一个节点,分别对元数据和数据进行加密,并将加密后的数据通过网络发送到备份节点进行存储。在数据压缩、摘要计算、Bloomfilter计算以及加密计算线程中,计算线程均是对一个批次内的每一个数据块进行计算,为了提高效率,可以利用GPU强大的并行计算能力, 使所有数据块计算的任务同时进行。这样,计算一个批次数据的时间和计算一个数据块所耗费的时间基本相同,从而大大提高了计算速度。因为摘要计算和数据加密计算所耗费的时间和数据块的大小成正比,所以数据压缩先于其他计算任务进行,可以缩短数据块的大小,从而可以有效地降低摘要计算和数据加密计算所耗费的时间。这对于压缩速度比较快、而摘要计算和数据加密计算相对来说比较耗时的重复数据删除模型来说,数据压缩优先的流水线机制可以有效地提高系统的效率。实施例5 参阅图7,示出本发明的摘要优先的流水线机制处理流程。具体的原理及操作步骤如下所述
步骤S701,主线程从网络上获取数据,提取元数据信息,进行批次封装,最后将封装好的数据块挂载到摘要计算线程的处理队列中,等候摘要计算线程的处理。步骤S702,摘要计算线程从自己的任务队列链表上摘取一个节点,根据元数据信息,对数据区中的每一个数据块进行摘要计算,并将计算结果保存在元数据信息中,并将该节点挂到Bf线程的任务队列链表上。然后再顺序从任务队列中摘取下一个节点,进行下一批次的摘要计算。步骤S703,Bf线程从自己的任务队列上摘取一个节点,根据元数据信息中存储的摘要进行Bloomfilter计算,进行初次判断如果Bloomfilter判断该摘要已经存在,则需要和已经存储在磁盘上的元数据信息逐个比较,看该摘要是否真的重复,如果重复,则丢弃数据,更新元数据相应信息并保存;否则,该摘要不重复,相应的,其对应的数据块也是唯一的,需要保存数据和元数据信息。至此,数据过滤的任务完成,将过滤后的数据和元数据封装成新的节点并将其挂到数据压缩线程的任务队列链表上。然后再顺序从任务队列中摘取下一个节点,进行下一批次的重复数据过滤计算。步骤S704,数据压缩线程从自己的任务队列链表中摘取一个节点,根据元数据信息,对数据区中的每一个数据块进行压缩,并且将压缩后的长度存储到相应的元数据信息中; 压缩后的数据重新组成数据块,和元数据一起封装成新的节点,并将新的节点挂到数据加密线程的任务队列链表上,然后再从任务队列上顺序摘取下一个节点,进行下一批次的计算。步骤S705,加密线程从自己的任务队列中摘取一个节点,分别对元数据和数据进行加密,并将加密后的数据通过网络发送到备份节点进行存储。数据压缩在数据去重之后进行,主要针对以下两个应用环境
1、在选择的数据压缩算法相对于其他算法比较耗时的情况下,将数据压缩放在去重之后进行,可以减少数据压缩的任务量,从而减少整个系统的耗时。2、在摘要计算和加密计算使用协处理器执行、其他计算使用GPU执行的环境中, 数据压缩放到数据去重之后执行,可以减少数据在内存和显存之间拷贝的次数。因为 Bloomfilter计算和数据压缩计算都放在GPU中执行,在执行完Bloomfilter计算后,数据可以不用换出显存,直接执行压缩即可。实施例7
参阅图8,示出本发明的使用GPU做初步查重计算的流水线机制,具体的原理及操作步骤如下所述
步骤S801,主线程从网络上获取数据,提取元数据信息,进行批次封装,最后将封装好的数据块挂载到摘要计算线程的处理队列中,等候初步查重计算线程的处理。步骤S802,初步查重计算线程从自己的任务队列链表上摘取一个节点,根据元数据信息,对数据区中的每一个数据块,首先进行压缩处理,然后进行摘要计算,最后进行 bloomfilter初步查重处理,然后将三种计算的结果保存。然后再顺序从任务队列中摘取下一个节点,进行下一批次的数据初步查重计算。步骤S803,加密线程从自己的任务队列中摘取一个节点,分别对元数据和数据进行加密,并将加密后的数据通过网络发送到备份节点进行存储。
权利要求
1.一种低功耗的高性能重复数据删除系统,该系统由以下三部分组成生产中心、计算中心和备份中心;生产中心产生需要做备份的数据并发送到计算中心,同时负责用户交互过程;计算中心接收来自生产中心的数据,进行数据的重复性判断,删除重复的数据并加密不重复的数据然后将加密后的不重复数据发送到备份中心做永久存储;备份中心负责接收计算中心发过来的加密后的不重复的数据并合理的存储;重复数据删除系统一般采用比较数据的摘要方法来查重,并引入了 Bloomf iIter技术进行数据的初步查重以进一步减少数据比较量;其特征在于计算中心采用如下方法加速的计算过程并降低功耗第1、使用协处理器加速系统的计算问题第1. 1、使用威盛处理器VIA的协处理加速摘要计算和数据加密任务第1.2、使用图形加速显卡GPU加速系统中的压缩过程第1. 3、使用GPU加速系统中的数据摘要计算第1. 4、使用GPU加速Bloomfilter过程第1. 5、使用GPU处理整个系统的初步查重过程第2、多线程并行处理的流水线机制第2. 1、多线程流水线机制第2. 2、压缩在前的流水线第2. 3、压缩在后的流水线第2. 4、使用GPU做主要计算的流水线。
2.根据权利要求1所描述的系统,其特征在于步骤1.1中所描述的使用VIA协处理器加速摘要计算和数据加密任务的具体方法如下将摘要计算任务和数据的加密任务分配到VIA处理器的协处理器模块I^dLock ;VIA处理器的协处理器I^dLock拥有五个加速引擎随机数生成器引擎RNG,高级加密引擎ACE,高级加密引擎版本2ACE2,摘要计算引擎PHE和蒙哥马利乘法器PMM ; PHE可以用来加速摘要计算,ACE和ACE2可以用来加速加密计算;PadLock仅仅提供了几套汇编指令, 我们使用C语言对这些汇编指令进行封装,生成两个易于使用的C语言函数调用VIA_SHA1 和VIA_AES,系统调用这两个函数来加速摘要计算和加密过程。
3.根据权利要求1所描述的系统,其特征在于步骤1.2中所描述的使用GPU加速压缩过程的具体方法如下GPU提供的单程序多数据计算模型非常适合处理计算密集型的批次数据任务;利用GPU的统一计算架构CUDA这一编程模型编写成一个压缩计算库 CompressionGPU ; CompressionGPU 包含如下函数接口 ComGPUInit,ComGPUKernel, CompressionGPUDestroy ;系统首先在CPU上对数据做初步的数据准备工作,然后调用 CompressionGPU的函数接口将计算任务分配到GPU上来加速压缩过程。
4.根据权利要求1所描述的系统,其特征在于步骤1.3中所描述的使用GPU来加速摘要计算过程的具体方法如下数据摘要也是典型计算密集型的计算过程,同样适合用GPU 来加速计算;首先利用CUDA编程模型将数据摘要计算封装成摘要计算库SHA1GPU ;SHA1GPU 包含如下的函数接口 SHAlGPUInit,SHAlGPUKernel,SHAlGPUDestroy ;系统数据压缩线程对压缩数据进行预处理后返回到CPU,CPU调用SHA1GPU的函数接口将摘要计算任务分配到 GPU上进行。
5.根据权利要求1所描述的系统,其特征在于步骤1.4中所描述的使用GPU来加速Bloomfilter计算过程的具体方法如下在系统中,Bloomfilter是重复数据删除系统中计算密集度最高的过程,最适合用GPU来做加速计算;首先我们利用CUDA编程模型封装 Bloomfilter 计算过程成一个库 BloomfilterGPU ;BloomfiIterGPU 包含如下函数接口 BFGPUInit,BFGPUKernel, BFGPUDestroy ;然后我们对摘要计算的结果数据调用BloomfilterGPU 中的函数接口将Bloomfilter分配到GPU上做处理。
6.根据权利要求1所描述的系统,其特征在于步骤1.5中所描述的使用GPU处理整个数据初步查重过程的具体方法如下首先我们可以调用⑶DA编程模型生成一个初步数据查重库 DuplicateGPU ;DuplicateGPU 提供了如下的函数接口,DuplicateGPUInit, Dup 1 icateGPUKerne 1, DuplicateGPUDestroy ;DuplicateGPU 针对压缩计算、摘要计算和 Bloomfilter计算做了统一封装,GPU对于输入的数据,顺序性的做数据压缩、摘要计算和 Bloomfilter计算,然后将各个计算的结果一次返回到CPU ;使用库DuplicateGPU,一次数据输入和结果传出就可以对上述三种计算进行统一处理,减少了数据传输的次数和数据量。
7.根据权利要求1所描述的系统,其特征在于步骤2.1中所描述的多线程流水线机制的具体的方法为系统开启以下独立的线程数据接收线程、数据压缩线程、摘要计算线程、Bloomf ilter 处理线程、数据加密与发送线程;数据接收线程负责接收数据,生成数据对应的元数据然后将元数据挂载到一个元数据链表等待以后的处理,并将数据按照到达计算中心的先后顺序放到一个全局数据缓冲区;系统预先设定一个缓冲区大小值BUFSUE,当接收的数据数量达到BUFSUE,接收线程将数据传送给数据压缩线程;数据压缩线程负责进行批量数据的数据压缩处理,然后压缩的数据被发送到摘要计算线程;摘要计算线程负责计算经过压缩的批量数据的摘要,然后将批量数据的摘要发送到BloomFilter线程;BloomFilter线程负责批量的摘要数据 Bloomfilter计算操作,然后将数据的初步查重将结果发送到加密与数据发送线程;加密与发送线程负责对数据重复性做进一步的验证,然后将非重复的数据块进行加密,最后将元数据写到本地磁盘,并将元数据和经过加密的备份数据通过nbd模块写到远程备份服务ο
8.根据权利要求1所描述的系统,其特征在于步骤2.2中所描述的压缩在前的流水线适合压缩的时间分别小于摘要计算的时间和数据加密时间的重复数据删除系统,具体方法如下调整各个计算线程的执行顺序,将压缩线程作为流水线的第一个计算步骤来处理,然后将压缩后的数据传到摘要计算的线程,这样的流水线顺序可以减少摘要计算的数据量, 减少摘要计算的时间。
9.根据权利要求1所描述的系统,其特征在于步骤2.3中所描述的使用压缩在后的流水线,适合用于数据的重复率大于50%,需要备份的数据量少于总数据量的25%且压缩计算时间大于摘要计算和加密计算的时间的总和,仅仅对非重复的数据做压缩处理可以减少压缩的时间,提高整个系统的吞吐量;具体方法如下取消压缩计算线程,将压缩过程集成到加密与数据发送线程,当做完数据的进一步查重工作之后,对非重复的数据进行压缩处理; 然后再做数据加密和数据发送工作。
10.根据权利要求1所描述的系统,其特征在于步骤2. 4中所描述的使用GPU做主要计算的流水线;根据CUDA编程模型的特点,需要将要处理的数据传输到计算显卡才能利用 GPU的强大的并行计算能力来处理数据;具体的方法如下将数据压缩线程、数据摘要计算线程、Bloomfilter线程合并成一个计算线程,这样的流水线顺序可以减少CPU和GPU之间的数据交互次数和数据量大小,提升系统的性能。
全文摘要
一种低功耗的高性能重复数据删除系统,包括生产中心,计算中心和备份中心。生产中心复制用户写请求数据并发送到计算中心;计算中心对数据进行重复数据删除工作并将非重复的数据发送到备份中心;备份中心对接收到的数据进行存储。本发明在计算中心使用VIA处理器来降低系统运行时功耗。本发明采用了如下几种策略来提高系统的性能首先,调用VIA处理器提供的协处理器模块的特殊汇编指令来做摘要计算和数据加密工作,利用这种硬件来提高系统性能能;其次,计算中心使用GPU加速重复数据删除系统中的数据压缩过程以及Bloomfilter的计算过程;利用GPU的并发处理能力来提高系统的运行效率;最后,本发明使用了两种流水线机制来进一步提高系统性能。
文档编号H04L9/06GK102156703SQ20111002474
公开日2011年8月17日 申请日期2011年1月24日 优先权日2011年1月24日
发明者刘晓光, 王刚, 赵彬, 马井玮 申请人:南开大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1