【存储】块存储、文件存储和对象存储的区别|什么是Ceph?|MinIO和ceph
目录
存储分类:
https://www.bilibili.com/video/BV1WE41177Kp?from=search&seid=1887114199876544924
存储发展史
(https://zhuanlan.zhihu.com/p/164775822)
企业中使用存储按照其功能,使用场景,一直在持续发展和迭代,大体上可以分为四个阶段:
- 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以上的存储空间,需无限扩展。
存储的发展,根据不同的阶段诞生了不同的存储解决方案,每一种存储都有它当时的历史诞生的环境以及应用场景,解决的问题和优缺点。
综上、企业中不同场景使用的存储,使用表现形式无非是这三种:磁盘(块存储设备),挂载至目录像本地文件一样使用(文件共享存储),通过API向存储系统中上传PUT和下载GET文件(对象存储)。
块存储:
文件存储:
对象存储:
什么是Ceph?
Ceph则是一个统一分布式存储系统,具有优异的性能、可靠性和可扩展性。Ceph底层是RADOS,它是分布式对象存储系统,由自修复、自管理、智能的存储节点组成。可以通过LIBRADOS直接访问到RADOS的对象存储系统。RBD(块设备接口)、RADOS Gateway(对象存储接口)、Ceph File System(POSIX接口)都是基于RADOS的。
Ceph能够提供企业中三种常见的存储需求:块存储、文件存储和对象存储,正如Ceph官方所定义的一样“Ceph uniquely delivers object, block, and file storage in one unified system.”,Ceph在一个统一的存储系统中同时提供了对象存储、块存储和文件存储,即Ceph是一个统一存储,能够将企业企业中的三种存储需求统一汇总到一个存储系统中,并提供分布式、横向扩展,高度可靠性的存储系统,Ceph存储提供的三大存储接口:
更详细:https://zhuanlan.zhihu.com/p/164775822
Ceph存储架构
Ceph 独一无二地用统一的系统提供了对象、块、和文件存储功能。 Ceph还拥有大规模可扩展(PB、甚至EB级的存储空间)、基于CRUSH算法的自我管理和修复、灵活的架构等优点,并且支持OpenStack、CloudStack、OpenNebula、Hadoop等云平台。 Ceph 节点以普通硬件和智能守护进程作为支撑点, Ceph 存储集群组织起了大量节点,它们之间靠相互通讯来复制数据、并动态地重分布数据。
Ceph的主要目标是提供高可扩展性和提供对象存储、块存储和文件系统的存储机制,是一个高扩展、高容错、高一致的开源分布式存储平台。
接下来,我们先来看一下Ceph的存储架构,了解Ceph的分布式架构,功能组件和涉及相关概念。Ceph分布式集群是建立在RADOS算法之上的,RADOS是一个可扩展性,高可靠的存储服务算法,是Ceph的实现的基础。Ceph有两个重要的组件组成:Ceph Monitors(Ceph监视器)和Ceph OSDs(Ceph OSD 守护进程)。
其中Ceph Monitor作为集群中的控制中心,拥有整个集群的状态信息,Ceph Monitor肩负起整个集群协调工作;
同时Ceph Monitor还负责将集群的指挥工作,将集群的状态同步给客户端。
除了Ceph Monitor之外,还有一个重要的组件是OSD,集群中通常有多个OSD组成,OSD即Object Storage Daemon,负责Ceph集群中真正数据存储的功能,也就是我们的数据最终都会写入到OSD中。除了Monitor之外,根据Ceph提供的不同功能,还有其他组件,包括:
- Ceph Monitors(ceph-mon);
- Ceph OSDs(ceph-osd);
- Ceph MDS(ceph-mds),用于提供CephFS文件存储,提供文件存储所需元数据管理;
- Ceph RGW(ceph-rgw),用于提供Ceph对象存储网关,提供存储网关接入;
- Ceph Manager(ceph-mgr),提供集群状态监控和性能监控。
注:Ceph Monitor监视器维护着集群运行图的主副本。一个监视器集群确保了当某个监视器失效时的高可用性。存储集群客户端向 Ceph Monitor 监视器索取集群运行图的最新副本。而Ceph OSD 守护进程检查自身状态、以及其它 OSD 的状态,并报告给监视器们。存储集群的客户端和各个 Ceph OSD 守护进程使用 CRUSH 算法高效地计算数据位置,而不是依赖于一个中心化的查询表。它的高级功能包括:基于 librados的原生存储接口、和多种基于 librados 的服务接口。
Ceph数据的存储
Ceph中一切皆对象,不管是RBD块存储接口,RGW对象存储接口还是文件存储CephFS接口,其存储如到Ceph中的数据均可以看作是一个对象,一个文件需要切割为多个对象(object),然后将object存储到OSD中,如下图:
未完待续…… https://zhuanlan.zhihu.com/p/164775822
MinIO和ceph
(http://slack.minio.org.cn/question/5)
之前一直使用MongoDB的GirdFS存储文件,在并发处理能力和扩容能力上没有遇到问题。但是使用总是不够便利,各种功能都需要自己开发。存储上是wt文件,无法直接识别。
所以,希望找一款替代产品。目前开源的文件存储系统比较多,比较了多个,我们的要求是要支持S3存储,最终选定了minio。
从对比中,目前文件存储在ceph和minio中进行比较选型
ceph优缺点
优点
- 成熟
- 红帽继子,ceph创始人已经加入红帽
- 国内有所谓的ceph中国社区,私人机构,不活跃,文档有滞后,而且没有更新的迹象。
- 从git上提交者来看,中国有几家公司的程序员在提交代码,星辰天合,easystack, 腾讯、阿里基于ceph在做云存储,但是在开源社区中不活跃,阿里一位叫liupan的有参与
- 功能强大
- 支持数千节点
- 支持动态增加节点,自动平衡数据分布。(TODO,需要多长时间,add node时是否可以不间断运行)
- 可配置性强,可针对不同场景进行调优
缺点
- 学习成本高,安装运维复杂。(或者说这个不是ceph的缺点,是我水平不行)
minio优缺点
优点
- 学习成本低,安装运维简单,开箱即用
- 目前minio论坛推广给力,有问必答
- 有java客户端、js客户端
缺点
- 社区不够成熟,业界参考资料较少
- 不支持动态增加节点,minio创始人的设计理念就是动态增加节点太复杂,后续会采用其它方案来支持扩容。
- 其缺点是目前不支持动态在线扩容。我们业务的使用量不会很大,所以这个问题先不考虑。
当然是用MinIO呀,MinIO的维护特别简单,并且性能和扩展也比Ceph要简单。
Ceph 维护起来多麻烦呀。运维成本太高了。
公司运维每年不投个几千万,ceph玩都别玩。
并且Ceph这玩意是超大型公司才玩玩的。
ceph和hadoop