当前位置: 首页 > news >正文

ceph集群的扩容缩容

文章目录

  • 集群扩容
    • 添加osd
      • 使用ceph-deploy工具
      • 手动添加
    • 添加节点
      • 新节点前期准备
        • 新节点安装ceph,出现版本冲突
      • ceph-deploy增加节点
  • 集群缩容
    • 删除osd
    • 删除节点
  • 添加monitor节点
  • 删除monitor节点
  • 使用ceph-deploy卸载集群


实验所用虚拟机均为Centos 7.6系统,8G内存,16核CPU:
Ceph-admin: 用作ntp server和ceph本地源
Ceph-1: ceph-deploy、mon1、osd3
Ceph-2: mon1、osd3
Ceph-3: mon1、osd3

集群扩容

添加osd

使用ceph-deploy工具

见文章中的“添加磁盘”

手动添加

参考文章:https://cloud.tencent.com/developer/article/1664651

在新osd主机上创建osd,并创建数据目录
命令格式:ceph osd create [{uuid} [{id}]]
如果未指定 UUID, OSD 启动时会自动生成一个。
一般来说,不建议指定 {id} 。因为 ID 是按照数组分配的,跳过一些依然会浪费内存;尤其是跳过太多、或者集群很大时,会更明显。若未指定 {id} ,将用最小可用数字。
在这里插入图片描述格式化磁盘,并将其挂载到刚才创建的数据目录下
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述将新的osd添加到crushmap中:
为新osd创建bucket。
再将对应的host移到root下,然后把OSD移到对应的host下面,注意添加OSD时的weight是该OSD的实际大小

[root@ceph-1 ~]# ceph osd crush add-bucket root-240G root
added bucket root-240G type root to crush map
[root@ceph-1 ~]# ceph osd crush add-bucket ceph-2-240G host
added bucket ceph-2-240G type host to crush map
[root@ceph-1 ~]# ceph osd crush move ceph-2-240G root=root-240G
moved item id -11 name 'ceph-2-240G' to location {root=root-240G} in crush map
[root@ceph-1 ~]#
[root@ceph-1 ~]# ceph osd crush add osd.12 0.24 host=ceph-2-240G
add item id 12 name 'osd.12' weight 0.24 at location {host=ceph-2-240G} to crush map
[root@ceph-1 ~]#

然后开启osd.12服务
状态出错
在这里插入图片描述
然后上网搜索,将osd服务的启动间隔设置为1分钟
在这里插入图片描述重新加载服务配置
[root@ceph-2 ~]# systemctl daemon-reload

还是不能正常启动
查看日志:

[root@ceph-2 ~]# cd /var/log/ceph
[root@ceph-2 ceph]# cat ceph-osd.12.log

在这里插入图片描述
应该是目录 /var/lib/ceph/osd/ceph-12 权限有问题
修改目录权限:

[root@ceph-2 ceph]# chown -R ceph:ceph /var/lib/ceph/osd/ceph-12

在这里插入图片描述
启动成功。
在这里插入图片描述

添加节点

在此实验中,将ceph-admin节点作为新节点加入ceph集群

由于在之前的实验中,ceph-admin节点作为ntp时间同步服务器,ceph-1节点、ceph-2节点和ceph-3节点作为ntp客户端向ceph-admin节点同步时间。因此,这里就不用再设置时间同步了、

在ceph-admin节点首先安装ceph

新节点前期准备

前期准备包括关闭火墙、添加域名解析、安装ceph、配置时间同步。具体可以参考文章。

新节点安装ceph,出现版本冲突

在节点执行 yum install ceph ceph-radosgw -y
报错如下:
提示已经安装了10.2.5版本
目前再安装10.2.2版本,造成了冲突
在这里插入图片描述
在这里插入图片描述

先卸载已经安装的 10.2.5版本
yum remove ceph-common-10.2.5-4.el7.x86_64 -y
yum remove librados2-10.2.5-4.el7.x86_64 -y
yum remove  librbd1-10.2.5-4.el7.x86_64 -y

阿里云镜像:http://mirrors.aliyun.com/ceph/rpm-jewel/el7/x86_64/
先将10.2.11版本的所有相关包都下载,然后直接安装下载好的rpm包.
在这里插入图片描述直接 yum install *
在这里插入图片描述安装完成
在这里插入图片描述

ceph-deploy增加节点

列出ceph-admin节点上的磁盘

[root@ceph-1 cluster]# ceph-deploy disk list ceph-admin
[root@ceph-1 cluster]# ceph-deploy osd prepare ceph-admin:/dev/vdb
[root@ceph-1 cluster]# ceph-deploy osd activate ceph-admin:/dev/vdb1

此时看ceph-admin节点
在这里插入图片描述
查看此时的 osd tree
在这里插入图片描述
可以新创建一个host,名为ceph-admin-240G ,将其移入root-240G。然后讲新增的osd.14加入host ceph-admin-240G中。

[root@ceph-1 cluster]# ceph osd crush add-bucket ceph-admin-240G host
added bucket ceph-admin-240G type host to crush map
[root@ceph-1 cluster]# ceph osd crush move ceph-admin-240G root=root-240G
moved item id -13 name 'ceph-admin-240G' to location {root=root-240G} in crush map
[root@ceph-1 cluster]# ceph osd crush add osd.14 0.24 host=ceph-admin-240G
add item id 14 name 'osd.14' weight 0.24 at location {host=ceph-admin-240G} to crush map

在这里插入图片描述

集群缩容

删除osd

参考文章中的“删除磁盘”

删除节点

参考文章:https://blog.csdn.net/nasooo/article/details/117947537

使用以下命令,在ceph-1(monitor)节点上,添加ceph-admin节点的新磁盘

ceph-deploy disk list ceph-admin
ceph-deploy disk zap ceph-admin:/dev/vdc
ceph-deploy disk prepare ceph-admin:/dev/vdc
ceph-deploy disk activate ceph-admin:/dev/vdc1ceph osd crush move ceph-admin-800G root=root-800G
ceph osd crush add osd.15 0.8 host=ceph-admin-800G

在这里插入图片描述此时 ceph-admin 节点上有2块 osd 分别为osd.14 和 osd.15 。
下面演示如何删除节点ceph-admin:

在这里插入图片描述
ceph-admin节点停止ceph-osd服务

[root@ceph-admin ~]# systemctl stop ceph-osd.target

此时,ceph-admin节点上的osd状态均为down
在这里插入图片描述
在monitor节点删除ceph-admin节点上的所有osd

[root@ceph-1 cluster]# ceph osd rm 14
removed osd.14
[root@ceph-1 cluster]# ceph osd rm 15
removed osd.15

在这里插入图片描述
从 crush map 中删除ceph-admin节点上的所有osd

[root@ceph-1 cluster]# ceph osd crush remove osd.14
removed item id 14 name 'osd.14' from crush map
[root@ceph-1 cluster]# ceph osd crush remove osd.15
removed item id 15 name 'osd.15' from crush map
[root@ceph-1 cluster]#

删除ceph-admin节点上的所有osd 的认证信息

[root@ceph-1 cluster]# ceph auth del osd.14
updated
[root@ceph-1 cluster]# ceph auth del osd.15
updated
[root@ceph-1 cluster]#

在这里插入图片描述
从 crush map 中删除节点 ceph-admin

[root@ceph-1 cluster]# ceph osd crush remove ceph-admin-240G
removed item id -13 name 'ceph-admin-240G' from crush map
[root@ceph-1 cluster]# ceph osd crush remove ceph-admin-800G
removed item id -14 name 'ceph-admin-800G' from crush map

在这里插入图片描述取消ceph-admin节点上的所有osd的挂载
在这里插入图片描述

添加monitor节点

下面添加一个新的monitor节点,所有monitor节点的ceph版本需要一致。
待添加的monitor节点为 ceph-admin
ceph-admin节点已经安装了ceph 10.2.2版本,且已经关闭火墙,域名解析、免密认证、时间同步服务已经配置好。

目前集群中有三个monitor节点,分别为ceph-1 、ceph-2 、ceph-3
在这里插入图片描述在配置文件ceph.conf 中,添加ceph-admin
在这里插入图片描述
添加ceph-admin 节点

[root@ceph-1 cluster]# ceph-deploy mon create ceph-admin
应该也可以使用命令:ceph-deploy mon add ceph-admin

向ceph-admin 分发密钥

[root@ceph-1 cluster]# ceph-deploy admin ceph-admin

推送配置

[root@ceph-1 cluster]# ceph-deploy --overwrite-conf config push ceph-1 ceph-2 ceph-3 ceph-admin

添加完成
在这里插入图片描述在这里插入图片描述
可以在该monitor上添加osd

[root@ceph-1 cluster]# ceph-deploy disk list ceph-admin
[root@ceph-1 cluster]# ceph-deploy zap ceph-admin:/dev/vdc
[root@ceph-1 cluster]# ceph-deploy disk zap ceph-admin:/dev/vdc
[root@ceph-1 cluster]# ceph-deploy disk prepare ceph-admin:/dev/vdc
[root@ceph-1 cluster]# ceph-deploy disk activate ceph-admin:/dev/vdc1

在这里插入图片描述

删除monitor节点

删除monitor节点 ceph-admin
先删除节点上的osd
在这里插入图片描述

[root@ceph-admin ~]# systemctl stop ceph-osd@14.service
[root@ceph-admin ~]# systemctl disable ceph-osd@14.service
Removed symlink /etc/systemd/system/ceph-osd.target.wants/ceph-osd@14.service.
[root@ceph-admin ~]#
[root@ceph-admin ~]# ceph osd crush remove osd.14
device 'osd.14' does not appear in the crush map
[root@ceph-admin ~]# ceph auth del osd.14
updated
[root@ceph-admin ~]# ceph osd rm osd.14
removed osd.14
[root@ceph-admin ~]#

删除ceph-admin节点:

ceph mon remove ceph-admin

在这里插入图片描述
修改配置文件
删除 ceph-admin的主机名和IP地址
在这里插入图片描述将更改后的配置文件推送到monitor节点

[root@ceph-1 cluster]# ceph-deploy --overwrite-conf admin ceph-1 ceph-2 ceph-3

完成
在这里插入图片描述

使用ceph-deploy卸载集群

参考文章:https://blog.csdn.net/a13568hki/article/details/119459832
首先安装ceph-deploy工具

yum -y install ceph-deploy
hostname=`hostname`
ceph-deploy purge $hostname
ceph-deploy purgedata $hostname
ceph-deploy forgetkeys# osd 卸载命令 
dmsetup status #查询所有ceph osd  或者vgscan + vgremove 加查询出来的id
dmsetup remove_all #删除所有查询的内容

相关文章:

ceph集群的扩容缩容

文章目录 集群扩容添加osd使用ceph-deploy工具手动添加 添加节点新节点前期准备新节点安装ceph,出现版本冲突 ceph-deploy增加节点 集群缩容删除osd删除节点 添加monitor节点删除monitor节点使用ceph-deploy卸载集群 实验所用虚拟机均为Centos 7.6系统,8…...

gremlin安装使用 详细步骤

gremlin是一个图数据库查询工具,注意他只是一个工具类似于dbeaver,navicat,sqlyog,是专门来分析图数据库的一个工具。 下载 下载地址Apache Download Mirrors 省事的可以直接 wget https://www.apache.org/dyn/closer.lua/tin…...

Java语言怎么编写一个程序计算出租车的运输费用:出租车起步15公里以内20块钱,需要支付调头费用

下面是一个Java语言编写的计算出租车运输费用的程序: java import java.util.Scanner; public class TaxiFareCalculator { public static void main(String[] args) { Scanner input new Scanner(System.in); System.out.print("请输入出租车行驶的里程&…...

十、flume的安装

1.解压 2.改名 3.修改权限 4.编辑环境变量并source export FLUME_HOME/usr/local/flume export PATH$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$HBASE_HOME/bin:$SQOOP_HOME/bin:$PIG_HOME/bin:$FLUME_HOME/bin 5.配置 6.查看版本 7.启动Hadoo…...

互联网广告及产品变现认知分析整理

深入学习互联网广告及产品,并且高效利用这一模式进行变现。 字节先是建立了一个非常强大的用户产品——抖音,通过各种渠道让抖音快速成长起来,收获了一大批初始用户。有了用户基础之后,字节开始打造它的广告产品,逐渐…...

item_search_img-按图搜索淘宝商品(拍立淘)

一、接口参数说明: item_search_img-按图搜索淘宝商品(拍立淘),点击更多API调试,请移步注册API账号点击获取测试key和secret 公共参数 请求地址: https://api-gw.onebound.cn/taobao/item_search_img 名称类型必须描…...

OWASP Top 10(2021)漏洞学习(最新)

A01:2021-权限控制失效 从第五位上升到第一位,94%的应用程序都接受了某种形式的针对“失效的访问控制”的测试,该事件的 平均发生率为 3.81%,该漏洞在提供的数据集中出现漏洞的应用数量最多,总发生漏洞应用数量超过31.8万多 次。 …...

mysql 、sql server 游标 cursor

游标 声明的位置 游标必须在声明处理程序之前被声明,并且变量和条件还必须在声明游标或处理程序之前被声明 游标的使用步骤 声明游标打开游标使用游标关闭游标 (sql server 关闭游标和释放游标) sql server 游标 declare my_cursor curs…...

dockers搭建基本服务

1、使用mysql:5.6和 owncloud 镜像,构建一个个人网盘。 拉取mysql-5.6和owncloud的镜像 docker run -d --name mdb --env MYSQL_ROOT_PASSWORD123 cytopia/mysql-5.6 docker run -d -p 90:80 --name webdcloud --link mdb:mdb owncloud 注册的时候,数据…...

微信小程序纯前端从阿里云OSS下载json数据-完整版

起因 因为云开发开始收费(貌似很久了),准备改造在以前的小程序,数据转到oss上,小程序使用原生,不算专业领域, 所以先百度.... 网上的教程真的是千篇一律,大部分开局就是require(ali-oss); 好点的npm install ali-oss --save开局,拼凑操作到最后发现要用云开发,因为云…...

【微服务实战】01-工程结构概览

文章目录 工程结构概览:定义应用分层及依赖关系1.应用分层2.定义Entity3.仓储层3.1 工作单元:事务管理3.2 仓储层 4.领域事件5.APIController最佳实践 工程结构概览:定义应用分层及依赖关系 1.应用分层 领域模型层基础设施层 ⇒ 仓储应用层 ⇒ Api、后台任务Job共…...

论文导读|European Journal of Operational Research近期文章精选:旅行商问题专题

推文作者:王松阁 编者按 在“European Journal of Operational Research近期论文精选”中,我们有主题、有针对性地选择了European Journal of Operational Research中一些有趣的文章,不仅对文章的内容进行了概括与点评,而且也对文…...

playwright迭代元素

DOM结构 <ul><li>apple</li><li>banana</li><li>orange</li> </ul>迭代元素操作 通过 page.get_by_role("listitem") 会匹配到 apple, banana, orange&#xff0c; 如果要对这一组数据中的每个元素进行操作&#…...

65 | 增长模型案例

增长模型代表了一种综合性的方法论,旨在通过深入了解用户行为、市场趋势和数据洞察,来指导企业制定有效的增长战略。这种方法突破了传统的经验主义,将决策过程建立在数据驱动和实验的基础之上。增长模型不仅仅是一种理论,更是一种实际操作的框架,帮助企业在各个层面实现业…...

Django视图-HttpRequest请求对象和HttpResponse响应对象

文章目录 HttpRequestHttpResponse实践request对象的属性和方法响应 def index(request): 这个request其实就是内部已经封装好的Http请求HttpRequest&#xff0c;它是一个请求对象Django中的视图主要用来接受Web请求&#xff0c;并做出响应。 视图的本质就是一个Python中的函数…...

原来Lambda表达式是这样写的

原来Lambda表达式是这样写的 lambda 是一个匿名函数&#xff0c;我们可以把 lambda 表达式理解为是一段可以传递的代码。 lambda 简明地将代码或方法作为参数传递进去执行。 函数式编程&#xff1a;核心是把函数作为值。 函数式接口 &#xff1a;只有一个抽象方法的接口称之…...

smartsofthelp 5.0 最专业的数据库优化工具,数据库配置优化,数据库高并发优化,SQL 语句优化...

下载地址:百度网盘 请输入提取码 SQL操作返回历史记录&#xff1a; 2023-08-21 20:42:08:220 输入&#xff1a;select version as 版本号 2023-08-21 20:42:08:223 输出&#xff1a;当前数据库实例版本号&#xff1a;Microsoft SQL Server 2012 - 11.0.2100.60 (X64) …...

智影 R100:首款三维Mesh建模的SLAM激光扫描仪

近年来&#xff0c;激光SLAM系统凭借其更加快速且准确获取更丰富信息的优势&#xff0c;迅速风靡测绘领域&#xff0c;让原本耗时耗力的外业测量变得更加高效。手持激光扫描仪作为基于激光SLAM技术衍生的众多产品之一&#xff0c;相较于架站式激光扫描仪更加轻巧便利&#xff0…...

Next.js - Loading UI and Streaming

特殊文件 loading.js 可帮助您使用 React Suspense 创建有意义的加载用户界面。使用此约定&#xff0c;您可以在加载路由段内容时显示来自服务器的即时加载状态。渲染完成后&#xff0c;新的内容会自动切换进来。 即时加载状态 即时加载状态是在导航时立即显示的后备用户界面…...

快速解决Ubuntu 中 wine 程序 中文显示为方块/显示错误/无法显示中文(2023)

解决办法就是在创建prefix的命令行里加上LANG“zh_CN.UTF8” 或 LC_ALL“zh_CN.UTF8”&#xff0c;并安装cjkfonts&#xff0c;即可。 1、生成prefix、安装cjk字体 以下是基本流程&#xff1a; 现在假定wine和winetricks已经装好&#xff0c; // 先创建一个prefix&#xff0…...

从OV2640升级到OV3660:除了像素提升,ESP32-Cam硬件设计要注意这几点

从OV2640升级到OV3660&#xff1a;硬件设计中的隐形挑战与实战指南 当我们在ESP32-Cam项目中从OV2640升级到OV3660摄像头模组时&#xff0c;很多工程师的第一反应是检查引脚兼容性——这当然没错&#xff0c;但真正的挑战往往藏在那些数据手册不会明确标注的细节里。去年我们团…...

终极指南:如何让AMD和Intel显卡也能享受DLSS级别的AI超分辨率技术

终极指南&#xff1a;如何让AMD和Intel显卡也能享受DLSS级别的AI超分辨率技术 【免费下载链接】OptiScaler DLSS replacement for AMD/Intel/Nvidia cards with multiple upscalers (XeSS/FSR2/DLSS) 项目地址: https://gitcode.com/GitHub_Trending/op/OptiScaler Opti…...

【PolarCTF2026年春季挑战赛】GET

直接上传一个php试试文件名后缀双写可以绕过可以解析&#xff0c;我们上传一句话木马提示出现了$_POST[cmd]那么用下面的webshell&#xff0c;避免POST和cmd一起出现<?php $x $_POST; eval($x[cmd]); ?>上传成功&#xff0c;访问一下得到flag{73121d2832f501293a2e661…...

lingbot-depth-pretrain-vitl-14入门必看:DINOv2 ViT-L/14编码器在深度任务中的特征迁移机制

lingbot-depth-pretrain-vitl-14入门必看&#xff1a;DINOv2 ViT-L/14编码器在深度任务中的特征迁移机制 1. 引言&#xff1a;从一张照片到三维世界 你有没有想过&#xff0c;为什么我们人类看一张照片&#xff0c;就能大概判断出照片里物体的远近&#xff1f;比如&#xff0…...

STM32实战(五)卡尔曼滤波在ADC噪声抑制中的参数优化与效果对比

1. 卡尔曼滤波在ADC噪声抑制中的核心价值 第一次用STM32的ADC采集传感器数据时&#xff0c;我被跳动的数值惊呆了——温度读数上下浮动2℃&#xff0c;红外测距值波动超过10%。这种噪声不仅影响数据可信度&#xff0c;更会导致控制逻辑误判。后来接触到卡尔曼滤波&#xff0c;…...

实战演练:基于Spring Boot的个人博客系统,用快马AI一键生成完整后端代码

最近在尝试搭建一个个人博客系统&#xff0c;正好用Spring Boot练练手。作为一个Java开发者&#xff0c;我发现用InsCode(快马)平台可以快速生成完整的后端代码&#xff0c;省去了很多重复劳动。下面分享下我的实战经验&#xff1a; 项目初始化 首先明确需求&#xff0c;博客系…...

OpenClaw+Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF:学术论文助手搭建实录

OpenClawQwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF&#xff1a;学术论文助手搭建实录 1. 为什么需要学术论文助手 作为一名经常需要阅读大量文献的研究者&#xff0c;我长期被三个问题困扰&#xff1a;一是PDF文献的摘要提取效率低下&#xff0c;二是参考文献格式…...

百川2-13B量化模型调优指南:降低OpenClaw任务失败率的3个技巧

百川2-13B量化模型调优指南&#xff1a;降低OpenClaw任务失败率的3个技巧 1. 为什么需要针对量化模型做特殊调优&#xff1f; 上周我让OpenClaw帮我整理一个包含300多份PDF的文献库&#xff0c;结果连续跑了3次都中途崩溃。查看日志才发现&#xff0c;百川2-13B量化模型在处理…...

从零搭建AI应用前端:微信小程序调用Qwen1.5-1.8B GPTQ模型API

从零搭建AI应用前端&#xff1a;微信小程序调用Qwen1.5-1.8B GPTQ模型API 最近在折腾一个挺有意思的项目&#xff0c;想给朋友做个能聊天的AI小程序。后端我选了个轻量但能力不错的模型——Qwen1.5-1.8B GPTQ&#xff0c;部署在星图GPU平台上&#xff0c;API接口已经调通了。接…...

如何从WiringPi旧版本升级到3.18新架构:完整迁移指南

如何从WiringPi旧版本升级到3.18新架构&#xff1a;完整迁移指南 【免费下载链接】WiringPi Gordons Arduino wiring-like WiringPi Library for the Raspberry Pi (Unofficial Mirror for WiringPi bindings) 项目地址: https://gitcode.com/gh_mirrors/wi/WiringPi Wi…...