ceph介绍

一、前言

    Ceph 是一个完全分布式的系统,它将数据分布在整个集群中的多个节点上,以实现高可用性和容错性,ceph支持对象存储、块存储、文件存储所以被称为统一存储,ceph的架构由以下组件组成:mon、mgr、osd、mds、cephfs、rgw,以下就来详细的介绍ceph各个组件的功能和ceph集群的工作原理

二、特点

可扩展性:

Ceph 可以轻松地扩展到数千甚至数百万台服务器,并处理大规模的数据存储需求

它采用分布式架构,允许用户根据需要动态添加或移除存储节点,以满足不断增长的存储需求

高可用性:

Ceph 采用了数据冗余备份和自动修复机制,确保数据的可靠性和容错性

它支持多副本和纠删编码等技术,以防止数据丢失和数据损坏

数据分布式存储:

Ceph 将数据分布存储在集群中的多个节点上,并使用 CRUSH 算法确保数据的均衡分布和负载均衡

数据分布存储提高了系统的并发访问性能,同时降低了存储节点的压力和单点故障的风险

数据强一致性:

当客户端向 Ceph 写入数据时,Ceph 会等待所有副本都成功写入后才返回写入成功的响应。这确保了数据写入的原子性和一致性

如果任何一个副本写入失败,Ceph 会自动尝试重新写入数据,直到所有副本写入成功

统一存储接口:

Ceph 提供了统一的存储接口,包括对象存储(RADOS)、块存储(RBD)和文件系统(CephFS)等,使得用户可以使用相同的存储平台处理不同类型的数据和应用场景

二、组件介绍

Monitor(监视器):

监视器维护了集群的状态和拓扑信息

负责监控 OSD 的健康状态和群集的运行状况

提供了客户端和其他组件所需的集群元数据信息

在集群中动态添加或删除 OSD 时,负责维护和更新集群拓扑

Object Storage Daemon(OSD):

存储实际的数据对象,并提供数据访问的接口

负责数据的读取、写入、复制和恢复等操作

使用 CRUSH 算法确定数据的存储位置,并实现数据的均衡分布

具有自我修复功能,能够在节点故障或数据损坏时自动恢复数据

Manager(mgr):

管理器负责监控和管理集群的状态和性能。

提供了集群管理、性能调优和故障排除等功能。

支持插件机制,允许用户扩展和定制管理器的功能

CephFS(Ceph 文件系统):

提供了一个分布式文件系统,允许用户在整个集群中共享和访问文件

支持 POSIX 兼容的文件系统接口,使得 CephFS 可以集成到现有的应用程序和工具中

使用元数据服务器(MDS)来管理文件系统的元数据,并确保文件系统的一致性和可靠性

RADOS Gateway(RGW):

提供了一个面向对象的存储接口,允许用户通过 HTTP 或 S3/Swift API 访问 Ceph 存储

作为对象存储服务的门户,提供了对象存储、数据复制和访问控制等功能

支持多租户和多协议,能够同时处理不同类型的数据和请求

MDS:

MDS 负责管理文件系统的元数据,包括目录结构、文件属性和权限信息等

当客户端请求读取或写入文件时,MDS 负责将请求转发到正确的 OSD 上,并确保数据的一致性和完整性

三、ceph存储资源划分

Ceph 的资源划分主要涉及到存储池、PG(Placement Group)、CRUSH 映射等方面

存储池(Pool):

存储池是 Ceph 中用于管理数据的逻辑单元,用户可以在存储池中定义数据的副本数、CRUSH 规则、数据压缩等策略

存储池可以根据数据的不同需求划分,例如可以根据数据的访问模式、重要性和性能要求等进行划分

每个存储池都可以包含多个 PG

Placement Group(PG):

PG 是 Ceph 中数据的分布单元,用于实现数据的分布和复制

PG 根据 CRUSH 算法将数据均匀地分布在 OSD 上,并确保数据的复制和冗余

PG 的数量和大小对集群的性能和可靠性有重要影响,用户可以根据需要调整 PG 的数量和大小

pg的数量越多数据分布的越均衡

CRUSH 映射:

CRUSH 是 Ceph 集群中用于数据分布和故障域管理的算法

CRUSH 算法根据设定的规则将数据分布在不同的 OSD 上,并考虑了数据的复制和故障域的因素

CRUSH 映射将存储池中的 PG 映射到实际的 OSD 上,并负责数据的读取和写入操作

Ceph 存储过程

Ceph 将文件切分为大小相等的小块,默认为4M,并将这些小块通过hash算法分别存储到不同的 PG 中,再根据存储池配置的副本数,默认为3个,通过crush算法分配到不同的osd

 

四、后端存储引擎的介绍

新版本的ceph中默认使用bluestore,相对来说filestore还需要调用文件系统,性能没有bluestore好,bluesotre可以直接使用磁盘作为osd

FileStore:

FileStore 是 Ceph 最早引入的 OSD 后端存储引擎,它使用文件系统来管理 OSD 中的数据FileStore 将每个对象存储为一个文件,使用 XFS 或者 ext4 等文件系统来管理这些文件

FileStore 的优点包括成熟稳定、易于部署和管理,适用于旧版本的 Ceph 集群和传统的硬盘存储

BlueStore:

BlueStore 是 Ceph 新一代的 OSD 后端存储引擎,它直接管理 OSD 中的存储设备,不依赖于传统的文件系统

BlueStore 将数据以对象的形式直接存储到底层设备上,并使用 RocksDB 来管理元数据

BlueStore 的优点包括更高的性能、更低的存储开销、更好的数据完整性保障和更好的管理灵活性

BlueStore 适用于新版本的 Ceph 集群和要求更高性能和可靠性的应用场景,特别是在 SSD 和 NVMe 存储设备上的表现更加优越

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.tpcf.cn/bicheng/3679.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度学习Day-14:RNN实现心脏病预测

🍨 本文为:[🔗365天深度学习训练营] 中的学习记录博客 🍖 原作者:[K同学啊 | 接辅导、项目定制] 要求: 本地读取并加载数据;了解循环神经网络RNN的构建过程;测试集accuracy达到87%…

自己搭建的大疆无人机RTMP流媒体服务延迟太大

流程:无人机摄像头->图传->遥控器->流媒体服务器->取流播放,延迟有10秒来的,大家有没有什么好的方案。

C# 结合JavaScript实现手写板签名并上传到服务器

应用场景 我们最近开发了一款笔迹测试功能的程序(测试版),用户在手写板上手写签名,提交后即可测试出被测试者的心理素质评价分析。类似功能的场景还比如,在银行柜台办理业务,期间可能需要您使用手写设备进…

2023最新!nginx安装配置保姆级教程

2023最新!nginx安装配置保姆级教程 这篇文章了参考了这位的教程:https://blog.csdn.net/qq_36838700/article/details/129971765 导航 文章目录 2023最新!nginx安装配置保姆级教程一、nginx下载二、编译安装nginx安装pcre安装openssl、zlib、gcc依赖安装nginx 二、拓展 一、n…

低空经济+飞行汽车:载人无人机技术详解

低空经济与飞行汽车是近年来备受关注的话题。随着科技的不断进步,尤其是无人机技术的快速发展,飞行汽车已经从科幻概念逐渐变为现实。以下是对低空经济与飞行汽车,特别是载人无人机技术的详解: 1. 低空经济: 定义&…

isListEqual方法比较

这个方法有改进空间吗&#xff1f; private static boolean isListEqual(List<String> l0, List<String> l1) {if (l0 null && l1 null)return true;if (l0 l1)return true;if (l0 null || l1 null)return false;if (l0.size() ! l1.size())return f…

ADB 命令获取Android 设备的屏幕分辨率和屏幕像素密度

1. 获取屏幕分辨率和像素密度 获取 Android 设备屏幕分辨率&#xff1a; adb shell wm size Physical size: 1440x3120 获取android设备屏幕密度(DPI)&#xff1a; adb shell wm density Physical density: 560 打印屏幕相关的详细信息&#xff1a; adb shell dumpsys wi…

javaEE--多线程学习-进程调度

进程调度不明白&#xff1f;看这一篇文章就够了&#xff0c;逻辑衔接严密&#xff0c;文末附有关键面试题&#xff0c;一个海后的小故事让你瞬间明白这里面的弯弯绕绕&#xff01; 目录 1.什么是进程&#xff1f; 2.进程控制块&#xff08;PCB&#xff09; 2.1 一个PCB就是一…

顺序表 (C语言版)

顺序存储&#xff1a; 把逻辑上相邻的元素存储在物理位置上也相邻的存储单元中&#xff0c;元素之间的关系由存储单元的邻接关系来体现。 顺序表的特点&#xff1a; 能在O(1)的时间内找到第i个元素存储密度高拓展容量不方便插入&#xff0c;删除操作不方便 C语言中可使用&am…

已解决java.lang.IllegalThreadStateException: 非法线程状态异常的正确解决方法,亲测有效!!!

已解决java.lang.IllegalThreadStateException: 非法线程状态异常的正确解决方法&#xff0c;亲测有效&#xff01;&#xff01;&#xff01; 目录 问题分析 场景描述 报错原因 解决思路 解决方法 检查线程状态 正确管理线程生命周期 异常处理 总结 博主v&#xff1a…

JavaEE >> Spring Boot(1)

Spring Boot 前面已经介绍了 Spring &#xff0c;是为了简化 Java 程序开发的&#xff0c;而在前面创建的过程中就会发现其实 Spring 还是有点复杂&#xff0c;此时 Spring Boot 就诞生了&#xff0c; Spring Boot 是为了简化 Spring 程序开发的。 Spring Boot 即 Spring 脚手…

history日志发送到远程日志服务器

主要目标是设置history信息包含谁、源IP、在哪个目录下、做了什么工作&#xff0c;并实时将日志发送到日志审计服务。 &#xff08;一&#xff09;基础知识 1.logger 是一个shell接口&#xff0c;可以通过该接口使用rsyslog的日志模块 2./etc/profile.d/history.sh比配置/etc…

Android某钉数据库的解密分析

声明 1 本文章中所有内容仅供学习交流&#xff0c;抓包内容、敏感网址、数据接口均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 目的 1 解密app数据库&#xff0c;用数据库软件打开查看信息内容 入手…

【后端】python与django的开发环境搭建指南

安装Git 双击Git 客户端安装文件&#xff0c;在安装页面&#xff0c;单击“Next” 在安装路径选择页面&#xff0c;保持默认&#xff0c;单击“Next” 在功能组件选择页面&#xff0c;保持默认&#xff0c;单击“Next” 在开始菜单文件夹设置页面&#xff0c;保持默认&am…

浅谈rDNS在IP情报建设中的应用

在当今数字化世界中&#xff0c;互联网已经成为人们日常生活和商业活动中不可或缺的一部分。在这个庞大而复杂的网络生态系统中&#xff0c;IP地址是连接和识别各种网络设备和服务的基础。然而&#xff0c;仅仅知道一个设备的IP地址并不足以充分理解其在网络中的角色和行为。为…

复现SMO算法:理解SVM、SMO和高斯核【一、了解相关概念】

任务要求 复现带有高斯核的SMO算法。在LIBSVM中找到一个包含超过1000条数据的数据集。在保持超参数一致的情况下&#xff0c;确保自己实现的模型的精度与LIBSVM相比&#xff0c;相差不超过1%。 复现SMO算法&#xff1a;理解SVM、SMO和高斯核 在这篇博客中&#xff0c;我将深…

win11 桌面图标突然多 绿色小对勾,如何去除掉

突然间桌面图标每个上面都有一个绿色小狗狗&#xff0c;如下图所示&#xff0c;以为中病毒了&#xff0c;后来一查不是。 去除方法 1、鼠标在桌面空白处单击&#xff0c;选择“个性化”&#xff08;或直接按“windows键I键”&#xff09;调出设置菜单。 2、在左侧选择“主题”…

oracle varchar2类型如何转化为date类型

ALTER TABLE unit_bin_h ADD TRANS_TIME_TEMP DATE; –处理中文 上午/下午 –UPDATE unit_bin_h SET TRANS_TIME_TEMP TO_CHAR(TO_TIMESTAMP(trans_time, ‘dd-mon-rr hh.mi.ss.ff am’), ‘yyyy-MM-dd hh24:mi:ss’) WHERE TRANS_TIME LIKE ‘%下午’ OR TRANS_TIME LIKE ‘%…

C++:const成员和取地址操作符

目录 一、const成员 二、取地址及const取地址操作符重载 一、const成员 将const修饰的“成员函数”称之为const成员函数&#xff0c;const修饰类成员函数&#xff0c;实际修饰该成员函数 隐含的this指针&#xff0c;表明在该成员函数中不能对类的任何成员进行修改。 注&…

21.基础乐理-等音调扩展篇、为何一共十五个大调

首先 等音调 的概念是基于 等音 的概念&#xff0c;比如下图中的音名&#xff1a;因为用的按键相同&#xff0c;音名不同&#xff0c;所以被称为等音调 然后音名一共有35个&#xff0c;如下图&#xff1a;所以在理论上它会有35个大调&#xff0c;但是人总是倾向于选择简单、简洁…