master节点k8s部署]33.ceph分布式存储(四)

news2024/12/23 3:28:21

总结ceph分布式存储(三)中提到的三种方法:

1.创建rbda,并且在创建pv的时候配置该rbda,以下代码仅展示关键信息。

[root@xianchaomaster1 ~]# cat pv.yaml 
apiVersion: v1 
kind: PersistentVolume 
metadata: 
 name: ceph-pv 
  ...
 rbd: 
   monitors: 
   - '192.168.40.201:6789'
   - '192.168.40.200:6789'
   - '192.168.40.202:6789' 
   pool: k8stest 
   image: rbda 
   user: admin 

Ceph RBD 块存储的局限性是它不支持跨节点的共享挂载。ReadWriteOnce 模式只能让 Pod 在同一个节点上共享存储,不能跨节点使用。

2.使用rbd provisioner自动分配rbda

方法1中的rbda是在ceph集群中创建的,比较麻烦。当前的方法部署了rbd provisioner,可以自动建立和管理rbda。以下代码只展示关键信息:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: rbd-provisioner  
  ...
      env:
      - name: PROVISIONER_NAME
        value: ceph.com/rbd
    serviceAccount: rbd-provisioner

storageclass与provisioner绑定,这里绑定了provisioner(第五行),并且配置了ceph 的资源池pool的名字。

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: k8s-rbd
provisioner: ceph.com/rbd
parameters:
  monitors: 192.168.40.201:6789
  adminId: admin
  adminSecretName: ceph-secret-1
  pool: k8stest1
  userId: admin
  userSecretName: ceph-secret-1
  fsType: xfs
  imageFormat: "2"
  imageFeatures: "layering"

虽然方法2比方法1更方便,但是本质上都是通过创建rbda来持久化存储,不能支持共享存取。

3.k8s挂载cephFS

cephFS和rbda是两种不一样的ceph存储格式,rbd是块存储,而cephFS是文件系统。

cephFS也是用rbd(RADOS Block Device)存储,存储在ceph的数据池中,但是cephFS还有一个元数据池metadata,用来维护cephFS的目录结构,这些元数据也是以 RADOS 对象 的形式存储的。

这种将cephFS挂载的方法不涉及rbd的创建,使用 CephFS 的场景 下,数据是通过 Ceph 提供的 文件系统接口 进行读写,而不是通过 块存储接口。因此,CephFS 挂载过程中并不涉及 RBD 的创建,CephFS 和 RBD 是两种独立的存储方式。

apiVersion: v1
kind: PersistentVolume
metadata:
  name: cephfs-pv
spec:
  capacity:
    storage: 1Gi
  accessModes:
  - ReadWriteMany
  cephfs:
    monitors:  # Ceph 集群的 monitor 地址
    - 192.168.40.201:6789
    path: /lucky  # 挂载的路径是 CephFS 中的 /lucky 目录
    user: admin
    secretRef:
      name: cephfs-secret
  persistentVolumeReclaimPolicy: Recycle

4.cephFS自动管理

cephFS也可以像2中一样配置一个provisioner,从而可以和storageclass绑定,进行自动管理。这里可以通过ceph CSI插件来管理。

三种存储方式的回顾:

RADOSReliable Autonomic Distributed Object Store)是 Ceph 的底层存储系统。OSDCeph 中的一个核心组件,代表 Object Storage Daemon(对象存储守护进程)。它是 Ceph 集群中的数据存储单元,负责存储数据、处理数据的复制、恢复、回填、重新平衡等操作,并向集群报告存储状态。每个 OSD 守护进程运行在一个物理或虚拟磁盘上,是 Ceph 集群中实际存储数据的实体。

一个典型的ceph系统会包含大量的OSD,集群中的数据会自动分布在这些 OSD 上,确保数据的高可用性和容错性。但是OSD也不是存储数据本身,他负责管理一个内存设备(硬盘或是SSD)。

这里要澄清的是,RADOS对象是存储在 Ceph 中的基本数据单元,你将数据写入 Ceph 集群时,数据会被拆分成多个 RADOS 对象,并通过 RADOS 系统 分布存储在多个 OSD 上。

RBD技术:

RBD块存储技术是基于RADOS存储系统的存储技术,RBD 将数据存储在 RADOS 对象中,并提供块设备接口,将这些对象抽象为虚拟的块设备(类似于硬盘)。

cephFS技术:

CephFS 是 Ceph 提供的分布式文件系统,它也是建立在 RADOS 对象存储系统之上的。CephFS 将数据存储在 RADOS 对象 中,但它提供的是 文件系统语义,包括文件、目录、权限、文件系统层次结构等。CephFS 的用户可以通过标准的文件系统接口(如 POSIX 文件系统接口)来访问数据,类似于使用本地的文件系统(如 ext4、XFS 等)。

可以说,RBD是在RADOS上提供了接口技术,从而让RADOS对象看起来像一个独立的存储设备,符合RBD的全称 RADOS block device,变成了一个单独的块。而cephFS可以看作在RADOS上提供了一个文件系统,这个文件系统本身(metadata)也是按照RADOS对象来存储的。

对象存储:
对象存储 直接通过一个唯一的对象 ID 来存储和检索数据,没有传统的文件系统层次结构。在 Ceph 中,对象存储RADOS Gateway(RGW) 提供。RGW 是 Ceph 的一个组件,它通过标准的对象存储接口(如 S3Swift)提供对 RADOS 对象的访问。

对象存储的元数据可以是自定义的键值对,用户可以根据自己的需求附加任意的元数据。例如,可以为对象添加属性(如文件类型、创建时间、标签、所有者、访问权限等),这些元数据与对象一起存储,并且可以在对象检索时一起获取。这里的元数据与cephFS的元数据不同,cephFS的元数据是固定的、结构化的,适用于文件系统操作。它包含了文件的路径、大小、权限、时间戳等信息,文件系统的元数据字段是预定义的,用于管理文件系统的层次关系和文件属性。

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

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

相关文章

MySQL多表查询:行子查询

先看我的表数据 dept表 emp表 行子查询 子查询返回的结果是一行&#xff08;可以是多列&#xff09;, 这种子查询称为行子查询 常用的操作符: , <>, IN, NOT IN 例子1. 查询与“张无忌” 的薪资及直属领导相同的员工信息 拆解成两个问题 a. 查询"张无忌"…

基于SpringBoot+Vue+MySQL的汽车租赁系统

系统展示 用户前台界面 管理员后台界面 系统背景 随着城市化和交通需求的不断增加&#xff0c;汽车租赁业务成为了现代社会的一个重要组成部分。汽车租赁服务为人们提供了一种灵活便捷的交通解决方案&#xff0c;让用户在无需购买车辆的情况下&#xff0c;根据实际需要租赁车辆…

端口冲突的解决方案以及SpringBoot自动检测可用端口demo

端口冲突的解决方案 端口冲突通常发生在尝试运行两个或多个应用程序或服务时&#xff0c;它们尝试使用同一个端口号&#xff0c;导致系统无法正确分配资源。 各种端口错误 你是否遇到过下面这些报错信息呢&#xff1f; Windows 系统报错&#xff1a; 系统错误 1004 套接字操作…

图像转3D视差视频:DepthFlow、kling

1、DepthFlow 参看: https://github.com/BrokenSource/DepthFlow 通过深度图实现图像3d效果 安装 https://brokensrc.dev/get/pypi/#installing pip insatll depthflow shaderflow broken-source pianola spectronote turbopipe 使用 1、下载项目 git clone https://gith…

约数个数约数之和

好久没发文章了.......不过粉丝还是一个没少...... 今天来看两道超级恶心的数论题目&#xff01; No.1 约数个数 No.2 约数之和 先来看第一道&#xff1a;约数个数 题目描述 给定 n 个正整数 ai​,请你输出这些数的乘积的约数个数,答案对 10^97 取模 输入格式 第一行包含…

Python_文件处理

一个完整的程序一般都包括数据的存储和读取&#xff1b;我们在前面写的程序数据都没有进行实际的存储&#xff0c;因此python解释器执行完数据就消失了。实际开发中&#xff0c;我们经常需要从外部存储介质&#xff08;硬盘、光盘、U盘等&#xff09;读取数据&#xff0c;或者将…

微信小程序开发-目录结构介绍

文章目录 一&#xff0c;目录结构介绍1&#xff0c;主体文件2&#xff0c;页面文件3&#xff0c;修改页面渲染模式 二&#xff0c;新增页面1&#xff0c;右键“pages”-新建文件夹2&#xff0c;右键文件夹-新建page3&#xff0c;新建页面的快捷方式 四&#xff0c;基础库设置 一…

①EtherNet/IP转ModbusTCP, EtherCAT/Ethernet/IP/Profinet/ModbusTCP协议互转工业串口网关

EtherCAT/Ethernet/IP/Profinet/ModbusTCP协议互转工业串口网关https://item.taobao.com/item.htm?ftt&id822721028899 协议转换通信网关 EtherNet/IP 转 Modbus TCP GW型号系列 MS-GW25 概述 简介 MS-GW25 是 EtherNet/IP 和 Modbus TCP 协议转换网关&#xff0c;为…

C语言 | 第十一章 | static 日期函数 数学函数

P 100 变量作用域基本规则 2023/1/9 一、基本介绍 概念&#xff1a;所谓变量作用域&#xff08;Scope&#xff09;&#xff0c;就是指变量的有效范围。 函数内部声明/定义的局部变量&#xff0c;作用域仅限于函数内部。 #include<stdio.h> void sayHello() {char nam…

【C++】—— 继承(上)

【C】—— 继承&#xff08;上&#xff09; 1 继承的概念与定义1.1 继承的概念1.2 继承定义1.2.1 定义格式1.2.2 继承父类成员访问方式的变化 1.3 继承类模板 2 父类和子类对象赋值兼容转换3 继承中的作用域3.1 隐藏规则3.2 例题 4 子类的默认成员函数4.1 构造函数4.1.1 父类有…

稀缺是否意味着价值

省流版&#xff1a;物以稀为贵。 稀少并不等于需求。 更新为&#xff1a;物以希为贵。 有需求就意味着有价值。 不管是20&#xff1a;80中的20&#xff0c;还是10&#xff1a;90中的10&#xff0c;还是2&#xff1a;98中的2。 所以&#xff0c;这个模型里一定会出现1这类人&a…

MambaAD 实验部分讲解

4 实验 4.1 设置&#xff1a;数据集、指标和细节 数据集&#xff08;6个&#xff09; 1.MVTec-AD&#xff1a; 包含5种类型的纹理和10种类型的对象&#xff0c;总共5,354张高分辨率图像。 实验&#xff1a; 3,629张正常图像被指定为训练。 剩下的 1,725 张图像被保留用于测试…

AWS MySQL 升级(三)—— TAZ - 近0停机的小版本升级方案

与AWS交流了解到的新方案&#xff0c;没有实际试过&#xff0c;所以本篇主要是些原理 一、 TAZ的含义 TAZ实际上就是 3 AZ&#xff0c;扩展一些就是 Multi-AZ DB Cluster&#xff0c;即在3个可用区部署DB&#xff0c;具备两个只读备用实例。 二、 TAZ的主要用途 1. 近0停机的小…

C++之模版进阶篇

目录 前言 1.非类型模版参数 2.模版的特化 2.1概念 2.2函数模版特化 2.3 类模板特化 2.3.1 全特化和偏特化 2.3.2类模版特化应用实例 3.模版分离编译 3.1 什么是分离编译 3.2 模板的分离编译 3.3 解决方法 4. 模板总结 结束语 前言 在模版初阶我们学习了函数模版和类…

单细胞组学大模型(6)--- LangCell,医学/细胞文本知识增强模型效果

–https://arxiv.org/abs/2405.06708 代码开源&#xff1a;https://github.com/PharMolix/OpenBioMed LangCell: Language-Cell Pre-training for Cell Identity Understanding 留意更多内容&#xff0c;欢迎关注微信公众号&#xff1a;组学之心 研究团队和研究单位 聂再清…

Python画笔案例-077 绘制 颜色饱和度测试

1、绘制 颜色饱和度测试 通过 python 的turtle 库绘制 颜色饱和度测试,如下图: 2、实现代码 绘制 颜色饱和度测试,以下为实现代码: """饱和度渐变示例,本程序需要coloradd模块支持,请在cmd窗口,即命令提示符下输入pip install coloradd进行安装。本程序演…

如何彻底掌握 JavaScript 设计模式 23 大核心模式助你提升编程水平

如何彻底掌握 JavaScript 设计模式 23 大核心模式助你提升编程水平 设计模式是解决特定问题的常用解决方案&#xff0c;它们可以帮助开发者编写更清晰、可维护、可扩展的代码。在 JavaScript 中&#xff0c;常见的设计模式可以分为三大类&#xff1a;创建型模式、结构型模式 和…

javaweb - 请求响应02

数组集合参数 数组参数&#xff1a;请求参数名与形参数组名称相同且请求参数为多个&#xff0c;定义数组类型形参即可接收参数。 RequestMapping("/arrayParam")public String arrayParam(String[] hobby) {for (String s : hobby) {System.out.println(s);}retu…

xtu oj 神经网络

回顾 Dedicated to you. AB III问题 H: 三角数问题 G: 3个数等式 数组下标查询&#xff0c;降低时间复杂度1405 问题 E: 世界杯xtu 数码串 题目 某神经网络模型是如下 1.一共有m层&#xff0c;每层都有几个神经元&#xff0c;从上到下编号为1到n。 2.第 i 层的神经元只有第 i …

基于Python的自然语言处理系列(26):Get to the Point Summarization

在本篇文章中,我们将实现经典的"Get to the Point"模型,该模型最初发表于 Get to the Point: Summarization with Pointer-Generator Networks。这是当时最著名的摘要生成模型之一,至今仍有很多人使用其Pointer-Generator架构作为他们模型的一部分。 1. 模型简介…