薛寅颖,万晓冬
(南京航空航天大学自动化学院,江苏 南京 210016)
随着科学的发展,人们对计算机的要求越来越高,作为与计算机密不可分的数据存储,也从最初的单机存储、网络存储、分布式存储发展到现在的云存储。云存储是在云计算概念上延伸和发展出来的一个新的概念,是指通过集群应用、网格计算或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。云存储的出现突破了传统的存储方式的性能、容量的瓶颈,能够联结网络中大量各种设备以便形成强大的存储能力,使海量存储成为可能。
尽管云存储具有许多优点,但是其安全性一直是其存在的主要问题之一[1]。随着云计算技术的不断发展,云安全问题日益突出。目前,国内外在云安全方面提出了几种方案,如建立可信云、安全认证、数据加密、权限控制、安全传输等[2]。如何在复杂的网络环境中确保云存储安全,是目前急需解决的问题。
云存储的系统架构由4个部分组成,如图1所示。
图1 云存储系统架构
存储层是云计算最基础的部分,可以是IP存储设备也可以是DAS存储设备。存储设备之上是一个统一存储设备管理系统,可以实现存储设备的逻辑虚拟化、多链路冗余管理,以及硬件设备的状态监控和故障维护。
基础管理层是云存储的核心部分,也是云存储中最难以实现的部分。基础管理层通过集群、分布式文件系统和网格计算等技术,实现云存储中多个存储设备之间的协同工作,使多个的存储设备可以对外提供同一种服务,并提供更大更强更好的数据访问性能。CDN内容分发系统、数据加密技术保证云存储中的数据不会被未授权的用户所访问,同时,通过各种数据备份和容灾技术和措施可以保证云存储中的数据不会丢失,保证云存储自身的安全和稳定。
应用接口层是云存储最灵活多变的部分。不同的云存储应用可以根据实际业务类型,开发不同的应用服务接口,提供不同的应用服务。比如视频监控应用平台、网络硬盘应用平台、远程数据备份应用平台等。
访问层主要是用于以友好的方式展现用户所需的内容和服务体验,享受云存储服务。
在云存储发展过程中,安全问题一直是用户关注的重点,也是制约其进入市场的主要因素,其主要问题表现如下:
(1)云存储的一个重要特点是可扩展性,对外部并不是透明的,因此云存储无法清晰地定义安全边界及保护设备。
(2)云存储数据的传输大多通过网络,遭遇网络攻击极易发生商业信息泄露、破坏服务中断等,对于数据的存储造成影响。
(3)在云存储中各种数据存储在不同的云端,用户不能确定数据存储在云中的位置以及具体的服务器,数据的完整性与可恢复性也是云存储安全中需要解决的问题。
云存储的安全性贯穿于整个云架构,为此,本文设计一种基于光盘库技术的云存储来解决云存储应用过程中的安全问题。
根据前面对云存储安全的分析,云存储架构都需要建立相应的保护措施,建立的安全架构采用纠删法实现对数据的分块与恢复,分散式存储管理等技术确保数据的安全传输与存储,其架构图如图2所示。
图2 云存储安全架构
纠删码的原理是把待存储的数据对象分割成若干大小相等的数据块,然后对这些数据块进行编码,得到一些编码后的数据块,读取数据时只要获得任意足够数量的编码后的数据块,就可以解码得到原始数据[4]。用k表示编码前的数据块的个数,n表示编码后的数据块个数,则这个定义可以简化为(n,k),只要获得数据块数目超过k块就可以恢复出数据。纠删码一般用于数据的容错技术,但由于需要对数据进行切分所以在一定程度上也保证了数据的安全性[11]。
算法设计步骤如下:
(1)数据分割:根据用户的需求设定,将数据分割成m个大小为b的模块。
(2)编码:对m个数据块进行编码,产生n个数据块。
(3)分散:将n个数据块分散到不同的存储节点上。
(4)解码:向存储节点发出请求,获取r个数据块进行解码得到原来的m个数据块
(5)恢复数据:将m个数据块合并恢复出原来的数据。
编码与解码如图3所示。
图3 编码与解码
通过纠删码编码使得在数据分块后进行网络传输和存储都比较安全,无论是网络传输过程中被拦截还是在存储层中数据被窃取,只能截取到数据的部分信息,对于整个数据这些信息没有任何意义。
数据存储设备根据存储介质的不同可以分为3种类型:磁带存储、磁盘存储、光盘存储。
(1)磁带存储因价格便宜且携带方便曾经是主流存储介质,但是磁带机械设备和磁带驱动器都是机电设备,不可避免地存在机械故障率过高的缺陷,且磁带介质本身也比较脆弱,容易受到环境的影响。
(2)磁盘存储自有PC以来,硬盘是最常使用的存储装置,但是在整个计算机系统架构中,与CPU和RAM相比,硬盘的速度是最弱的环节之一。为了提高计算机的数据容量,增加储存的吞吐量,进而改进硬盘数据的安全机制,磁盘阵列应运而生。在存储数据时,阵列控制器将数据切割成许多区段,分别存放在各个硬盘上,多应用于大型服务器,不过这类产品的价格相对比较昂贵。
(3)光盘作为一种近十年才兴起的存储介质,同传统的磁带、软磁盘相比具有很大的优点[5]。与光盘息息相关的光盘库是一种带有自动换盘机构的光盘网络共享设备。光盘库一般由放置光盘的光盘架、自动换盘机构和驱动器三部分组成。近年来,由于单张光盘的存储容量大大增加,光盘库相较于常见的存储设备如磁盘阵例、磁带库等价格性能优势越来越大。光盘库作为一种存储设备已开始渐渐被运用于各个领域,如银行的票据影像存储、保险机构的资料存储,以及其它所有的大容量资料存储的场合。
磁带特别是数据流磁带的单盘容量确实比较大,可达到500GB,但这样的磁带价格却比较昂贵,同时磁带如保管不善易发霉、易磨损,接近磁体时数据易丢失,而且不同格式的磁带驱动器也不相兼容,造成了介质数据交换不方便。光盘与硬盘相比也有许多无可比拟的优点,硬盘本身比较脆弱,遇到大的震动、冲击,容易损坏,光盘就可很好地解决这些问题。而且光盘作为存储介质也是比较安全的,数据块存放在光盘中,如果网络中被植入病毒,出现异常情况很容易被发现。因此存储层选择光盘库作为存储介质增加了数据在云端上的安全性。
在访问层中加入用户认证信息,可以进一步保证云存储系统的安全性[10]。云存储数据存取过程如图4所示。
图4 数据存取过程
存储数据时根据用户的要求对要存储的数据进行分块打包成一个格式的文件,每个包开头写上原始数据的文件名、文件大小、文件编号、文件块数等信息便于恢复出原始数据。通过纠删码编码技术再次打包新的数据块,同样写入数据块的信息。最后经过云计算网络将数据块分散到各个光盘库。
取数据时首先向一个光盘库请求数据块,检查数据块前面部分记录数据块的信息,根据信息中打包的块数请求相应的光盘库索取数据。将得到的数据块通过纠删解码技术恢复出数据块,如果请求的数据不能完全恢复出数据,继续向其它光盘库申请索取数据,直到恢复出打包后的数据块,最后通过解包完整地恢复出数据。
本文将纠删码技术及光盘库应用到云存储中,实现了数据的分散管理,确保数据在网络传输以及终端存储的安全性,同时具有一定的容错和容灾能力。但是这些需要通过空间和时间来满足其要求,因此怎样用有限的空间提高存储率并快速、安全存储将是要研究的一个重点。
[1]Steve M.Danger in the clouds[J].Network Security,2008(12):9-11.
[2]张伟阳.浅析云存储安全问题[J].中国科技纵横,2011(16):121,128.
[3]冯丹.网络存储关键技术的研究及进展[J].移动通信,2009,33(11):35-39.
[4]Luby M G,Mitzenmacher M,Shokrollahi M A,et al.Efficient erasure correcting codes[J].IEEE Trans.on Information Theory,2001,47(2):569-584.
[5]王朗.用光盘塔和光盘库建立FTP站点的实践[J].图书馆理论与实践,2005(2):120,136.
[6]Roy I,Setty S T V,Kilzer A,et al.Airavat:Security and privacy for MapReduce[C]//Proceedings of the 7th Usenix Symposium on Networked Systems Design and Implementation.San Jose,2010:298-321.
[7]Cachin C,Keidar I,Shraer A.Trusting the cloud[J].ACM SIGACT News,2009,40(2):455-461.
[8]Morris R J T,Truskowski B J.The evlution of storage systems[J].IBM Systems Journal,2003,42(2):205-217.
[9]姜泽雄,谢军,孙程.基于XOR纠删码的性能分析[J].中国集成电路,2009(9):56-59.
[10]王平建,荆继武,王琼霞,等.云存储中的访问控制技术研究[J].信息网络安全,2011(9):41-43.
[11]万武南.分布式安全存储系统纠删码技术的研究[D].上海:中国科学院上海冶金研究所,2006.
[12]孙程.基于纠删码的分布式存储系统的设计与实现[D].成都:电子科技大学,2010.
[13]付初生,周亮,文红.LDPC码原理与应用[M].成都:电子科技大学出版社,2006.
[14]Ping L,Leung W,Wu K.Low-rate turbo-Hadamard codes[J].IEEE Trans Inform Theory,2003,49(12):3213-3224.