分布式系统设计的老问题——单点故障,真是让人又爱又恨。你看 GFS 就挺聪明的,用多个影子Master 节点搞热备,主节点一挂,立马顶上,响应也快,服务不中断。这招,在做高可用架构时还蛮常见的,尤其是涉及大规模文件系统那类场景,几乎是标配了。

名字听着复杂,实际就是搞个“影子”站台,等着主角下台时救场。你要是搞过Hadoop,应该知道NameNode也是单点,一样得。网上有篇文章就讲得比较细,推荐你看看:

保护 Hadoop NameNode 集群单点故障的最佳实践,挺实用。

还有篇说得挺通透的,是 GFS、MapReduce、Bigtable 三驾马车的结构图文解析。链接在这儿:谷歌三驾马车 MapReduce、Bigtable、GFS 分布式基础架构。读完你基本就知道为啥 GFS 要这么设计了。

如果你正好在做高可用服务设计,或者碰到系统老是挂,那这些资料建议你真看看,思路挺启发的。