当前位置: 首页 > 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…...

什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南

文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/55aefaea8a9f477e86d065227851fe3d.pn…...

佰力博科技与您探讨热释电测量的几种方法

热释电的测量主要涉及热释电系数的测定&#xff0c;这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中&#xff0c;积分电荷法最为常用&#xff0c;其原理是通过测量在电容器上积累的热释电电荷&#xff0c;从而确定热释电系数…...

CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝

目前已有一号通短信、阿里云短信、腾讯云短信扩展 扩展入口文件 文件目录 crmeb\services\sms\Sms.php 默认驱动类型为&#xff1a;一号通 namespace crmeb\services\sms;use crmeb\basic\BaseManager; use crmeb\services\AccessTokenServeService; use crmeb\services\sms\…...

Kubernetes 节点自动伸缩(Cluster Autoscaler)原理与实践

在 Kubernetes 集群中&#xff0c;如何在保障应用高可用的同时有效地管理资源&#xff0c;一直是运维人员和开发者关注的重点。随着微服务架构的普及&#xff0c;集群内各个服务的负载波动日趋明显&#xff0c;传统的手动扩缩容方式已无法满足实时性和弹性需求。 Cluster Auto…...

车载诊断架构 --- ZEVonUDS(J1979-3)简介第一篇

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 做到欲望极简,了解自己的真实欲望,不受外在潮流的影响,不盲从,不跟风。把自己的精力全部用在自己。一是去掉多余,凡事找规律,基础是诚信;二是…...

用递归算法解锁「子集」问题 —— LeetCode 78题解析

文章目录 一、题目介绍二、递归思路详解&#xff1a;从决策树开始理解三、解法一&#xff1a;二叉决策树 DFS四、解法二&#xff1a;组合式回溯写法&#xff08;推荐&#xff09;五、解法对比 递归算法是编程中一种非常强大且常见的思想&#xff0c;它能够优雅地解决很多复杂的…...

算法刷题-回溯

今天给大家分享的还是一道关于dfs回溯的问题&#xff0c;对于这类问题大家还是要多刷和总结&#xff0c;总体难度还是偏大。 对于回溯问题有几个关键点&#xff1a; 1.首先对于这类回溯可以节点可以随机选择的问题&#xff0c;要做mian函数中循环调用dfs&#xff08;i&#x…...

ffmpeg(三):处理原始数据命令

FFmpeg 可以直接处理原始音频和视频数据&#xff08;Raw PCM、YUV 等&#xff09;&#xff0c;常见场景包括&#xff1a; 将原始 YUV 图像编码为 H.264 视频将 PCM 音频编码为 AAC 或 MP3对原始音视频数据进行封装&#xff08;如封装为 MP4、TS&#xff09; 处理原始 YUV 视频…...

Linux--vsFTP配置篇

一、vsFTP 简介 vsftpd&#xff08;Very Secure FTP Daemon&#xff09;是 Linux 下常用的 FTP 服务程序&#xff0c;具有安全性高、效率高和稳定性好等特点。支持匿名访问、本地用户登录、虚拟用户等多种认证方式&#xff0c;并可灵活控制权限。 二、安装与启动 1. 检查是否已…...

基于机器学习的智能故障预测系统:构建与优化

前言 在现代工业生产中&#xff0c;设备故障不仅会导致生产中断&#xff0c;还会带来巨大的经济损失。传统的故障检测方法依赖于人工巡检和定期维护&#xff0c;这种方式效率低下且难以提前预测潜在故障。随着工业物联网&#xff08;IIoT&#xff09;和机器学习技术的发展&…...