ceph的集群管理
0 环境说明
| ip地址 | 主机名 | 额外硬盘 | 是否加入ceph集群 |
|---|---|---|---|
| 10.0.0.141 | ceph141 | sdb 300G,sdc 500G | 是 |
| 10.0.0.142 | ceph142 | sdb 300G,sdc 500G, sdd 1000G | 否 |
| 10.0.0.143 | ceph143 | sdb 300G,sdc 500G | 否 |
在上一篇文章中,已经成功地初始化了一个ceph管理节点ceph141。接下来要做的是把ceph142、ceph143节点给添加到集群。
在新的主机加入集群前,还不能使用,因为资源列表是空的,
[root@ceph141~]# ceph orch device ls
HOST PATH TYPE DEVICE ID SIZE AVAILABLE REFRESHED REJECT REASONS
ceph141 /dev/sdb hdd ATA_VMware_Virtual_S_01000000000000000001 300G Yes 6m ago
ceph141 /dev/sdc hdd ATA_VMware_Virtual_S_02000000000000000001 500G Yes 6m ago
[root@ceph141~]# ceph orch host ls
HOST ADDR LABELS STATUS
ceph141 10.0.0.141 _admin
1 hosts in cluster
查看ceph状态,目前只有这一个刚刚初始化的节点

1 ceph节点的添加和删除
orch 是 orchestrator 的缩写,表示编排器(Orchestrator)
1.查看集群主机只有1个,接下来把其他节点添加进去。添加操作也可以在web页面上进行
[root@ceph141~]# ceph orch host ls
HOST ADDR LABELS STATUS
ceph141 10.0.0.141 _admin
1 hosts in cluster
2.把ssh秘钥放到其他服务器上,方便免密登录
[root@ceph141 ~]# ssh-copy-id -f -i /etc/ceph/ceph.pub ceph142
[root@ceph141 ~]# ssh-copy-id -f -i /etc/ceph/ceph.pub ceph143
3.添加其他节点到集群
[root@ceph141~]# ceph orch host add ceph142 10.0.0.142
Added host 'ceph142' with addr '10.0.0.142'
[root@ceph141~]# ceph orch host add ceph143 10.0.0.143
Added host 'ceph143' with addr '10.0.0.143'
4.再次查看主机列表,3个节点已经都在列表中了
[root@ceph141~]# ceph orch host ls
HOST ADDR LABELS STATUS
ceph141 10.0.0.141 _admin
ceph142 10.0.0.142
ceph143 10.0.0.143
3 hosts in cluster
5.测试删除一个节点,删除后记得添加回来
[root@ceph141~]# ceph orch host rm ceph143
Error EINVAL: Not allowed to remove ceph143 from cluster. The following daemons are running in the host:
type id
-------------------- ---------------
ceph-exporter ceph143
crash ceph143
node-exporter ceph143
mon ceph143 Please run 'ceph orch host drain ceph143' to remove daemons from host
2 添加OSD设备到集群
如果一个OSD(对象存储设备)想要加入ceph集群,要求满足2个条件
- 设备未被使用,已经分区使用的磁盘无法加入
- 设备的存储大小必须大于5GB
1.添加OSD之前环境查看当前OSD设备
[root@ceph141~]# ceph orch device ls
HOST PATH TYPE DEVICE ID SIZE AVAILABLE REFRESHED REJECT REASONS
ceph141 /dev/sdb hdd ATA_VMware_Virtual_S_01000000000000000001 300G Yes 45s ago
ceph141 /dev/sdc hdd ATA_VMware_Virtual_S_02000000000000000001 500G Yes 45s ago
ceph142 /dev/sdb hdd ATA_VMware_Virtual_S_01000000000000000001 300G Yes 7m ago
ceph142 /dev/sdc hdd ATA_VMware_Virtual_S_02000000000000000001 500G Yes 7m ago
ceph142 /dev/sdd hdd ATA_VMware_Virtual_S_03000000000000000001 1024G Yes 7m ago
ceph143 /dev/sdb hdd ATA_VMware_Virtual_S_01000000000000000001 300G Yes 6m ago
ceph143 /dev/sdc hdd ATA_VMware_Virtual_S_02000000000000000001 500G Yes 6m ago
[root@ceph141~]# ceph osd tree
ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF
-1 0 root default
2.把上述设备进行添加。磁盘命名根据实际情况添加
daemon表示以守护进程添加
[root@ceph141 ~]# ceph orch daemon add osd ceph141:/dev/sdb
[root@ceph141 ~]# ceph orch daemon add osd ceph141:/dev/sdc
[root@ceph141 ~]# ceph orch daemon add osd ceph142:/dev/sdb
[root@ceph141 ~]# ceph orch daemon add osd ceph142:/dev/sdc
[root@ceph141 ~]# ceph orch daemon add osd ceph142:/dev/sdd
[root@ceph141 ~]# ceph orch daemon add osd ceph143:/dev/sdb
[root@ceph141 ~]# ceph orch daemon add osd ceph143:/dev/sdc
3.查看添加好的OSD以及LVM

[root@ceph141~]# ceph orch device ls
Has a FileSystem, Insufficient space (<10 extents) on vgs, LVM detected
Has a FileSystem, Insufficient space (<10 extents) on vgs, LVM detected[root@ceph141~]# lsblk | egrep -A 1 '^sdb|^sdc'
sdb 8:16 0 300G 0 disk
└─ceph--ae423c15--8ff6--4e72--af97--ac909ca57fac-osd--block--6fc95050--e75e--4833--845b--b0e7698e1543 253:0 0 300G 0 lvm
sdc 8:32 0 500G 0 disk
└─ceph--00a6dda3--90da--46ba--8962--31835455173a-osd--block--2f6e56ff--9926--4c4e--8931--a780eb353431 253:1 0 500G 0 lvm
由此可见,ceph底层是基于LVM技术的
4.再次查看ceph集群状态。命令cephs tatus等于ceph -s
[root@ceph141~]# ceph status cluster:id: 12fad866-9aa0-11ef-8656-6516a17ad6ddhealth: HEALTH_OKservices:mon: 3 daemons, quorum ceph141,ceph142,ceph143 (age 10m)mgr: ceph141.yvswvf(active, since 10m), standbys: ceph142.gtcikxosd: 7 osds: 7 up (since 7m), 7 in (since 7m)data:pools: 1 pools, 1 pgsobjects: 2 objects, 577 KiBusage: 192 MiB used, 3.3 TiB / 3.3 TiB availpgs: 1 active+clean
5.全部添加后,查看OSD设备的数量为7个。正好对应上
[root@ceph141~]# ceph osd ls
0
1
2
3
4
5
6
3 ceph集群配置时间同步
ceph集群基于chrony进行同步时间,如果集群时间偏差较大,可能导致healthy异常
1.所有节点安装chrony时间同步
apt -y install chrony
2.ceph141修改配置,这个节点设置为时间同步服务器。
在配置文件中添加一行:pool ntp.aliyun.com iburst maxsources 4
最后重启服务:systemctl restart chronyd
[root@ceph141~]# yy /etc/chrony/chrony.conf
confdir /etc/chrony/conf.d
pool ntp.ubuntu.com iburst maxsources 4
pool 0.ubuntu.pool.ntp.org iburst maxsources 1
pool 1.ubuntu.pool.ntp.org iburst maxsources 1
pool 2.ubuntu.pool.ntp.org iburst maxsources 2
pool ntp.aliyun.com iburst maxsources 4
sourcedir /run/chrony-dhcp
sourcedir /etc/chrony/sources.d
keyfile /etc/chrony/chrony.keys
driftfile /var/lib/chrony/chrony.drift
ntsdumpdir /var/lib/chrony
logdir /var/log/chrony
maxupdateskew 100.0
rtcsync
makestep 1 3
leapsectz right/UTC
验证服务可用:
[root@ceph141~]# chronyc activity -v
200 OK
7 sources online
0 sources offline
2 sources doing burst (return to online)
0 sources doing burst (return to offline)
7 sources with unknown address
4 ceph的管理节点设置
1.拷贝apt源及认证文件到ceph142节点
scp /etc/apt/sources.list.d/ceph.list ceph142:/etc/apt/sources.list.d/
scp /etc/apt/trusted.gpg.d/ceph.release.gpg ceph142:/etc/apt/trusted.gpg.d/
2.在ceph142节点执行安装
[root@ceph142~]# apt update
[root@ceph142~]# apt -y install ceph-common
[root@ceph142~]# ceph -v
ceph version 18.2.4 (e7ad5345525c7aa95470c26863873b581076945d) reef (stable)
3.ceph141节点拷贝认证文件到ceph142节点
[root@ceph141~]# scp /etc/ceph/ceph.{conf,client.admin.keyring} ceph142:/etc/ceph/
4.在ceph142节点测试可以正常访问ceph集群
[root@ceph142~]# ceph -scluster:id: 12fad866-9aa0-11ef-8656-6516a17ad6ddhealth: HEALTH_OKservices:mon: 3 daemons, quorum ceph141,ceph142,ceph143 (age 15m)mgr: ceph141.yvswvf(active, since 14m), standbys: ceph142.gtcikxosd: 7 osds: 7 up (since 14m), 7 in (since 35m)data:pools: 1 pools, 1 pgsobjects: 2 objects, 577 KiBusage: 1003 MiB used, 3.3 TiB / 3.3 TiB availpgs: 1 active+clean
5 节点的标签管理
为节点打上对应的标签,以便于日后管理。
参考链接
1.给ceph142节点添加自定义标签
[root@ceph141 ~]# ceph orch host label add ceph142 _admin
Added label _admin to host ceph142
[root@ceph141 ~]# ceph orch host label add ceph143 _admin
Added label _admin to host ceph143
[root@ceph141 ~]# ceph orch host label add ceph143 wzy666
Added label wzy666 to host ceph143
2.移除标签
[root@ceph141 ~]# ceph orch host label rm ceph143 wzy666
Removed label wzy666 from host ceph143[root@ceph141 ~]# ceph orch host label rm ceph143 admin
Host ceph143 does not have label 'admin'. Please use 'ceph orch host ls' to list all the labels.[root@ceph141 ~]# ceph orch host label rm ceph143 _admin
Removed label _admin from host ceph143
Removed label wzy666 from host ceph143[root@ceph141 ~]# ceph orch host label rm ceph143 admin
Host ceph143 does not have label 'admin'. Please use 'ceph orch host ls' to list all the labels.[root@ceph141 ~]# ceph orch host label rm ceph143 _admin
Removed label _admin from host ceph143
相关文章:
ceph的集群管理
0 环境说明 ip地址主机名额外硬盘是否加入ceph集群10.0.0.141ceph141sdb 300G,sdc 500G是10.0.0.142ceph142sdb 300G,sdc 500G, sdd 1000G否10.0.0.143ceph143sdb 300G,sdc 500G否 在上一篇文章中,已经成功地初始化了一个ceph管…...
STM32 设计的较为复杂的物联网项目,包括智能家居控制系统,涵盖了硬件和软件的详细设计。
使用 STM32 设计的较为复杂的物联网项目,包括智能家居控制系统,涵盖了硬件和软件的详细设计。 一、硬件设计 微控制器:选择 STM32F4 系列微控制器,如 STM32F407ZGT6,具有高性能和丰富的外设资源。 传感器模块&#x…...
Kettle配置数据源错误“Driver class ‘org.gjt.mm.mysql.Driver‘ could not be found”解决记录
问题描述 错误提示:“Driver class ‘org.gjt.mm.mysql.Driver’ could not be found, make sure the ‘MySQL’ driver (jar file) is installed.” 原因分析: 根据错误提示是缺少了相关的数据源连接jar包。 解决方案: 安装对应的Mysql…...
二分搜索的三种方法
首先总的说一下二分搜索。如果区间具有二分性,这个二分性不仅仅是指区间是有序的,而是我们可以通过某一种性质将整个区间分成左区间和右区间。我们通过二分的方法去不断缩小查找的区间,最终让区间内没有元素,这个时候的我们就得到…...
使用python编写工具:快速生成chrome插件相关文件结构
本文将详细分析一段用 wxPython 编写的 Python 应用程序代码。该程序允许用户创建一些特定文件并将它们保存在指定的文件夹中,同时也能够启动 Google Chrome 浏览器并打开扩展页面,自动执行一些操作。 C:\pythoncode\new\crxiterationtaburl.py 全部代码…...
内存、显存和GPU在Transformer架构中承担什么计算任务
目录 内存、显存和GPU在Transformer架构中承担什么计算任务 一、内存、显存和GPU的区别 二、在Transformer架构中的计算任务 内存、显存和GPU在Transformer架构中承担什么计算任务 是计算机系统中重要的组成部分,它们在Transformer架构中承担着不同的计算任务。以下是对这…...
【计算机网络】TCP协议特点3
心跳机制 什么是心跳机制 心跳机制是在计算机系统、网络通信和许多其他技术领域广泛应用的一种机制,用于检测两个实体之间的连接是否仍然活跃,或者设备是否还在正常运行。就是每隔一段时间发送一个固定的消息给服务端,服务端回复一个固定…...
移植LVGL8.2以及移植过程的理解
一、LVGL刷新显示(画点 OR 区域刷新颜色) 原来LCD的区域填充,由于没用到DMA就是普通的遍历区域块的坐标,需要传入的坐标就是显示区域的x轴起始与x轴尾部。y轴的起始与y轴的尾部。 怎么实现呢? SPI不加DMA实现区域填充…...
动态规划-背包问题——1049.最后一块石头的重量II
1.题目解析 题目来源 1049.最后一块石头的重量II——力扣 测试用例 2.算法原理 首先需要将该问题转化为0-1背包问题后再做分析 1.状态表示 根据数学中的知识我们知道将一个数字分为两个子数后求这两个子数的最小差值,那么就要求这两个子数尽可能接近于原数字的一…...
【C++学习(37)】并发性模式:如生产者-消费者、读写锁等。 架构模式:如MVC、MVVM等。属于23 种设计模式吗? RAII 的关系?
并发性模式(如生产者-消费者、读写锁等)和架构模式(如 MVC、MVVM 等)并不属于 Gang of Four(GoF) 提出的 23 种经典设计模式 中。这些模式是其他领域中的设计模式,虽然它们和 GoF 的设计模式有交集,尤其是在程序架构和资源管理方面,但并不直接包含在 GoF 的 23 种设计…...
[Mysql] Mysql的多表查询----多表关系(下)
4、操作 方式二:创建表之后设置外键约束 外键约束也可以在修改表时添加,但是添加外键约束的前提是:从表中外键列中的数据必须与主表中主键列中的数据一致或者是没有数据。 语法: alter table <从表名> add constr…...
命名空间(namespace)详解(一)
域 在学习命名空间之前,我们首先要了解几种常见的域 一、域的种类 1、类作用域 类作用域是指定义在类内部的成员(包括数据成员和成员函数)的可见性和访问权限的范围 代码示例: #define _CRT_SECURE_NO_WARNINGS 1#include &…...
HarmonyOS ArkTs 解决流式传输编码问题
工作日志 日期:2024-11-15 标题:HarmonyOS ArkTs 解决流式传输编码问题 问题描述 问题:在处理流式数据的 HTTP 请求时,服务器返回的数据存在编码问题,导致数据无法正确地解码为字符串。部分数据在解码后出现了乱码…...
NPOI 实现Excel模板导出
记录一下使用NPOI实现定制的Excel导出模板,已下实现需求及主要逻辑 所需Json数据 对应参数 List<PurQuoteExportDataCrInput> listData [{"ItemName": "电缆VV3*162*10","Spec": "电缆VV3*162*10","Uom":…...
【OpenGL】OpenGL简介
文章目录 OpenGL概述OpenGL的本质OpenGL相关库核心库窗口管理glutfreeglutglfw 函数加载glewGLAD OpenGL概述 OpenGL(Open Graphics Library) 严格来说,本身并不是一个API,它是一个由Khronos组织制定并维护的规范(Specification)。OpenGL规范严格规定了…...
shell命令笔记
一、shell基本基础知识 1. shell命令中捕获上一个命令执行是否成功,通过判断 $? 是否为0,为0则表示成功,其他错误码则表示执行失败。 2. sheel命令中,变量赋值时默认都是字符串类型。赋值时须注意单引号与双引号的区别…...
qml显示OpenCV mat图片
文章目录 方式一QQuickPaintedItem 类介绍主要特点使用方法示例代码在 QML 中使用主要方法和属性注意事项编写OpenCV mat显示代码方式二本篇博客介绍在Qt6.5.3 qml项目里介绍如何显示OpenCV mat图片。视频:https://edu.csdn.net/learn/40003/654043?spm=3001.4143 在qml里显示…...
类与对象(2)---类的6个默认成员函数
1.类的6个默认成员函数 任何类在什么都不写时,编译器会自动生成以下6个默认成员函数。 默认成员函数:用户没有显式实现,编译器会生成的成员函数称为默认成员函数。 2.构造函数 2.1构造函数特性 构造函数的主要任务是初始化对象。 它有如下特…...
华为云租户网络-用的是隧道技术
1.验证租户网络是vxlan 2.验证用OVS 2.1控制节点VXLAN 本端ip(local ip)192.168.31.8 2.2计算节点VXLAN 本端ip(local ip)192.168.31.11 计算节点用的是bond0做隧道网络 2.3查看bond文件是否主备模式...
手搓神经网络(MLP)解决MNIST手写数字识别问题 | 数学推导+代码实现 | 仅用numpy,tensor和torch基本计算 | 含正反向传播数学推导
手写数字识别(神经网络入门) 文章目录 手写数字识别(神经网络入门)实验概述实验过程数据准备模型实现线性变换层前向传播反向传播更新参数整体实现 激活函数层(ReLU)前向传播反向传播整体实现 Softmax层&am…...
对于对话中的反讽识别,OpenClaw 的模型是否结合了语调特征?
关于OpenClaw模型在反讽识别中是否结合了语调特征,这个问题其实触及了当前自然语言处理中一个相当微妙的领域。从技术实现的角度来看,OpenClaw这类基于Transformer架构的大语言模型,其训练数据主要来源于互联网上的文本语料,比如网…...
零基础快速入门前端CSS Transform 与动画核心知识点及蓝桥杯 Web 应用开发考点解析(可用于备赛蓝桥杯Web应用开发)
CSS 中的 transform(变换)和 animation(动画)是实现网页动态效果的核心工具,也是蓝桥杯 Web 应用开发赛道的高频考点一、CSS 2D 变换(transform)transform 用于对元素进行平移、旋转、缩放、倾斜…...
深入排查k8s集群6443端口连接拒绝:从kubectl故障到系统级修复
1. 当kubectl突然罢工:6443端口连接拒绝的紧急处理 那天早上我像往常一样打开终端,准备用kubectl get pods查看集群状态,结果终端冷冰冰地抛出一行错误:"Unable to connect to the server: dial tcp 192.168.1.1:6443: conne…...
工业Python网关配置不是写代码,是做工程!揭秘ISO/IEC 62443合规配置清单(仅限首批200家制造企业内部流出)
第一章:工业Python网关配置不是写代码,是做工程!在工业现场,Python网关绝非“跑个脚本就能连PLC”的玩具级工具——它是一套融合协议适配、资源约束、故障自愈与长期稳定运行的系统工程。配置的本质,是定义设备生命周期…...
Rolify 项目部署指南:从开发环境到生产环境的完整迁移流程
Rolify 项目部署指南:从开发环境到生产环境的完整迁移流程 【免费下载链接】rolify Role management library with resource scoping 项目地址: https://gitcode.com/gh_mirrors/ro/rolify Rolify 是一款功能强大的角色管理库,支持资源范围的权限…...
全协议下载解决方案:5个步骤打造智能下载管理中心
全协议下载解决方案:5个步骤打造智能下载管理中心 【免费下载链接】aria2.conf Aria2 配置文件 | OneDrive & Google Drvive 离线下载 | 百度网盘转存 项目地址: https://gitcode.com/gh_mirrors/ar/aria2.conf 一、下载困境与解决方案 1.1 现代下载的四…...
Swagger2配置避坑指南:为什么你的Docket分组设置会导致api-docs 404?
Swagger2配置避坑指南:为什么你的Docket分组设置会导致api-docs 404? 在RESTful API开发中,Swagger2作为API文档生成工具被广泛使用。但许多开发者在配置过程中都遇到过这样的问题:明明能正常访问swagger-ui.html页面,…...
PyTorch 2.5镜像使用指南:从环境搭建到模型训练完整流程
PyTorch 2.5镜像使用指南:从环境搭建到模型训练完整流程 1. 镜像概述与环境准备 PyTorch 2.5镜像是一个预配置的深度学习开发环境,集成了PyTorch框架和CUDA工具包,支持GPU加速计算。这个开箱即用的解决方案能帮助开发者快速搭建AI开发环境&…...
ComfyUI DWPose预处理器GPU加速终极指南:三步解决ONNX运行时故障
ComfyUI DWPose预处理器GPU加速终极指南:三步解决ONNX运行时故障 【免费下载链接】comfyui_controlnet_aux 项目地址: https://gitcode.com/gh_mirrors/co/comfyui_controlnet_aux 在ComfyUI生态系统中,DWPose预处理器作为姿态估计的核心组件&am…...
彻底禁用fmt库文件系统依赖:从编译到代码的全链路方案
彻底禁用fmt库文件系统依赖:从编译到代码的全链路方案 【免费下载链接】fmt A modern formatting library 项目地址: https://gitcode.com/GitHub_Trending/fm/fmt 在C项目中,fmt库是一个现代格式化库,它提供了高效的类型安全格式化功…...
