GFS Google分布式文件系统

GFS - Google File System

设计一个分布式文件系统遇到的难点:

① 高性能  导致  在大量服务器之间共享数据

② 大量的服务器  导致  错误时常发生

③ 错误容忍  导致  大量数据复制

④ 数据复制  导致  潜在的数据不一致性

⑤ 更好的一致性  导致  更低的性能

GFS优点是解决了很多问题:并行,错误容忍,复制和一致性。

强一致性:表现的如同单个服务器一样,使用磁盘存储,单机禁止并行执行指令,即使机器崩溃,也保证能读取到先前写过的值,但是单个服务器并无强一致性。

GFS产生的环境:许多Google的服务需要快速一体的存储系统,大部分的操作是读取或者追增......

GFS系统架构:

客户端包括文件库跟RPC

每个文件分为一个个64MB,每个块都在至少3个块服务器上有副本,可以在所有块服务器上传输数据(支持并行读写和巨大文件)

单主服务器,主服务器有其备份服务器

主服务器负责找到文件索引(需要文件的chunk映射,chunk及其副本们的位置等),块服务器负责提供具体文件

服务器端需要携带的文件:

主服务器:

① 必需:每个chunk所存储的文件的索引,每个chunk服务器的版本号

② 非必需:chunk服务器列表,每个chunk的主副本,主副本租契时间

副本服务器:

版本记录(易于同步)

快照(易于恢复)

读取一个文件的过程

服务端发送文件名和偏移量给主服务器,主服务器根据索引找到对应的块和其副本服务器(必须是拥有最新的版本号,从副本服务器版本记录中获取),发给服务端,服务端读取后把数据发给服务端

追加文件的过程

猜你喜欢

转载自www.cnblogs.com/Hebut-Amadeus/p/13193017.html