[单master节点k8s部署]30.ceph分布式存储(一)

news2024/10/6 6:03:24

ceph是一种分布式存储系统,包括块存储、对象存储和文件系统。

块存储(RBD)

块是一个字节序列,通常包含512个字节。基于块的存储接口是一种数据存储方式,通过将数据划分为块,并通过特定的接口来访问和管理这些数据块,进行高效的数据存储。常见的存储接口包括SCSI、iSCSI和NVMe等。

基于块的存储接口是旋转介质(硬盘、CD等)存储数据最常见的方法。

RADOS:即 Reliable Autonomic Distributed Object Store,是 Ceph 的底层存储系统,提供可靠的对象存储功能。而这里的块存储RBD的意思是RADOS block device。

对象存储

Ceph 的对象存储是基于 RADOS(Reliable Autonomic Distributed Object Store),允许用户通过 RESTful API 访问对象。Ceph 通过 RADOS Gateway 提供兼容 S3 和 Swift 的对象存储接口。
虽然ceph是使用块存储将数据存储在固定大小的块结构中,但是ceph的对象存储允许将数据以对象的形式存储,本质上还是块存储。每个对象包含实际数据及其相关元数据,通常通过唯一的标识符进行访问。对象存储通过 RESTful API(如 S3、Swift)进行访问,适合大规模的非结构化数据存储。在访问对象存储时,不需要通过文件系统查询地址,而是直接使用对象的标识符进行访问。
通过 Ceph 对象网关(radosgw),Ceph 提供了对象存储的功能。对象网关使得用户能够通过 HTTP 接口与 Ceph 存储集群交互,以对象的形式进行数据存储和管理。对象存储允许用户通过唯一标识符(ID)访问对象,而不是使用传统的文件路径。
通过 Ceph 对象网关,Ceph 实现了块存储和对象存储的结合,使用户能够灵活地在不同存储需求之间进行选择。用户可以选择高性能的块存储,也可以选择支持高并发访问和共享的对象存储,而不需要关注底层的存储实现细节。

文件系统(cephfs)

Ceph 文件系统使用与 Ceph 块设备相同的 Ceph 存储集群系统。
用户可以在块设备上创建 xfs 文件系统,也可以创建 ext4 等其他文件系统,Ceph 集群实现 了自己的文件系统来组织管理集群的存储空间,用户可以直接将 Ceph 集群的文件系统挂载 到用户机上使用。
虽然通过组织块设备的存储接口,可以实现高效的数据存取,但是这样组成的文件系统无法进行多处挂载和同时读写,因此有了CephFS文件系统。
Ceph 文件系统(CephFS) 是一个符合 POSIX 标准的文件系统,使用 Ceph 存储集群来存储数据。CephFS 允许多个客户端同时挂载并访问相同的文件系统,这使得它在文件共享和协作应用中表现出色。

Ceph核心组件

OSD

OSD(Object Storage Daemon) 是 Ceph 中负责存储数据的守护进程,每个 OSD 管理一个存储设备(如硬盘或 SSD)并处理数据的读写请求。它执行数据复制、恢复和再平衡操作,同时监控自身健康状态并与其他 OSD 交换心跳信息,以确保集群的稳定性和冗余性。此外,OSD 采用数据条带化存储技术,将数据分割成多个小块并分散存储在不同的 OSD 上,从而提升存储性能和容错能力,确保在部分节点故障时依然可以可靠地访问数据。

在条带化存储中,数据被分割成多个小块(或称为条带),并将这些条带分散存储在不同的 OSD(Object Storage Daemon)上。例如,假设有一个大文件,如果将它分成 4 个部分(条带),这 4 个部分可能分别存储在 4 个不同的 OSD 上。这样做的好处是提高了数据访问的并行性。例如,当一个客户端请求读取这个大文件时,可以同时从多个 OSD 中获取各个部分的数据,从而加快读取速度。

由于数据被分散存储,多个 OSD 可以同时处理 I/O 请求,因此整体的读写性能得到了提升。尤其在大文件存储或高负载情况下,这种并行访问能显著减少延迟。

Monitor(MON)

Ceph Monitor 负责维护集群的全局状态,包括 OSD 节点的状态、认证信息和集群配置。MON 的主要职责是保证 Ceph 集群的正常运行,跟踪集群中的OSD状态,管理集群配置和状态变化,维护CRUSH映射,并为 OSD 和客户端提供集群状态的最新视图。

MDS(Metadata Server)

MDS 是 Ceph 文件系统(CephFS)的元数据服务器,用于管理文件系统中的元数据(如文件名、目录结构、文件权限等)。MDS 管理CephFS的文件和目录结构,允许 CephFS 提供高效的 POSIX 文件系统访问。多个 MDS 可以并行工作,以提高大规模文件系统的元数据性能。

Ceph 对象网关(RADOS Gateway,RGW)

Ceph对象用于访问Ceph的对象存储,RGW 使 Ceph 支持与 Amazon S3 和 OpenStack Swift 兼容的对象存储 API,适合基于 HTTP 的对象存储访问。

CRUSH(Controlled Replication Under Scalable Hashing)算法

CRUSH 是 Ceph 中用于决定数据如何分布在 OSD 上的算法。与传统的中心化映射不同,CRUSH 算法通过分布式的哈希机制将数据智能分布到 OSD 中,使 Ceph 具备高可扩展性和灵活的数据再平衡能力。

  • RADOS 是 Ceph 存储系统的核心,所有的存储操作最终都在 RADOS 中进行。无论是对象存储、块存储还是文件系统,都依赖 RADOS。
  • OSD 负责具体的对象数据存储,是 RADOS 的核心执行单元。
  • MON 维护集群的全局状态并确保集群的一致性。
  • MDS 则负责 CephFS 的元数据管理,专为文件系统提供服务。
  • RGW 提供对象存储接口,允许用户通过 HTTP 协议操作 Ceph 中的对象。
  • CRUSH 算法确保数据分布在 OSD 上时的高可用性和冗余性。

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

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

相关文章

买卖股票大合集

刷题刷题往死里刷。 121. 买卖股票的最佳时机 链接 121. 买卖股票的最佳时机 思路: 二次做所以有思路了, 从头遍历数组,维持一个最小值,且遇到一个值就计算差值,且维护这个最大值为答案。 class Solution {public …

文心智能体——制作你的专属AI

随着社会的进步和互联网技术的发展,人工智能领域正蓬勃发展。最近几年关于人工智能的新闻日渐增多并且成为了当代最大的热点,所有的领域都在引进AI、训练AI、使用AI,AI正逐步融入人们的生活。从前几年chatGPT大语言模型的横空出世&#xff0c…

【CSDN入门级教程】

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

Linux进程调度和进程切换

并行(Parallel) 含义:并行是指多个任务在同一时刻同时执行。 硬件要求:需要多个处理器(如多核CPU)或者多台计算设备来实现,这些执行单元能够真正地同时处理不同的任务。例如,一个具…

vite学习教程05、vite+vue2构建本地 SVG 图标

文章目录 前言一、构建本地SVG图标详细步骤1、安装开发依赖2、配置vite2.1、配置vite.config.js2.2、封装vite引入插件脚本 解决报错:can not find package fast-glob imported 二、实际应用应用1:未封装,直接vue应用应用2:封装vu…

Self-Operating Computer:基于PyAutoGui加AI实现无人“驾驶“电脑,让Python带你走近未来世界

近年来,AI 领域不断取得突破,特别是多模态模型的出现,为计算机无人操控带来了全新的可能性。 想象一下,你的电脑不再需要你手动操作,而是可以像人一样,理解你的指令,并自动执行一系列鼠标键盘操…

【word脚注】双栏设置word脚注,脚注仅位于左栏,右栏不留白

【word脚注】双栏设置word脚注,脚注仅位于左栏,右栏不留白 调整前效果解决方法调整后效果参考文献 调整前效果 调整前:脚注位于左下角,但右栏与左栏内容对其,未填充右下角的空白区域 解决方法 备份源文件复制脚注内…

MySQL--聚合查询、联合查询、子查询、合并查询(上万字超详解!!!)

目录 一、前言二、聚合查询2.1 聚合函数2.1.1 COUNT():统计所有行2.1.2 SUM(列名) 求和2.1.3 AVG()2.1.4 MAX()、MIN() 2.2 GROUP BY子句(分组查询)2.3 HAVING 三、联合查询3.1表的笛卡儿积3.2内连接3.2.1 例题一3.2.2 例题二 3.3外连接3.3.1 右外连接3.…

【每天学个新注解】Day 16 Lombok注解简解(十五)—@FieldNameConstants

FieldNameConstants 根据属性名生成常量类的常量。 1、如何使用 加在需要根据属性名生成常量的属性上。 2、代码示例 例: FieldNameConstants public class Test {private String iAmAField;private int andSoAmI;FieldNameConstants.Exclude private int asA…

Microsoft AI部门的CEO额备忘录

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

kafka-windows集群部署

kafka-windows集群部署目录 文章目录 kafka-windows集群部署目录前言一、复制出来四个kafka文件夹二、修改集群每个kafka的配置文件四、启动zookeeper,kafka集群 前言 部署本文步骤可以先阅读这一篇博客,这篇是关于单机kafka部署测试的。本文用到的文件…

VUE2常见问题以及解决方案汇总(不断更新中)

解决vue项目中 el-table 的 row-click 事件与行内点击事件冲突,点击事件不生效(表格行点击事件和行内元素点击事件冲突)需要阻止事件冒泡 问题描述 1.点击列的编辑按钮,会触发按钮本身事件,同时会触发行点击事件 2.点…

自用Proteus(8.15)常用元器件图示和功能介绍(持续更新...)

文章目录 一、 前言二、新建工程(以51单片机流水灯为例)2.1 打开软件2.2 建立新工程2.3 创建原理图2.4 不创建PCB布版设计2.5 创建成功2.6 添加元器件2.7 原理图放置完成2.8 编写程序,进行仿真2.9 仿真 三、常用元器件图示和功能介绍3.1 元件…

春秋云镜靶场之CVE-2022-28525

1.环境搭建 我们开启环境 可以看到题目提示我们是文件上传漏洞,那么我们就进行测试 2.开启环境 我们开启环境,可以看到是一个登录页面,登录页面:一种是弱口令,一种是自己进行注册,一种是SQL注入,一种是在…

【rCore OS 开源操作系统】Rust 异常处理

【rCore OS 开源操作系统】Rust 异常处理 前言 虽然人还在旅游ing,但是学习不能停止,所以还是写点博客记录下。 对于 Rust 的异常处理,我的感受是:晦涩难懂,繁琐难记。 但是没办法,正如一位故人所说的&…

算法 | 位运算(哈希思想)

位运算 &与两个位都为1时&#xff0c;结果才为1&#xff08;有0为0&#xff09;|或两个位都为0时&#xff0c;结果才为0&#xff08;有1为1&#xff09;^异或两个位相同为0&#xff0c;相异为1~取反0变1&#xff0c;1变0<<左移各二进位全部左移若干位&#xff0c;高…

【FPGA开发】Modelsim如何给信号分组

前面已经发布过了一篇关于 Modelsim 的入门使用教程&#xff0c;针对的基本是只有一个源文件加一个仿真tb文件的情况&#xff0c;而实际的工程应用中&#xff0c;往往是顶层加多个底层的源文件结构&#xff0c;如果不对信号进行一定的分组&#xff0c;就会显得杂乱不堪&#xf…

LSM6DSV16X基于MLC智能笔动作识别(4)----中断获取智能笔状态

LSM6DSV16X基于MLC智能笔动作识别.4--中断获取智能笔状态 概述视频教学样品申请源码下载硬件准备开启INT中断参考驱动程序配置中断主程序演示 概述 LSM6DSV16X 支持通过中断&#xff08;INT&#xff09;输出 MLC&#xff08;机器学习核&#xff09;识别的动作。具体来说&#…

YOLOv8改进线性注意力模块 ICCV2023 FLatten Transformer

1,原理部分 论文地址:2308.00442 (arxiv.org) 在将 Transformer 模型应用于视觉任务时,自我注意的二次计算复杂性一直是一个持续的挑战。另一方面,线性注意力通过精心设计的映射函数近似 Softmax 操作,通过其线性复杂性提供了一种更有效的替代方案。然而,当前的线性注意…

手机sd卡数据被清空怎么恢复原状?高效、可行的恢复策略

在数字化时代&#xff0c;手机SD卡作为我们存储重要数据的“数字仓库”&#xff0c;其安全性与稳定性直接关系到我们日常生活的便捷与信息安全。然而&#xff0c;不慎操作或系统故障导致的SD卡数据清空&#xff0c;常常让人措手不及&#xff0c;焦虑万分。面对这一挑战&#xf…