• Ceph — 架构


    Ceph 架构

    Ceph是统一存储系统,支持三种接口。

    1. Object:有原生的API,而且也兼容Swift和S3的API
    2. Block:支持精简配置、快照、克隆
    3. File:Posix接口,支持快照

    在这里插入图片描述
    Ceph的底层是RADOS,它的意思是“A reliable, autonomous, distributed object storage”。 RADOS由两个组件组成:

    1. OSD: Object Storage Device,提供存储资源。
    2. Monitor:维护整个Ceph集群的全局状态。

    RADOS具有很强的扩展性和可编程性,Ceph基于RADOS开发了 Object Storage、Block Storage、FileSystem。Ceph另外两个组件是:

    1. MDS:用于保存CephFS的元数据。
    2. RADOS Gateway:对外提供REST接口,兼容S3和Swift的API。

    数据存储

    Ceph存储集群从Ceph客户端接收数据——无论是通过Ceph块设备、Ceph对象存储、Ceph文件系统还是使用librados创建的自定义实现——这些数据被存储为RADOS对象。每个对象存储在对象存储设备上。Ceph OSD daemon处理存储驱动器上的读、写和复制操作。对于较旧的Filestore后端,每个RADOS对象都作为一个单独的文件存储在传统的文件系统(通常是XFS)上。使用新的和默认的BlueStore后端,对象以一种类似于单片数据库的方式存储。
    在这里插入图片描述

    Ceph OSD Daemons将数据作为对象存储在一个平面命名空间中(例如,没有目录层次结构)。对象具有标识符、二进制数据和由一组名称/值对组成的元数据。语义完全取决于Ceph客户端。例如,cepfs使用元数据来存储文件属性—文件所有者、创建日期、最后修改日期等等。
    在这里插入图片描述

    优势

    Ceph也是分布式存储系统,它的特点是:

    高扩展性:

    • 高度并行。没有单个中心控制组件。所有负载都能动态的划分到各个服务器上。把更多的功能放到OSD上,让OSD更智能。
    • 自管理。容易扩展、升级、替换。当组件发生故障时,自动进行数据的重新复制。当组件发生变化时(添加/删除),自动进行数据的重分布。

    高可靠性:

    • 数据多副本。可配置的per-pool副本策略和故障域布局,支持强一致性。

    • 没有单点故障。可以忍受许多种故障场景;防止脑裂;单个组件可以滚动升级并在线替换。

    • 所有故障的检测和自动恢复。恢复不需要人工介入,在恢复期间,可以保持正常的数据访问。

    • 并行恢复。并行的恢复机制极大的降低了数据恢复时间,提高数据的可靠性。

    高性能:

    • Client和Server直接通信,不需要代理和转发

    • 多个OSD带来的高并发度。objects是分布在所有OSD上。

    • 负载均衡。每个OSD都有权重值(现在以容量为权重)。

    • client不需要负责副本的复制(由primary负责),这降低了client的网络消耗。

    Cluster MAP

    Ceph依赖于Ceph客户端和Ceph OSD守护进程对集群拓扑的了解,集群拓扑包括5个map,统称为“Cluster Map”:

    1. Monitor Map: 包含集群fsid、每个监视器的位置、名称、地址和端口。它还指示当前纪元、创建map的时间以及最后更改的时间。要查看 monitor map,执行ceph mon dump。
    2. OSD Map: 当map创建和最后修改时包含集群fsid,还包含一个池列表,副本大小,PG编号,OSD列表和它们的状态。查看OSD映射,执行ceph OSD dump命令。
    3. PG Map: 包含PG版本、时间戳、最后一个OSD Map纪元、完整的比率,以及每个放置组的详细信息,如PG ID、Up Set、Acting Set、PG的状态,以及每个池的数据使用统计信息
    4. CRUSH Map: 包含存储设备、故障域层次结构(例如,设备、主机、机架、行、房间等)的列表,以及存储数据时遍历层次结构的规则。要查看一个CRUSH Map,执行ceph osd getcrushmap -o {filename};然后,执行crushtool -d {compp -crushmap-filename} -o {decomp-crushmap-filename}反编译它。
    5. MDS Map: 包含当前MDS Map的纪元,映射创建的时间,以及最后一次更改的时间。它还包含用于存储元数据的池、元数据服务器列表以及哪些元数据服务器处于upin状态。查看MDS映射,执行ceph fs dump命令。

    每个map维护其操作状态更改的迭代历史。Ceph Monitors维护集群映射的主副本,包括集群成员、状态、更改和Ceph存储集群的整体运行状况。

  • 相关阅读:
    HCIA笔记-1 网络基础
    关于python序列对象
    redis的简单使用
    嵌入式分享合集54
    【自动驾驶】路径规划—— Dubins 曲线公式总结及python代码实现(基于几何的方法)
    自学Python04-学会Python中的空格
    java计算机毕业设计企业间信息交互系统源码+系统+数据库+lw文档+mybatis+运行部署
    Javascript知识【BootStrap】
    docker&kubernets篇(二十三)
    搭建 Kafka 需要做什么准备?
  • 原文地址:https://blog.csdn.net/weixin_45804031/article/details/127779961