3个版本 (破坏性)

0.2.0 2020年6月20日
0.1.0 2019年5月23日
0.0.0 2019年1月14日

#840 in 文件系统

Apache-2.0

290KB
7K SLoC

FleetFS

Build Status Crates Documentation dependency status

FleetFS分布式文件系统

开发

状态

非常非常初级。请期待FleetFS吞噬你的数据 :)

设计决策

  • 客户端只需要与单个节点通信
    • 背景:打开TCP连接有显著的开销,所以我们希望客户端保持其连接打开。因此,客户端不应该按需连接到集群中的每个存储节点。
    • 缺点:在FleetFS集群内部加倍了网络流量,因为节点必须代理读取/写入其他节点的流量
    • 优点:更好的可扩展性,因为客户端连接由单个节点处理。同时简化了客户端代码
  • 客户端有权限进行权限检查
    • 背景:FleetFS无法访问中央用户存储,因此必须信任客户端发送的用户ID
    • 缺点:安全性依赖于客户端
    • 优点:客户端不必发送用户所属的所有组的确切列表来执行权限检查
  • 分片设计
    • "Raft组"(或rgroup):参与Raft共识组的存储节点子集。集群由多个Raft组组成,单个节点可能属于多个组。
    • inode存储在单个Raft组上,inode通过id在组之间分片。
    • (待办) "冗余块"(或rblock)是存储在单个Raft组中的数据块。一个文件的主体由多个rblock组成,存储在一个或多个Raft组上。

许可证

许可下

贡献

除非你明确说明,否则你提交给作品以包含的任何有意贡献都应按上述方式许可,没有任何额外的条款或条件。

依赖项

~14–23MB
~323K SLoC