解读云计算与云数据存储发展趋势技术研究
目前,亚马逊、微软、谷歌、IBM、Intel等公司纷纷提出了“云计划”。例如亚马逊的AWS(Amazon Web services)、IBM和谷歌联合进行的“蓝云”计划等。这对云计算的商业价值给予了巨大的肯定。同时学术界也纷纷对云计算进行深层次的研究。例如谷歌同华盛顿大学以及清华大学合作,启动云计算学术合作计划(Academic Cloud Computing Initiative),推动云计算的普及,加紧对云计算的研究。美国卡内基梅隆大学等提出对数据密集型的超级计算(DISC:Data Intensive Super Computing)进行研究,本质上也是对云计算相关技术开展研究。由此可见,在各大公司以及学术界的共同推动下,云计算技术将会持续发展。 一、云计算(Cloud Computing) 1.1 什么是云计算?
现有的研究成果对云、云计算的定义并没有达成共识,目前各大主流厂商的云计算理念也不一样,对云计算的理解不尽相同。IBM的技术白皮书“Cloud Computing”中的云计算定义:“云计算一词用来同时描述一个系统平台或者一种类型的应用程序。一个云计算的平台按需进行动态地部署(provision)、配置(configuration)、重新配置(reconfigure)以及取消服务(deprovision)等。在云计算平台中的服务器可以是物理的服务器或者虚拟的服务器。高级的计算云通常包含一些其他的计算资源,例如存储区域网络(SANS),网络设备,防火墙以及其他安全设备等。云计算在描述应用方面,它描述了一种可以通过互联网Internet进行访问的可扩展的应用程序。“云应用”使用大规模的数据中心以及功能强劲的服务器来运行网络应用程序与网络服务。任何一个用户可以通过合适的互联网接入设备以及一个标准的浏览器就能够访问一个云计算应用程序。中国云计算网将云定义为:“云计算是分布式计算(Distributed Computing)、并行计算(Parallel Computing)和网格计算(Grid Computing)的发展,或者说是这些科学概念的商业实现。 1.2 云计算的体系结构
云计算平台是一个强大的“云”网络,连接了大量并发的网络计算和服务,可利用虚拟化技术扩展每一个服务器的能力,将各自的资源通过云计算平台结合起来,提供超级计算和存储能力。一个通用的云计算体系结构如图1所示。
图1:云计算体系结构
云端用户:提供云用户请求服务的交互界面,用户通过Web浏览器可以注册、登陆及定制服务、配置和管理用户。
服务目录:用户在取得相应权限后可以选择或定制的服务列表。
管理系统和部署工具:提供管理和服务,能管理云用户,能对用户授权、认证、登录进行管理,并可以管理可用计算资源和服务,接收用户发送的请求,根据用户请求并转发到相应的应用程序,调度资源智能地部署资源和应用,动态地部署、配置和回收资源。
监控:监控和计量云系统资源的使用情况,以便作出迅速反应,完成节点同步配置、负载均衡配置和资源监控,确保资源能顺利分配合适的用户。
服务器集群:虚拟的或物理的服务器,由管理系统管理,负责高并发量的用户请求处理、大运算量的计算处理、用户Web应用服务,云数据存储时采用相应数据切割算法,采用并行方式上传和下载大容量数据。
用户可通过云用户端从列表选择所需服务,其请求通过管理系统调度相应的资源,并通过部署工具分发请求、配置Web应用。 二、基于云计算的云存储技术
云存储在云计算(Cloud Computing)概念上延伸和发展出来的一个新的概念。云计算使更大数据量的处理成为可能,被称为下一代的因特网计算和下一代的数据中心。云计算是是分布式处理(Distributed Computing)、并行处理(Parallel Computing)和网格计算(Grid Computing)的发展,是透过网络将庞大的计算处理程序自动分拆成无数个较小的子程序,再交由多部服务器所组成的庞大系统经计算分析之后将处理结果回传给用户。通过云计算技术,网络服务提供者可以在数秒之内,处理数以千万计甚至亿计的信息,达到和“超级计算机”同样强大的网络服务。云存储是指通过集群应用、网格技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。
2.1 云存储系统的结构模型
与传统的存储设备相比,云存储不仅仅是一个硬件,而是一个网络设备、存储设备、服务器、应用软件、公用访问接口、接入网、和客户端程序等多个部分组成的复杂系统。各部分以存储设备为核心,通过应用软件来对外提供数据存储和业务访问服务。云存储系统的结构模型如图2所示:
图2:云存储系统的结构模型
云存储系统的结构模型由四层组成。 ①存储层
存储层是云存储最基础的部分。存储设备可以是FC光纤通道存储设备,可以是NAS和SCSI等IP存储设备,也可以是SCSI或SAS等DAS存储设备。云存储中的存储设备往往数量庞大且分布多不同地域,彼此之间通过广域网、互联网或者FC光纤通道网络连接在一起。存储设备之上是一个统一存储设备管理系统,可以实现存储设备的逻辑虚拟化管理、多链路冗余管理,以及硬件设备的状态监控和故障维护。 ②基础管理层
基础管理层是云存储最核心的部分,也是云存储中最难以实现的部分。基础管理层通过集群、分布式文件系统和网格计算等技术,实现云存储中多个存储设备之间的协同工作,使多个的存储设备可以对外提供同一种服务,并提供更大更强更好的数据访问性能。CDN内容分发系统、数据加密技术保证云存储中的数据不会被未授权的用户所访问,同时,通过各种数据备份、容灾技术和措施可以保证云存储中的数据不会丢失,保证云存储自身的安全和稳定。 ③应用接口层
应用接口层是云存储最灵活多变的部分。不同的云存储运营单位可以根据实际业务类型,开发不同的应用服务接口,提供不同的应用服务。比如视频监控应用平台、IPTV和视频点播应用平台、网络硬盘引用平台,远程数据备份应用平台等。
④访问层
任何一个授权用户都可以通过标准的公用应用接口来登录云存储系统,享受云存储服务。云存储运营单位不同,云存储提供的访问类型和访问手段也不同。
2.2 云数据存储技术
为保证高可用、高可靠和经济性,云计算采用分布式存储的方式来存储数据,采用冗余存储的方式来保证存储数据的可靠性,即为同一份数据存储多个副本。另外,云计算系统需要同时满足大量用户的需求,并行地为大量用户提供服务。因此,云计算的数据存储技术必须具有高吞吐率和高传输率的特点。 云计算的数据存储技术主要有谷歌的非开源的GFS(Google )和Hadoop开发团队开发的GFS的开源实现HDFS(Hadoop Distributed )。大部分IT厂商,包括yahoo、Intel的“云”计划采用的都是HDFS的数据存储技术。未来的发展将集中在超大规模的数据存储、数据加密和安全性保证、以及继续提高I/O速率等方面。 2.2.1 Google (GFS)
GFS是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。运行于廉价的普通硬件上,但可以提供容错功能。可以给大量的用户提供总体性能较高的服务。
一个GFS集群由一个Master和大量的Chunkserver构成,并被许多客户(Client)访问,如图3所示。Master和Chunkserver通常是运行用户层服务进程的Linux机器。只要资源和可靠性允许,Chunkserver和Client可以运行在同一个机器上。
图3:Google 架构
文件被分成固定大小的块。每个块由一个不变的、全局唯一的64位的Chunk-Handle标识,Chunk-Handle是在块创建时由Master分配的。ChunkServer将块当作Linux文件存储在本地磁盘并可以读和写由Chunk-Handle和位区间指定的数据。出于可靠性考虑,每一个块被复制到多个Chunkserver上。默认情况下,保存三个副本,但这可以由用户指定。
Master维护文件系统所以的元数据(Metadata),包括名字空间、访问控制信息、从文件到块的映射以及块的当前位置。它也控制系统范围的活动,如块租约(Lease)管理,孤儿块的垃圾收集,ChunkServer间的块迁移。Master定期通过HeartBeat消息与每一个ChunkServer通信,给ChunkServer传递指令并收集它的状态。
与每个应用相联的GFS客户代码实现了文件系统的API并与Master和ChunkServer通信以代表应用程序读和写数据。客户与Master的交换只限于对元数据(Metadata)的操作,所有数据方面的通信都直接和ChunkServer联系。客户和ChunkServer都不缓存文件数据。因为用户缓存的益处微乎其微,这是由于数据太多或工作集太大而无法缓存。不缓存数据简化了客户程序和整个系统,因为不必考虑缓存的一致性问题。但用户缓存元数据(Metadata)。ChunkServer也不必缓存文件,因为块时作为本地文件存储的。 2.2.2 Hadoop Distributed (HDFS)
Hadoop中的分布式文件系统HDFS由一个管理结点(NameNode)和N个数据结点(DataNode)组成,如图4所示,Namenode是中心服务器,管理文件系统的Namespace和客户端对文件的访问。每个DataNode结点均是一台普通的计算机。在使用上同熟悉的单机上的文件系统非常类似,一样可以建目录,创建,复制,删除文件,查看文件内容等。但其底层实现上是把文件切割成Block,然后这些Block分散地存储于不