直销软件之云储存282
直销软件之云储存:随着谷歌,微软,亚马逊,IBM等大型公司越来越致力于云计算的研究,使“云”得到了飞速发展,越来越多的用户开始将数据部署在“云端”,然而云在给用户带来许多便利的同时,由于传统web服务以及自身特点带来的安全风险,正日益成为阻碍其进一步发展的因素。在目前云平台安全机制下,对云存储、云安全风险以及在云平台下数据恢复问题做了简单分析。 [本文转自:www.dylw.net] 1 云存储 Yahoo云计算平台核心是Hadoop技术,它所采用的分布式文档系统HDFS(Hadoop Distributed File System)与Google的GFS(Google File System)分布式系统不同,是真正运作MapReduce云计算技术的开放源代码云计算系统。Hadoop除HDFS分布式文档系统、MapReduce分布式平行计算框架以及Hbase分布式数据库三大核心技术外,还包括Hive、Pig等子技术。 1.1 HDFS分布式文件系统 为了加强对后文数据恢复问题的认识,这里简单介绍一下HDFS分布式文件系统。 [本文转自:www.dylw.net] HDFS是根据Coogle发表的GFS文档系统论文开发的开放源代码分布式文档系统,是一种典型的主从式( Master / Slave )架构,主要用来解决数据爆炸式增长的问题,具有存储效率高、扩展性能好、可靠性有保障、价格低廉以及可再用性强的优点。它由一个名叫 NameNode的控制节点和多个名叫 DataNode 的数据节点组成。NameNode 维护着整个文件系统的命名空间,将文件系统的元数据保存在内存中,管理、控制文件的相关操作,但实际的数据并不存放在 NameNode 中,而是存放在 DataNode 中。 当客户端应用程序访问文件时,HDFS首先将包含该文件名字的访问请求发送给 NameNode,然后 NameNode 将存储该文件所有数据块的 DataNode 地址信息反馈给客户端应用程序,进而客户端应用程序直接和相应的 DataNode 建立连接并进行具体的文件读写操作。它的数据访问特性是“一次写入,多次读取”,文档一旦创建就不允许更改,而是以附加的方式加在原文档后面。另外,HDFS被分割的block大小一般为128MB,并且默认以3个备份存储到不同的机架,以Linux操作系统的ext2/ext3文档系统格式存储在硬盘上,用来保证数据的安全[1] 。更重要的是HDFS具有容错功能,当出现宕机或者其它突发状况,HDFS检测到错误时,可以通过HDFS的容错检测以及自动恢复系统将损坏的文档复原,这就是后文介绍的有关数据恢复的知识。 2 云计算的安全 美国Gartner 公司于 2008 年发布的一份名为《云计算安全风险评估》的报告,报告指出云计算存在的七大安全风险[2],分别是优先访问权、管理权限、数据位置、数据隔离、数据恢复、调查支持、长期发展。 云计算安全风险主要体现在以下几个方面:恶意服务注入,非法数据恢复,篡改数据备份:安全一致性差:跨虚拟机袭击,分布式服务拒绝[3]。 从以上可知,数据恢复是云计算数据安全的一个研究热点,该文着重就数据恢复问题进行分析。数据恢复包括恢复两个方面的数据:一是受损数据;二是已删数据。受损数据恢复相比较而言,方法更多,而且简单许多,已删数据目前则必须是在一定条件下才可以恢复。 2.1受损数据恢复 包括即冗余恢复[3]、副本恢复[4]和备份恢复[5]三种恢复方式。其中,冗余恢复方式主要用于云端数据存取过程中数据受损时的恢复;副本恢复和备份恢复方式则主要用于云端数据存储后数据受损时的恢复。 2.1.1冗余恢复[3] 由于数据传输过程中可能出现宕机等突发状况,使得数据在传输的过程中受损。这种情况下可以利用冗余恢复对数据进行恢复。冗余恢复是利用纠错码对传输过程中的受损数据进行即时恢复,系统使用Reed-Solomon码提供任意高错误恢复技术,保证系统在发现问题后能够被迅速检测到并进行恢复。 为了确保云端数据更加可靠,保证云端已存储的数据的安全性,对云端存储的数据还可以采用副本恢复和备份恢复两种方式。根据上文提到的云计算的分布式文档系统可知,云端存储的数据(块)在不同的服务器上都存有3个及以上的副本。很显然在某台服务器上数据出现错误状况时,可以利用云端其他服务器上的数据(块)来代替当前服务器上的受损数据,这就是所谓的“异地灾难备份机制”,像银联数据中心这样的金融机构采用的就是“两地两中心”或者“两地三中心”这样的异地灾难备份机制来保证金融数据的安全性的。 2.1.2副本恢复[4] 云端已存数据的副本恢复方式原理就是利用分布式系统的存储特性,通过云端各服务器之间相互复制数据块的副本来实现的。简要地说,如果系统在进行完整性验证过程中发现某数据(块)完整性受损,可以通过云端服务器上的复制进程(如上文1.1所提到的),实现数据(块)副本之间的复制来恢复受损或丢失的数据(块),这就是云端已存数据的副本恢复方法。 但是并不排除其他极端情况,比如,数据被损坏后或者被恶意篡改后正好复制进程启动(按照复制策略),那么受损或被恶意篡改的数据就会被复制到各个服务器,覆盖原来冗余存储的正确数据(块),从而使得数据(块)完全被损坏。对于此类云端受损数据,可以借鉴windows系统里面的备份机制,即将数据恢复到受损前的某个状态,一旦出现以上状况,就恢复到受损前这个正常状态。为了实现这一恢复策略,需要在云端定时保存历史备份数据,且这些数据不能进行更新和同步操作。 2.1.3备份恢复[5] 数据备份和备份策略是比较成熟的技术,备份策略如下:一是按照云端数据存储模型和结构,云端数据采用分块备份;二是采用全备份和增量(或者差异)备份相结合的方法对云端数据块进行备份。 备份恢复是以丢失用户实时修改更新的数据为代价,把用户的数据恢复到某一正常时期的状态。 综上,受损数据的恢复流程是:系统通过完整性验证,一旦发现已存云端数据受到损坏后,自动启动恢复模式,采用的受损数据恢复方式的顺序一般依次为:冗余恢复、副本恢复和备份恢复。 2.2 已删数据恢复 2.2.1 Linux 文件系统下已删数据的恢复 基于 HDFS 的数据销毁机制设计:HDFS 中数据的删除是异步的。在 NameNode 将元数据删除后,DataNode 通过 heartbeat获取此改变(invalid block 列表),并通过 Java 的文件删除方法删 |