云存储的重复数据删除架构的分析与设计(3)
基于云存储的重复数据删除架构由两部分组成,由于使用的是In-line 方式进行重复数据删除,则第一部分是安装了重复数据删除应用程序的客户端;另一部分是Hadoop Distribute File System 分布式文件系统和HBase数据库系统。客户端可分别与HDFS、HBase相互通信。
3.1 数据存储
在基于云存储的重复数据删除架构中进行文件存储时需要存储两类数据: 海量的原始数据和指针索引信息。
3.1.1 海量数据存储
原始数据包括源数据块和数据块链接文件。源数据块是指首次上传并存储在系统中的数据块,数据块链接文件是系统中已存在的数据块再次上传时,不再进行存储操作转而使用链接文件的形式来存储。每个链接文件都记录了它对应源数据块的哈希值和逻辑路径。
3.1.2 索引信息存储
HBase 中有一张数据表来存储索引信息。此表有四列,分别是hash_value,count, path 和source_file,记录每个数据块的哈希值,被索引值、源数据块逻辑路径和它隶属的文件名。其中hash_value 是主键。
3.2 文件存储
在基于云存储的重复数据删除架构中存储文件主要分为四步:
① 在重复数据删除客户端上用户选择要上传的文件,客户端上的重复数据删除应用程序先将文件分割成数据块,运用MD5算法来计算每个数据块的哈希值。随之传给HBase 进行记录。
② Hbase 某个数据块的hash 值,若该值不存在则将其记录,转向第3步;否则,HDFS 检查此数据块被索引值是否为0,若不为0 则count 值加1,HDFS告知客户端此数据块已经存在;若为0 则转向第3 步。count的值随被索引的次数变动而变动。
③ HDFS 存储该数据块并且将其与链接文件关联起来,同时存储它的哈希值和逻辑地址。
④ 重复2,3步的操作直至上传文件的所有数据块都存储完毕。其UML活动图如图2所示。
\
图2 云存储重复数据删除架构中文件存储的Active图
3.3 文件访问
当客户端发起访问请求时,HDFS 会找到该文件各个数据块的链接文件,链接文件将逻辑地址传递给HDFS。之后HDFS 询问主节点数据块的位置,客户端得到块地址,最后从数据节点中取回源数据块。依次访问所有数据块完毕后访问文件成功。访问文件的UML活动图如图3所示。
\
图3 云存储重复数据删除架构中文件访问的Active 图
3.4 文件删除
一个源数据块可以被多个链接文件索引,删除链接文件对数据块毫无影响。当删除指向的最后一个链接文件后,即count 值为0,源数据块的存在也没有了意义,所以在此时该源文件也会被删除。系统中不同用户有权利访问相同的文件,但是不允许某个用户删除另一用户分享的源文件。链接文件可以很好的起到保护源文件不被其他用户删除的作用。删除文件主要分为三步:
① HDFS命令删除数据块的链接文件。
② HBase中count值减1。检查count 若为0 则删除该源数据块。
③ 重复1,2 直至要被删除的文件所有数据块完成删除操作。删除文件的UML 活动图如图4所示。
\
图4 云存储重复数据删除架构中文件删除的Active图
4.测试与分析
在Vmware7.10workstation 上搭建起了的云存储平台。平台中有1 台主机和4台虚拟机使用的主机的配置如下:CPU 为3.0GHZ,内存4G,硬盘320G。四台虚拟机的配置一样,CPU2.8GHz,内存512Mb,内存120G。实验上传了1000 个文件,共占19.8Gb。在一个普通的存储系统中,这1000 个文件肯定会占19.8Gb 的容量;在本架构中,存储在云中的文件只占6.93Gb。在容量上确实有节省空间的效果。
5.结语
本文通过利用数据块的hash值作为索引存储在HBase来获取高性能的查询同时在HDFS 中使用link文件来管理海量数据来实现云环境下的重复数据删除。通过数据块级与字节级相结合的重复数据删除策略提高了数据重复删除粒度,减少了数据存储空间,并用实验证明了其删除的能力。
另外,基于云存储的重复数据删除比普通重复数据更有优势。1.重复数据删除的关键技是数据分块与数据指纹计算。虽然MD5算法的计算复杂性非常高以至于占用很多的CPU 资源,且数据指纹需要保存和检索使得索引表越来越大。但是将重复数据删除应用在云存储上即可以发挥云存储虚拟化和云计算分布式计算的优势,构建集群的重复数据删除架构,为用户提供多倍的吞吐及处理能力。2.单点故障时其他设备可自动接管其工作以保证处理的连续性。由于集群仍然保留的是单个Hash表所以它不仅提高了系统性能而且不会影响到重复数据删除比率。3.云存储融合云灾备技术可以解决软硬件损坏造成的数据损坏和丢失问题。 (编辑:ASP站长网) |