• 文件存储服务器调研


    推荐项目

    MinIO

    •     Star:29.3k
    •     贡献者人数:310    
    •     许可标准:AGPL-3.0 License
    •    项目地址:https://github.com/minio/minio    
    •     文档:http://www.minio.org.cn
    •    版本对比:含开源版(免费)、标准版(收费)、企业版(收费),详见http://www.minio.org.cn/pricing.shtml
    •     部署:部署简单,且提供容器化支持,MinIO提供了与k8s、etcd、docker等容器化技术深度集成方案
    •     UI界面支持:自带UI界面,不需要单独的部署,和服务端一并安装,开箱即用
    •     SDK支持:提供了几乎所有主流开发语言的SDK以及文档,JavaScript、Java、Python、Golang、.NET、Haskell
    •     特点:号称是世界上速度最快的对象存储服务器。在标准硬件上,对象存储的读/写速度最高可以达到183 GB/s和171 GB/s。遵循AWS S3标准兼容,只要云厂商支持S3标准,就可以把对象存储放到云上,不需要重新开发。
    • 单机 Minio 服务存在单点故障,相反,如果是一个 N 节点的分布式 Minio ,只要有 N/2 节点在线,你的数据就是安全的。不过你需要至少有 N/2+1 个节点来创建新的对象。例如,一个 4 节点的 Minio 集群,每个节点一块盘,就算 2 个节点宕机,这个集群仍然是可读的。但此时并不能写数据,因为不满足N/2+1条件
    •     MinIO 分布式集群搭建条件
    1. 分布式 Minio 单租户存在最少 4 个盘最多 16 个盘的限制(受限于纠删码)。
    •  一般来说,至少4个节点即4台服务器,每台服务器1块单独的干净的硬盘。但是也有取巧,只要遵守分布式 Minio 的限制,你可以组合不同的节点和每个节点几块盘。比如,一个 8 节点的 Minio 集群,你可以使用 2 个节点,每个节点 4 块盘,也可以使用 4 个节点,每个节点2块盘,诸如此类。但是现在服务器一般都会上云,极少会出现盘损坏的情况,所以一般都只考虑1个服务器1块盘的方式,多了也是浪费;当然,如果为了节约服务器成本,在兼顾Minio限制的情况下,也只能这么做 

            

    •    4个服务器的时间必须要一致,MINIO是依赖时间来同步文件的,如果时间相差超过3秒,同步就会有问题。
    •    实战
    1. minio分布式部署高可用4节点4硬盘实战:https://blog.csdn.net/nasen512/article/details/118415639

    FastDFS

    •     Star:7.6k
    •     贡献者人数:8
    •     社区活跃度:一般活跃
    •     许可标准:GPL-3.0 License
    •     项目地址:https://github.com/happyfish100/fastdfs
    •     文档地址:
    1. https://www.oschina.net/p/fastdfs
    2. https://github.com/judasn/Linux-Tutorial/blob/master/markdown-file/FastDFS-Install-And-Settings.md
    •     部署:比较复杂
    •     UI界面支持:无UI
    •     SDK支持:目前提供了 C 和 Java SDK ,以及 PHP 扩展 SDK
    •     特点:国人开发的一款分布式文件系统。它的主要功能包括:文件存储、文件同步和文件访问(文件上传和文件下载),它可以解决高容量和负载均衡问题。适合以中小文件(建议范围:4KB < file_size <500MB)为载体的在线服务

    供参考项目

    SeaweedFS

    •     Star:12.8k
    •     贡献者人数:127
    •     社区活跃度:活跃
    •     许可标准:Apache-2.0 许可证
    •     项目地址:https://github.com/chrislusf/seaweedfs
    •     特点:一个简单且高度可扩展的分布式文件系统。针对小文件进行了优化,适合快速并发地提供相对较小的文件。也可拆分存储超大文件
    •     JAVA案例:https://www.jianshu.com/p/e8bf5aebe790

    Ceph

    •     Star:9.6k
    •     贡献者人数:1118
    •     社区活跃度:活跃
    •     许可标准:https://github.com/ceph/ceph/blob/master/COPYING
    •     项目地址:https://github.com/ceph/ceph
    •     文档地址:http://docs.ceph.org.cn/start/intro/
    •     特点:是一个可以按对象/块/文件方式存储的开源分布式文件系统(因为该系统处于试商用阶段,需谨慎引入到生产环境)
    •     JAVA案例:http://docs.ceph.org.cn/radosgw/s3/java/

    GlusterFS

    •     Star:3.3k
    •     贡献者人数:237
    •     社区活跃度:活跃
    •     许可标准:https://github.com/gluster/glusterfs/blob/devel/COPYING-GPLV2
    •     项目地址:https://github.com/gluster/glusterfs
    •     文档地址:https://docs.gluster.org/en/latest/
    •     特点:是一种软件定义的分布式存储,可以扩展到数 PB。它为对象、块和文件存储提供接口。是Red Hat旗下的一款开源分布式文件系统
    •     JAVA案例:https://blog.csdn.net/xuchen1994/article/details/78652785    

    miniserve

    •     Star:2.6k
    •     贡献者人数:30    
    •      许可标准: MIT License
    •     项目地址:https://github.com/svenstaro/miniserve
    •     部署:下载客户端或者使用Docker部署
    •     UI界面支持:自带UI界面
    •     特点:一个使用 Rust 基于 Actix 框架实现静态文件或文件夹服务器
    •     JAVA案例:https://gitee.com/dajiangnan/miniServerDemo

    go-fastdfs

    •     Star:2.8k
    •     贡献者人数:14        
    •     许可标准:Unlicense License
    •     项目地址:https://github.com/sjqzhang/go-fastdfs
    •     文档:https://sjqzhang.github.io/go-fastdfs/install.html#docker
    •     UI界面支持:https://github.com/perfree/go-fastdfs-web
    •     特点:是一个基于http协议的分布式文件系统
    •     部署:使用简单,支持docker部署
    •     SDK支持:命令上传、WEB上传、python版本、golang版本(含断点续传版)、java版本、javascript版本(断点续传版)

    OpenStack Swift

    •     Star:2.2k
    •     贡献者人数:311
    •     社区活跃度:活跃
    •     许可标准:GPL-2.0 License
    •     项目地址:https://github.com/openstack/swift
    •     文档地址: https://docs.openstack.org/swift/latest/
    •     特点:是一个分布式对象存储系统,针对多租户和高并发进行了优化。Swift 是备份、Web 和移动内容以及任何其他可以无限增长的非结构化数据的理想选择。
    •     JAVA案例:https://blog.csdn.net/tianxuejin/article/details/7242242

    TFS

    •     Star:1.1k
    •     贡献者人数:
    •     社区活跃度:不活跃(停更)
    •     许可标准:GPL-2.0 License
    •     项目地址:https://github.com/alibaba/tfs

             (客户端,为TFS提供了RESTful API)https://github.com/alibaba/nginx-tfs    

    •     特点:是淘宝网开发的分布式文件系统,针对高可用、高性能、低成本的分布式文件系统,是一种基于linux的文件系统,通过冗余、备份和负载均衡技术提供高可靠性和并发访问。TFS 主要是为小于 1MB 的小文件设计的。
    •     JAVA案例:https://blog.csdn.net/yuzx2008/article/details/50682558

    MooseFS

    •     Star:1.1k
    •     贡献者人数:12
    •     社区活跃度:活跃
    •     许可标准:GPL-2.0 License
    •     项目地址:https://github.com/moosefs/moosefs
    •     UI界面支持:自带web管理界面
    •     特点:是一个 PB 级开源网络分布式文件系统,它将数据分别存放在多个物理服务器或单独磁盘或分区上,确保一份数据有多个备份副本,具备冗余容错功能    
  • 相关阅读:
    辅助驾驶功能开发-功能对标篇(18)-NCA城市辅助系统-华为
    用HTML、CSS和JS打造绚丽的雪花飘落效果
    Blazor前后端框架Known-V1.2.16
    VXLAN基础
    TCP的三次握手和四次挥手
    JS:轮播图终极版
    【EI会议征稿】第五届大数据与信息化教育国际学术会议(ICBDIE 2024)
    达梦类型转换问题-float转换为varchar
    《小狗钱钱》阅读笔记(二)
    mysql详细笔记
  • 原文地址:https://blog.csdn.net/qq_28202661/article/details/127406571