存储需求

对海量文件(图片、文档等)进行存储,系统间共享。

  • 数据安全
    需要实现数据冗余,避免数据的单点故障

  • 可线性扩展
    当数据增长到TB、甚至PB以上时,存储方案需要支持可线性扩展

  • 存储高可用
    某个存储服务宕掉时,不影响整体存储方案的可用

  • 性能
    性能达到应用要求

开源方案

1、Ceph

Ceph是一种为优秀的性能、可靠性和可扩展性而设计的统一的、分布式文件系统。

2、OpenStack Swift

OpenStack Swift是一个高度可用,分布式,最终一致的对象/ blob存储。组织可以使用Swift高效,安全且廉价地存储大量数据。

OpanStack Swift 原理、架构与 API 介绍
OpenStack Swift特性

3、Hbase/HDFS

Hadoop分布式文件系统(HDFS)是一种分布式文件系统,设计用于在商用硬件上运行。它与现有的分布式文件系统有许多相似之处。但是,与其他分布式文件系统的差异很大。HDFS具有高度容错能力,旨在部署在低成本硬件上。HDFS提供对应用程序数据的高吞吐量访问,适用于具有大型数据集的应用程序。HDFS放宽了一些POSIX要求,以实现对文件系统数据的流式访问。HDFS最初是作为Apache Nutch网络搜索引擎项目的基础设施而构建的。HDFS是Apache Hadoop Core项目的一部分。项目URL是http://hadoop.apache.org/

4、GlusterFS

GlusterFS(GNU ClusterFile System)是一个开源的分布式文件系统,它的历史可以追溯到2006年,最初的目标是代替Lustre和GPFS分布式文件系统。经过八年左右的蓬勃发展,GlusterFS目前在开源社区活跃度非常之高,这个后起之秀已经俨然与Lustre、MooseFS、CEPH并列成为四大开源分布式文件系统。

GlusterFS缺点分析[转]
官方文档

5、FastDFS

FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。

FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。

6、TFS

TFS(Team Foundation Server)是一个高可扩展、高可用、高性能、面向互联网服务的分布式文件系统,主要针对海量的非结构化数据,它构筑在普通的Linux机器集群上,可为外部提供高可靠和高并发的存储访问。TFS为淘宝提供海量小文件存储,通常文件大小不超过1M,满足了淘宝对小文件存储的需求,被广泛地应用在淘宝各项应用中。它采用了HA架构和平滑扩容,保证了整个文件系统的可用性和扩展性。同时扁平化的数据组织结构,可将文件名映射到文件的物理地址,简化了文件的访问流程,一定程度上为TFS提供了良好的读写性能。

7、MinIO

MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。

MinIO是一个非常轻量的服务,可以很简单的和其他应用的结合,类似 NodeJS, Redis 或者 MySQL。

方案对比

特性 Ceph MinIO Swift Hbase/HDFS GlusterFS FastDFS
开发语言 c go python java / /
数据冗余 副本,纠删码 Reed-Solomon code 副本 副本 副本 副本
一致性 强一致性 强一致性 最终一致 最终一致 ? ?
动态扩展 HASH 不支持动态加节点 一致性hash ? ? ?
性能 ? ? ? ? ? ?
中心节点 对象存储无中心,cephFS有元数据服务中心点 无中心 无中心 nameNode单点 ? ?
存储方式 块、文件、对象 对象存储(分块) 块存储 块存储 ? ?
活跃度 高,中文社区不算活跃 高,没有中文社区
成熟度 ? ?
操作系统 linux-3.10.0+ linux,windows ? 任何支持java的OS ? ?
文件系统 EXT4,XFS EXT4,XFS ? ? ? ?
客户端 c、python,S3 java,s3 java,RESTful java,RESTful ? ?
断点续传 兼容S3,分段上传,断点下载 兼容S3,分段上传,断点下载 不支持 不支持 ? ?
学习成本 ? ? ?
前景 10 8 9 9 7 5
开源协议 LGPL version 2.1 Apache v2.0 Apache V2.0 ? ? ?
管理工具 ceph-admin,ceph-mgr,zabbix插件,web管理工具 命令行工具 mc ? ? ? ?

参考资料:

https://blog.csdn.net/dingjs520/article/details/78655556

作者:Jeebiz  创建时间:2022-12-09 09:35
最后编辑:Jeebiz  更新时间:2024-08-02 11:04