ceph基础

news/2024/10/15 9:02:00/

ceph_0">ceph基础搭建

存储基础

传统的存储类型

  • DAS设备:

SAS,SATA,SCSI,IDW,USB
无论是那种接口,都是存储设备驱动下的磁盘设备,而磁盘设备其实就是一种存储是直接接入到主板总线上去的。直连存储。

  • NAS设备:

NFS CIFS FTP
几乎所有的网络存储设备基本上都是以文件系统样式进行使用,无法进一步格式化操作。nas是共享的。

  • SAN:

SCSI协议 FC SAN ISCSI
基于san方式提供给客户端操作系统的是一种块设备接口,这些设备间主要要通过scsi协议来完成正常的通信。scsi的结构类似于tcp/ip协议 也有很多层,但是scsi协议主要是用来进行存储数据操作的。既然是分层方式实现的,那就是说,有部分层可以被代替。比如,将物理层基于fc方式来实现,就形成了fcsan,如果基于以太网方式来传递,就形成了iscsi模式,整体共享,单个独享。

DAS 和 SAN 都是以块的方式来管理存储的

传统的存储方式问题

  • 存储处理能力不足
  • 存储空间能力不足
  • 单点问题

ceph_27">ceph简介

ceph是一个多版本存储系统,它把每一个待管理的数据流(例如一个文件),切分为一到多个固定大小的对象数据,并以其为原子单位完成数据库存取

ceph_30">ceph特性

ceph_33">ceph的组件

组件解析
MonitorsCephMonitor(守护进程ceph-mon)维护集群状态的映射,包括监视器映射,管理器映射,OSD映射,MDS映射和CRUSH映射.这些映射是Ceph守护进程相互协调所需的关键集群状态。监视器还负责管理守护进程和客户端之间的身份验证。通常至少需要三个监视器才能实现冗余和高可用性。基于paxos协议实现节点间的信息同步
ManagersCeph管理器(守护进程ceph-mgr)负责跟踪运行时指标和Ceph集群的当前状态,包括存储利用率,当前性能指标和系统负载。Ceph管理器守护进程还托管基于Python的模块来管理和公开Ceph集群信息,包括基于web的ceph仪表板和rest api。高可用性通常至少需要两个管理器。基于raft协议实现节点间的信息同步
CephOSDsCeph OSD(object storage daemon)对象存储守护进程(ceph-osd)存储数据,处理数据复制,回复,重新平衡,并通过检查其他ceph osd 守护进程的心跳来向ceph监视器和管理器来提供一些监控信息。通常至少需要3个ceph osd来实现冗余和高可用性。本质上osd就是一个个host主机上的存储磁盘
MDSsceph元数据服务器(MDS,ceph-mds)代表ceph文件系统存储元数据。ceph元数据服务器允许posix(为应用程序提供的接口标准)文件系统用户执行基本命令(如ls,find等),而不会给ceph存储集群带来巨大的负担

Ceph 将数据作为对象存储在逻辑存储池中。使用 CRUSH算法,Ceph 计算出哪个归置组应该包含该对象,并进一步计算出哪个 Ceph OSD Daemon 应该存储该归置组。CRUSH 算法使 Ceph 存储集群能够动态扩展、重新平衡和恢复。

img

组件及其关系

  1. RADOS(Reliable Autonomic Distributed Object Storec)
  • 功能:RADOS是ceph的底层存储引擎,负责数据的存储和管理。它提供了高度可靠和自我修复的对象存储能力
  • 作用:RADIS处理数据的复制,重平衡和回复,确保数据在故障情况下仍然可用。他是所有上层组件(RBD CephFS RADOSGW)的基础
  1. LIBRADOS
  • 功能:LIBRADOS是一个客户端库,允许应用程序直接与RADOS进行交互。它支持多种编程语言(c,c++,java,python,ruby,php)
  • 作用:通过librados,开发者可以构建自己的应用程序,直接操作RADOS存储,从而实现定制化的数据存取
  1. RBD(RADOS Block Device)
  • 功能:RBD提供块存储功能,允许虚拟机和数据库等应用使用块设备
  • 作用:RBD利用RADOS的特性,提供高性能和可扩展的快存储。RBD通过linux的内核客户端和qemu/kvm的驱动程序进行访问,是的虚拟机能够直接使用ceph存储
  1. CEPHFS(Ceph File System)
  • 功能: CEPHFS 是一个符合 POSIX 标准的分布式文件系统,支持 Linux 内核客户端和 FUSE。
  • 作用: CEPHFS 允许用户通过文件系统接口访问存储在 RADOS 中的数据,使得 Ceph 不仅限于对象存储,还可以作为文件系统使用。
  1. RADOSGW(RADOS Gateway)
  • 功能: RADOSGW 是基于存储桶的 REST 网关,兼容 S3 和 Swift API。
  • 作用: RADOSGW 提供了一种简单的方式来通过 RESTful 接口访问 RADOS 存储。它使得用户能够利用现有的 S3 和 Swift 应用程序,轻松访问 Ceph 存储。

逻辑关系和作用

  • 基础层(RADOS): 所有其他组件(LIBRADOS、RBD、CEPHFS、RADOSGW)都依赖于 RADOS 提供的存储能力和数据管理功能。

  • 客户端访问(LIBRADOS、RBD、CEPHFS、RADOSGW):

    • 应用程序可以通过 LIBRADOS 直接访问 RADOS,进行数据操作。
    • RBD 和 CEPHFS 提供了块和文件系统存储的抽象,使得用户可以以熟悉的方式使用 Ceph。
    • RADOSGW 则使得对象存储的使用更加简便,通过兼容 S3 和 Swift 的接口,吸引更多开发者和用户。
  • 自我修复和管理: RADOS 的自我修复和管理能力使得 Ceph 能够在节点故障或数据损坏时,自动处理数据的复制和恢复,确保高可用性和数据一致性。

以下是使用短视频的例子来解释 Ceph 的五个组件(RADOS、RADOSGW、RBD、CEPHFS、LIBRADOS):

1. RADOS

概念:RADOS(Reliable Autonomic Distributed Object Store)是 Ceph 的底层存储层,负责数据的存储、复制和管理。

短视频例子:所有用户上传的短视频文件首先存储在 RADOS 中。RADOS 负责将这些视频数据分散存储在多个 OSD(对象存储设备)上,并确保数据的可靠性和可用性。例如,当用户上传视频时,RADOS 会将视频数据划分为多个对象,并将它们分散存储在不同的节点上。


2. RADOSGW

概念:RADOSGW 是一个提供 S3 和 Swift 兼容的 RESTful API 的网关,允许应用程序通过 HTTP 协议访问 RADOS 存储。

短视频例子:短视频平台的前端应用可以通过 RADOSGW 上传和下载视频。比如,用户通过应用选择一个视频文件并点击上传,应用使用 RADOSGW 的 S3 API 发送 HTTP 请求,将视频存储到 Ceph 中。当用户观看视频时,应用会通过 RADOSGW 获取视频文件的 URL,并从 Ceph 下载视频。


3. RBD

概念:RBD(RADOS Block Device)是一个提供分布式块存储的组件,支持将对象存储作为块设备使用。

短视频例子:在短视频的后台,某些处理任务(如转码)可能需要更高效的存储访问。此时,可以使用 RBD 将 RADOS 存储作为虚拟机的块设备。


http://www.ppmy.cn/news/1539361.html

相关文章

科研绘图系列:R语言绘制中国地理地图

文章目录 介绍加载R包导入数据图a图b图c图d系统信息介绍 文章提供了绘制图a,图b和图d的数据和代码。该图展示了不同省份的物种分布情况。 加载R包 library(geojsonsf) library(sf) library(ggplot2) library(RColorBrewer) library(ggspatial) library(</

“DataOps+大模型”——数造科技在大模型时代的数据开发创新探索

写在前面 自《“数据要素x”三年行动计划》印发以来&#xff0c;各界积极投身于探索数据开发的新技术、新应用场景和新模式&#xff0c;力求通过挖掘数据要素的价值来推动新型生产力的蓬勃发展。在这个过程中&#xff0c;以大模型为核心的人工智能技术为数据开发工作带来了全新…

Android Studio简易项目|随机选择器(类似转盘)

一、背景 为了强化对flowlayout流式布局的理解和简易安卓项目架构结构的理解&#xff0c;写一个小项目&#xff0c;随机选择器&#xff0c;控制可见等 二、项目代码 2.1流式布局 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns…

技术成神之路:设计模式(二十)装饰模式

介绍 装饰模式&#xff08;Decorator Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许在不改变对象自身的情况下&#xff0c;动态地为对象添加额外的职责。这个模式通常用于增强或改变对象的功能。 1.定义 装饰模式通过创建一个装饰类&#xff0c;将功能动态地添加…

深入解析TCP/IP协议:网络通信的基石

1. 引言 TCP/IP 协议是现代计算机网络的核心&#xff0c;它为互联网上的设备提供了通信的基础。在网络通信中&#xff0c;TCP/IP 协议栈是无处不在的&#xff0c;无论是个人设备的浏览器请求&#xff0c;还是大型分布式系统的内部通信&#xff0c;都依赖于它的稳定、高效与可靠…

电子电气架构---软件定义汽车,产业变革

我是穿拖鞋的汉子&#xff0c;魔都中坚持长期主义的汽车电子工程师。 老规矩&#xff0c;分享一段喜欢的文字&#xff0c;避免自己成为高知识低文化的工程师&#xff1a; 屏蔽力是信息过载时代一个人的特殊竞争力&#xff0c;任何消耗你的人和事&#xff0c;多看一眼都是你的不…

理解和解决TCP 网络编程中的粘包与拆包问题

1. 什么是TCP网络编程中的粘包和拆包现象&#xff1f; 在TCP网络编程中&#xff0c;粘包和拆包问题是常见的现象&#xff0c;通常会导致数据传输中的错误。这些现象的发生源于TCP协议的特点。TCP是面向流的协议&#xff0c;它保证数据传输的可靠性&#xff0c;但不会像UDP那样…

java的LinkedList

java的LinkedList 什么是LinkedListLinkedList的模拟实现LinkedList的使用ArrayList和LinkedList的区别 什么是LinkedList LinkedList的官方文档 LinkedList的底层是双向链表结构&#xff0c;由于链表没有将元素存储在连续的空间中&#xff0c;元素存储在单独的结点中&#xf…