Ceph后端两种存储引擎介绍

devtools/2024/11/16 0:48:42/

Ceph是一个可靠的、自治的、可扩展的分布式存储系统,它支持文件系统存储、块存储、对象存储三种不同类型的存储,以满足多样存储的需求。在Ceph的存储架构中,FileStore和BlueStore是两种重要的后端存储引擎,下面将分别进行详细介绍:

FileStore

  1. 概述

    • FileStore是Ceph早期采用的后端存储引擎。
    • 它建立在传统的文件系统之上,如XFS、EXT4、BTRFS等。
  2. 工作原理

    • 在FileStore模式下,数据从OSD(Object Storage Daemon)到DISK的流程会经过文件系统层。
    • 对象数据保存在文件中,对象的属性最初保存在POSIX的扩展文件属性中,后来由于限制转移到LevelDB这类事务性数据库中。
  3. 特点与限制

    • FileStore依赖于底层文件系统,因此会受到文件系统性能的限制。
    • 数据写入过程涉及将磁盘操作转换为操作系统识别的文件系统操作,这个过程相对复杂且可能带来性能开销。
    • 存在写放大问题,即实际写入的数据比要写入的数据更多,导致内存空间的浪费。

BlueStore

  1. 概述

    • BlueStore是Ceph团队在2015年提出的新型后端存储引擎。
    • 它旨在解决FileStore存在的性能问题,并提升存储效率。
  2. 工作原理

    • BlueStore直接将对象数据保存在原始块设备中,绕过了本地文件系统层。
    • 它采用RocksDB管理元数据,提高了存储效率。
    • BlueStore还实现了一个用户态的文件系统BlueFS,用于直接操作块设备。
  3. 特点与优势

    • 避免了文件系统开销和其性能缺陷,提升了Ceph集群整体的性能。
    • 通过实现用户态的文件系统BlueFS,以异步方式将数据直接写入磁盘,减少了写放大问题。
    • RocksDB作为元数据管理后端,提供了强大的事务处理能力和性能。
  4. 应用情况

    • BlueStore因其表现出的优越性,在生产中被广泛应用,成为Ceph后端存储的主流选择。

总结

  • FileStore和BlueStore都是Ceph的重要后端存储引擎。
  • FileStore建立在传统文件系统之上,受到文件系统性能的限制,存在写放大等问题。
  • BlueStore则直接操作块设备,绕过了文件系统层,提升了存储效率和性能,成为Ceph后端存储的主流选择。

http://www.ppmy.cn/devtools/134295.html

相关文章

Java基础-组件及事件处理(上)

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 Swing 概述 MVC 架构 Swing 特点 控件 SWING UI 元素 JFrame SWING 容器 说明 常用方法 示例&a…

Invar-RAG:基于不变性对齐的LLM检索方法提升生成质量

Invar-RAG:基于不变性对齐的LLM检索方法提升生成质量 论文链接:https://arxiv.org/html/2411.07021v1 论文概述 在检索增强型生成(Retrieval-Augmented Generation, RAG)系统中直接应用大型语言模型(Large Language Models, LLM…

Unity资源打包Addressable AA包

从零到一 很多资料都是通过一步步设置讲解的,有时很想先快速实现,再了解细节。 下面就是远程加载Cube.prefab然后实例化简单的代码。 代码中可以不需要远程的网址,不需要资源下载的位置,不需要判断是否已经下载到本地。 那是如…

编写一个脚本实现参数的远程主机网络探测python test_ip.py 192.168.0.10~192.168.0.100(sys模块)

""" 编写一个脚本实现参数的远程主机网络探测python test_ip.py 192.168.0.10~192.168.0.100 """ #导入模块 #读取起始IP,结束IP import sys start_ip sys.argv[1] end_ip sys.argv[2] # print(start_ip,end_ip)##########组装数据…

docker安装redis

1、拉取镜像 docker pull redis:latest运行之前需要再/data/redis创建redis.conf配置文件 内容如下 # bind 192.168.1.100 10.0.0.1 # bind 127.0.0.1 ::1 #bind 127.0.0.1protected-mode noport 6379tcp-backlog 511requirepass roottimeout 0tcp-keepalive 300daemonize no…

【学习记录丨UVM】2.1uvm_component 与uvm_object

UVM中常用类的继承关系 1.uvm_component派生自uvm_object 上图展示了UVM中常用类的继承关系,可以看到: (一) uvm_conponent是继承自uvm_object的。这说明了uvm_component继承了object的特性,又同时有自己的特别属性&a…

vue3入门知识(二)

computed 计算属性是有缓存的&#xff0c;方法没有缓存 计算属性得到的数据是一个ref定义的响应式数据 <template><div class"person">姓&#xff1a;<input type"text" v-model"firstName"><br>名&#xff1a;<i…

数据仓库面试题集离线实时

一、Flink面试问题集 1、flinkkafka 如何保证精准一次 配置两阶段提交 2、Flink提交方式&#xff0c; 使用pre-job还是yarn-session模式&#xff0c;以及Application模式&#xff0c;好处&#xff1f; Flink提交模式模式对比 3、Flink UV统计实现 set布隆过滤器redis 有误…