探秘Google数据中心内部运行(2)

http://www.sina.com.cn 2008年06月02日 10:08  CNET科技资讯网

  Google文件系统至少在三台名为“块服务器”(chunkservers)上存储大体积数据(一般为64MB);如果一台块服务器发生故障,那么主服务器会负责将数据恢复到新的区域。Dean说:“至少在存储层面,机器故障的处理由Google文件系统来完成。”

  为了给全部这些数据提供一些结构,Google使用了大表。象甲骨文和IBM公司的商业数据库在这里发挥不了作用,因为这些产品无法满足Google的需要,Dean说,如果要使用商业数据库的话,价格将非常的昂贵。

  Google从2004年开始设计大表,现在已经在Google 70多个项目中使用,包括Google地图,Google地球,Blogger,Google Print和核心的搜索目录。Dean说,大表管理的最大一个数据表格有6 petabytes大小,覆盖上千台机器。

  2003年,Google编写了MapReduce的第一个版本,这种算法给了Google公司一条让自己数据发挥作用的途径来。例如,MapReduce能够找出一个词语在Google搜索目录中出现的次数;一系列网页中特定词语出现的频率;链接到某个特定网站的所有网站数量等。

  有了MapReduce,Google可以编写出一个索引目录,迅速显示出与特定词语相关的网页出来。Dean说:“为了在可以接受的时间内完成这一工作,你需要在上千台机器上进行处理。”

  Google对MapReduce软件的使用正在增多。2004年,MapReduce运行了2.9万个工作任务,到2007年,已有220万个工作由MapReduce来完成。同期,MapReduce对于一个工作的平均运行响应时间从634秒下降到了395秒,MapReduce任务的数据产出量从193 terabytes上升到了14018 terabytes。

  Dean说,在任何一天,Google运行有大约10万个MapReduce工作任务;每项任务大约会占用4百台服务器,时间大约是5到10分钟。

  这是一个有趣的数学计算。假设服务器只完成MapReduce工作,每台服务器一次只完成一项任务,那么大约要耗时24小时,如果这些工作任务每个耗时5分钟,这意味着MapReduce任务要占用大约13.9万台服务器。如果耗时7.5分钟,那么需要的服务器数量增加到20.8万台;如果需要10分钟,服务器的数量增加至27.8万台。

  和Google文件系统一样,MapReduce的设计也要考虑服务器的当机问题。

  Dean说:“当一台机器当机,主服务器会了解分配给这台机器的任务是什么,然后直接指定其它机器来完成这一任务。”

  MapReduce的可靠性曾经在一个由1800台服务器组成的集群进行维护时经受住了严格考验。工作人员将其中80台机器拔掉,其它1720台机器承担起了80台机器的处理任务。Dean说:“它运行有一些慢,但全部完成了任务。”

  在2004年,Dean表示,曾经有一个1800台机器组成集群,其中1600台当机了,但整个系统经受住了考验。

  尽管Google的数据中心取得了很大的成功,但公司并不满足,他们有很长远的改进发展计划。

  对于一般的企业来说,他们只需要考虑将工作任务从一台服务器转移到另外一台,但Google面临的工作量级不同,他们希望能够将工作任务由一个数据中心自动转移到另外一个中心。

  Dean说:“我们希望自己的下一代架构是一种能够超越单个机器的系统。”

  考虑到Google的业务数量级,这无疑是一个艰巨的挑战。毫无疑问,很多小公司正在羡慕的看着他们。

上一页 1 2 下一页
本文导航:
·探秘Google数据中心内部运行
·探秘Google数据中心内部运行(2)

发表评论 _COUNT_条
Powered By Google
不支持Flash
·城市对话改革30年 ·新浪城市同心联动 ·诚招合作伙伴 ·企业邮箱畅通无阻
不支持Flash