云计算作为数据密集型的超级计算,它要存储海量的数据,因此数据存储的安全可靠与数据读写的经济高效是云计算的基础。云计算采用分布式存储技术把海量的数据存储在服务器集群中,同时为一份数据存储多份副本,采用冗余存储的方式和数据加密技术来保证数据的安全可靠性;云计算用高吞吐率和高传输率来保证并行的为大量用户提供服务。云计算系统中广泛使用的数据存储系统是谷歌非开源的GFS和Hadoop团队实现 HDFS。
GFS即谷歌文件系统,是一个可扩展的分布式文件系统。用于大型的、分布式的、对大量数据进行访问的应用。它运行于廉价的普通硬件上,但可以提供容错功能。它可以给大量的用户提供总体性能较高的服务。
GFS主要分为两类节点:一个主服务器节点和多个块服务器节点。主服务器节点主要存储与数据文件相关的元数据.元数据包括一个能将64位标签映射到数据块的位置及其组成文件的表格,数据块副本位置和哪个进程正在读写特定的数据块等。主服务器节点会周期性地接收从每个块服务器节点传来的更新来让元数据保持最新状态。块服务器节点主要用于存储数据,数据文件会以每个默认大小为64MB的数据块的方式存储在块服务器上。每个数据块都有一个唯一的64位标签,并且每个数据块在整个分布式块服务器上有多个副本。
GFS这种文件系统使客户与主服务器的交换只限于对元数据的操作.所有数据方面的通信都由客户直接和块服务器联系,这大大提高了系统的效率,防止主服务器负载过重。
数据管理技术
计算需要对海量的分布式数据进行处理、分析,因此,数据管理技术必须能够高效地管理大量的数据。云计算系统中的数据管理技术主要是开源数据管理模块HBase。BigTable是建立在GFS、Scheduler、LocK Service 和MapReduce之上的一个大型的分布式数据库,与传统的关系数据库不同,它把所有数据都作为对象来处理,形成一个巨大的表格,用来分布存储大规模结构化数据。BigTable采用多级映射的数据结构,并支持大规模数据处理、高容错性和自我管理等特性,提供PB级的存储能力,使用结构化的文件来存储数据,并整个集群每秒可处理数百万的读写操作。多级映射的数据结构是一个稀疏的、多维的和排序的Map,每个单元格由行关键字、列关键字和时间戳来进行三维定位。
BigTable主要分为两部分:其一是Master节点,用来处理元数据相关的操作并支持负载均衡。其二是Tablet节点,主要用于存储数据库的分片,并提供数据访问,同时Tablet是基于名为SSTable的格式,对压缩有很好的支持。
虚拟化技术
虚拟化技术是云计算、云存储服务得以实现的基础和关键。虚拟化将原本运行在真实环境中的计算机系统或者组件运行在虚拟出来的环境中,它通过在硬件资源、操作系统和应用程序这些不同的层次之间构建一个虚拟化层,这个虚拟化层做为中间层连接上下两层,它向上层提供下层相同或类似的功能,这样上层不直接运行在下层环境中,而是运行在这个虚拟化的环境层中。虚拟化层解除了上下两层的耦合关系,使上层的运行不依赖于下层的具体实现。
虚拟化可以节省开销、整合服务、使资源得到最大利用。虚拟化技术包括将单个资源划分成多个虚拟资源的裂分模式和将多个资源整合成一个虚拟资源的聚合模式。虚拟化技术按照IT资源可分为基础设施虚拟化、系统虚拟化和软件虚拟化等,根据对象可分成存储虚拟化、计算虚拟化、网络虚拟化等。
云计算技术面临的问题
云计算的快速发展和应用给人们带来了越来越多的便利和实惠,但其发展道路上也存在着很多问题,如数据安全问题、系统稳定可靠性问题、网络传输问题、技术标准化问题等。
数据安全问题:如何保证数据存储和传输的安全可靠。数据信息长期安全使用、不丢失、不被错误修改和窃取。特别是有些数据信息是商业机密、国家机密,这些数据的安全直接关系到一个企业和国家的生存、发展和强大。数据的安全性是云计算得以发展的前提和根本,不仅需要技术的改进,也需要法律的进一步完善。
系统稳定可靠性问题:大规模的集群计算系统是云计算的支撑,当系统规模增大后。可靠性和稳定性就成为最大的挑战之一。需要通过有效的系统配置、监控、管理、调度、虚拟化等技术。实现一个强大的、动态的、自治的计算存储资源池,提供云计算所需要的大容量计算力。系统级的容错技术是系统技术方面的一个难点。大量服务器进行同一个计算时单节点故障不应影响应用的正常运行。对类似数据检索这样计算节点间无通讯的应用。这一点比较容易实现。但对那些有大量通讯的紧耦合类应用。当前业内仍无有效的系统级容错方案。目前主要还是依赖应用层面的检查点和重启技术,一方面增加了开发的难度和工作量,另外一方面对运行性能也有一定的影响目。