云存储技术

中国教育装备采购网2012-11-06 10:09围观1769次我要分享

  技术革命一定是源于某项技术突破,那么云计算又是源于什么?从技术的视角来看,云计算所突破的就是海量存储技术以及在此基础上的并行计算技术的突破。正是这些突破,造就了诸如Google、Facebook、Twitter这些新兴互联网企业。另一方面企业信息系统正日益变得复杂与庞大,上面所述技术突破展现出来的几乎无限的扩展、海量计算以及高可用的特性正是企业所迫切需要的。

  一、云存储技术带来什么

  云存储技术最早来源于互联网企业,这也是可以理解的,这些企业所面临的访问量也是之前仟何企业所不曾遇到的。从一个数据就可以得知:现在支付宝每天新增的记录数为3亿条。显然这样的数据量以及在此之上的运算,不是传统关系型数据库可以支撑的了。

  这里所说的云存储技术并非特指某项技术,而是一大类技术的统称,一般来自只要是具有以下特征的数据库都可以被看作是云存储技术。首先是共有几乎无限的扩展能力,可以支撑几百TB直至PB级的数据;此外,是采用了并行计算模式,从而获得海量运算能力。简而言之,当计算能力不足,无论是存储还是运算,对于需求提出方而言,就是简单的增加机器即可实现。云存储更进一步的特征便是高可用性,也就是说,在任何时候都能够保证系统正常使用,即便有机器发生故障。目前常见的符合这样特征的系统,有Google的GFS以及BigTable,Apache基金会的Hadoop(HDFs和HBaSe),最初来自于Amazon现在也属于Apache基金会的Cassandra,此外还有MongoDB、CouchDB、Hypetable、Redis等等。

  作为可扩展性是指系统架构可以让系统提供更多的服务而不降低使用性能的特性。通过现有的机器增加硬件的容量、内存进行垂直扩展,这是最简单的达到可扩展性的手段,但这有个限度。而水平扩展则需要增加更多机器,每台机器提供全部或部分数据。这样所有主机都不必负担全部业务请求。但软件自己需要有内部机制来保证集群中节点间的数据同步。而云存储技术所带来的可扩展性几乎是无限的,并且对于投资者而言投入(硬件投资)与产出(提供更多的服务)几乎是线性的。

  水平扩展说到底就是使用更多的主机来承担运算。假设一台主机在运行一年的时间里发生的故障是n次,那么20台主机在运行一年的时间里发牛故障的次数则为20×n,由此看出当某个集群中主机的数量达到一定程度,在一年中发生故障的概率将会非常大,甚至每天有机器发生故障也不是危言耸听。许多云存储技术都将此作为基本的设计前提,凶此云存储技术天生具有良好的高可用性与容错性。

  是否可把现在的企业应用都替换了?不行。实行应用前,需先满足EricBrewer的CAP理论(2002年被理论证明)。依据这个理论,一个大规模分布式数据库系统,有以下三个需求:

  1一致性(Consistency):对于所有的数据库客户端使用同样的查询都可以得到同样的结果,即使是有并发更新的时候也是如此。

  2可用性(AvailabiLity):所有的数据库客户端总是可以读写数据。

  3分区耐受性(PartitionTolerance):数据库可以分散到多台机器上,即使发生网路故障,被分成多个分区,依然可以提供服务。

  CAP理论指出,同时只能具有这三个特性中的两个。传统的关系型数据库所强调的是一致性(C)与可用性(A),而在分区耐受性(P)方面的支持十分有限,这一点从本质上揭示了上述关系型数据库的问题。再来看云存储技术,都特别强调了分区耐受性(P),从而弥补关系型数据库存此方面的不足,接下来的区别就是选择可用性(A)还是一致性(C)了。对于CP系统,放弃的是可用性(A),数据可保持一致性,但如果有节点发生故障,仍然会有部分数据无法访问;而对于AP系统,放弃的则是一致性(C),那么你的系统就有可能返回不太精确的数据。

  上面的技术特点决定了云存储技术有一些特别擅长的领域。譬如访问流量可能会很大,即随时访问数据量很大,从而需要大规模分布式部署。考察读写操作的比例,特别适合统计分析型工作。有时对于数据一致性要求并不高,可以容忍当某个数据被写入后,在一段合理的时间内可能会有部分用户读到的是写入之前的数据,搜索业务就是一个典型例子。

云存储技术
来源:北京鑫博腾飞科技有限公司作者:北京鑫博腾飞科技有限公司

相关阅读