首页 >  云服务器 >  Google文件系统GFS容错机制

Google文件系统GFS容错机制

来源:谭兴才博客作者:谭兴才发布时间:2017-5-12 09:46阅读量:450
摘要: 1.Master容错具体来说,Master上保存了GFS文件系统的三种元数据。(1)命名空间(Name Space),也就是整个文件系统的目录结构。(2) Chunk与文件名的映射表。(3) Chunk副本的位置信息,每一个Chunk默认有三个副本。首先 ...
1.Master容错

具体来说,Master上保存了GFS文件系统的三种元数据。
(1)命名空间(Name Space),也就是整个文件系统的目录结构。
(2) Chunk与文件名的映射表。
(3) Chunk副本的位置信息,每一个Chunk默认有三个副本。

首先就单个Master来说,对于前两种元数据,GFS通过操作日志来提供容错功能。第三种元数据信息则直接保存在各个Chunk Server上,当Master启动或Chunk Server向Master注册时自动生成。因此当Master发生故障时,在磁盘数据保存完好的情况下,可以迅速恢复以上元数据。

为了防止Master彻底死机的情况,GFS还提供了Master远程的实时备份,这样在当前的GFS Master出现故障无法工作的时候,另外一台GFS Master可以迅速接替其工作。

2.Chunk Server容错

GFS采用副本的方式实现Chunk Server的容错。每一个Chunk有多个存储副本(默认为三个),分布存储在不同的Chunk Server上。副本的分布策略需要考虑多种因素,如网络的拓扑、机架的分布、磁盘的利用率等。对于每一个Chunk,必须将所有的副本全部写入成功,才视为成功写入。之后,如果相关的副本出现丢失或不可恢复等情况,Master自动将该副本复制到其他Chunk Server,从而确保副本保持一定的个数。尽管一份数据需要存储三份,好像磁盘空间的利用率不高,但综合比较多种因素,加之磁盘的成本不断下降,采用副本无疑是最简单、最可靠、最有效,而且实现的难度也最小的一种方法。

GFS中的每一个文件被划分成多个Chunk,Chunk的默认大小是64MB,这是因为Google应用中处理的文件都比较大,以64MB为单位进行划分,是一个较为合理的选择。Chunk Server存储的是Chunk的副本,副本以文件的形式进行存储。每一个Chunk以Block为单位进行划分,大小为64KB,每一个Block对应一个32bit的校验和。当读取一个Chunk副本时,Chunk Server会将读取的数据和校验和进行比较,如果不匹配,就会返回错误,使Client选择其他Chunk Server上的副本。

鲜花

握手

雷人

路过

鸡蛋
最新图文推荐
  • 2
  • 3

相关阅读

发表评论

最新评论

图文推荐
热门排行
5G存储 10M带宽
X
新用户专享,1元主机1年