CEPH集群搭建部署与常规操作实战!理论+实战!

本文详细介绍了CEPH存储系统,包括其理论背景、优势与缺点,如CRUSH算法、统一存储架构和丰富的特性。CEPH的缺点涉及代码质量和性能问题。文章进一步探讨了集中式存储架构、一致性哈希与Ceph的完全无中心架构。最后,文章通过实验部分展示了CEPH集群的搭建、优化和扩容操作。
摘要由CSDN通过智能技术生成

前言

一:理论部分

1.1:什么是CEPH?有什么作用?

  • mark

  • 此LOGO的来源是章鱼,是从开发者宠物的名字来的

  • CEPH是一个开源的项目,是一个可大规模扩展,高性能且无单点故障的分布式存储系统,它是软件定义的,统一的存储解决方案。

  • CEPH因为开源,可扩展和分布式的优点,如今称为各种云的主流存储方案

1.2:CEPH的优势和缺点

  • ceph发展至今已过10年,随着云计算的发展,ceph与云计算的关系越来越紧密,但是也存在着一些优缺点
1.2.1:优点
  • CRUSH算法
    • CRUSH算法是Ceph最初的两大创新之一(另一个是基于动态子树分区的元数据集群),也是整个RADOS的基石,是Ceph最引以为豪的地方。
    • CRUSH在一致性哈希基础上很好的考虑了容灾域的隔离,能够实现各类负载的副本放置规则,例如跨机房、机架感知等。同时, CRUSH算法支持副本和EC两种数据冗余方式,还提供了四种不同类型的Bucket(Uniform, List, Tree, Straw),充分考虑了实际生产过程中硬件的迭代式部署方式,虽然实际生产中大多数情况下的都是只用了一种Straw。
  • 统一存储架构
    • Ceph最初设计的RADOS是为其实现一个高性能的文件系统服务的,并没有考虑对于块设备、对象存储的支持,也就没有什么RBD、RADOS GateWay,跟别提OpenStack和qemu之类的了。但由于 RADOS 出色的设计和独立简洁的访问接口,Ceph社区果断推出了用于支持云计算的分布式块存储RBD和分布式对象存储RADOS GateWay,并将开发中心全面转向云计算领域。
    • RADOS的设计非常的优秀。从架构上来看,RBD和RADOSGateWay实际上都只是RADOS的客户端而已,但得益于RADOS的优秀设计,RBD和RADOSGateWay的设计和实现都很简单,不需要考虑横向扩展、冗余、容灾、负载平衡的等复杂的分布式系统问题,同时能够提供足够多的特性和足够优秀的性能,因此迅速得到了社区的认可。
    • 另一方面,Ceph为OpenStack提供了良好的支持,成为了目前最火的OpenStack底层存储系统。
  • 丰富的特性
    • Ceph的特性不可谓不多,从分布式系统最基本的横向扩展、动态伸缩、冗余容灾、负载平衡等,到生产环境环境中非常实用的滚动升级、多存储池、延迟删除等,再到高大上的CephFS集群、快照、纠删码、跨存储池缓存等,不可谓不强大。
    • 但是就像大多数开源系统一样,Ceph的基本特性,或者说真正在生产环境中用的上的特性还是非常靠谱的,但其他“高级”特性就只能打一个问号了。特别是在CephFS模块,由于Ceph社区目前的开发重点主要还是与云计算相关的部分,即RBD和RADOSGateWay,导致CephFS的开发停滞了很久,相关的特性,例如元数据集群、快照等,目前都不满足生产环境的要求。
1.2.2:缺点
  • 代码质量
    • Ceph主要使用C/C++语言编写,同时外围的很多脚本和工具用了Python。
    • 由于历史问题,ceph部分功能的代码数量有的达到1万多行,且与父级目录没有逻辑关系等等问题
  • 性能
    • 数据双倍写入
      • Ceph本地存储接口(FileStore)为了支持事务,引入了日志(Journal)机制。所有的写入操作都需要先写入日志(XFS模式下),然后再写入本地文件系统。简单来说就是一份数据需要写两遍,日志+本地文件系统。
    • IO路径过长
      • 这个问题在Ceph的客户端和服务器端都存在。以osd为例,一个IO需要经过message、OSD、FileJournal、FileStore多个模块才能完成,每个模块之间都涉及到队列和线程切换,部分模块在对IO进行处理时还要进行内存拷贝,导致整体性能不高。
    • 对高性能硬件的支持有待改进
      • 最开始只支持HDD,没有充分考虑SSD

1.3:什么是集中式存储架构?

  • 所谓集中式存储,整个存储是集中在一个系统中的。但集中式存储并不是一个单独的设备,是集中在一套系统当中的多个设备。
  • 在集中式存储中通常包含一个机头,这个是存储系统中最为核心的部件。通常在机头中有包含两个控制器,这两个控制器实现互备的作用,避免硬件故障导致整个存储系统的不可用。在该机头中通常包含前端端口和后端端口,前端端口用户为服务器提供存储服务,而后端端口用于扩充存储系统的容量。通过后端端口机头可以连接更多的存储设备,从而形成一个非常大的存储资源池。
  • 分布式存储是一个大的概念,其包含的种类繁多,除了传统意义上的分布式文件系统、分布式块存储和分布式对象存储外,还包括分布式数据库和分布式缓存等

1.4:中间控制节点架构(HDFS)

1.5:完全无中心架构—一致性哈希(Swift)

  • 与Ceph的通过计算方式获得数据位置的方式不同,另外一种方式是通过一致性哈希方式获得数据位置。一致性哈希的方式就是将设备做成一个哈希环,然后根据数据名称计算出的哈希值映射到哈希环的某个位置,从而实现数据定位。
  • 哈希环对服务器设备做映射
  • mark

1.6:完全无中心架构—计算模式(Ceph)

  • 下图是Ceph存储系统的架构,在该架构中与HDFS不同的地方在于该架构中没有中心节点。客户端是通过一个设备映射关系计算出来其写入数据的位置,这样客户端可以直接与存储节点通信,从而避免中心节点的性能瓶颈。

  • mark

  • ceph 是一种开源存储软件。底层实现了对象存储,并以此为基础对外提供对象存储接口、块存储接口、文件级存储接口。

  • 官方架构图

    mark

  • 通俗转化版

    mark

  • 名词解释

    • RADOS:Reliable Autonomic Distributed Object Store(可靠的,自主的,分布式的对象存储)。在 ceph 中这个名词经常出现,有时会以 R 表示 RADOS。实际上这个词仅仅是对 ceph 的一个修饰词,并不代表 ceph 的组件什么的。粗暴的认为, RADOS = ceph 对象存储集群 即可。
    • RGW、RBD、CEPH FS: 这三个就是 ceph clients。
    • RGW:对象存储网关,也就是对象存储接口。
    • RBD:块设备,也就是块存储接口。
    • CEPH FS:ceph 文件系统
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值