初识Ceph --组件、存储类型、存储原理

news2024/11/26 12:02:06

目录

      • ceph
        • 组件
        • 存储类型
          • 块存储
          • 文件存储
          • 对象存储
        • 存储过程

ceph

Ceph(分布式存储系统)是一个开源的分布式存储系统,设计用于提供高性能、高可靠性和可扩展性的存储服务,可以避免单点故障,支持块存储、对象存储以及文件系统存储应用。使用C++语言开发。ceph能够通过网络将数据分散存储在多台独立设备上

ceph具有可扩展性:

  • 水平扩展,新的节点加入集群后只需要和原有集群连接到同一网络,无需对现有节点进行重大修改或中断

  • 节点扩展后,旧数据会自动迁移到新节点,实现负载均衡,避免单点过热的情况

  • 使用crush算法来确定数据在存储集群中的位置

组件

在这里插入图片描述

  • OSD: OSD(Object Storage Daemon)用于集群中所有对象与数据的存储,处理集群数据的复制、恢复、负载均衡。也能够自动检测存储磁盘的监控状况,定期向Monitor节点报告自身的状态和性能指标

    读取数据时,多台OSD会同时对外传输数据,于是传输的速度会比较块

    当ceph集群设定数据有两个副本时,至少需要两个OSD进程即OSD节点,集群才能达到active+clean状态

  • MON: MON(Monitor)负责维护Ceph存储集群的状态信息、配置信息和监控信息,维护集群的cluster MAP二进制表,保证集群数据的一致性,cluster MAP描述了对象块存储的物理位置,以及一个将设备聚合到物理位置的桶列表

  • MDS: MDS(Metadata Server)元数据服务器,提供元数据计算,缓存与同步。在ceph中,元数据也是存储在osd节点中的,mds类似于元数据的代理缓存服务器。mds是 CephFS(Ceph 文件系统)的组成部分,cep块设备和ceph对象存储不使用mds

  • Manager: ceph-mgr,用于收集ceph集群状态、性能指标、配置信息。

    manager通过RESTful API和Web-based Dashboard向外提供信息

ceph结构包含两个部分

ceph client,访问ceph底层服务或组件,对外提供各种接口

ceph node,底层服务提端,也就是ceph存储集群

存储类型
块存储

块存储(RBD - RADOS Block Device),存储数据以块为单位,可被映射为块设备,适用于直接附加到虚拟机或物理服务器。类似于传统的硬盘

块存储通过Raid与LVM等手段,对数据提供了保护,多块磁盘组合可以提高容量,也可以做逻辑盘,提高读写效率

但主机之间无法共享数据

块存储应用于docker容器、虚拟机磁盘分配;日志存储;文件存储

文件存储

文件存储(CephFS)可以克服块存储无法共享的问题。如FTP、NFS服务器

文件存储允许多个节点通过标准文件系统接口访问相同的文件和目录。它支持文件的读写、权限控制等 POSIX 文件系统语义

对象存储

一个文件具有属性metadata,也称元数据,包含该文件的大小、修改时间、存储路径等

在对象存储(RADOS)中,数据以对象的形式存储,每个对象都有唯一的标识符。它会将文件的元数据独立出来,控制节点叫元数据服务器(服务器+对象存储管理软件),主要负责存储对象的属性。文件的数据部分主要由OSD存储

当用户访问对象时,会首先访问元数据服务器,元数据服务器反馈对象存储在哪些OSD,用户再去访问那些OSD读取数据

对象存储主要用于存储大量非结构化数据,如图像、音频、视频、日志等

存储过程

在这里插入图片描述

  1. 用户访问一个文件File,其存储的数据会被切分成多个对象Objects,Objects的大小可以由管理员调整
  2. 每个对象都有一个唯一的oid,这个iod由文件file的id,ino,和分片objects的编号ono组成。oid可以唯一标识每个不同的对象,并存储了对象与文件的存储关系
  3. PG,placement group归置组是一个逻辑概念,它在数据寻址时相当于数据库中的索引,每个对象都会固定映射进一个PG中。所以当需要寻找一个对象时,只需要先找到对象所属的PG,然后遍历这个PG,无需遍历所有对象。并且在迁移数据时,也是以PG作为基本单位迁移
  4. 对象映射进PG,首先会对oid做hash取出特征码,用特征码与PG的数量去模,得到序号pgid
  5. 最后PG会根据管理员设置的副本数量进行复制,通过crush算法存储到不同的OSD节点上,第一个OSD为主节点,其余均为从节点

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

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

相关文章

在IDEA中创建Maven项目时没有src文件、不自动配置文件

错误示例: 没有src文件,并且没有自动下载相关的配置文件 对我这中情况无效的解决办法: ①配置好下列图中圈出来的文件 ②在VM选项中输入:“-DarchetypeInternal” ③点击应用,再点击确定 ④还是不行 解决办法&#x…

为 Compose MultiPlatform 添加 C/C++ 支持(2):在 jvm 平台使用 jni 实现桌面端与 C/C++ 互操作

前言 在上篇文章中我们已经介绍了实现 Compose MultiPlatform 对 C/C 互操作的基本思路。 并且先介绍了在 kotlin native 平台使用 cinterop 实现与 C/C 的互操作。 今天这篇文章将补充在 jvm 平台使用 jni。 在 Compose MultiPlatform 中,使用 jvm 平台的是 An…

React antd如何实现<Upload>组件上传附件再次上传已清除附件缓存问题

最近遇到一个React上传组件的问题,即上传附件成功后,文件展示处仍然还有之前上传附件的缓存信息,需要解决的问题是,要把上一次上传的附件缓存在上传成功或者取消后,可以进行清除 经过一顿试错,终于解决了这…

模块一——双指针:611.有效三角形的个数

文章目录 题目描述算法原理解法一:暴力求解(超时)解法二:排序+双指针 代码实现 题目描述 题目链接:611.有效三角形的个数 算法原理 解法一:暴力求解(超时) 三层for循环枚举出所有的三元组&…

Linux常见压缩指令小结

为什么需要压缩技术 我们都知道文件是以byte作为单位的,如果我们的文件仅仅在低位占一个1 0000 0001这种情况我们完全可以压缩一下,将高位的0全部抹掉即可。 如上所说是一种压缩技术,还有一种就是将1111(此处省略96个)一共100个1&#xff0…

键盘打字盲打练习系列之成为大师——5

一.欢迎来到我的酒馆 盲打,成为大师! 目录 一.欢迎来到我的酒馆二.关于盲打你需要知道三.值得收藏的练习打字网站 二.关于盲打你需要知道 盲打系列教程,终于写到终章了。。。一开始在看网上视频,看到up主熟练的打字技巧&#xff…

mapstruct个人学习记录

mapstruct核心技术学习 简介入门案例maven依赖 IDEA插件单一对象转换测试结果 mapping属性Spring注入的方式测试 集合的映射set类型的映射测试map类型的映射测试 MapMappingkeyDateFormatvalueDateFormat 枚举映射基础入门 简介 在工作中,我们经常要进行各种对象之…

综述 2022-Genome Biology:“AI+癌症multi-omics”融合方法benchmark

Leng, Dongjin, et al. "A benchmark study of deep learning-based multi-omics data fusion methods for cancer." Genome biology 23.1 (2022): 1-32. 被引次数:34作者单位 红色高亮表示写论文中可以借鉴的地方 一、方法和数据集 1. 3个数据集&…

【数学建模】《实战数学建模:例题与讲解》第八讲-回归分析(含Matlab代码)

【数学建模】《实战数学建模:例题与讲解》第八讲-回归分析(含Matlab代码) 回归分析基本概念经典多元线性回归(MLR)主成分回归(PCR)偏最小二乘回归(PLS)建模过程应用和优势…

Vue3中的defineModel

目录 一、vue3的defineModel介绍 二、defineModel使用 (1)在vite.config.js中开启 (2)子组件 (3)父组件 一、vue3的defineModel介绍 为什么要使用到defineModel呢?这里有这样一种场景&…

面向对象类的设计和实现

实验目标 本实验任务是实现 Java 类的设计和实现,实验任务是根据每年新生的报到流程, 设计一 个学生管理系统,实现学生的注册和报到功能。设置类的基本属性,实现 getter 和 setter 方 法,通过 set 方法设置…

【第三届】:“玄铁杯”RISC-V应用创新大赛(基于yolov5和OpenCv算法 — 智能警戒哨兵)

文章目录 前言 一、智能警戒哨兵是什么? 二、方案流程图 三、硬件方案 四、软件方案 五、演示视频链接 总结 前言 最近参加了第三届“玄铁杯”RISC-V应用创新大赛,我的创意题目是基于 yolov5和OpenCv算法 — 智能警戒哨兵 先介绍一下比赛&#xf…

FFmpeg抽取视频h264数据重定向

根据视频重定向技术解析中的 截获解码视频流的思路,首先需要解决如何输出视频码流的问题。 目前只针对h264码流进行获取,步骤如下: 打开mp4文件并创建一个空文件用于存储H264数据 提取一路视频流资源 循环读取流中所有的包(AVPacket),为…

pytorch中的归一化:BatchNorm、LayerNorm 和 GroupNorm

1 归一化概述 训练深度神经网络是一项具有挑战性的任务。 多年来,研究人员提出了不同的方法来加速和稳定学习过程。 归一化是一种被证明在这方面非常有效的技术。 1.1 为什么要归一化 数据的归一化操作是数据处理的一项基础性工作,在一些实际问题中&am…

【c++随笔16】reserve之后,使用std::copy会崩溃?

【c随笔16】reserve之后,使用std::copy会崩溃? 一、reserve之后,使用std::copy会崩溃?二、函数std::reserve、std::resize、std::copy1、std::resize:2、std::reserve:3、std::copy: 三、崩溃原因分析方案1、你可以使…

【概率方法】重要性采样

从一个极简分布出发 假设我们有一个关于随机变量 X X X 的函数 f ( X ) f(X) f(X),满足如下分布 p ( X ) p(X) p(X)0.90.1 f ( X ) f(X) f(X)0.10.9 如果我们要对 f ( X ) f(X) f(X) 的期望 E p [ f ( X ) ] \mathbb{E}_p[f(X)] Ep​[f(X)] 进行估计&#xff0…

极速学习SSM之SpringMVC笔记

文章目录 一、SpringMVC简介1、什么是MVC2、什么是SpringMVC3、SpringMVC的特点 二、HelloWorld1、开发环境2、创建maven工程a>添加web模块b>打包方式:warc>引入依赖 3、配置web.xmla>默认配置方式b>扩展配置方式 4、创建请求控制器5、创建springMVC…

ansible中的角色

1.理解roles在企业中的定位及写法 查看创建目录结构 ansible - galaxy list 指定新的位置 vim ansible.cfg roles_path ~/.ansible/roles 建立项目 cd roles/ ansible-galaxy init vsftpd tree vsftpd/ 编辑任务执行(顺序)文件 vim vsftpd/tas…

selenium库的使用

来都来了给我点个赞收藏一下再走呗🌹🌹🌹🌹🌹 目录 一、下载需要用到的python库selenium 二、selenium的基本使用 1.在python代码引入库 2.打开浏览器 3.元素定位 1)通过id定位 2)通过标…

Go开发运维:Go服务发布到K8S集群

目录 一、实验 1.Go服务发布到k8s集群 二、问题 1.如何从Harbor拉取镜像 一、实验 1.Go服务发布到k8s集群 (1)linux机器安装go(基于CentOS 7系统) yum install go -y (2)查看版本 go version (3)创…