1 FastDFS概术
FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。
FastDFS服务端有两个角色:跟踪器(tracker)和存储节点(storage)。
- 跟踪器(tracker)主要做调度工作,在访问上起负载均衡的作用。
- 存储节点(storage)存储文件,完成文件管理的所有功能。
术语:
- group:组,同组节点提供冗余备份,不同组用于扩容。
- mata data:文件的元数据信息,比如长宽信息,图片后缀,视频的帧数等。
2 FastDFS 文件上传过程
- Storage会定时的向Tracker发送心跳,告诉Tracker自己还还活着。
- 客户端发送上传请求给Tracker,Tracker会检查是否有可用Storage。
- 如果有可用的,客户端就可以上传文件数据到Storage上。
- Storage将文件写入磁盘后,会返回路径信息给客户端。
- 客户端就可以根据这个路径信息找到上传的文件。
3 FastDFS下载过程
- Storage会定时的向Tracker安装发送心跳,告诉Tracker自己还还活着。
- 客户端发送下载请求到Tracker上,Tracker查找到存储的Storage地址后返回给客户端。
- 客户端拿到Storage地址后,去Storage上找到文件。
- 把文件返回给客户端。
4 MinIO 与 FastDFS 对比
- 安装部署(运维)
- FastDFS安装部署(运维)复杂。
- MinIO在安装的过程是黑盒的,你不用去深入关注它的架构,也不需要你进行零件组装,基本上可以做到开箱即用。普通的技术人员就能够参与后期运维。
- 文档
- FastDFS没有官方文档
- MinIO有官方网站,并且有详细的文档
- 开源项目运营组织
- FastDFS是阿里余庆做的一个个人项目,在一些互联网创业公司中有应用,没有官网,不活跃。目前已经很少做更新。
- MinIO目前是由2014年在硅谷创立的公司MinIO.Inc运营的开源项目,社区论坛的活跃度目前也非常的不错。
- UI界面
- FastDFS默认是不带UI界面的。
- MinIO的界面不需要你单独的部署,和服务端一并安装,开箱即用。
- 性能
- MinIO号称是世界上速度最快的对象存储服务器。在标准硬件上,对象存储的读/写速度最高可以达到183 GB/s和171 GB/s。
- FastDFS很难达到MinIO“号称的”以G为单位的每秒读写速度。
- 容器化支持
- MinIO提供了与k8s、etcd、docker等容器化技术深度集成方案,可以说就是为了云环境而生的。
- FastDFS不具备。
- 丰富的SDK支持
- FastDFS目前提供了 C 和 Java SDK,以及 PHP 扩展 SDK。
- MinIO几乎提供了所有主流开发语言的SDK以及文档。