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

目录

      • 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为主节点,其余均为从节点

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java项目-瑞吉外卖Day2

完善登录功能: 完善未登录不能访问/backend/index.html。使用拦截器或过滤器。 创建过滤器。 重写doFilter方法。 查看是否过滤成功。 处理流程如下: 添加员工功能: 点击保存,可以看到请求信息。 再看前端代码&a…

使用React 18、Echarts和MUI实现温度计

关键词 React 18 Echarts和MUI 前言 在本文中,我们将结合使用React 18、Echarts和MUI(Material-UI)库,展示如何实现一个交互性的温度计。我们将使用Echarts绘制温度计的外观,并使用MUI创建一个漂亮的用户界面。 本文…

MySQL - InnoDB 和 MyISAM 的索引实现的区别

InnoDB 和 MyISAM 底层都是 B 树的实现,但是二者却完全不同 。 主键索引文件存储不同 MyISAM 引擎的索引文件和数据文件是分离的,而 InnoDB 引擎的索引文件和数据文件是不分离的。 MyISAM 引擎的叶子节点存储的是数据文件的地址,而 InnoDB 的…

textarea文本框回车enter的时候自动提交表单,根据内容自动高度

切图网近期一个bootstrap5仿chatgpt页面的项目遇到的&#xff0c;textarea文本框回车enter的时候自动提交表单&#xff0c;根据内容自动高度&#xff0c;代码如下&#xff0c;亲测可用。 <textarea placeholder"Message ChatGPT…" name"" rows"&q…

Qt之Ui样式表不影响子类的配置

Qt之Ui样式表不影响子类的配置 问题 在ui界面上布局时&#xff0c;当对容器进行样试设计时&#xff0c;会对容器内其它成员对象也进行了修改 分析 对应*.ui文件内容 从这个写法来看&#xff0c;它的样式属性会影响其成员对象样式属性。 解决方法 在容器的样式表中写时适…

离散型随机变量的分布律(也称概率质量函数:probability mass function, PMF)

设是一个离散型随机变量&#xff0c;可能的取值为&#xff0c;取各个值的概率记为&#xff1a; &#xff08;1&#xff09; 其中 并且&#xff0c; 公式&#xff08;1&#xff09;就称为离散型随机变量的分布律&#xff0c;也称概率质量函数&#xff1a;probability ma…

前端怎么调用node接口---小白

1.基于node搭建express后端脚手架&#xff1a;基于node搭建express后端脚手架 2.在node里边写一个接口 // 引入express const express require(express) // 创建实例 const app express() // 创建监听端口 const port 3000 // 定义接口 app.get(/api/getData,(req,res) &g…

java 获取泛型T的class对象

问题描述 最近在封装es方法的时候遇到一个问题,就是泛型T怎么获取对应的class对象,代码如下: /*** Author: hrd* CreateTime: 2023/11/27 15:08* Description:*/ public interface IESIndex<R, P extends BaseModel> {/**** param p* param id 唯一ID* return*/IndexResp…

C#结合JavaScript实现多文件上传

目录 需求 引入 关键代码 操作界面 ​JavaScript包程序 服务端 ashx 程序 服务端上传后处理程序 小结 需求 在许多应用场景里&#xff0c;多文件上传是一项比较实用的功能。实际应用中&#xff0c;多文件上传可以考虑如下需求&#xff1a; 1、对上传文件的类型、大小…

风险评估是什么,为什么被称为保护网络安全的重要一环!

随着互联网的普及和信息技术的快速发展&#xff0c;网络已经成为人们生活和工作中不可或缺的一部分。然而&#xff0c;网络在为我们带来便利的同时&#xff0c;也存在着各种安全风险。因此&#xff0c;进行网络风险评估是保护网络安全的重要一环。而为什么说风险评估是保护网络…

2.2 C语言之常量

2.2 C语言之常量 一、常量 一、常量 类似于1234的整数常量属于int类型。 printf("%d\n", 1234);long类型的常量以l或L结尾 printf("%d\n", 123456789l);printf("%d\n", 123456789L);如果一个整数太大&#xff0c;以至于无法用int类型表示时&…

LINUX-ROS集成安装MQTT库步骤注意事项

环境信息 roottitan-ubuntu1:/home/mogo/data/jp/paho.mqtt.cpp# lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 18.04.5 LTS Release: 18.04 Codename: bionic 步骤 安装doxygen sudo apt install doxygen 构…

Tomcat从认识安装到详细使用

文章目录 一.什么是Tomact?二.Tomcat的安装1.下载安装包2.一键下载3.打开Tomcat进行测试4.解决Tomcat中文服务器乱码 三.Tomcat基本使用1.启动与关闭Tomcat2.Tomcat部署项目与浏览器访问项目 四.Tomcat操作中的常见问题1.启动Tomcat后&#xff0c;启动窗口一闪而过&#xff1f…

Day15——File类与IO流

1.java.io.File类的使用 1.1 File类的理解 File 类及本章下的各种流&#xff0c;都定义在 java.io 包下。一个 File 对象代表硬盘或网络中可能存在的一个文件或者文件目录&#xff08;俗称文件夹&#xff09;&#xff0c;与平台无关。&#xff08;体会万事万物皆对象&#xf…

金山终端安全系统V9.0 update_software_info_v2.php处SQL注入漏洞分析

文章目录 金山终端安全系统V9.0 update_software_info_v2.php处SQL注入漏洞分析前言一、漏洞描述二、影响版本三、POC四、漏洞原理分析参考链接&#xff1a; 金山终端安全系统V9.0 update_software_info_v2.php处SQL注入漏洞分析 前言 免责声明&#xff1a;请勿利用文章内的相…

idea 本身快捷键ctrl+d复制 无法像eclipse快捷键ctrl+alt+上下键,自动换行格式问题解决

问题 例如我使用ctrld 想复制如下内容 复制效果如下&#xff0c;没有自动换行&#xff0c;还需要自己在进行调整 解决 让如下快捷键第一个删除 修改成如下&#xff0c;将第二个添加ctrld 提示&#xff1a;对应想要修改的item&#xff0c;直接右键&#xff0c;remove是删…

Nginx反向代理跳过国内备案(以宝塔面板为例)

需要两台服务器&#xff0c;一台已备案或者免备案&#xff0c;一台国内主力服务器放你的项目。 先把域名解析到A服务器 然后在A服务器里配置 server {listen 80;server_name 你的域名;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_…

(3)kylin系统部署weblogic项目

一、jdk迁移 1、拷贝成功后要配置环境变量 vi /etc/profile 将jdk的目录添加进去 2、将jdk安装目录拷贝后权限会发生变化&#xff0c; 要对jdk下bin目录中的所有文件修改权限&#xff1a; chmod x ./* 回车即可 ----------------------------- 环境变量 export …

ES6原生音乐播放器(有接口)

视频展示 ES6音乐播放器 项目介绍 GutHub地址&#xff1a;GitHub - baozixiangqianchong/ES6_MusicPlayer: 音乐播放器 ES6_MusicPlayer 是基于JavaScriptES6Ajax等通过原生构建的项目。能够充分锻炼JS能力。 本项目有主页、详情页、歌单页面三部分组成 ├── assets&…