基于智能网络磁盘的安全存储系统研究与设计

2014-09-10 01:17王文丰李沛武赵跃龙余长贵雷金娥
计算机工程与设计 2014年5期
关键词:分片存储系统原始数据

王文丰,李沛武,赵跃龙,余长贵,雷金娥

(1.南昌工程学院 计算机网络与信息安全研究所,江西 南昌330099;2.南昌工程学院信息工程学院,江西 南昌330099;3.华南理工大学 计算机科学与工程学院,广东 广州510641)

0 引 言

计算机技术和宽带网络技术的迅猛发展,导致了数据资源的爆炸性增长,同时也使得现有的存储系统面临着空前的压力和严峻的挑战。为了满足日益增长的海量数据存储需求,各种分布式存储系统随之纷纷出现。如:集群存储[1]、网格存储[2]、对等存储[3]和云存储[4]等。

在分布式存储系统中,数据通常被分散存放在多个不同的节点上。由于这些节点可能会因为断电、硬件故障以及恶意攻击等原因而变得不可靠,因此数据的安全受到极大的威胁。与此同时,信息的重要性也对存储系统的安全可靠性提出了越来越高的要求。

为了实现上述目标,许多分布式存储系统采用 “双机镜像+完全副本”方式来提高数据可靠性。如:美国国家超级计算中心的Luster集群存储系统[5]、清华大学的Granary对等存储系统[3]、解放军理工大学的 Mass Cloud云存储系统[4]等。即,元数据服务器采用主从服务模式以避免系统出现 “单点失效”故障,存储服务器则采用完全副本方式对用户数据进行冗余。这种方式虽然在一定程度上提高了系统的可靠性,增强了容灾和容错能力,然而文献 [6]指出,主从服务器的失效具有较强的相关性。这意味着,一个节点上发生的故障在另外一个节点上也极有可能发生,因此大大降低了主从服务模式的有效性。更为严重的是,系统同时存在一定的数据安全隐患,主要表现在:①当系统遭受骇客入侵时,机密数据就会受到安全威胁。虽然加密技术能够进行一定程度的防御,但在云计算环境下的暴力破解面前将无能为力;②即便用户发现其数据的安全性受到威胁,也不能销毁所有可能遭受恶意攻击的节点上所存储的数据以减小损失。此外,相比纠删码方式而言,为了获得同等大小的可靠性,完全副本方式往往需要耗费更多的存储空间[7,8]。

有鉴于此,本文提出并设计了一种基于智能网络磁盘的海量存储系统 (massive storage system based on intelligent network disk,INDMSS)。该系统不仅能够满足海量数据的超大存储容量需求,而且能够提供高可靠、高安全的数据存储服务。

1 基于智能网络磁盘的海量存储系统

1.1 智能网络磁盘IND

智能网络磁盘 (IND)是笔者所在课题组近年来提出的一种新型网络存储设备[9-11]。与传统磁盘设备不同的是,IND是一种可直接联网、高度自治的,且带有一定智能特性的存储设备。其硬件部分和软件部分构成如下:

硬件部分包括嵌入式CPU、FLASH、SRAM、ATA/SATA接口和RJ-45接口等。其中,ATA/SATA接口使得IND可以与磁盘驱动器、RAID、磁带机、光盘以及其它存储设备相连;RJ-45接口则使得IND能够与网络直接相连,从而可以根据系统存储容量、服务能力等实际需求来动态地添加/删除存储节点。

软件部分主要包括两个核心功能模块:虚拟文件系统(IND virtual file system,INDVFS)和管理工具IND Manager。INDVFS是一个全局虚拟文件系统,用于向用户提供一个单一的文件视图和访问接口,实现多存储节点的存储虚拟化和易管理的目标。IND Manager则是一个包含了众多 “智能”特性的功能软件包,如:分布式读/写控制算法、优化数据布局方法、自适应负载均衡策略、数据容错与自动恢复机制以及在线重新配置工具等。

1.2 基于IND的海量存储系统体系结构

图1给出了INDMSS的体系结构。通过存储虚拟化技术,INDMSS将多个同构型智能网络磁盘存储节点虚拟成一个超大容量、集中化的数据存储中心,从而满足了海量数据的存储容量需求。

图1 基于智能网络磁盘的海量存储系统体系结构

在IND与网络的拓扑连接示意图中,对网络中的IND采用集群方式进行组织。即,将所有的IND分成多个存储集群,集群的个数可以根据实际需要进行动态调整和划分。同时,同一集群内的各个IND存储节点之间还可通过IP Switch连接,形成IND内部专用高速通道。

之所以采用集群方式,主要有两方面考虑:①集群方式便于系统动态扩展;②集群方式有利于系统管理,特别是在执行任务调度、负载均衡等策略等方面。有关集群的组织、管理和服务方式,更多介绍请参考文献 [12]。

安全认证服务器是进入存储系统的第一道安全屏障,可通过用户口令、认证服务等访问控制技术进行实现,在此不作讨论。

2 基于纠删码的数据安全存储机制

2.1 纠删码原理

纠删码[6,7]是将待存储的文件首先划分为k个同等大小的数据分片,然后通过编码算法变换为n个数据分片 (编码后的单个数据分片大小和原始数据分片大小相同,但两者之间没有任何显性的关联)。在编码后的数据分片中,任取r个数据分片均可恢复出原始数据文件。其中,n≥r≥k>1。

在数学上,(n,k)线性纠删码可以表示为

其中,F= (F1,F2,…,Fk)为原始数据文件,Y= (Y1,Y2,…,Yk,Yk+1,…,Yn)为编码后的数据文件,G为k×n矩阵,称G为该 (n,k)线性纠删码的生成矩阵。

定理 设G为某个 (n,k)线性纠删码的生成矩阵,若从G中任意挑选k列组成的子矩阵均可逆,则利用接收到的任意k个数据分片均可重构出原始数据文件。

证明:设Y’为编码后的数据文件Y的任意k个分量组成的向量 (即Y’为接收到的任意k个数据分片),G’为生成矩阵G所对应的k列组成的子矩阵。由式 (1)易得

由假设可知,子矩阵G’可逆,因此有

故根据上式即可重构出原始数据文件F,证毕。

需要特别说明的是:①k和n值可根据实际需要进行动态设置;②任何情况下,少于k个数据分片不可能重构出原始数据;③当通过k个分片进行数据重构时,组成可逆矩阵G’的k列必须与这些分片在编码后的数据分片中的原始顺序保持严格一致,否则不可能重构出原始数据。

2.2 基于纠删码的数据安全存储机制

如图2所示,基于纠删码的数据安全存储机制总体设计思想为:首先将给定的原始数据文件F按照用户需求分割成k个数据分片 (F1,F2,…,Fk),然后再将分片后的数据编码变换为n个数据分片 (Y1,Y2,…,Yk,Yk+1,…,Yn),之后再对编码后的数据进行加密形成n个密文数据片(E1,E2,…,Ek,Ek+1,…,En),最后将其分发到n个不同的存储节点上。当需要执行数据恢复操作时,系统只需从n个密文数据分片中任取k个,然后再对其进行解密成k个明文数据分片 (D1,D2,…,Dk),最后利用式 (3)即可恢复出原始数据文件F。

图2 基于纠删码的数据安全存储机制

2.2.1 数据编码安全

由纠删码原理可知,要想重构出原始数据文件,必须同时收集到k个相关的数据分片 (同一文件的数据分片),并且获取相应的、顺序严格一致的子矩阵G’。

对此,系统从以下3个方面确保数据编码安全:

(1)分片个数的透明性。当对原始文件进行数据分割时,数据分片的个数k值在满足用户要求的情况下由系统动态产生,对用户完全透明。这样,攻击者将难以知道重构原始数据所必须的分片个数,从而加大了数据重构的难度。

(2)生成矩阵的随机性。根据k和n值的大小,采用随机函数产生 (n,k)线性纠删码的生成矩阵,同时对该矩阵进行加密。这样,即便攻击者收集到了k个相关的数据分片,也将由于缺少生成矩阵而无法进行数据重构。

(3)分片命名的无关性。对于编码后的n个数据分片,采用哈希散列算法对各个分片的名称进行处理。这样,恶意攻击者将难以得知各个分片的对应顺序,从而也就无法获取顺序严格一致的子矩阵。同时,由于分片名称的无关性,这将使得攻击者要想从存储系统海量数据分片中找出k个相关的数据分片几乎不可能。

2.2.2 数据分发安全

当原始数据文件经编码、加密变换为n个密文数据分片后,系统将其分发到网络上n个不同的存储节点中。

一方面,系统尽可能选取n个不同的集群网络,即每个集群负责存储一个数据分片;另一方面,对于每个集群网络,系统采用随机、轮询 (round-robin)或其它策略选择数据承载节点 (host node)。这样,攻击者必须首先成功入侵k个不同的集群网络,然后再搜寻数据分片的承载节点,最后才可能窃取相应的数据分片。

2.2.3 数据恢复安全

在数据恢复方面,采用以下两种机制提供安全保障:

(1)基于会话密钥的数据碎片传输机制。当用户向系统请求执行数据恢复操作时,系统随机生成一个会话密钥(session key),该密钥将用于客户端和k个相应数据碎片存储节点在本次数据恢复操作过程中的网络通信。由于该密钥包含一个特定的有效期,因此可以有效防止攻击者在截获该密钥后通过长时间不断尝试来入侵系统。

(2)数据访问密码安全机制。如图2所示,对于编码后的数据分片,系统采用加密技术将其变成密文数据。这样,即便攻击者收集到了k个数据分片,也因为缺少密钥而无法完成数据解密及后续的数据重构操作。

2.3 安全可靠性分析

由上节可知,任何恶意用户要想破获系统中存储的某个机密文件,必须同时具备以下条件:①从命名完全无关的海量数据碎片中找到k个相关的数据碎片及其存储节点(k值是未知的);②同时成功入侵上述k个存储节点,并且获取这些数据碎片;③破解经过AES加密的密文数据碎片;④破获线性纠删码的生成矩阵,并且探寻和上述k个数据碎片顺序严格一致的子矩阵。因此,系统可保证该文件近100%安全,不会出现信息泄露情况。

为了更加直观地分析系统可靠性,不妨假设文件F大小为10M,单个节点的失效率p为0.2,原始数据分片和编码后的冗余碎片数分别为k=5,n=10,系统可分配的存储容量为20M。不难得知,采用完全副本方式的文件可靠性为0.96,采用纠删码方式则高达0.9936306176。因此,系统可保证该文件近100%可靠,不会出现数据丢失/损坏情况。

3 实验及结果分析

本节将通过实验对上述基于纠删码的数据安全存储机制 (以下简称安全存储机制)进行检验,主要就安全存储机制下数据编码和解码时间开销以及该机制对存储系统的整体性能影响进行考察。

采用Visual C++6.0编程实现了一个安全云端存储原型系统 (secure cloud storage,SCS),该系统现已部署在校园网内一个由PC机集群方式构建的私有云环境中。其中,元数据服务器、存储服务器和客户端3个软件实体分别运行于不同的PC机上。为简便起见,实验中的元数据服务器和客户端均采用固定节点,存储服务器的可用节点数量为100,数据碎片采用Round-robin方式分发到这些节点中。实验测试环境见表1。

表1 系统实验环境

实验1:安全存储机制下数据编码和数据解码操作的时间开销。实验中,文件大小从1M~128M按倍数递增变化,原始数据分片数分别取k=4和k=6,编码后的冗余碎片数n=8,数据加密采用AES算法。

图3给出了两种k值下不同大小的文件执行数据编码和解码操作所耗费的时间变化情况。可以看出:①数据解码时间均较大幅度高于数据编码操作的时间开销。从纠删码原理可知,数据编码操作的数学本质是将一个k行m列的矩阵变换成一个n行m列的矩阵,其运算量相对较小;而解码过程涉及到大规模矩阵求逆运算,因此其相应的时间开销也就较大。②原始数据分片数k的大小对数据编码时间影响较小,但对数据解码时间影响较大。随着文件大小的不断增长,数据编码和解码操作所耗费的时间也不断增加。虽然增长幅度越来越 “陡”,但总体时间大小仍为s级。当文件大小为128MB时,数据解码时间最大为72s。这表明系统具有良好的整体性能。

实验2:安全存储机制对数据恢复操作的总体时间影响。实验中,对不同大小的文件分别采用本文提出的安全存储机制和原始纠删码机制两种方式进行处理,文件大小从1M~128M按倍数递增变化,原始数据分片和编码后的冗余碎片数分别为k=4,n=8,数据加密采用AES算法。

图3 不同大小的文件数据编码/解码时间比较

图4给出了不同大小的文件采用安全存储机制后执行数据恢复操作相对原始纠删码机制所耗费的总体时间增长的百分比情况。可以看出:安全存储机制对数据恢复的总体时间造成的影响较小。当文件大小为4M时,时间增长的百分比为2.35%,然后逐渐增大但最终趋于稳定。这是因为,数据恢复时间主要包含碎片传输时间和数据解码时间,而数据解码时间开销远小于碎片在网络中传输的时间,因此其影响程度非常有限 (介于2.3%和2.7%之间),这在实际应用中是可以接受的。

图4 安全存储机制对数据恢复操作的时间影响

4 结束语

数据的安全存储已经成为信息安全领域中的主要问题之一。本文针对海量数据存储安全问题进行了研究,提出并设计了一种基于智能网络磁盘的海量安全存储系统。分析了纠删码的数学机理,在此基础上,分别从数据编码、数据分发和数据恢复3个方面入手,提出了一种基于纠删码的数据安全存储机制。分析和实验结果表明,该系统具有较高的安全可靠性和良好的整体性能。在下一步工作中,将在密钥生成和分发机制,基于属性的加密等方面展开研究,并将该系统拓展到公有云环境。

[1]Cai B,Xie CS.High reliability and flexibility storage cluster in decentralized organization [C]//Shenyang,China:Int’l Workshop on Networking,Architecture and Storage,2006:1-8.

[2]Wang FZG,Wu SN.Grid-oriented storage:A single-image,cross-domain,high-bandwidth architecture [J].IEEE Trans on Computers,2007,56 (4):474-487.

[3]HU Jinfeng,HONG Chunhui,ZHENG Weimin.Granary:An architecture of object oriented Internet storage service [J].Journal of Computer Research and Development,2007,44(6):1071-1079 (in Chinese).[胡进锋,洪春辉,郑纬民.一种面向对象的Internet存储服务系统Granary[J].计算机研究与发展,2007,44 (6):1071-1079.]

[4]MA Weijun,WU Haijia,LIU Peng.Architecture and reliability of cloud storage system MassCloud [J].Journal of Hohai University (Natural Sciences),2011,39 (3):348-354 (in Chinese).[马玮骏,吴海佳,刘鹏.MassCloud云存储系统构架及可靠性机制 [J].河海大学学报 (自然科学版),2011,39 (3):348-354.]

[5]Yu WK,Vetter J,Canon RS,et al.Exploiting lustre file joining for effective collective I/O [C]//Riode Janeiro,Brazil:Proc of the 7th International Symposium on Cluster Computing and the Grid,2007:267-274.

[6]Shen K,Chu LK,Yang T.Supporting cluster-based network services on functionally symmetric software architecture [C]//Pittsburgh,PA,USA:Proc of the ACM/IEEE Conf on Supercomputing,2004:551-562.

[7]TIAN Jing,DAI Yafei.Study on durable peer-to-peer storage techniques [J].Journal of Software,2007,18 (6):1379-1399 (in Chinese).[田敬,代亚非.P2P持久存储研究 [J].软件学报,2007,18 (6):1379-1399.]

[8]WANG Yijie,SUN Weidong,ZHOU Song,et al.Key technologies of distributed storage for cloud computing [J].Journal of Software,2012,23 (4):962-986 (in Chinese).[王意洁,孙伟东,周松,等.云计算环境下的分布存储关键技术 [J].软件学报,2012,23 (4):962-986.]

[9]WANG Wenfeng,ZHAO Yuelong,ZENG Wenying,et al.A new network storage scheme-intelligent network disk cluster storage system [J].Journal of Chinese Computer Systems,2008,29 (7):1211-1214 (in Chinese). [王文丰,赵跃龙,曾文英,等.一种网络存储技术新方案——智能网络磁盘集群存储 系 统 [J].小 型 微 型 计 算 机 系 统,2008,29 (7):1211-1214.]

[10]ZHAO Yuelong,DAI Zuxiong,WANG Zhigang,et al.Research on storage system architecture of the intelligent network disk (IND)[J].Chinese Journal of Computers,2008,31(5):858-867 (in Chinese).[赵跃龙,戴祖雄,王志刚,等.一种智能网络磁盘 (IND)存储系统结构 [J].计算机学报,2008,31 (5):858-867.]

[11]ZHOU Yunxia,ZHAO Yuelong,YANG Xi.Disaster tolerance in storage system of the intelligent network disk (IND)[J].Journal of Computer Research and Development,2012,49 (7):1587-1592 (in Chinese). [周云霞,赵跃龙,杨希.智能网络磁盘存储系统的容灾研究 [J].计算机研究与发展,2012,49 (7):1587-1592.]

[12]WANG Wenfeng,ZHAO Yuelong.A model of alternate service based on system load [J].Journal of South China University of Technology (Natural Science Edition),2009,37(10):95-101 (in Chinese). [王文丰,赵跃龙.一种基于系统负载的轮流服务模型 [J].华南理工大学学报 (自然科学版),2009,37 (10):95-101.]

猜你喜欢
分片存储系统原始数据
上下分片與詞的時空佈局
GOLDEN OPPORTUNITY FOR CHINA-INDONESIA COOPERATION
受特定变化趋势限制的传感器数据处理方法研究
分片光滑边值问题的再生核方法
分布式存储系统在企业档案管理中的应用
CDN存量MP4视频播放优化方法
天河超算存储系统在美创佳绩
基于模糊二分查找的帧分片算法设计与实现
全新Mentor DRS360 平台借助集中式原始数据融合及直接实时传感技术实现5 级自动驾驶
华为震撼发布新一代OceanStor 18000 V3系列高端存储系统