distributed - 如何创建分布式文件系统

标签 distributed fs microsoft-distributed-file-system

为了自学,我决定实现“hello world”分布式文件系统。最简单的一种。并决定阅读该主题下的理论。 但是......当我向谷歌询问这个问题时,它显示的答案是“如何配置 hdfs”或“如何在 Windows 上设置分布式文件系统”,这不是我感兴趣的......

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

最佳答案

好吧,如果你真的决定实现这样一个文件系统,你必须从分布式系统开始。我建议阅读 Tanenbaum 引用书 http://www.distributed-systems.net/index.php?id=distributed-systems-principles-and-paradigms

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

如果您想了解一些已经实现的分布式文件系统,您可以查看 GFS/GFS2 (来自红帽)。您也可以查看ocfs2来自甲骨文。 您也可以查看gluster https://fr.wikipedia.org/wiki/GlusterFS

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

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

另一个重大(经典)问题是 ' split brain ' 问题,当集群由于网络故障而分成两组时(想象一下交换机坏了)。两个组都“认为”另一组已经死了(他们无法与其通信),但无法确保远处的组不会写入数据,从而导致数据出现分歧。

希望您能通过这一切找到您想要的东西。

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

关于distributed - 如何创建分布式文件系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33964212/

相关文章:

javascript - fs.readFile 中的 return 语句导致未处理的 promise 拒绝

ubuntu - hadoop重新启动后没有停止dfs无法工作

file - 在 Hadoop 中搜索/查找文件和文件内容

testing - 我使用哪个发行版来模拟 "random"程序崩溃?

java - 在 Akka、Twitter Finagle 和 Vert.x 之间选择优缺点或 EJB 仍然足够

java - (java) DFS遍历中的怪异List值

java - 方案 : wasb error in Hadoop 2. 7 没有文件系统

architecture - MNesia 是否支持断线操作后的同步?

javascript - wait不是等待从文件中读取数据吗?

node.js - 为什么 fs.readFileSync() 比 await fsPromises.readFile() 快?