如何创建分布式文件系统

How to create distributed file system

为了自学,我决定实现"hello world"分布式文件系统。最简单的一个。并决定阅读本主题下的理论。 但是...当我询问 google 时,它显示的答案如 "how to configure hdfs" 或 "how to set distributed fs on windows" 什么不是我感兴趣的...

有人能给我指点一些关于这个主题的好文章或书籍吗? 非常感谢!

嗯,如果你真的决定要实现这样一个文件系统,那你必须从分布式系统开始。我推荐阅读 Tanenbaum 参考书 http://www.distributed-systems.net/index.php?id=distributed-systems-principles-and-paradigms

小心,这个主题真的很复杂,分布式系统几乎很容易实现。

如果您想了解一些已经实现的分布式文件系统,您可以查看来自 oracle 的 GFS/GFS2 (from RedHat). You may also have a look to ocfs2。 您也可以看看 gluster https://fr.wikipedia.org/wiki/GlusterFS

您也许还可以在 google file system 上找到一些白皮书(当时它还是大学作品)。

这种分布式系统的主要问题是故障检测(检测节点何时在文件系统上写入时崩溃 => 需要确保没有损坏)。有多种策略,一种可能是实现一个受分布式锁保护的日志。

另一个重大(经典)问题是“split brain”问题,当集群由于网络故障(想象一个坏掉的开关)分成两组时。两个组 'think' 另一个已经死了(他们无法与之通信)但是没有办法确保远处的组没有写入数据导致数据发散。

希望你能通过这一切找到你想要的。

编辑: 现在 GFS 已弃用,redhat 正在使用和开发 'Ceph'