最近在看Kosmos File System源码,目前也算是告一段落,这是自己有史以来第一次完整的分析一个开源系统的源码,从刚开始的兴趣爱好,到最后的一种指着,每天都想着看,这个过程是很值得回味的。
到目前为止,系统的整体框架和结构算是理解清楚了,剩下的就是具体的一些实现细节。在看源码的过程中,自己最大的一点体会就是,好的代码是不需要注释的,任何注释都是多余的。看完源码后,也对分布式存储系统的设计有一点自己的感悟吧,所以写出来和大家一起分享下。分布式存储系统的架构设计有很多种,我所说的只是其中的一种设计思路。
以下主要浅谈集中式元数据管理的分布式存储系统的设计。系统主要有元数据服务器MetaServer,一些存储节点服务器ChunkServer,和提供一个访问存储系统的客户端,系统架构图如下所示:
MetaServer主要进行存储系统的目录树的管理,负载均衡管理,当ChunkServer失效时的节点恢复等等功能管理;
FsClient主要是提供外部访问存储系统的一些接口;
ChunkServer主要进行文件块block的管理,副本冗余,以及响应来自客户端的请求等;
未完待续。。。