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

Ceph client 写入osd 数据的两种方式librbd 和kernel rbd

在Ceph存储系统中,客户端(Ceph client)写入OSD(Object Storage Daemon)数据确实可以通过两种主要方式:librbd和kernel rbd。这两种方式各有特点和适用场景,下面将分别进行详细介绍。

librbd方式

  1. 概述
    librbd是Ceph提供的块存储接口的抽象,它提供了多种编程语言的接口,如C/C++、Python等。通过librbd,客户端可以直接与Ceph集群进行交互,实现对块设备的访问和管理。

  2. 工作原理
    当客户端使用librbd方式写入数据时,它不会将rbd设备映射到内核中,而是直接调用librbd提供的接口。librbd会对要写入的二进制块进行分块,每块默认大小为4MB,并给每个块命名,成为一个对象。然后,librbd会调用librados(Ceph的底层对象存储接口)将对象写入Ceph集群。librados会根据CRUSH算法计算出对象所对应的主OSD,并与该OSD建立TCP/IP连接,发送写入请求。主OSD负责将数据写入其磁盘,并同时向一个或多个次OSD写入副本,以保证数据的高可用性和冗余性。

  3. 特点与优势

    • 不需要在客户端产生块设备文件,直接通过接口访问和管理块设备。
    • 提供了灵活的编程接口,适用于多种开发语言和场景。
    • 支持数据的并发写入和高效管理。

kernel rbd方式

  1. 概述
    kernel rbd是另一种使用Ceph块存储的方式,它将rbd设备映射到内核中,形成一个虚拟的块设备。这个虚拟块设备与其他通用块设备一样,可以使用标准的块设备操作进行管理。

  2. 工作原理
    在kernel rbd模式下,客户端首先会创建一个rbd设备,并将其映射到内核中。映射成功后,客户端可以看到一个虚拟的块设备文件(如/dev/rbd0)。然后,客户端可以对这个块设备文件进行格式化、挂载等操作,就像操作普通的块设备一样。当客户端向这个块设备写入数据时,数据会通过内核的块设备驱动程序传递到librbd和librados,最终写入到Ceph集群中的OSD上。

  3. 特点与优势

    • 提供了与标准块设备兼容的接口,方便现有应用系统的迁移和集成。
    • 适用于需要直接操作块设备的场景,如虚拟机磁盘、数据库存储等。
    • 借助内核的块设备驱动程序,可以提供更好的性能和稳定性。

总结

librbd和kernel rbd是Ceph客户端写入OSD数据的两种主要方式。librbd提供了灵活的编程接口和高效的数据管理功能,适用于多种开发语言和场景;而kernel rbd则提供了与标准块设备兼容的接口,方便现有应用系统的迁移和集成。在选择使用哪种方式时,需要根据具体的应用场景、性能需求以及开发人员的技能水平进行综合考虑

http://www.lryc.cn/news/483116.html

相关文章:

  • 相机光学(四十二)——sony的HDR技术
  • 文件上传漏洞--理论
  • 快速入门Selenium自动化测试
  • C++指针使用指南
  • 一文学会,利用LLaMA 3.2打造能“识图断字”的个人AI助理
  • idea的mapper.xml文件里写sql语句出现Tag name expected错误提示
  • EasyExcel 使用多线程按顺序导出数据
  • 数据驱动的投资分析:民锋科技的量化模型探索
  • cesium 设置相机视角 flyTo 参数destination,orientation
  • vue+Leaflet.PM插件实现创建和编辑几何图形(点、线、面、圆等)
  • Rust语言在系统编程中的应用
  • test 是 JavaScript 中正则表达式对象 (RegExp) 的一种方法,用于测试一个字符串是否匹配某个正则表达式
  • 大厂社招3年-力扣热点高频刷题记录(已更新100+道热点题)
  • 6.2 对角化矩阵(2)
  • ubuntu24.04播放语音视频
  • GPT4的下一代Orion已经降速了?
  • SpringCloud框架学习(第二部分:Consul、LoadBalancer和openFeign)
  • Linux 批量配置互信
  • 设计定长的内存池
  • 【动手学电机驱动】 STM32-FOC(7)基于 MCSDK6.0 控制与调试速度环
  • 无人机飞手考证,地面站培训技术详解
  • 音视频入门基础:MPEG2-TS专题(3)——TS Header简介
  • Sam Altman:年底将有重磅更新,但不是GPT-5!
  • 基于物联网的智能超市快速结算系统
  • 241111.学习日志——[CSDIY] Cpp零基础速成 [00]
  • 湘潭大学软件工程算法设计与分析实验-模拟退火算法
  • Three.js 零基础+概念理解
  • c#使用COM接口设置excel单元格宽高匹配图片,如何计算?
  • Excel模板下载\数据导出
  • Vite初始化Vue3+Typescrpt项目