一种大数据存储系统架构及数据安全放置机制

2019-09-19 07:41刘海宁李德山
关键词:存储系统着色检索

刘海宁,李德山

(1.天津中德应用技术大学 经贸管理学院,天津 300350;2.西南科技大学 经济管理学院,四川 绵阳 621010)

随着物联网的发展,网络上产生的数据成指数型增长[1-2],大数据成为研究者的关注热点。大数据是指从异构设备收集的海量数据量[3],包括传感器网络、科学实验、网站和其他应用以各种格式产生的数据[4]。数据结构从结构化数据向非结构化数据进行转化,使得传统的关系数据库不再适合存储[5]。综上,指数增长、数据结构和类型的多样性给传统的数据管理系统带来了数据存储和分析的挑战[6]。这就促进了高效的分布式存储机制的发展,为动态增长的大数据提供可靠和高效的存储,从而引发具有改进的访问性能和容错性的存储系统的创新发展。

存储机制从传统的数据存储到NoSQL技术的结构转变满足了大数据存储要求。 NoSQL数据库克服了关系数据库的局限,提供了可横向扩展、灵活、高可用、可访问且相对便宜的存储解决方案, 已成为大多数存储系统采用的技术[7]。与关系数据库不同,这些技术可为大量用户同时与大数据交互提供支持。NoSQL数据库在实现一致性、容错性、可用性和查询支持方面表现出色,同时还保证了关系数据库的一些独特功能:可伸缩性、可用性、一致性和二级索引[8]。

文献[9]提出一种面向列的NoSQL数据库,并从中提取增量,用于不同的增量应用程序和不同的数据目标。文献[10]提出一种基于图和关系数据库的混合数据库方法,通过调节一些约束可以从两者的混合系统中获益,使得两个模型集成在一个系统中以消除各个系统的限制。文献[11]提出了一种基于Mongo DB分布式数据库存储结构的蛋白质组学数据存储系统设计方案,解决了传统存储系统中集群架构关系复杂、维护成本高、代码处理复杂的问题。文献[12]提出了一种可靠的分布式存储系统,使用结合对称和非对称加密方法的冗余轻量级加密算法,提高了分布式系统的可靠性和安全性。文献[13]提出了一种新的分布式存储系统Amoeba,使用自适应多属性数据分区以有效地支持自组织和重复查询,使得在所有属性上的自组织查询具有类似的性能增益,然后自适应地重新划分基于观察到的查询序列的数据,使得系统随着时间的推移而改进。文献[14]提出一种基于ARM的海量大数据存储系统设计方法,实现海量大数据的灵活高效存储。对于存储系统中数据放置机制的研究,文献[15]中给出了一种多数据副本放置机制,以最小化访问代价为优化目标,基于遗传算法确定优化的数据副本放置方案。文献[16]提出一种可调整副本部署策略的数据副本放置机制,该机制根据数据访问频率调整副本数量,并根据节点空闲容量设置副本。以上两种数据放置机制在检索时间等性能方面还有提升空间。

安全有效地存储大数据是一个迫切的问题。本文在现有数据存储系统的基础上,设计了一种大数据存储系统架构,通过文件组合策略改进HDFS小文件的读写过程,使用Hive工具并行分析和提取海量日志,在HDFS文件系统上构建云存储平台。提出一种快速启发式数据放置机制,将数据放置问题进行数据化表示,并通过图着色的贪婪算法给出放置方案。该放置方法能在最小化搜索时间的同时保证数据存储的安全性,采用该系统及数据放置机制能够有效实现大数据安全高效地存储。

1 大数据存储系统

大数据分布式存储系统使用HDFS文件系统,其主要功能包括文档用户管理、HDFS小文件合并处理和日志分析。HDFS文件系统由1个名称节点和3个数据节点组成,而DFS服务器封装了HDFS文件的基本操作,用户只需通过浏览器即可轻松完成文件管理。分布式存储系统的体系结构如图1所示。

图1 大数据存储系统架构

元数据服务器主要用于存储小文件的元数据信息,如果用户上传的文件被确定为小文件,则通过附加的写入方法将其合并到用户文件中,并将其元数据信息记录在元数据服务器中。当用户读取一个小文件时,它将根据文件直接定位和读取元数据信息,提高了阅读效率。在数据节点中显示DFS服务器的作用是当用户读取小于文件块的文件时直接转移到数据节点,此时,存储此文件的数据节点将直接向用户传输数据,从而减少DFS服务器上的压力,改善服务器响应时间,同时提高文件的I / O效率。Hive元数据服务器主要用于日志分析,日志分析保存Hive表的元数据信息,然后将日志分析结果存储到关系数据库中,方便用户查看。

NameNode是整个存储系统的中央控制器,用于管理和维护整个文件系统树及其中所有的文件和目录,同时负责接收和处理留置请求以及管理、分配特定的存储任务。NameNode管理的元数据信息以两个文档的形式持久地保存在本地磁盘上:名称空间图像文件FsImage和编辑日志文件EditLog。每个启动NameNode将首先加载FsImage文件,然后重做所记录的操作EditLog,最后将Fslmage重新持久化到本地磁盘以及空的EditLog文件。NameNode定期执行检查点,定期合并FsImage文件和EditLog文件。FsImage总是在最后一个检查点之后记录文件系统的元数据,而EditLog则记录一次检查点到下一个检查点之间的操作。NameNode记录与每个文件对应的每个块的Datanode信息,但区别在于这些信息不会被持久存储,而是在系统启动时由Datanode节点报告和构造。从NameNode对FsImage和EditLog文件进行合并,然后将新的FsImage文件传输回旧的文件,并且新的EditLog在获得FsImage和EditLog之后为空文件,因此一方面要确保EditLog文件不会太大,减少系统重启时间;另一方面,Secondary NameNode对NameNode中的名称空间映像文件进行备份,提高其容错性。

整个系统可分为认证、数据文件块加密、数字保护、数据文件加密和上传、解密和下载、数据文件检索查询部分以及在后台执行的分布式数据文件系统过程和异常检测软件部分,系统结构如图2所示。

2 大数据存储系统数据放置机制

目前,性能问题和安全性要求的结合使得大数据存储系统中的数据放置问题成为具有挑战性的问题。本文提出一种基于图着色的贪婪算法的安全感知数据放置机制,在系统上以最小化总检索时间存储所有数据块,同时保证数据的安全性,使得即使成功侵入块,攻击者也无法猜测或推断其他块的位置。

图2 大数据存储系统模块化

2.1 存储系统数学化描述

大数据分布式存储系统由M个存储节点组成,节点i具有Ci单元的总存储容量。节点之间的连接由对称矩阵B(M×M)表示,其中Bi, j=Bj,i表示节点i和j之间的双向链路的带宽。因此,Bi, j=Bj,i=0的情况意味着节点i和j没有连接。系统的拓扑结构表示为图G(V,E),其中V是顶点集合,即存储节点,E是边缘集合顶点,即连接存储节点的链接。假设任何存储节点都可以被视为访问。用户可以提交存储请求的系统点,给定需要存储大小为D的数据量的用户请求。假设数据可以被分割成具有任意大小的多个块,每个块包含整个数据的部分重要/敏感信息,因此泄露单个块的信息对恶意用户没有意义。本文将安全级别定义为存储任何数据块对的两个节点之间的最小非零距离。最小距离必须保持为变化的参数,以满足不同用户的安全要求。

(1)

假设来自/到达存储设备的读/写时间可以忽略不计,从读取请求的节点i到节点p的数据传输时间与从p到i的数据传输时间相同。对于写请求,因为系统中的链接是双向的,因此如果可以最小化数据的检索时间,那么它的总上传时间也将最小化。

总传输时间的线性优化编程公式在数学上表示为minimize:TD,其受限条件为:

(2)

该约束确保所有块大小的总和等于原始数据的大小。

Si≤Smax,Si≤Ci

(3)

其中Si≤Smax确保每个块的大小不超过用户定义的阈值,表示为Smax,Smax≤D。本文认为数据所有者是指定块大小阈值的最佳候选者,以便在块泄漏时不泄露太多敏感信息。Si≤Ci确保了候选节点的足够存储容量。

f(Si,Sj,i,j)≥K,i,j=1,…,M

(4)

式(4)确保放置解决方案保证所需的安全级别,即存储相同数据的两个块的节点之间的最小距离,表示为K。K=0表示非安全级别,K=1表示最低安全级别,K=2表示默认安全级别。然后定义函数f(Si,Sj,i,j)来计算该距离。该功能定义如下:

(5)

当Si≠0且Sj≠0时,函数取值为D(i,j),根据网络中的最短路径计算两个节点之间的跳数。如果Si=0或Sj=0,意味着未选择节点i或节点j来存储任何数据块,则将函数的结果设置为大于K的值,设置为最大整数值MaxInt。

解决上述问题在计算上是困难的,因为即使对于简单的小型存储系统来说,确定是否存在有效的放置解决方案也是NP的。上面给出的线性规划能更好地描述数据放置问题,并更好地理解问题的复杂性,因此必须设计出有效的启发式算法来解决这个问题。

2.2 安全感知数据放置机制

针对上节中存储系统有效放置解决方案是NP的问题,提出一种基于图着色的安全感知数据放置机制。该放置机制属于一种贪婪算法,确保了数据隐私的安全级别,同时最小化了数据检索时间。

设图G=(V,E)表示存储系统的网络拓扑,给定包含0的非负整数的集合T,T着色问题是从顶点集合V到用于给顶点着色的颜色值的非负整数集合的映射函数f,使得|f(i)-f(j)|∉T,其中i,j∈V。即T着色问题将颜色分配给顶点,使得相邻顶点的颜色之间的距离必须不属于T。当T={0}时,T着色问题归结为一个共同的顶点着色问题,其中两个相邻的顶点不能被赋予相同的颜色。

当T={0}时,T着色问题适用于数据放置问题以确保数据的完全安全性。假定数据可以划分为任意数量的块,在默认安全级别(即K=2),两个不同的数据块不能存储在两个相邻节点中。即给定存储节点图的着色解,具有相同颜色的节点可以存储数据的块,因为它们不是图中的相邻节点。具有相同颜色的存储节点的数量可能比特定数据的块的数量大得多,这就使得数据的安全性得到保证,因为即使有节点上发生成功的入侵,恶意用户也不能猜测其他数据块的位置。

当所需的安全级别高于默认级别时,问题会更复杂,要求数据的两个不同块之间的距离大于2。为了解决这个问题,本文提出一种算法,将K>2的问题转换为K=2的问题。给定K值及其网络拓扑,算法开始连接距离小于K的所有节点对。图3给出了当K被设置为3时的转换过程的示意图,其中(a)给出了系统的原始图,(b)给出了图转换算法的结果,添加的边被标记为虚线,(c)给出了在得到的图上获得的着色解决方案。

图3 具有所需安全级别K=3的转换示意图

鉴于着色解决方案,可得到一组可行的存储节点解决方案,如图3(c)中所示,数据可以分成2个块并存储在可行的节点对上,节点1和节点6(红色),节点2和节点7(蓝色),节点3和节点4(绿色)或节点5和节点9(紫色)。

上述内容解决了图形转换和着色问题。本文的大数据放置机制算法由两个部分组成:第1部分即着色解决方案,第2部分是贪婪算法,用以确定存储在所选节点上的数据块的大小。算法1给出了用于数据块分配的贪婪算法的伪代码。

算法首先计算用于为图形着色的颜色数量,然后在外部for循环中使用用于对图着色的颜色集合(表示为C)以确定最佳放置解决方案。对于集合C中的每种颜色c,该算法首先按照单元数据到接入点的检索时间的升序对所有节点进行排序,这些节点由c着色。给定有序的存储节点集,表示为Vc′,算法开始以最小的检索时间分配来自第1节点的数据块。

对于有序集合中的每个节点v,Vc′的数据块大小由min{Smax,Cv,Dtemp}确定。这意味着,如果剩余数据的大小较大,则只能分配具有最大Smax的块。然而,如果存储节点的可用存储空间Cv不够,则只有较小的块可以占用剩余的可用存储空间。当整个数据被容纳时,即使仍然存在可行的存储节点,由于这些节点在数据传输中较慢,该算法也会中断for循环。

在算法执行中,可能会发生没有足够节点来存储数据的情况,即for循环已经用相同的颜色完成了所有可行的节点,但是数据仍然保留。由于无法在系统中容纳数据,可忽略此分配解决方案。只有可以容纳整个数据时,算法才计算放置解决方案的总检索时间,如果当前解决方案的总检索时间小于先前的最佳解决方案,则该算法更新最佳解决方案以供将来进行比较。

算法在迭代完所有可用解后停止,这些可行解由用于图着色的颜色集表示。最终的解决方案是最佳的数据放置解决方案,它不仅满足安全约束,而且最小化了数据的总检索时间。当数据过大而所有存储节点都已经饱和或者具有相同颜色的节点的数量过少时,可能不存在可行的解决方案。在这种情况下拒绝存储请求,即算法返回空集合。实际上,如果拒绝率太高,则提供者可能需要通过增加节点数量及其容量来扩展系统。

3 实验结果与分析

在具有随机网络拓扑的云存储系统上对本文存储架构和数据放置机制进行测试。随机生成具有最小节点度的拓扑设置为2,链路的带宽从[100,500]Mbps随机选择。安全级别被默认设置为3,即存储相同数据的任何一对块的节点之间的距离应该至少是3跳,图4~6给出了不同方法在随机网络拓扑下的性能。

本文采用平均检索时间、存储请求中的拒绝次数两个指标性能对大数据存储的数据放置方法进行验证。为了验证有效性,将本文方法与其他3种方法进行比较,这3种方法分别是:文献[16]中的ARDS放置方法、随机选择节点(random selection of nodes,RSN)和最远节点优先(furthest node first,FNF)。RSN在满足安全要求的节点中随机选择一个存储节点来存储数据块。该过程重复进行,直到没有更多的存储节点可用时,整个数据被容纳或拒绝;FNF选择与存储相同数据块的节点最远的节点,FNF是一个迭代算法,与RSN具有相同的停止条件。

图4 不同方法的总检索时间比较

从图4中可以看出:与其他算法相比,本文提出的大数据存储系统与数据放置机制的总检索时间是最少的。在最好的情况下,刻度减少检索时间高达25.1%。另外,当请求次数增加时,本文方法的检索时间略有增加,这是因为,在少量请求的情况下,本文方法会利用满足安全约束的最近节点进行搜索;在请求数量较高时,所有最近的存储节点都饱和,然后利用其他节点,从而增加了检索时间。

从图5中数据可以看出:所有方法的存储数据总量性能随着请求数量的增加而变大,本文方法的存储数据总量性能总是优于其他3种方法,且随着请求数量的增加,存储总量的优越性越大。

图5 不同方法允许存储的总数据量

从图6中数据可以看出:对于拒绝次数性能,所有方法的拒绝次数随着请求数量的增加而变大,本文方法的拒绝次数总是少于其他3种方法;随着请求次数的增加,本文方法的拒绝次数增速较缓,ARDS方法增速也较缓,即随着请求数量的增加,RSN和FNF方法的拒绝次数增加幅度大于本文方法和ARDS方法。

图6 不同方法的拒绝次数

综上,从图5、6中可以看出:本文方法不仅在检索时间方面具有最佳性能,而且在存储数据总量和拒绝次数性能方面也具有最佳性能,这说明本文方法不会牺牲其他性能指标来实现数据安全性。

为了验证本文方法的普适性和可推广性,从不同存储节点数量和安全级别来验证本文存储系统和数据放置机制的性能。存储节点数量的影响:通过将存储节点数量从25个变为50个来评估所提算法的性能。

图7表示不同算法对于存储节点数的检索时间。每种方法中检索时间的缩短是由于链路容量的异构性导致,可以看出本文算法在不同存储节点数量下总是优于其他方法。

图7 不同存储节点数量下的检索时间

安全级别的影响:将安全级别从2改为5,并评估算法的性能。图8给出了关于安全级别的检索时间。

图8 不同安全级别下的检索时间

结果表明:当安全级别增加时,检索时间增加, 这是因为靠近接入点的存储节点违反了安全约束。另外,当增加安全级别时,从存储数据块的节点到接入点的平均跳数也增加,导致检索时间增加。可以看出本文方法在不同的安全级别下检索时间总是小于其他方法,同时能够保证数据的安全性。

4 结束语

本文提出一种大数据存储模型和存储系统中数据放置机制,首先设计了大数据存储的存储模型架构,在分析HDFS架构和运行机制的基础上,通过文件组合策略改进HDFS小文件的读写过程,给出大数据存储框架。为了减少数据存储检索时间和提高安全性能,提出一种用于数据存储系统的数据放置机制,该放置机制是基于图着色的贪婪算法来解决数据安全放置问题。实验结果表明:与其他3种方法比较,本文方法在检索时间、存储数据总量和拒绝次数方面都体现了最佳性能,说明了本文方法的有效性。

猜你喜欢
存储系统着色检索
ImCn的循环区间全着色
蔬菜着色不良 这样预防最好
苹果膨大着色期 管理细致别大意
分布式存储系统在企业档案管理中的应用
瑞典专利数据库的检索技巧
一种基于Python的音乐检索方法的研究
天河超算存储系统在美创佳绩
10位画家为美术片着色
专利检索中“语义”的表现
华为震撼发布新一代OceanStor 18000 V3系列高端存储系统