摘要:为解决混合云环境下数据的存储问题,对混合云存储系统进行了分析和研究,并提出了一种基于信息分散算法的混合云存储架构的解决办法,在此基础上完成了混合云存储架构的设计,并详细阐述了架构中的数据存储调度策略,包括数据存储、数据获取、数据迁移与数据访问统计的详细流程,之后从系统的部署架构与功能设计两部分介绍了系统的总体实现方案。
关键词:混合云,数据存储,信息分散算法,数据存储策略
0.引言
伴随着大数据时代的到来,云计算技术成为了界和学术界关注的热点,近年来获得了长足的发展。这一技术使得软件、平台和基础设施可以通过网络作为一种公共服务提供给用户,具有资源利用率高效、基础设施廉价、易管理、易拓展、按需使用等诸多优势,云计算服务所为个人和企业用户带来了前所未有的便捷。
混合云将私有云和公有云结合起来,企业或组织维护一个较小规模的私有云系统,将关键数据和处理程序在私有云系统中储存和处理,而将非关键的数据和程序则外包到公有云中,利用公有云相对私有云廉价的使用成本和较高的可用性来使企业的云计算资源得到更加充分的利用。云存储作为云计算的一种应用模式,利用服务器集群应用、分布式文件系统、虚拟化和网格等技术,将不同的存储设备通过网络集合起来协同工作,提供了弹性易拓展、资源利用率高的数据存储方案。私有云存储运行在企业数据中心内部的专用硬件设施上,与公有云存储相比数据安全性和服务质量可以得到有效的保障,其网络通信性能也有明显的优势。但构建私有云要求数据中心的环境、机架空间以及冷却系统等设备能保证私有云良好运行,同时私有云的规模很难做到一步到位,面对数据增长与各种突发问题时还需要不断维护。在这种情况下,混合云存储的架构应运而生,将企业内部的私有云存储与公有云存储整合在一起,发挥了两者各自的优点。可以在不增加额外的基础设施的前提下,满足企业突然爆发的峰值环境下的存储需求,相应地为用户提供必需的资源,同时还可以弥补公有云存储在安全性和访问性能上的不足。
1.信息分散算法
如今数据存储的应用场景越来越复杂,传统的基于总线的单节点存储方式已经慢慢被基于网络的多节点存储方式所取代。节点失效的问题在多节点存储中是不可避免的,所以通常采用副本冗余备份的方法来进行容灾,提高数据的可用性,如在Google的GFS中一个数据文件会有三个完全一致的副本。副本机制易于实现但在存储空间利用率上较差,一个拥有三个副本的数据文件在存储利用率上只能达到1/3
1989年Michael O.Rabin。提出的信息分散算法(IDA)的基本思想是将大小为L的数据文件切分为n个冗余编码的长度为L/k(k≤n)的数据块,重构原数据时只需获取任意k个编码数据块进行解码即可,从而构成了(k,n)门限存储。IDA算法的理论基础是纠删码(Erasure codes),包括Reed-Solomon (RS),Maximum Distance Seprable (MDS)等。IDA算法首次将RS类纠删码运用于分布式存储中,简化编码和解码的过程。1997年分别由Rizzo和Plank等人发表了RS类纠删码的编解码过程的软件实现算法后,RS类纠删码才开始在分布式存储领域逐渐被应用。目前不仅传统的RAID已引入纠删码来改善存储性能,Facebook的HDFS-RAID、Google的GFS2、Windows Azure已经釆用了纠删码来改进副本机制,降低成本。
1.1 RS纠删码
Reed-Solomon (RS)纠删码是一类能够通过纠正突发错误和随机错误的典型的几何码,在年由和用多项式首次构造根据生成矩阵的不同,纠删码可分为使用范德蒙矩阵的范德蒙码和使用柯西矩阵的柯西码两种。
RS编码W字节为编码和解码单位,大数据块要拆分为字长为W的字节(一般为6位或者18位),划分后的数据块可以构成向量D=(D1,D2,…,Dn)。范德蒙矩阵满足矩阵的各列呈几何级数关系,如图1所示。将k行m列的范德蒙矩阵和k行k列的单位矩阵联合构成的矩阵,与向量D进行矩阵乘法运算,如图2所示,可以得到原始数据和校验数据构成的向量C=A*D=(D1,D2,…,Dn,C1,C2,…Cm),其中C就是编码后的数据。
RS纠删码最多能容忍个数据丢失错误,数据恢复时在向量中将无法读取的数据块去掉,构成向量C',同时在A中将对应的行删掉得到新的矩阵A'。由于生成矩阵A是范德蒙矩阵和单元矩阵的组合,其任意行子集都可以保证线性无关可组成可逆矩阵。因此,需要恢复的数据D可以通过C'*A'-1求得。矩阵求逆若采用高斯消元法,需要进行实数加减乘除四则运算,无法作用于字长为w的二进制数据。RS采用伽罗瓦群GF(2w)中定义的四则运算法则来解决这个问题。GF(2w)域有2w个值,每个值都对应一个低于w的多项式,这样域上的四则运算就转换为多项式空间的运算。其中加法为异或运算,乘法则需要维护两个大小为 2w-1的表格:log表gflog和反log表gfilog。乘法公式为:
(1)
纠删码存储的冗余度低,数据可用性和存储利用率更高,同时系统中存储更少的数据副本可节省同步和迁移所用的网络带宽。此外,数据的拆分编码相对来说提升了数据的安全性。
2.混合云存储架构设计
2.1基于信息分散算法的混合云存储方案
合云存储系统建立在私有云和公有云服务之上,基于信息分散算法的完成数据存储,本文中的混合云存储方案如图所示,其中用户数据的上传、下载和处理由混合云存储系统来代理。整个过程对于用户来说是透明的,混合云存储系统按照存储策略决定数据存储到公有云还是私有云。系统对私有云中的数据直接进行存储和获取,对公有云中的数据利用信息分散算法进行(k,n)门限存储,即系统将数据文件拆分为n个带有冗余编码的数据块,选择n个不同的云服务商分别存储,当原数据还原时需要获取门限值以上的数据块才能完成。
利用信息分散算法来实现数据在公有云中的存储,具备如下优势:
一、数据安全性好。各个云服务商上都并没有存储完整的数据,即使某个云服务商的数据泄露或被窃取,都无法造成重大的损失。
二、数据可用性强。部分云服务商的服务出现中断或者数据丢失,不会影响到混合云中数据的存取。与无冗余备份的存储方案相比较,数据的可用性大大增强,最大程度上避免了云服务商锁定的问题。
2.2混合云数据存储方案总体架构
混合云存储系统的核心主要包含主服务、数据存储服务、数据获取服务、数据迁移服务和访问统计服务、云存储接入组件五部分,如图3所示。
一、主服务
主服务为应用程序和客户端提供了友好、易用、灵活的用户接口完成数据文件存取和资源管理等功能。主服务将具体的数据处理请求转发给其他服务完成。数据控制模块响应用户对文件存储和获取的请求,并将请求转发给数据存储服务或数据还原服务完成操作。
二、数据存储服务
数据拆分模块利用IDA算法对数据进行分块,记录数据块的元数据用于数据的查询和恢复。数据安全模块可用来对数据进行对称加密和签名,以保障数据的机密性和完整性。存储调度模块确定数据的存储策略,调用云存储接入组件完成存储功能。
三、数据获取服务
用来从私有云或公有云获取数据,数据安全模块负责数据的解密和完整性验证,还原调度模块查询数据块元信息,确定数据文件的获取方案,由数据恢复模块按照IDA算法恢复原数据。
四、数据迁移服务和访问统计服务
数据迁移服务的实现是为解决云服务商更换和数据存储方案并未达到最优的问题,按照一定的周期自动运行或被主服务直接调用运行。访问统计服务对云服务商中的数据文件的访问情况进行统计,为数据存储和迁移提供辅助。
五、云存储接入组件
组件的形式被其他服务调用。其中私有云接入模块封装了私有云的接口,公有云接入模块为系统中所有云服务商提供统一访问接口,完成身份认证、存取访问、存储管理等操作。
2.3数据存储调度策略
混合云架构中数据的处理由数据存储、数据获取、数据迁移和访问统计服务这四个服务来完成。
一、数据存储
用户将数据通过服务接口上传至主服务,后者交付给数据存储服务后,数据存储服务首先判断私有云存储占用空间是否达到了系统预先设定的阈值,若未达到则表明私有云拥有足够的空间来存储用户的数据,这时系统将数据文件直接存储并生成元数据写入服务端数据库中,否则表明数据需要上传到公有云空间中。然后系统调利用云服务商选择算法确定存储方案,调用信息分散算法将数据分块,并生成数据文件和数据块的元数据,包括文件大小,存储位置等信息。系统将元数据写入到数据库后,将数据块放入上传队列等待上传到公有云存储空间,过程如图4所示。
数据文件处理后产生的元数据的定义如表1所示。其中文件标识用來在系统内唯一识别一个文件,一股可以采用通用唯一识别码(Universally Unique Identifier,UUID)。MD5校验值为文件内容的32位的散列值,可用来校验文件的完整性。文件类型的划分将按照多用途互联网邮件扩展标准(Multipurpose Internet Mail Extensions,MIME)来进行,本系统中可区分Text、Application、Image、Audio和Video等基本格式。
二、数据获取
数据获取服务在响应用户的数据下载青求时,首先从数据库中获取所请求数据文件的元数据,从而得知数据文件存放的位置:若存放于私有云中,则系统直接访问私有云获取数据返回给用户;当需要从公有云中获取数据时,为了提升访问性能,系统在服务器硬盘中设定了一定大小的缓存空闻,如果数据文件在缓杯空间内则可以直接获取返回给用户,否则系统计算出当前最佳的数据块下载方案,访问公有云获取相应的数据块,最后合并出的完整数据文件会缓存到本地的缓存空间,同时返回给用户。
公有云缓存空间的存在使得部分常访问的数据可直接获取,无需从云端获取数据块然后再进行合并,在一定程度上提高了数据获取时的性能。由于缓存空间的容量有限,系统借鉴了操作系统内存管理中的LRU(Least Recently Used)算法对其进行管理。当需要将数据文件存放到缓存空间时可按照置换算法完成(图5),即当缓存空间中没有足够空间时将最近最久未访问的文件删除,直到可以缓存当前文件。
三、数据迁移和数据访问统计
一个合理的存储系统中需要建立数据文件的访问历史,可以让用户和系统管理员查询到历史记录。数据访问统计服务在此基础上对数据文件的访问情况进行分类和统计,为公有云数据存储时云服务商选择和数据迁移的实现提供支持。系统中设定的统计数据的格式包括文件类型,文件大小,总累计数量,总存放时间以及总访问次数。
其中<文件类型,文件大小>构成的二元关系唯一标识了一种访问统计数据,文件类型相同且大小以为单位四舍五入后的整数值致时认为两种文件是相同的分类。当用户将数据文件存储到系统时,与其匹配的分类的统计数据中总累计数量相应增加;访问统计服务定期扫描系统中的数据文件的元数据信息,更新统计数据中的总存放时间和总访问次数。基于访问统计数据,系统可以数据存储时对数据文件的存储情况做出简单的预测,其预测存储时长和存储时间内预测被下载次数可设定为平均存放时间和平均访问次数。
3.混合云存储系统的实现
混合云存储系统的目标是为企业用户提供数据存储服务,并在此基础上利用私有云存储系统、公有云存储服务满足企业数据管理维护部口对于企业数据存储服务的安全性和成本要求。
3.1系统部署方式实现
混合云存储系统本身的服务与私有云和公有云存储构成一个有机的整体。混合云存储系统部署于企业内部之内,将企业的私有云存储服务和互联网上的公有云存储服务结合起来,为企业用户提供数据存储服务。系统本身通过Web服务提供用户接口,代理了用户的数据文件的上传和下载操作。Web服务器、数据库服务器和核心业务服务器共同承担系统的服务,系统主服务和其他服务将部署于核心业务服务器中。任何一个服务器的失效都将会造成混合云系统的瘫痪,故可以根据具体的应用场景和用户规模在此基础上通过分布式、负载均衡和冗佘备份等技术对系统进行扩展。系统以开源云计算框架Hadoop作为私有云存储实现方式,Hadoop中的分布式文件系统HDFS具有较高的可靠性和吞吐量,能够保证整个系统的性能和服务质量,并且可以在大量廉价设备组成的集群上部署,有助于企业充分利用其存储和计算资源。系统的公有云存储服务将会选择主流的云服务商,这些云服务商决定了整个系统服务的弹性和质量,同样扮演着至关重要的角色。
3.2系统功能实现
混合云存储系统的目标是为企业用户提供数据存储服务,并在此基础上利用私有云存储系统、公有云存储服务满足企业数据管理维护部口对于企业数据存储服务的安全性和成本要求。根据混合云存储系统的目录,可对系统的需求用例的方式进行描述,如图7所示。
4.总结
存储作为云计算的一种应用模式,利用服务器集群应用、网格技术或分布式文件系统等技术,将不同的存储设备通过网络集合起来协同提供数据存储方案。然而,企业用户对数据完全托管给公有云服务商时在服务可靠性和可用性、服务商锁定、数据安全性及网络传输性能等方面产生的问题仍有顾虑。私有云存储则运行于企业内部数据中心的专用硬件设施上,构建成本高而且规模很难做到一步到位,面对数据增长与各种突发问题时还需要不断维护。
混合云存储架构可以将企业内部的私有云存储与公有云存储整合在一起,弥补了公有云存储在数据安全性和访问性能上的不足,同时可以满足突然爆发的峰值环境下存储需求,为用户提供必需的资源而不需要增加额外的基础设施。研究和设计数据访问无缝透明、数据存储和迁移策略高效合理、数据安全可用的混合云存储架构,对于云存储的发展有着重要的意义。
论文作者:权鹏宇1,耿贞伟2,李少华1
论文发表刊物:《科技中国》2017年8期
论文发表时间:2017/12/13
标签:数据论文; 数据存储论文; 系统论文; 文件论文; 矩阵论文; 算法论文; 服务商论文; 《科技中国》2017年8期论文;