当前位置: 首页 > article >正文

Ceph层次架构分析

Ceph的层次结构可以从逻辑上自下向上分为以下几个层次:

一、基础存储系统RADOS层

  • 功能:RADOS(Reliable Autonomic Distributed Object Store)是Ceph的底层存储系统,提供了分布式存储的核心功能。它是一个完整的对象存储系统,所有存储在Ceph系统中的用户数据最终都是由RADOS层来存储的。Ceph的高可靠、高可扩展、高性能、高自动化等特性也是由RADOS层所提供的。
  • 组件:RADOS层主要由OSD(Object Storage Daemon)和Monitor组成。OSD负责数据的读写操作,而Monitor则负责维护存储集群的当前状态信息,如OSD的故障情况等。
  • 逻辑结构:RADOS集群的逻辑结构包括OSD节点和Monitor节点。OSD节点负责数据的存储和维护,而Monitor节点则负责系统状态的监测和维护。它们之间通过传输节点状态信息来共同得出系统的总体工作状态,并形成一个全局系统状态记录数据结构,即所谓的cluster map。

二、基础库librados层

  • 功能:librados是对RADOS进行抽象和封装的库,它向上层提供API,以便直接基于RADOS(而不是整个Ceph)进行应用开发。由于RADOS是一个对象存储系统,因此librados实现的API也只是针对对象存储功能的。
  • 特性:librados提供的API支持多种编程语言,如C、C++等。应用可以通过调用本机上的librados API,再通过socket与RADOS集群中的节点通信并完成各种操作。

三、高层接口层

  • 功能:高层接口层在librados库的基础上提供了抽象层次更高、更便于应用或客户端使用的上层接口。它包括了RADOS GW、RBD(Reliable Block Device)和Ceph FS(Ceph File System)三个部分。

  • 组件

    • RADOS GW:提供与Amazon S3和Swift兼容的RESTful API,以供相应的对象存储应用开发使用。RADOS GW提供的API抽象层次更高,但功能则不如librados强大。
    • RBD:提供了一个标准的块设备接口,常用于在虚拟化的场景下为虚拟机创建volume。Red Hat已经将RBD驱动集成在KVM/QEMU中,以提高虚拟机访问性能。
    • Ceph FS:是一个POSIX兼容的分布式文件系统。由于还处在开发状态,因此Ceph官网并不推荐将其用于生产环境中。

四、应用层

  • 功能:应用层是不同场景下对于Ceph各个应用接口的各种应用方式。例如,基于librados直接开发的对象存储应用、基于RADOS GW开发的对象存储应用、基于RBD实现的云硬盘等。
  • 特性:应用层的选择取决于用户的需求和应用场景。基于librados的开发可能更适合于在私有Ceph系统上开发专用应用,或者为基于Ceph的公有存储系统开发后台数据管理、处理应用。而RADOS GW则更适合于常见的基于web的对象存储应用开发,例如公有云上的对象存储服务。

综上所述,Ceph的层次结构从逻辑上分为基础存储系统RADOS层、基础库librados层、高层接口层和应用层。每个层次都有其特定的功能和组件,共同构成了Ceph分布式存储系统的强大架构


http://www.kler.cn/a/399540.html

相关文章:

  • 计算机网络之会话层
  • 后仿真中的GLS测试用例的选取规则
  • MySQL 中的数据排序是怎么实现的
  • 基于Java和Vue实现的上门做饭系统上门做饭软件厨师上门app
  • 《Java核心技术 卷I》用户界面中首选项API
  • JavaScript中如何使用Promise处理异步操作?
  • 【日志】力扣11.盛水最多的容器
  • git配置用户信息
  • 使用Aria2实现离线下载
  • 【策略模式】最佳实践——Spring IoC实现策略模式全流程深度解析
  • Java——并发工具类库线程安全问题
  • 【LeetCode热题100】字符串
  • C#编程:优化【性别和成绩名次】均衡分班
  • 一文了解Android的核心系统服务
  • 使用 Keras 训练一个卷积神经网络(CNN)(入门篇)
  • L11.【LeetCode笔记】有效的括号
  • 代码随想录算法训练营第四十七天|Day47 单调栈
  • 2022数学分析【南昌大学】
  • mini-jquery
  • Python数据分析NumPy和pandas(三十五、时间序列数据基础)
  • 炼码LintCode--数据库题库(级别:简单;数量:55道)--刷题笔记_02
  • C++【nlohmann/json】库序列化与反序列化
  • ALSA - (高级Linux声音架构)是什么?
  • ShardingSphere 如何完美驾驭分布式事务与 XA 协议?
  • HTTP常见的状态码有哪些,都代表什么意思
  • DB_redis数据一致性(三)