[单master节点k8s部署]31.ceph分布式存储(二)

Ceph配置

Ceph集群通常是一个独立的存储集群,可以部署在 Kubernetes 集群之外。Ceph 提供分布式存储服务,能够通过 RADOS、CephFS、RBD(块存储)、和 RGW(对象存储)等方式与 Kubernetes 集成。即使 Ceph 部署在 Kubernetes 外部,它依然可以通过存储插件(如 Rook 或 CSI)来为 Kubernetes 提供存储服务。这种架构允许 Ceph 集群和 Kubernetes 集群独立扩展,且 Ceph 可以被多个 Kubernetes 集群或者其他系统(如 OpenStack)同时使用。

教程中配置ceph集群有三个节点,分别是master节点,monitor节点和OSD(object storage deamon)节点。

master节点主要用于管理 Ceph 集群,可以作为管理员机器来执行 Ceph 的命令行工具(如 ceph CLI)和集群的配置操作。这台机器一般会安装 Ceph 部署工具(如 ceph-deploy),但它通常不需要承担存储和监控的职责。事实上master节点不是必须的,可以在ceph集群的任意节点安装ceph CLI,但为了方便管理和保持隔离,通常会保留一个专门的管理节点。

Ceph Monitor (MON) 节点负责管理集群的健康状态,保存集群的元数据(比如集群成员、映射关系、状态信息等)。Monitor 节点会参与选举,决定集群是否可以正常操作。

OSD(Object Storage Daemon)是 Ceph 集群中存储数据的主要组成部分。每一个 OSD 实际上代表一个存储硬盘或者存储分区,负责读写数据、复制数据和心跳检测。

事实上一个高可用的ceph集群需要至少三个monitor和 OSD节点来保证数据复制和高可用性。Monitor节点可以完成仲裁,而越多的OSD节点可以保证冗余和高效的数据存取。

[root@master1-admin ~]# yum install python-setuptools ceph-deploy -y #在 master1-admin、node1-monitor 和 node2-osd 节点安装 ceph
[root@master1-admin]# yum install ceph ceph-radosgw -y
[root@node1-monitor ~]# yum install ceph ceph-radosgw -y
[root@node2-osd ~]# yum install ceph ceph-radosgw -y

ceph-deploy:是 Ceph 的部署工具,用于从管理节点(通常是 admin 节点)管理和部署 Ceph 集群。它允许你从一个节点管理整个 Ceph 集群,包括创建 OSD、Monitor 节点等。

在 master节点安装了ceph-deploy,并且在所有节点安装ceph 和ceph-rados gateway。

配置master

创建一个目录,用于保存ceph-deploy生成的配置文件信息:
在目录中执行命令生成一个master节点,一个monitor节点和一个osd节点

[root@master1-admin ceph ~]# cd /etc/ceph
[root@master1-admin ceph]# ceph-deploy new master1-admin node1-monitor node2-
osd
[root@master1-admin ceph]# ls
#生成了如下配置文件
ceph.conf ceph-deploy-ceph.log ceph.mon.keyring

修改ceph.conf配置文件:

[global]
fsid = af5cd413-1c53-4035-90c6-95368eef5c78
mon_initial_members = node1-monitor
mon_host = 192.168.40.201
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
filestore_xattr_use_omap = true
osd_pool_default_size = 2
mon clock drift allowed = 0.500
mon clock drift warn backoff = 10
把 osd_pool_default_size = 2 加入[global]段,这样只有 2 个 osd 也能达到 active+clean 状态。
mon clock drift allowed #监视器间允许的时钟漂移量默认值 0.05
mon clock drift warn backoff #时钟偏移警告的退避指数。默认值 5
ceph 对每个 mon 之间的时间同步延时默认要求在 0.05s 之间,这个时间有的时候太短
了。所以这里将这两个参数设置为0.5和10。

配置monitor

在master节点初始化monitor:

[root@master1-admin]# ceph-deploy mon create-initial

收集所有密钥: 

配置OSD

 在master节点上将三个节点的目录配置为OSD的存储目录。

[root@ master1-admin ceph]# cd /etc/ceph/
[root@master1-admin ceph]# ceph-deploy osd prepare master1-admin:/dev/sdb 
[root@master1-admin ceph]# ceph-deploy osd prepare node1-monitor:/dev/sdb 
[root@master1-admin ceph]# ceph-deploy osd prepare node2-osd:/dev/sdb

运行成功后激活OSD,并查看状态:

[root@master1-admin ceph]# ceph-deploy osd activate master1-admin:/dev/sdb1
[root@master1-admin ceph]# ceph-deploy osd activate node1-monitor:/dev/sdb1
[root@master1-admin ceph]# ceph-deploy osd activate node2-osd:/dev/sdb1
[root@ master1-admin ceph]# ceph-deploy osd list master1-admin node1-monitor
node2-osd

激活成功的状态: 

创建文件系统 

在指定这些节点上创建 MDS 服务,帮助管理文件系统的元数据。

mds 是 Ceph 文件系统 (CephFS) 中的 元数据服务器(Metadata Server,MDS)。在 CephFS 中,元数据服务器负责管理和存储文件系统的元数据,例如目录结构、文件权限和其他与文件系统操作相关的信息。元数据与实际文件数据分开存储和管理,因此 MDS 主要处理与文件系统操作相关的请求,例如列出目录、查找文件、创建和删除文件等。

通常是 1 到 2 个活动 MDS 节点就可以处理大量的文件系统请求。大多数情况下,不需要每个 OSD 节点都运行 MDS 服务。 

[root@ master1-admin ceph]# ceph-deploy mds create master1-admin node1-monitor
node2-osd

上面的命令会在 master1-adminnode1-monitornode2-osd 这三个节点上各创建一个 MDS 实例。也就是说,最终你会有 3 个 MDS 实例,每个节点一个。 

首先在master节点上通过osd创建池,每一个池包含26个PG。这里的池不一定在master节点上。创建数据池时,Ceph 会使用 CRUSH 算法自动决定数据的分布,而无需手动指定要在哪些 OSD 上创建池。Ceph 会根据池的配置和 OSD 的状态自动选择合适的 OSD 来存储数据。

[root@master1-admin ceph]# ceph osd pool create cephfs_data 26
pool 'cephfs_data' created
[root@master1-admin ceph]# ceph osd pool create cephfs_metadata 26
pool 'cephfs_metadata' created

PG(Placement Group) 是 Ceph 用来分配和管理数据的单位。每个池中的对象会被分配到一个 PG 中,PG 再被分配到 OSD 上。PG 数量的选择对集群性能和数据均衡性有很大影响。

创建一个文件系统fs,名称叫做xianchao,其中元数据池是ceph_metadata,数据池是ceph_data。随后列举文件系统,发现我们刚才创建的这个文件系统。

[root@master1-admin ceph]# ceph fs new xianchao cephfs_metadata cephfs_data
new fs with metadata pool 2 and data pool 1
[root@master1-admin ceph]# ceph fs ls
name: xianchao, metadata pool: cephfs_metadata, data pools: [cephfs_data]

CephFS 允许你在创建文件系统时配置多个数据池。每个数据池可以用于存储不同类型的数据,以满足不同的需求。例如,你可以创建一个池用于存储用户数据,另一个池用于存储日志或临时文件。CephFS 必须有一个元数据池,用于存储文件系统的元数据,如文件名、目录结构、权限等。这是管理文件系统结构和操作的关键。

[root@ master1-admin ceph]# ceph mds stat # 查看 mds 节点状态
xianchao:1 {0=master1-admin=up:active} 2 up:standby

0=master1-admin 指的是 master1-admin 节点正在运行一个 MDS 实例,标识符为 0。
up:standby 表示当前有一个 MDS 处于**待命(standby)**状态,作为活跃 MDS 的备份。如果当前活跃的 MDS 出现问题,这个 standby MDS 将自动接管,保持文件系统的高可用性。

查看ceph健康状态:

[root@master1-admin ceph]# ceph -s
cluster cd296a0b-1f61-4b9f-8cc3-0a57dfab00eb
health HEALTH_OK
monmap e1: 3 mons at {master1-admin=192.168.40.200:6789/0,node1-monitor=192.168.40.201:6789/0,node2-osd=192.168.40.202:6789/0}
election epoch 4, quorum 0,1,2 master1-admin,node1-monitor,node2-osd
fsmap e7: 1/1/1 up {0=node2-osd=up:active}, 2 up:standby
osdmap e20: 3 osds: 3 up, 3 in
flags sortbitwise,require_jewel_osds
pgmap v51: 116 pgs, 3 pools, 2068 bytes data, 20 objects
323 MB used, 164 GB / 164 GB avail
116 active+clean

MGR

Mgr 是 Ceph 集群的管理守护进程,它负责收集和报告集群状态、性能指标,并提供集群管理接口。模块化架构使得 Mgr 可以扩展和自定义,管理员可以根据需求加载不同的管理模块。

K8S挂载Ceph

kubernetes 要想使用 ceph,需要在 k8s 的每个 node 节点安装 ceph-common,把 ceph节点上的 ceph.repo 文件拷贝到 k8s 各个节点/etc/yum.repos.d/目录下,然后在 k8s 的各个节点 yum install ceph-common -y
部署Ceph的网段需要和K8s在一个网段,保证可以通信。
[root@master1-admin ~]# scp /etc/yum.repos.d/ceph.repo master:/etc/yum.repos.d/
[root@master1-admin ~]# scp /etc/yum.repos.d/ceph.repo node1:/etc/yum.repos.d/
[root@master]yum install ceph-common -y
[root@mnode1]yum install ceph-common -y

创建ceph rbd

将 ceph 配置文件拷贝到 k8s 的控制节点和工作节点
[root@master1-admin ~]# scp /etc/ceph/* master:/etc/ceph/
[root@master1-admin ~]# scp /etc/ceph/* node1:/etc/ceph/
[root@master1-admin ~]# ceph osd pool create k8srbd1 56
pool 'k8srbd' created
[root@master1-admin ~]# rbd create rbda -s 1024 -p k8srbd1
[root@master1-admin ~]# rbd feature disable k8srbd1/rbda object-map fast-diff 
deep-flatten

创建了一个资源池叫做k8srbd1,并创建了块存储rbda,大小为 1024MB,并存储在 k8srbd1 池中。

禁用了RBD映像的几个功能。RBD 是块设备的类型,而 rbda 是该类型的一个具体实例。你可以创建多个 RBD 镜像,比如 rbdarbdb,它们都是 RBD 的具体表现。

值得注意的是,在ceph中创建文件系统的时需要先创建metadata和data,然后创建文件系统,指定metadata和data,metadata 会由MDS管理。

ceph osd pool create cephfs_metadata 128
ceph osd pool create cephfs_data 128
ceph fs new mycephfs cephfs_metadata cephfs_data

而创建rbd的时候只需要按照上述方法创建就可以。

pod挂载ceph rbd

[root@xianchaomaster1 ~]# vim pod.yaml
apiVersion: v1
kind: Pod
metadata:name: testrbd
spec:containers:- image: nginxname: nginximagePullPolicy: IfNotPresentvolumeMounts:- name: testrbdmountPath: /mntvolumes:- name: testrbdrbd:monitors:- '192.168.40.201:6789'- '192.168.40.200:6789'- '192.168.40.202:6789'pool: k8srbd1image: rbdafsType: xfsreadOnly: falseuser: adminkeyring: /etc/ceph/ceph.client.admin.keyring

因为上面我们将ceph的配置文件都复制到k8s节点,所以在目录下可以找到ceph 的keyring

这里的rbda只能被挂载到一个pod,如果需要在别的pod里面挂载rbd镜像,可以在资源池里面创建别的rbd镜像。

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

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

相关文章

逼近理论及应用精解【9】

文章目录 全卷积模型定义数学原理与公式架构典型结构应用优点挑战例题 ANNSENet(Squeeze-and-Excitation Networks)定义数学原理与公式计算定理架构例子例题 ResNet(残差网络)定义数学原理与公式计算定理算法过程架构例子例题 参考…

PostgreSQL学习笔记五:数据库基本操作

在 PostgreSQL 中,您可以执行一系列基础操作来管理数据库、备份和恢复数据。以下是一些常用的命令和步骤: 创建数据库 使用以下命令创建新数据库: CREATE DATABASE database_name;您也可以在创建时指定数据库所有者和其他参数:…

基于深度学习的手势控制模型

关于深度实战社区 我们是一个深度学习领域的独立工作室。团队成员有:中科大硕士、纽约大学硕士、浙江大学硕士、华东理工博士等,曾在腾讯、百度、德勤等担任算法工程师/产品经理。全网20多万粉丝,拥有2篇国家级人工智能发明专利。 1. 项目简…

Nexpose 6.6.271 发布下载,新增功能概览

Nexpose 6.6.271 for Linux & Windows - 漏洞扫描 Rapid7 Vulnerability Management, release Sep 26, 2024 请访问原文链接:https://sysin.org/blog/nexpose-6/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.or…

安全工具 | 搭建带有 Web 仪表板的Interact.sh

介绍 Interactsh 是一个用于检测带外交互的开源工具。它是一种旨在检测导致外部交互的漏洞的工具。本文将主要介绍在子域上设置私有 Interact.sh 服务器以及部署其 Web 应用程序。只需一个 AWS EC2 或 VPS 实例和一个域。 要求 •具有静态IP的AWS EC2 / VPS •拥有自己的域…

实例讲解电动汽车VIN写入规则及Simulink建模方法(三)——VIN设置状态反馈及Simulink建模方法

目录 一、整车VIN设置状态反馈规则 二、整车VIN设置状态反馈设置策略 1、VIN设置状态判定 2、VIN设置状态反馈发送 三、整车VIN设置状态反馈Simulink建模 1、VIN设置状态判定 2、VIN设置状态反馈发送 3、整车VIN设置状态反馈设置完整Simulink模型 四、总结 一、整车VI…

python 实现最短路径广度优先搜索算法

最短路径广度优先搜索算法介绍 最短路径广度优先搜索(Breadth-First Search, BFS)算法通常不直接用于寻找加权图中的最短路径,因为它在搜索过程中不会考虑边的权重。然而,在无权图中(即所有边的权重都相等&#xff09…

Lua在Nginx中的开发实践

Lua在Nginx中的开发实践 引言 在现代Web开发中,性能和可扩展性是开发者关注的关键因素。Nginx因其轻量级、高并发处理能力而成为流行的Web服务器,而Lua则是一种高效的脚本语言,广泛应用于嵌入式系统和游戏开发。将Lua与Nginx结合&#xff0…

Node.js入门——fs、path模块、URL端口号、模块化导入导出、包、npm软件包管理器

Node.js入门 1.介绍 定义:跨平台的JS运行环境,使开发者可以搭建服务器端的JS应用程序作用:使用Node.Js编写服务器端代码Node.js是基于Chrome V8引擎进行封装,Node中没有BOM和DOM 2.fs模块-读写文件 定义:封装了与…

WIFI网速不够是不是光猫的“路由模式”和“桥接模式”配置错了?

光猫(光纤调制解调器)是一种用于将光纤信号转换为数字信号的设备,通常用于家庭或企业网络中。光猫可以在不同的工作模式下运行,其中最常见的两种模式是“路由模式”和“桥接模式”。以下是这两种模式的详细解释及其优缺点。 一、路…

python发邮件附件:配置SMTP服务器与认证?

python发邮件附件技巧?Python发送多附件邮件的方法? Python作为一种强大的编程语言,提供了丰富的库和工具来实现这一功能。AokSend将深入探讨如何使用Python发邮件附件,并详细介绍配置SMTP服务器与认证的关键步骤。 python发邮件…

结合vueuse实现图片懒加载

介绍 为什么要有懒加载? 在一个网页中如果有很多张图片,那么用户初进这个页面的时候不必一次性把所有图片都加载出来,否则容易造成卡顿和浪费。应该是,用户的视图页面滑到该图片的位置,然后再把该图片加载出来。 前置…

通过阿里云Milvus与PAI搭建高效的检索增强对话系统

阿里云Milvus现已无缝集成于阿里云PAI平台,一站式赋能用户构建高性能的RAG(Retrieval-Augmented Generation)对话系统。您可以利用Milvus作为向量数据的实时存储与检索核心,高效结合PAI和LangChain技术栈,实现从理论到…

Java 设计模式 构建者模式

文章目录 1 概念2 使用方法1 创建步骤:2 使用步骤: 参考 1 概念 builder模式又叫建造者模式,属于创建型模式 作用:将一个复杂对象的构建与他的表示分离,可以一步一步构建对象,而不是使用构造函数构造一次…

第69期 | GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区,集成了生成预训练Transformer(GPT)、人工智能生成内容(AIGC)以及大语言模型(LLM)等安全领域应用的知识。在这里,您可以找…

react 知识点汇总(非常全面)

React 是一个用于构建用户界面的 JavaScript 库,由 Facebook 开发并维护。它的核心理念是“组件化”,即将用户界面拆分为可重用的组件。 React 的组件通常使用 JSX(JavaScript XML)。JSX 是一种 JavaScript 语法扩展,…

【PostgreSQL】实战篇——用户管理、角色和权限控制的高级用法及技巧

数据库中用户管理、角色和权限控制不仅仅是基础的安全措施,更是实现复杂应用需求和优化数据库性能的重要手段。 通过深入理解这些概念,数据库管理员可以更有效地管理用户访问、确保数据安全,并优化系统性能。以下是对这些概念的详细介绍以及…

功能安全之雨刮器开关设计

前言 随着工业和汽车领域自动化的出现,人们对功能安全的需求有增无减。所有的工业应用都有功能安全要求,尤其是在工厂自动化和控制系统中。 在汽车行业,尽管安全气囊和制动系统在多年前就具备了功能安全性,但随着电气化水平的提高…

AWS云上运维实战:提升效率、安全性与成本优化

引言 随着越来越多的企业将其基础设施迁移到云端,AWS (Amazon Web Services) 已成为领先的云计算平台之一。然而,在云环境中进行高效、安全且具有成本效益的运维仍然是一个挑战。本文将深入探讨AWS云上运维的最佳实践,涵盖自动化、监控、安全性、成本优化和灾难恢复等关键领…

HCIP——GRE和MGRE

目录 VPN GRE GRE环境的搭建 GRE的报文结构 GRE封装和解封装报文的过程 GRE配置​编辑 R1 R2 GRE实验​​​​​​​​编辑 MGRE 原理 MGRE的配置 R1 R2 R3 R4 查看映射表 抓包 MGRE环境下的RIP网络 综合练习​编辑 VPN 说到GRE,我们先来说个大…