存储发展史
minIO ceph都可以实现存储方案。存储的发展,根据不同的阶段诞生了不同的存储解决方案,每一种存储都有它当时的历史诞生的环境以及应用场景,解决的问题和优缺点。存储按照其功能,使用场景,一直在持续发展和迭代,大体上可以分为四个阶段:
- DAS:Direct Attached Storage,即直连存储,第一代存储系统,通过SCSI总线扩展至一个外部的存储,磁带整列,作为服务器扩展的一部分;
- NAS:Network Attached Storage,即网络附加存储,通过网络协议如NFS远程获取后端文件服务器共享的存储空间,将文件存储单独分离出来;
- SAN:Storage Area Network,即存储区域网络,分为IP-SAN和FC-SAN,即通过TCP/IP协议和FC(Fiber Channel)光纤协议连接到存储服务器;
- Object Storage:即对象存储,随着大数据的发展,越来越多的图片,视频,音频静态文件存储需求,动则PB以上的存储空间,需无限扩展。
存储的基本分类
存储的最终目的都是为了存放数据,而根据不同的分类方式存储也有多种分类,如
- 本地存储、外置存储
- DAS:Direct Attached Storage,SAN:Storage Area Network,NAS:Network Attached Storage
- 快存储,文件存储,对象存储
存储的方案分成两种:一种是可以自定对象名称的,另一种是系统自动生成对象名称。
- 不能自定义名称的有领英的Ambry,MogileFS。
- TFS 是淘宝开源的,但是目前已经很少有人维护它并且也不是很活跃。
- ceph 是一个比较强大的分布式存储,但是它整个系统非常复杂需要大量的人力进行维护。
- GlusterFS 为本身是一个非常成熟的对象存储的方案,2011被收购了,原班的人马又做了另外一个存储系统MINIO。
其中ceph跟minio是支持s3协议的。ceph跟minio大部分的s3 API都支持。
- ceph支持s3 api的链接:https://docs.ceph.com/docs/master/radosgw/s3/#api
- minio所支持的s3 API:https://docs.min.io/docs/java-client-api-reference
minio
- minio是一个基于Apache License V2.0开源协议的对象存储服务,它兼容亚马逊S3云存储服务,非常适合于存储大容量非结构化的数据,如图片,视频,日志文件等。而一个对象文件可以任意大小,从几KB到最大的5T不等。它是一个非常轻量级的服务,可以很简单的和其它的应用结合,类似于NodeJS, Redis或者MySQL。
- minio默认不计算MD5,除非传输给客户端的时候,所以很快,支持windows,有web页进行管理。
推荐一个比较好的实践案例:基于 Go 开源项目 MIMIO 的对象存储方案在探探的实践:https://mp.weixin.qq.com/s/YIKB_qAqqy6ydtFT_a_Ieg
ceph
-
ceph同时支持对象存储,块存储和文件系统服务。
-
高性能:摒弃了传统的集中式存储元数据寻址的方案采用CRUSH算法数据分布均衡并行度高;考虑了容灾域的隔离,能够实现各类负载的副本放置规则,例如跨机房、机架感知等;能够支持上千个存储节点的规模,支持TB到PB级的数据;
-
高可用性:副本数可以灵活控制;支持故障域分隔,数据强一致性;多种故障场景自动进行修复自愈;没有单点故障,自动管理;
-
高可扩展性:去中心化;扩展灵活;随着节点增加而线性增长;
-
特性丰富:支持三种存储接口:块存储、文件存储、对象存储;支持自定义接口,支持多种语言驱动.
minIOn VS ceph
ceph | minIO | |
---|---|---|
开发语言 | C | go |
数据冗余 | 副本、纠删码 | 纠删码(erasure code) |
备份 | ceph-backup备份软件 | mc mirror |
一致性 | 强一致性 | 强一致性 |
动态扩展 | HASH | 不支持动态加节点 |
中心节点 | 对象存储无中心,cephFS有元数据服务中心 | 无中心 |
存储方式 | 块、文件、对象 | 对象存储(分块) |
活跃度 | 高,中文社区不算活跃 | 高,没有中文社区 |
成熟度 | 高 | 中 |
操作系统 | linux-3 10.0+ | linux windows |
文件系统 | EXT4 XFS | EXT4 XFS |
断点续传 | 兼容S3,分段上传,断点下载 | 兼容S3,分段上传,断点下载 |
NAS | 无 | FreeNAS安装 |
学习成本 | 高 | 中 |
开源协议 | LGPL version2.1 | Apache v2.0 |
管理工具 | ceph-admin ceph-mgr zabbix插件,web管理工具 | 命令行工具 mc |
官网 | https://ceph.io | https://min.io/ |
中文社区 | http://ceph.org.cn/ | 无 |
优点 | 成熟,功能强大(支持数千节点,支持动态增加节点,自动平衡数据分布,可配置性强,可针对不同的场景进行调优) | 学习成本低,安装运维简单,开箱即用 |
缺点 | 学习成本高,安装运维复杂 | 社区不够成熟,业界参考资料较少,不支持动态增加节点 |