设为首页 收藏本站
查看: 2342|回复: 4

[经验分享] 【Ceph专题】 Ceph架构详细分析

[复制链接]

尚未签到

发表于 2017-6-26 07:47:58 | 显示全部楼层 |阅读模式

Ceph专题一 Ceph架构详细分析




  支持原创,支持ICT架构师技术交流(微信号ICT_Architect)


  分析和交流ICT行业最前沿技术,分享云计算、存储、服务器、数据中心、网络、软件定义和虚拟化等相关知识,旨在知识交流、开放共享和共同进步。
  

  

  Ceph是呼声很高的开源分布式的SDS产品存储系统。同时提供对象存储、块存储和文件系统存储三种功能,满足不同应用需求。Ceph使用C++语言开发,遵循LGPL协议开源。SageWeil(Ceph论文发表者)于2011年创立了以Inktank公司主导Ceph的开发和社区维护。2014年Redhat收购inktank公司,并发布InktankCeph企业版(ICE)软件,业务场景聚焦云、备份和归档,支持对象和块存储应用。从此出现Ceph开源社区版本和Redhat企业版。
  
  Cehp的基础服务架构
  Cehp的基础服务架构主要包括了ObjectStorage Device(OSD),Monitor和MDS。基于此,Ceph提供了Librados原生对象基础库、Librbd块存储库、Librgw基于S3和Swift兼容的对象库和Libceph文件系统库。
  OSD(ObjectStorage Device)负责存储数据,处理数据复制、数据恢复、数据再均衡以及通过心跳机制监测其它OSD状况并报告给CephMonitors。
  Monitor负责监控集群状态,包括监控自身状态、集群OSD状态、Placement Group(存储组织和位置映射)状态、CRUSH状态(ControlledReplication Under Scalable Hashing,一种伪随机数据分布算法)。同时,Monitor还会记录它们的每一个历史状态改变版本信息,以确定集群该遵循哪个版本。
  MDS负责文件系统的元数据存储和管理,也就是如前所说,块存储和对象存储服务是不需要这个模块的。MDS负责提供标准的POSIX文件访问接口。
  
  搭建一台Ceph系统至少需要1个CephMonitor和2个Ceph OSD逻辑角色,而CephMetadata server仅仅是运行CephFS时存储文件元数据。但在物理部署上,这些逻辑角色可以运行在同一台物理机上的。Ceph存储数据默认是2副本拷贝,所以不管是提供Object、Block还是Filesystem服务,最小的Ceph系统需要2台OSD存储服务器。
  
  Cehp的软件体系架构
  (1)基础存储系统RADOS
  RADOS(Reliable, Autonomic,Distributed Object Store),这一层本身就是一个完整的对象存储系统,包括Cehp的基础服务(MDS,OSD,Monitor),所有存储在Ceph系统中的用户数据事实上最终都是由这一层来存储的。而Ceph的高可靠、高可扩展、高性能、高自动化等等特性本质上也是由这一层所提供的。因此,理解RADOS是理解Ceph的基础与关键。
  
  RADOS在物理形态上由大量的存储设备节点组成,每个节点拥有自己的硬件资源(CPU、内存、硬盘、网络),并运行着操作系统和文件系统。
  
  (2)基础库librados
  这一层的功能是对RADOS进行抽象和封装,并向上层提供不同API,以便直接基于RADOS进行原生对象或上层对象、块和文件应用开发。特别要注意的是,RADOS是一个对象存储系统,因此,基于librados实现的API也只是针对对象存储功能的。
  RADOS所提供的原生librados API包括C和C++两种。Librados在部署上和基于其上开发的应用位于同一台机器。应用调用本机上的libradosAPI,再由后者通过socket与RADOS集群中的节点通信并完成各种操作。
  
  (3)高层存储应用接口
  这一层包括了RADOS GW(RADOS Gateway)、 RBD(Reliable Block Device)和CephFS(Ceph File System)三个部分,其作用是在librados库的基础上提供抽象层次更高、更便于应用或客户端使用的上层接口。
  RADOSGW是一个提供与AmazonS3和Swift兼容的RESTful API的gateway,以供相应的对象存储应用开发使用。RADOSGW提供的API抽象层次更高,但功能则不如librados强大。因此,开发者应针对自己的需求选择使用。
  RBD则提供了一个标准的块设备接口,常用于在虚拟化的场景下为虚拟机创建volume。如前所述,Red Hat已经将RBD驱动集成在KVM/QEMU中,以提高虚拟机访问性能。
  CephFS是一个POSIX兼容的分布式文件系统。目前还处在开发状态,因而Ceph官网并不推荐将其用于生产环境中。
  
  (4)服务器客户端层
  这一层就是不同场景下对于Ceph各个应用接口的各种应用方式,例如基于librados直接开发的对象存储应用,基于RADOS GW开发的对象存储应用,基于RBD实现的云硬盘等等。
  
  CephClient是基于Fuse层(User SpacE)和VFS文件系统开发,兼容Posix接口标准。在Ceph存储系统中,CephMetadata Daemon 提供了元数据服务器,而Ceph ObjectStorage Daemon 提供了数据和元数据的实际存储。Ceph对DFS、Block和Object数据写入和读取,都需Client利用Crush算法(负责集群中的数据放置和检索的算法)完成存储位置计算和数据组装。
  
  Ceph内部数据存储视图
  
  在Ceph存储系统中,Cehp的基础服务架构主要包括了Object Storage Device(OSD),Monitor和MDS。提供了Librados原生对象基础库、Librbd块存储库、基于S3和Swift兼容的Librgw对象库和Libceph文件系统库。搭建一台Ceph系统至少需要1个CephMonitor和2个CephOSD,一个Cluster可逻辑上划分为多个Pool,一个 Pool由若干个逻辑 PG( Placement Group)组成,Pool内的副本数量也是可以设置的。
  
  Ceph底层是对象系统,所以一个文件会被切分为多个Object,每个Object会被映射到一个PG,每个PG会映射到一组OSD(Object Storage Device),其中第一个OSD是主,其余的是备,OSD间通过心跳来相互监控存活状态。引入PG概念后,OSD只和PG相关,不但简化了OSD的数据存储,而且实现了Object到OSD的动态映射,OSD的添加和故障不影响Object的映射。
  
  Ceph数据存储过程
  在Ceph存储系统中,数据存储分三个映射过程,首先要将用户要操作的file,映射为RADOS能够处理的object。就是简单的按照object的size对file进行切分,相当于RAID中的条带化过程。接着把Object映射到PG,在file被映射为一个或多个object之后,就需要将每个object独立地映射到一个PG中去。第三次映射就是将作为object的逻辑组织单元的PG映射到数据的实际存储单元OSD。
  
  文件存入时,首先把File切分为RADOS层面的Object,每个Object一般为2MB或4MB(大小可设置)。每个Object通过哈希算法映射到唯一的PG。每个PG通过Crush算法映射到实际存储单元OSD,PG和OSD间是多对多的映射关系。OSD在物理上可划分到多个故障域中,故障域可以跨机柜和服务器,通过策略配置使PG的不同副本位于不同的故障域中
  
  Ceph数据分布算法
  Ceph以私有Client方式对外提供服务,支持Linux用户态(Fuse)和内核态(VFS)方式,Clinet还实现数据切片,通过Crush算法定位对象位置,并进行数据的读写。但在测试中,通常在Ceph服务器端将Ceph配置成NFS服务的ExportFS,通过标准NFS接口导出目录。CephFS 支持POSIX、HDFS、NFS、CIFS服务接口,其中NFS和CIFS通过外置网关实现(通过Clinet导出)。
  
  在PG通过Crush算法映射到数据的实际存储单元OSD时,需求通过Crush Map、CrushRules和Crush算法配合才能完成。
  
  
  ClusterMap用来记录全局系统状态记数据结构,由Crush Map和OSD Map两部分组成。Crush Map包含当前磁盘、服务器、机架的层级结构,OSD Map包含当前所有Pool的状态和所有OSD的状态。
  CrushRules就是数据映射的策略,决定了每个数据对象有多少个副本,这些副本如何存储。 Crush算法是一种伪随机算法,通过权重决定数据存放(如跨机房、机架感知等),通常采用基于容量的权重。Crush算法支持副本和EC两种数据冗余方式,还提供了四种不同类型的Bucket(Uniform、List、Tree、Straw),大多数情况下的都采用Straw。
     
  
  OpenStack的兼容和支持
  Ceph存储软件最常见的用途之一是作为OpenStack云存储后端,另一个用途是在 RADOS中存放和检索VM镜像(OpenStackGlance镜像服务)。目前以HP、Dell、Intel等为代表的企业IT领导厂商和以Mirantis、eNovance、UnitedStack为代表的OpenStack社区新兴厂商,都将Ceph作为重要的乃至于首选的开源存储解决方案。
  Ceph事实上是目前OpenStack生态系统中呼声最高的开源存储解决方案。Ceph的对象存储(ObjectStorage)可以对接网盘等应用业务;块设备存储(Block Device Storage)可以对接(IaaS),例如OpenStack, CloudStack, Zstack, Eucalyptus以及KVM虚拟化等主流的IaaS云平台软件,文件系统(CephFS)尚不成熟。
  目前已经与QEMU虚机化(硬件虚拟化)集成,通过相关命令调用管理Ceph块存储服务(RBD)。支持通过对OpenStacklibvirt和QEMU之间的配置,来实现对KVM、XEN、LXC、VirtualBOX等各种虚机镜像管理。
  
  支持通过libvirt将Ceph块存储服务(RBD)加入到OpenStack,已经完成与Glance(VM镜像管理)、Cinder(块存储)集成。通过Glance存储虚机镜像到CephRBD或者通过Cinder启动虚机。
  Ceph对象(Object Gateway)目前支持Amazon S3和OpenStack Swift,集成支持了OpenStack的keystone身份认证。
  9000目前计划支持Openstack MalinaNAS接口,实现也Openstack进行对接。另外也支持AmazonS3和OpenStackSwift,集成支持了OpenStack的keystone身份认证。由于目前9000还不支持SAN存储,所以无法实现与OpenStack Glance镜像集成。
  

  温馨提示:
请搜索“ICT_Architect”“扫一扫”下面二维码关注公众号,获取更多精彩内容。
DSC0000.jpg

  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-388134-1-1.html 上篇帖子: Ceph专题一 Ceph架构详细分析 下篇帖子: OpenStack+Ceph存储空间回收《转》
累计签到:13 天
连续签到:1 天
发表于 2017-8-4 09:21:49 | 显示全部楼层

回帖赚点积分哈···

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

累计签到:1151 天
连续签到:358 天
发表于 2018-1-26 11:51:39 | 显示全部楼层
Thanks for sharing!!!!!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

回复 支持 反对

使用道具 举报

累计签到:1151 天
连续签到:358 天
发表于 2018-1-26 12:22:07 | 显示全部楼层
Thanks for sharing!!!!!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

回复 支持 反对

使用道具 举报

累计签到:1151 天
连续签到:358 天
发表于 2018-1-26 12:33:04 | 显示全部楼层
Thanks for sharing!!!!!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表