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

embedded/2024/10/9 1:54:44/

总结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_NAMEvalue: ceph.com/rbdserviceAccount: 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:6789adminId: adminadminSecretName: ceph-secret-1pool: k8stest1userId: adminuserSecretName: ceph-secret-1fsType: xfsimageFormat: "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: 1GiaccessModes:- ReadWriteManycephfs:monitors:  # Ceph 集群的 monitor 地址- 192.168.40.201:6789path: /lucky  # 挂载的路径是 CephFS 中的 /lucky 目录user: adminsecretRef:name: cephfs-secretpersistentVolumeReclaimPolicy: 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.ppmy.cn/embedded/124061.html

相关文章

pytorch之自动求导

在 PyTorch 的 autograd 功能中,主要有几个核心概念和操作: 1. torch.Tensor 和 .requires_grad 属性 torch.Tensor: 这是 PyTorch 中的核心数据结构,类似于 NumPy 数组,但也可用于 GPU 加速计算。.requires_grad: 这是 Tensor …

SpringBoot实现:星之语明星周边销售平台开发指南

1系统概述 1.1 研究背景 如今互联网高速发展,网络遍布全球,通过互联网发布的消息能快而方便的传播到世界每个角落,并且互联网上能传播的信息也很广,比如文字、图片、声音、视频等。从而,这种种好处使得互联网成了信息传…

python log函数怎么用

log() 返回 x 的自然对数。 语法 以下是 log() 方法的语法: import math math.log(x[, base]) 注意:log()是不能直接访问的,需要导入 math 模块,通过静态对象调用该方法。 参数 x -- 数值表达式。 base -- 可选,底…

【Swift官方文档】7.Swift集合类型

集合类型 使用数组、集合和字典来组织数据。Swift 提供了三种主要的集合类型:数组、集合和字典,用于存储值的集合。数组是有序的值集合。集合是无序的唯一值集合。字典是无序的键值对集合。 Swift 中的数组、集合和字典始终清晰地指明它们可以存储的值…

【可答疑】基于51单片机的PWM控制智能台灯设计(含仿真、代码、报告、演示视频等)

✨哈喽大家好,这里是每天一杯冰美式oh,985电子本硕,大厂嵌入式在职0.3年,业余时间做做单片机小项目,有需要也可以提供就业指导(免费)~ 🐱‍🐉这是51单片机毕业设计100篇…

华为仓颉语言入门(9):for-in表达式

for-in 表达式用于遍历序列,它会依次访问序列中的每个元素,直到遍历完成。它常用于处理列表、数组或其他集合类型,能够有效简化代码,减少重复劳动。其基本语法如下: for (循环变量 in 序列) {循环体 }在 for-in 表达式中,每次循环都会检查是否遍历了序列中的所有元素。如…

实验 | 使用本地大模型从论文PDF中提取结构化信息

非结构文本、图片、视频等数据是待挖掘的数据矿藏, 在经管、社科等研究领域中谁拥有了_从非结构提取结构化信息的能力_,谁就拥有科研上的数据优势。正则表达式是一种强大的文档解析工具,但它们常常难以应对现实世界文档的复杂性和多变性。而随…

面试官:如何实现分布式系统的限流?

限流的概念以及作用我前一篇文章已经做了介绍:并发限流算法的实践 目录 限流的几种算法 : 1、令牌桶算法 2、漏桶算法 3. 滑动时间窗口计数器算法 5. 全局限流 6. 客户端限流 7. API网关限流 8. 熔断与降级 本篇重点: 具体实现: 限流的几种算法 : 这里主要讲在分…