简介
SeaweedFS 是一个简单的、高扩展性的分布式文件系统,是 Fb 的 Haystack 开源版本,相对于传统的分布式文件系统,它在应对小对象存储场景中具有巨大的优势。
SeaweedFS 中每个文件的元信息只有 40 个字节,大大缩减了元信息的存储空间。在磁盘读取内容时也能够在 O(1) 的复杂度内完成。
系统搭建
环境
名称 | 描述 |
---|---|
操作系统 | CentOS Linux release 7.4.1708 |
SeaweedFS | 1.25 |
SeaweedFS 架构描述
在 SeaweedFS 在运行中分为两种角色:Master Server 和普通 Volume Server。
- Master Server:用于管理普通 Volume Server, master会存储集群中 Volume Server 的状态,并且会负责接收 Client 的请求,并将具体的 URL 地址返回给客户端,master 之间通过 Raft 协议来保证一致性,在主节点崩溃的情况下会自动在从节点中选举中新的 master。
- Volume Server:管理具体的存储目录,其工作包括写入、查询、删除数据,并会进行数据的压缩工作。
架构图如下: