技术栈 | 开源社区的明星项目—Ceph谈

技术栈 | 开源社区的明星项目—Ceph谈_第1张图片

图片来源:网络


作者

 侯玉彬 


来源

 启迪云计算


如需转载,请联系原作者授权


技术栈 | 开源社区的明星项目—Ceph谈_第2张图片简介

诞生于2006年的Ceph,是开源社区的明星项目,也是私有云事实上的标准-OpenStack的默认存储后端。

640?wx_fmt=pngCeph是一种软件定义存储,可以运行在几乎所有主流的Linux发行版(比如CentOS和Ubuntu)和其它类UNIX操作系统(典型如FreeBSD)。

640?wx_fmt=pngCeph的分布式基因使其可以轻易管理成百上千个节点、PB级及以上存储容量的大规模集群,同时基于计算的扁平寻址设计使得Ceph客户端可以直接和服务端的任意节点通信,从而避免因为存在访问热点而导致性能瓶颈。

640?wx_fmt=pngCeph是一个统一存储系统,即支持传统的块、文件存储协议,例如SAN和NAS;也支持对象存储协议,例如S3和Swift。


技术栈 | 开源社区的明星项目—Ceph谈_第3张图片


 Ceph和存储的未来

所有存储系统的要求都是统一、分布式、可靠、高性能且能够大规模扩展至艾字节,甚至更高级别。Ceph存储系统是一个真正的解决方案,它可以应对这个星球上爆炸式增长的数据。其统一、分布式、高性价比和可扩展的特性使它成为满足今天和将来数据存储需求的潜在解决方案。


技术栈 | 开源社区的明星项目—Ceph谈_第4张图片


 Ceph云存储解决方案

所有想在存储基础设施上省钱的用户最有可能很快就考虑采用软件定义存储(SDS)。SDS可以为在传统存储上有大投入但仍然没有获得必要的灵活性和扩展性的用户提供一个很好的解决方案。Ceph是一个真正的SDS解决方案,它可以从软件层面正确提供所有的企业级存储特性。低成本、可靠性、可扩展性是Ceph的主要特点。


  Ceph统一存储解决方案

从存储厂商的角度来看,统一存储的定义就是在单一的平台上同时提供基于文件和基于块的访问。企业存储环境在单一平台提供NAS和SAN。


在Ceph中,统一存储这个词涵盖的功能比现在的存储厂商所声称的更多。Ceph是一个真正的统一存储解决方案,它从单一统一软件层提供对象、块和文件存储。


在传统基于文件的存储系统中,文件是通过文件目录进行寻址的。相类似,Ceph中的对象通过唯一的标识符进行寻址,并存储在一个扁平的寻址空间中。剔除了元数据操作之后,对象提供了无限的规模扩展和性能提升。Ceph通过一个算法来动态计算存储和获取某个对象的位置。


技术栈 | 开源社区的明星项目—Ceph谈_第5张图片   

下一代架构

传统的存储系统并不具备更智能地管理元数据的方法。传统的存储系统通过维护一张集中的查找表来跟踪它们的元数据。客户端每次发出读写操作请求时,存储系统首先要查找这个巨大的元数据表,得到结果之后它才能执行客户端请求的操作。对于一个小的存储系统而言,也许不会感觉到性能问题,但对于一个大的存储集群来说,你将会受制于这种方法的性能限制,也会限制系统的扩展性。


Ceph引入了一个叫CRUSH的新算法,而不是保存和操纵元数据。


CRUSH是Controlled Replication Under Scalable Hashing的缩写,CRUSH算法在后台计算数据存储和读取的位置,而不是为每个客户端请求执行元数据表的查找。通过动态计算元数据,不需要管理一个集中式的元数据表。


CRUSH使得Ceph能够自我管理和自我治愈。当故障区域中的组件故障时,CRUSH能够感知哪个组件故障了,并确定其对集群的影响。无须管理员的任何干预,CRUSH就会进行自我管理和自我疗愈,为因故障而丢失的数据执行恢复操作。


使用CRUSH,我们能够设计一个没有单点故障的高度可靠的存储基础设施。它也使得Ceph成为一个面向未来的高度可扩展和可靠的存储系统。


技术栈 | 开源社区的明星项目—Ceph谈_第6张图片

兼容性组合

Ceph是一个完备的企业级存储系统,它支持多种协议以及访问方式。这个统一的存储支持Ceph块、文件和对象存储


技术栈 | 开源社区的明星项目—Ceph谈_第7张图片


Ceph块存储


块存储是存储区域网络中使用的一个数据存储类别。

在这种类型中,数据以块的形式存储在卷里,卷会挂接到节点上。这些块形成的卷会映射到操作系统中,并被文件系统层控制。


Ceph引入了一个新的RBD协议,也就是Ceph块设备。RBD为客户端提供了可靠、分布式、高性能的块存储。RBD已经被Linux内核支持,几乎所有的Linux操作系统发行版都支持RBD。除了可靠性和性能之外,RBD也支持其他的企业级特性,如完整和增量式快照,精简的配置,写时复制式克隆以及全内存是缓存。


Ceph RBD支持的最大镜像为16EB。这些镜像可以作为磁盘映射到物理机裸机、虚拟机或者其他主机用。业界领先的开源hypervisor,例如KVM和Xen完全支持RBD。


技术栈 | 开源社区的明星项目—Ceph谈_第8张图片



Ceph文件系统


Ceph文件系统(也就是CephFS)是一个兼容POSIX的文件系统,利用Ceph存储集群来保存用户数据。Linux内核驱动程序支持CephFS,这也使得CephFS高度适用于各大Linux操作系统发行版。CephFS将数据和元数据分开存储,为上层的应用程序提供较高的性能以及可靠性。


在Ceph集群内部,Ceph文件系统库(libcephfs)运行在RADOS库(librados)之上,后者是Ceph存储集群协议,由文件、块和对象存储共用。要使用CephFS,集群节点上最少要配置一个Ceph元数据服务器(MDS),客户端可以采用多种方式使用CephFS。


如果要把Ceph挂在成文件系统,客户端可以使用本地Linux内核的功能或者使用Ceph社区提供的ceph-fuse驱动。


除此之外,客户端可以使用第三方开源程序,例如NFS的ganesha和SMB/CIFS的Samba。这些程序通过libcephfs将用户数据存入可靠的分布式Ceph存储集群。CephFS可以用来替代HDFS。也是通过libcephfs组件将数据存入Ceph集群。为了无缝实现这个功能,Ceph社区为Hadoop和Hadoop插件提供了必要的CephFS Java接口。


技术栈 | 开源社区的明星项目—Ceph谈_第9张图片



Ceph对象存储


对象存储是一种以对象形式而不是传统文件和块形式存储数据的方法。基于对象的存储已经引起了行业界的大量关注。为灵活地使用它们的巨量数据,这些组织正快速采用对象存储解决方案。

640?wx_fmt=jpeg

Ceph是一个分布式对象存储系统,通过它的对象网关(object gateway),也就是RADOS网关(radosgw)提供对象存储接口。RADOS网关利用librgw(RADOS网关库)和librados这些库,允许应用程序跟Ceph对象存储建立连接。Ceph通过RESTful API提供可访问且最稳定的多租户对象存储解决方案之一。


RADOS网关提供RESTful接口让用户的应用程序将数据存储到Ceph集群中。RADOS网关接口满足一下特点:

640?wx_fmt=png 兼容Swift:为OpenStack Swift API提供的对象存储功能;

640?wx_fmt=png 兼容S3:为Amazon S3 API提供的对象存储功能

640?wx_fmt=png Admin API:这也称为管理API或者原生API,应用程序可以直接使用它来获取访问存储系统的权限以管理存储系统。


要访问Ceph的对象存储系统,也可以绕开RADOS网关层,librados软件库允许用户的应用程序通过C、C++、Java、Python和PHP直接访问Ceph对象存储。


技术栈 | 开源社区的明星项目—Ceph谈_第10张图片


总结



以上是对Ceph的整体框架做了一些介绍。


投稿啦!!!



精彩继续

CSDN作为国内专业的云计算服务平台,目前提供云计算、大数据、虚拟化、数据中心、OpenStack、CloudStack、机器学习、智能算法等相关云计算观点、技术、平台、实践、云产业咨询等服务。CSDN 公众号也一直坚持「与千万技术人共成长」的理念,深度解读行业内热门技术与场景应用,致力于让所有开发者保持敏锐的技术嗅觉、对行业趋势与技术获得更广阔的认知。

文章题材

  • 首先你需要关注我们的公众号“CSDN云计算”,这样你会更准确了解我们需要的文章风格;

  • 侧重于云计算领域相关的文章,可以是技术、运维、趋势等方面的务实内容;

  • 原创,要求文章有鲜明观点和看法。

投稿须知

  •  稿费:根据原创性、实用性和时效性等方面进行审核,通过的文章会发布在本微信平台。一经采用,我们将支付作者酬劳。酬劳可能不多,这代表的是一个心意,更多是因为爱好,是有识之士抒发胸怀的一种方式;

  • 字数要求:稿件字数以2K-8K为宜,少于2K或多于8K都会一定程度降低阅读愉悦感;

  • 投稿邮箱:[email protected]。或者添加微信表明来意,微信号:tangguoyemeng。请备注投稿+姓名+公司职位


如果咱们的合作稳定又愉快,还可以签订合同长期合作哦!

你可能感兴趣的:(技术栈 | 开源社区的明星项目—Ceph谈)