minIO ceph 存储方案 简单介绍

存储发展史

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
  • 快存储,文件存储,对象存储

存储的方案分成两种:一种是可以自定对象名称的,另一种是系统自动生成对象名称。

  1. 不能自定义名称的有领英的Ambry,MogileFS。
  2. TFS 是淘宝开源的,但是目前已经很少有人维护它并且也不是很活跃。
  3. ceph 是一个比较强大的分布式存储,但是它整个系统非常复杂需要大量的人力进行维护。
  4. GlusterFS 为本身是一个非常成熟的对象存储的方案,2011被收购了,原班的人马又做了另外一个存储系统MINIO。

其中ceph跟minio是支持s3协议的。ceph跟minio大部分的s3 API都支持。

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/
优点 成熟,功能强大(支持数千节点,支持动态增加节点,自动平衡数据分布,可配置性强,可针对不同的场景进行调优) 学习成本低,安装运维简单,开箱即用
缺点 学习成本高,安装运维复杂 社区不够成熟,业界参考资料较少,不支持动态增加节点

发表回复