Google 云计算的关键技术(一)(10 页)Good is good, but better carries it.精益求精,善益求善。Google 云计算的关键技术(一)Google 云计算的关键技术主要包括:Google文件系统 GFS、分布式计算编程模型MapReduce、分布式锁服务 Chubby 和分布式结构化数据存储系统 BigTable 等。其中:1)GFS 提供了海量数据存储和访问的能力;2)MapReduce 使得海量信息的并行处理变得简单易行;3)Chubby 保证了分布式环境下并发操作的同步问题;4)BigTable 使得海量数据的管理和组织十分方便。 GFSGFS 是一个面对海量数据密集型应用的、可伸缩的分布式文件系统,它为 Google 云计算提供了海量存储的能力,处于整个 Google 云计算技术体系的最底层。GFS 使用廉价的商用机器构建分布式文件系统,将容错的任务交由文件系统来完成,利用软件的方法解决系统可靠性的问题,不但使得存储的成本成倍下降,更是很好地在频繁的故障中确保了数据存储的安全和数据存储服务的连续性,从整体上确保了整个系统的可靠性,进而可以为大量客户机提供高性能的服务。一、架构一个 GFS 集群包含一个单独的 Master 逻辑节点、多台 Chunk 服务器,并且同时被多个客户端访问,如下图所示。GFS 存储的文件都被分割成固定大小的Chunk。在 Chunk 创建的时候,Master 服务器会给每个 Chunk 分配一个不变的、全球唯一的 64 位的 Chunk 标识。Chunk 服务器把Chunk 以 linux 文件的形式保存在本地硬盘上,并且根据指定的 Chunk 标识和字节范围来读写块数据。出于可靠性的考虑,每个块都会复制到多个块服务器上。缺省情况下,我们使用 3个存储复制节点,不过用户可以为不同的文件命名空间设定不同的复制级别。Master 节点管理所有的文件系统元数据,在逻辑上只有一个。这些元数据包括名字空间、访问控制信息、文件和 Chunk 的映射信息、以及当前 Chunk 的位置信息;Master 节点还管理着系统范围内的活动,比如 Chunk 在 Chunk服务器之间的迁移等。Master 节点使用心跳信息周期地和每个 Chunk 服务器通讯,发送指令到各个 Chunk 服务器并接收 Chunk 服务器的状态信息。GFS 客户端代码以库的形式被链接到客户程序里。客户端代码实现了 GFS 文件系统的 API 接口函数、应用程序与 Master 节点和 Chunk 服务器通讯、以及对数据进行读写操作。客户端和 Master 节点的通信只猎取元数据,所有的数据操作都是由客户...