4.分布式数据库及代表企业产品
数据存储是云计算的一大应用领域。在这一领域应用中,利用云计算自身技术特点,对大规模数据进行分割、分储,并结合一致性技术、分布式备份等手段为用户提供一个可伸缩的、处理和分析海量数据的平台与服务是云计算数据存储的特点。数据存储技术一般对应于云计算技术体系中的资源层,在服务架构中多用于IaaS层、PaaS层的产品中。
分布式数据库是云计算数据存储所用的主要技术。用计算机网络将物理上分散的多个数据库单元连接起来组成的一个逻辑上统一的数据库。每个被连接起来的数据库单元称为站点或结点。分布式数据库有一个统一的数据库管理系统来进行管理,称为分布式数据库管理系统。分布式数据库能够支持多台主机通过网络同时访问共享文件和存储目录,这使多台计算机上的多个用户能够共享文件和存储资源。分布式数据库更适用于互联网应用,能够更好地支持海量数据的存储和处理。
分布式数据库的研究从20世纪70年代就已经开始。20世纪90年代以来,分布式数据库系统进入商品化应用阶段,传统的关系数据库产品均发展成以计算机网络及多任务操作系统为核心的分布式数据库产品,同时分布式数据库逐步向客户机/服务器模式发展。目前众多数据库厂商均提供成熟的分布式数据库产品,例如Oracle,IBM DB2、Microsoft Sql Server等,这些产品多为商业化产品。云计算技术发展以来,一些厂商开发了新的分布式数据库,例如Amazon
30
SimpleDB、Hadoop HBase、Google BigTable等,这些云环境下新开发的分布式数据库多为开源系统。下表列举了目前业界普遍使用的分布式数据库产品。
表6.分布式数据库厂商格局
厂商 产品 产品特点 Google Bigtable的设计目的是可靠的处理PB级别的数据,并且能够部署到上千台机器上。 BigTable Bigtable已经在超过60个Google的产品和项目上得到了应用,包括 Google Analytics、GoogleFinance、Orkut、Personalized Search、Writely和GoogleEarth。 Apache软件基金会 亚马逊 面向云计算环境开发的产品 Hadoop HBase HBase 是一个面向列的分布式数据库,其设计目标是用来解决关系型数据库在处理海量数据时的理论和实现上的局限性,其为TB到PB级别的海量数据存储和高速读写而设计。 HBase 最典型的应用是Facebook 新上线的整合 Email, SNS, Chat 和短消息的在线即时消息系统。 SimpleDB SimpleDB是亚马逊在其AWS框架中提出的数据存储技术。 10gen MongoDB MongoDB是一个基于分布式文件存储的数据库,旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的,支持的数据结构非常松散,可以存储比较复杂的数据类型。 MySQL cluster的优点在于其是一个分布式的数据库集群,处理节点和存储节点都可以线性增加,整个集群没有单点故障,可用性和扩展性都可以做到很高。 Oracle RAC是业界最流行的产品,其架构的最大特点是共享存储架构(Shared-disk),整个RAC集群是建立在一个共享的存储设备之上的,节点之间采用高速网络互连。 DB2主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境,应用于OS/2、Windows等平台下。 MySQL AB Oracle IBM 传统数据库厂商开发产品 MySQL Cluster Oracle RAC DB2 31
微软 Microsoft SQL Server是一个全面的、集成的、端到端的数据解决方案,它为用户提供了一个更安全可靠和更高效的平Microsoft 台用于企业数据和 BI 应用,为 IT 专家和信息工作者带来SQL 了强大的、熟悉的工具,同时降低了在从移动设备到企业数Server 据系统的多平台上创建、部署、管理和使用企业数据和分析应用程序的复杂性。 5.发展格局与态势分析
(1)以互联网厂商和传统IT厂商为代表,分布式架构和虚拟化架构成为两大主流技术路线
以Google为代表的互联网企业和以IBM为代表的传统IT企业在商业模式上区别很大,分别处于互联网云和IT云两个产业阵营,而在具体技术架构上,两个阵营也有不同选择。互联网阵营的企业倾向于选择分布式的技术架构,而IT企业倾向于选择虚拟化的技术架构。
大型互联网公司在并行处理、分布式计算和网格计算技术的基础上,根据互联网发展的需要不断完善,提出了一套新的分布式计算架构。通过在传统分布式技术的基础上对存储模型和计算模型进行若干改进,能使新的分布式架构更适用于互联网应用,支持海量数据的存储和处理,未来基于新一代分布式计算的架构很可能成为主流的互联网计算架构。
以IBM、Oracle、VMware、微软等为代表的传统IT巨头认为,云计算本质上是基于网络向用户提供IT服务(软件、平台和基础设施)。IT企业将原来通过传统市场渠道(分销、直销)提供给用户使用的基础设施、平台和软件产品改为以服务的方式基于新的渠道(例如互联网、电信运营商)提供给用户使用。传统IT企业基于自己长期积累的技术优势,普遍采用虚拟化技术,在VMM的基础上增加了高
32
级管理平台,统一管理多台服务器上的VMM,以便决定在哪一台服务器上部署虚拟机,实现虚拟机伸缩及在VMM之间迁移虚拟机。这样的架构构成了云计算的另一种主流计算架构,在最近几年获得了快速的发展。
这两种技术路线及代表性企业间的比较如下表所示。
表7.云计算两种主流技术架构
内容 分布式架构 虚拟化架构 代表性企业服务器类型Google IBM、Vmware、亚马逊、微软 资源整合手段调度程度存储架构 同构的通用服务器 主要支持X86硬件结构,但每个节点的处理能力、软件系统都可以不同;同时也适用于整合不同的硬件架构 将普通的资源能力聚合起来,提供强大的存储和计算能力 将处理和存储能力较强的资源分裂为更小的计算和存储单元,实现对更小粒度资源的充分利用 计算任务层次 虚拟机资源层次 利用每个节点的存储空间构成的分布式存储 一般利用共享的高性能存储 33
技术架构主要应用服务提供应用理念新型的计算架构,对服务器的应用和系统的支持能力弱,需要基于新的编程架构开发新的应用 几乎不改变传统的计算架构,通过对遗留的应用和系统进行很少的改动就可以继续运行在虚拟架构上,并带来更快的应用部署速度和更高的应用可靠性 起色
分布式技术属于基础软件技术,国外IT巨头的研发起步很早,随着云计算出现的新兴分布式技术均是由它们引领和主导。例如,分布式编程模型和分布式文件系统由Google最先研发,Apache将其进一步发展传播;随云计算出现的新兴分布式数据库也是由Google、亚马逊、10gen、Apache这些公司最先研发。
在传统的分布式计算和分布式数据库领域,IBM、微软、Oracle等老牌IT巨头占有垄断地位,在这些领域,国内企业长期积弱,自身实力无法研发相关技术。但在分布式文件系统、分布式编程技术等新兴领域,国内已有企业涉足,并取得一定进展。例如,阿里巴巴和
34
主要用于海量数据的存储和计算需求,特别是在互联网应用方面 主要用于对传统的IT资源进行整合,提升资源利用率,包括将整合后的资源出租给外部用户 在分布式架构上可以提供“I”“P”同样支持“I”“P”“S”服务,包括为“S”服务,主要面向互联网企业和企业提供新型的IT服务(私有云) 应用开发者 强调每个节点都是普通的服务器,通过分布式的方法来构建海量存储和高性能计算能力,在成本上比高性能服务器、小型机、大型机和高性能存储系统由更大优势 主要以软件的方式来充分利用服务器和存储资源,简介地带来成本上的降低
(2)国外厂商引领分布式技术发展,国内企业在新兴领域略有