云计算
(第三版)
PUTING Third Edition
Google云计算原理与应用(一)
第 2 章
Google文件系统GFS
分布式数据处理MapReduce
分布式锁服务Chubby
分布式结构化数据表Bigtable
分布式存储系统Megastore
大规模分布式系统的监控基础架构Dapper
海量数据的交互式分析工具Dremel
内存大数据分析系统PowerDrill
Google应用程序引擎
全球最大搜索引擎、Google Maps、Google Earth、Gmail、YouTube等。这些应用的共性在于数据量巨大,且要面向全球用户提供实时服务。
Google文件系统GFS
系统架构
容错机制
系统管理技术
GFS的系统架构
应用程序
GFS客户端
(文件名,Chunk索引)
(Chunk句柄 Chunk位置)
GFS主服务器
文件命名空间
/foo/bar
Chunk2ef0
向数据块服务器发出指令
数据块服务器状态
GFS数据块服务器
Linux文件系统
GFS数据块服务器
Linux文件系统
…
…
(Chunk句柄,字节范围)
Chunk数据
…
标注:
数据信息
控制信息
5
Google文件系统GFS
GFS将整个系统节点分为三类角色
Client
(客户端)
Master
(主服务器)
Chunk Server
(数据块服务器)
Client是GFS提供给应用程序的访问接口,以库文件的形式提供
Master是GFS的管理节点,负责整个文件系统的管理
Chunk Server负责具体的存储工作
系统节点
GFS
6
Google文件系统GFS
GFS的实现机制
客户端首先访问Master节点,获取交互的Chunk Server信息,然后访问这些Chunk Server,完成数据存取工作。这种设计方法实现了控制流和数据流的分离。
Client与Master之间只有控制流,而无数据流,极大地降低了Master的负载。
Client与Chunk Server之间直接传输数据流,同时由于文件被分成多个Chunk进行分布式存储,Client可以同时访问多个Chunk Server,从而使得整个系统的I/O高度并行,系统整体性能得到提高。
7
Google文件系统GFS
GFS的特点
1
采用中心服务器模式
可以方便地增加Chunk Server
Master掌握系统内所有Chunk Server的情况,方便进行负载均衡
不存在元数据的一致性问题
8
Google文件系统GFS
GFS的特点
2
不缓存数据
文件操作大部分是流式读写,不存在大量重复读写,使用Cache对性能提高不大
Chunk Server上数据存取使用本地文件系统从可行性看,Cache与实际数据的一致性维护也极其复杂
9
Google文件系统GFS
GFS的特点
3
在用户态下实现
利用POSIX编程接口存取数据降低了实现难度,提高通用性
POSIX接口提供功能更丰富
用户态下有多种调试工具
Master和Chunk Server都以进程方式运行,单个进程不影响整个操作系统
GFS和操作系统运行在不同的空间,两者耦合性降低
10
Google文件系统GFS
云计算Hadoop 来自淘豆网m.daumloan.com转载请标明出处.