机房360首页
当前位置:首页 » 云存储 » 企业应用云存储技术探索

企业应用云存储技术探索

来源:机房360 作者:上海海鼎 李希明 更新时间:2012-2-22 16:45:43

摘要:从技术的视角看,云计算所突破的就是海量存储技术以及在此基础上的并行计算技术的突破。正是这些突破,造就了诸如Google、Facebook、Twitter这些新兴互联网企业。

  前言
  
  “云计算将带来一场革命”。在如今这个概念满天飞的时代,这是否又是一次商业炒作?本文不想对此进行评论,而更愿意关注这背后带来的变化。技术革命一定是源于某项技术突破,那么云计算又是源于何?从技术的视角看,云计算所突破的就是海量存储技术以及在此基础上的并行计算技术的突破。正是这些突破,造就了诸如Google、Facebook、Twitter这些新兴互联网企业。另一方面企业信息系统正日益变得复杂与庞大,上述技术突破展现出来的几乎无限的扩展、海量计算以及高可用的特性正是企业所迫切需要的。
  
  本文将就企业信息系统中如何更好应用上述技术进行探索。在讨论云存储技术的之前,我们来回顾一下现在企业所使用的关系型数据库所存在的问题。
  
  一、关系型数据库的问题
  
  1970年IBM的EdgarF.Codd博士发表一篇著名的论文《一种用于大规模共享数据存储系统的关系数据模型》,由此奠定了现在诸如Oracle、MSSQL、MySQL、Postgres等关系型数据库的理论基础。40年过去了,关系型数据库不可辩驳地坐上了数据世界中的头把交椅。如此成功的技术会有什么问题?
  
  问题来自于访问量急剧增长所带来的可扩展性。所有具有最基本功能的关系型数据库都会支持join操作,不过join操作可能会很慢。由于数据库通常依靠事务来保证一致性,而事务需要锁住数据库的一部分,使之不能被其他用户访问。因为锁本身意味着竞争同一数据的用户会被放入队列,等待获得读写权限,这在高负荷的情况下可能会成为系统的死穴。
  
  通常我们会用下面几种方法解决上述问题:
  
  提升硬件能力,如增加内存、用更快的处理器或硬盘,这被称之为垂直扩展,可解一时之忧。
  
  增加新的计算机,构成数据库集群。不过,这样就会在正常使用及故障时遇到数据复制与一致性问题。
  
  更新数据库管理系统的配置。例如要优化数据用来写底层文件系统的通道。
  
  审视自己的应用,优化索引、优化查询。不过,当我们的应用达到这个规模的时候,恐怕不太会完全没有做过索引和查询优化。那么,只好重新审视所有数据库的访问代码,想发现零星的可以调优的机会,这是一件相当头疼的事情。
  
  增加一个缓存层。现在我们又需要面临更新缓存和更新数据库的一致性问题了,对于集群来说,问题更加严重了。
  
  审视我们想要的查询,复制那些访问频率较高的数据,让它们更接近于查询想要得到的形式,这个过程被称为反范式化,也就是说违反了Codd提出的关系模型12条准则。这时我们只能安慰自己说我们是生活在现实世界之中。
  
  这一幕是何等熟悉,现如今的企业应用的规模已经远不是Codd提出关系模型的年代所能够想象的。TB级别的数据库已经并不罕见,一些数据表动辄上亿条记录,甚至几十亿条记录。笔者遇到的一位客户仅每年增长的数据量就达到了3TB,要知道这一数据在5年前仅有大约500GB。这样的数据量已经开始给构建在此之上的企业应用造成巨大的压力。我们接下来看看云存储技术又是如何解决这一问题的。
  
  二、云存储技术带来什么
  
  云存储技术最早来源于那些互联网企业,这也是可以理解的,毕竟这些企业所面临的访问量也是之前任何应用所不曾遇到的。从一个数据就可以得知:现在支付宝每天新增的记录数为3亿条。显然这样的数据量以及在此之上的运算,不是传统关系型数据库可以支撑的了。
  
  这里所说的云存储技术并非特指某项技术,而是一大类技术的统称,一般来自只要是具有以下特征的数据库都可以被看作是云存储技术。首先是几乎无限的扩展能力,可以支撑几百TB直至PB级的数据;然后是采用了并行计算模式,从而获得海量运算能力。简而言之,就是当计算能力不足,无论是存储还是运算,对于需求提出方而言,就是简单的增加机器即可实现。更进一步的特征便是高可用性,也就是说,在任何时候都能够保证系统正常使用,即便有机器发生故障。目前常见的符合这样特征的系统,有Google的GFS以及BigTable,Apache基金会的Hadoop(HDFS和HBase),最初来自于Amazon现在也属于Apache基金会的Cassandra,此外还有Mongo DB、Couch DB、Hypertable、Redis等等。
  
  作为可扩展性是指系统架构可以让系统提供更多的服务而不降低使用性能的特性。通过现有的机器增加硬件的容量、内存进行垂直扩展,是最简单的达到可扩展性的手段,但这有个限度。而水平扩展则需要增加更多机器,每台机器提供全部或部分数据,这样所有主机都不必负担全部业务请求。但软件自己需要有内部机制来保证集群中节点间的数据同步。而云存储技术所带来的可扩展性几乎是无限的,并且对于投资者而言投入(硬件投资)与产出(提供更多的服务)几乎是线性的。

本文地址:http://www.jifang360.com/news/2012222/n516033981.html 网友评论: 阅读次数:
版权声明:凡本站原创文章,未经授权,禁止转载,否则追究法律责任。
相关评论
正在加载评论列表...
评论表单加载中...
  • 我要分享
更多
推荐图片