微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 一种广域网环境下的分布式冗余删除存储系统

一种广域网环境下的分布式冗余删除存储系统

时间:10-09 来源:互联网 点击:

纹等工作必须在客户端完成。在获得需要上传文件的所有数据块的数字指纹后,通过应用服务提供的网络接口,查询这些文件块是否已经在AegeanStore中存在,然后将新的数据块上传到数据块服务部分,完成数据上传过程;同时,客户端需要管理已经存储在本地的数据块的数字指纹,用于下载时减少冗余数据传输。

2.2 应用服务

应用服务是以AegeanStore提供的存储服务、开发框架和功能组件为基础,构建而成的网络应用服务。AegeanStore作为网络应用开发的基础平台,为了方便应用服务的开发,提供了应用服务的开发框架,使得应用服务的开发可以忽略网络应用中网络端口监听、工作进程派生、负载均衡和调度等问题,专心解决应用服务的事务逻辑,使应用服务的开发工作更加方便快捷。应用服务开发者只需要将自己开发的消息处理模块和消息序列化/反序列化模块注册到应用服务框架当中,即可被框架自动调用,进而提供网络应用服务。除此之外,AegeanStore还为应用服务的开发者提供用户管理、网络消息交换等常用的功能组件,从而提高在AegeanStore上开发应用服务效率,降低应用服务的开发和运营成本。

2.3 文件系统服务

文件系统服务为AegeanStore提供文件系统视图和文件管理接口。目前常用的提供公共存储服务的分布式存储系统当中,普遍使用的应用程序接口是Key/Value式的。虽然这种接口在开发应用服务时使用比较方便,但是与用户习惯的基于目录结构的文件系统式接口差异较大,导致大多数构建在Key/Value接口上的应用服务都要开发功能相似的文件系统视图。这些重复开发增加了应用服务开发的难度和成本,更重要的是,因为缺少存储系统内部信息的辅助,无法利用数据的局部性和网络的就近访问等优化技术,在Key/Value接口上构建的文件系统效率往往较低,对应用服务以及存储系统的网络和存储资源造成了严重的浪费。所以,AegeanStore为应用服务开发提供的接口是文件系统式的,以提高应用服务的开发效率,避免重复开发,并通过使用分布式B树、网络就近访问、代理访问等优化技术,提高存储系统的吞吐量。

2.4 索引服务

索引服务中存储了AegeanStore中所有数据块的数字指纹的索引,并提供网络查询索引接口,用来判断数字指纹所对应的数据块是否已经存在于AegeanStore当中。以SHA-1哈希函数计算出来的数据指纹为例,每个块的数字指纹大小为20 B,假设可变块划分算法所分的数据块的平均大小为4 kB,则索引服务中存储的数字指纹索引的数据规模为实际存储数据规模的0.5%。由于AegeanStore存储系统具有良好的可扩展性,其数据规模可以达到数百太字节甚至拍字节级,所以索引服务应该支持太字节级别的索引存储。

2.5 数据块服务

AegeanStore的数据块服务提供分布式的基于内容定位的存储系统[7],其提供的接口是Key/Value形式的。数据块服务由接口、一跳分布式哈希表(DHT)[8]和数据块存储节点3部分组成:当用户存储数据块时,以该数据块的数字指纹作为Key进行存储;首先到一跳分布式哈希表中,查找该数字指纹,因为数字指纹由数据块的内容决定,所以,如果该数字指纹已经存在于分布式哈希表当中,说明该数据块已经存在于数据块服务当中,无需再次存储;如果不存在,将数据块存入数据块存储节点,将数字指纹和所存储的位置信息存入一跳分布式哈希表作为索引。当用户读取数据时,给出数据块的数字指纹。块存储服务从分布式哈希表中查找是否存在这个数字指纹,如果存在则根据在其中获得的数据块位置从存储节点读取相应数据块并返回给用户,否则返回空。

3 冗余删除技术的优化

将冗余数据删除技术应用于分布式存储系统将遇到两个问题。

(1)由于CDC算法开销过大,无法满足广域网环境中的分布式存储系统的客户端的异构性带来的计算性能瓶颈。

(2)由于分布式存储系统的高可扩展性,造成索引服务中数字指纹索引过大,从而带来的数字指纹索引查询的性能瓶颈。

3.1 CDC算法的优化

CDC算法中,无论在计算滑动窗口内的哈希值,还是获得数据块划分之后计算数据块的数字指纹都是计算密集型工作。在手机或上网本等运算能力较差的设备上,由于存在着性能瓶颈,制约了客户端相关的冗余数据删除技术的有效应用。

首先,在AegeanStore的客户端中,为了优化CDC算法的运行效率,在计算滑动窗口的哈希值时,采用了Rabin’s Fingerprinting[9]哈希函数进行计算。因Rabin’s Fingerprinting哈希函数具有可迭代计算的特性,滑动窗口时,只需要通过将滑动前哈希值、滑入字节值和滑出字节值进行复杂度为O(1)的计算,即可获得滑动后的窗口内

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top