存储需求
对海量文件(图片、文档等)进行存储,系统间共享。
数据安全
需要实现数据冗余,避免数据的单点故障可线性扩展
当数据增长到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并列成为四大开源分布式文件系统。
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 更新时间:2024-08-02 11:04