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 *,即可安装完成

或者 vim /etc/yum.repos.d/ceph.repo

[root@ceph-admin yum.repos.d]# cat ceph.repo
[ceph]
name=ceph
baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/x86_64/
gpgcheck=0
priority =1

[ceph-noarch]
name=cephnoarch
baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/noarch/
gpgcheck=0
priority =1

[ceph-source]
name=Ceph source packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/SRPMS
gpgcheck=0
priority=1

#然后安装ceph
[root@ceph-admin yum.repos.d]# yum -y install ceph ceph-radosgw

安装完成

在这里插入图片描述

在这里插入图片描述

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

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

需要注意的是,在删除osd磁盘之前,需要先将osd的权重设置为0.待集群恢复平衡之后,再继续操作。删除osd的完整步骤为:

ceph osd crush reweight osd.x 0.0
... 等待平衡结束....
ceph osd out osd.x
systemctl stop ceph-osd@x.service   #在待删除的osd所在节点上执行
ceph osd crush remove osd.x
ceph auth del osd.x
ceph osd rm osd.X

删除节点

参考文章: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/vdc1

ceph 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 #删除所有查询的内容

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Leetcode74. 搜索二维矩阵

给你一个满足下述两条属性的 m x n 整数矩阵: 每行中的整数从左到右按非递减顺序排列。每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target ,如果 target 在矩阵中,返回 true ;否则,返回 false 。 class…

【从零开始的rust web开发之路 二】axum中间件和共享状态使用

系列文章目录 第一章 axum学习使用 第二章 axum中间件使用 文章目录 系列文章目录前言一、中间件是什么二、中间件使用常用中间件使用中间件使用TraceLayer中间件实现请求日志打印自定义中间件 共享状态 前言 上篇文件讲了路由和参数相应相关的。axum还有个关键的地方是中间件…

防火墙+路由模式部署

一、防火墙 防火墙最主要功能是提供访问控制能力 防火墙默认管理口为ge0/0(部分型号有专门的MGT口),管理地址为https://192.168.1.250,默认管理口只开启了https和ping。登录防火墙串口,波特率为9600,默认…

【校招VIP】测试专业课之TCP/IP模型

考点介绍: 大厂测试校招面试里经常会出现TCP/IP模型的考察,TCP/IP协议是网络基础知识,但是在校招面试中很多同学在基础回答中不到位,或者倒在引申问题里,就丢分了。 『测试专业课之TCP/IP模型』相关题目及解析内容可点…

uniapp-滑块验证组件wo-slider

wo-slider是一款支持高度自定义的滑块验证组件,采用uniapp-vue2编写 采用touchstart、touchmove、touchend事件实现的滑块组件,支持H5、微信小程序(其他小程序未试过,可自行尝试) 可到插件市场下载尝试: https://ext.…

算法通关村十二关 | 字符串转换

1. 转换小写字母 LeetCode709:给你一个字符串s,将该字符串中的大写字母转换成相同的小写字母,返回新的字符串。 每个字母都是有确定的ASCII的,可以根据码表操作子字符串,常见的ASCII范围是: a-z: 97-122, …

无涯教程-Perl - warn函数

描述 此函数将LIST的值打印到STDERR。基本上与die函数相同,除了不对出口进行任何调用并且在eval语句内不引发异常。这对于引发错误而不导致脚本过早终止很有用。 如果变量$包含一个值(来自先前的eval调用),并且LIST为空,则$的值将以。\t.caught打印。附加到末尾。如果$和LIST…

聚观早报|京东称在技术投入没有止境;木蚁机器人完成B2轮融资

【聚观365】8月18日消息 京东零售CEO表示在技术上投入没有止境 木蚁机器人完成B2轮超亿元融资 耐能推出AI芯片KL730 三星电子泰勒晶圆厂首家客户是AI半导体厂商 韩国新能源汽车7月出口额同比大增36% 京东零售CEO表示在技术上投入没有止境 近日,京东零售CEO辛利…

Python开发环境(Visual Studio Code、Anaconda、PyInstaller、Enigma Virtual Box)

Python开发环境 [Anaconda、PyInstaller、Enigma Virtual Box] AnacondaAnaconda安装搭建Python环境Anaconda命令 Visual Studio CodeVisual Studio Code中Python设置Visual Studio Code中安装PyQt5Visual Studio Code中使用Qt DesignerVisual Studio Code中Anaconda切换虚拟环…

了解 JSON 格式

一、JSON 基础 JSON(JavaScript Object Notation,JavaScript 对象表示法)是一种轻量级的数据交换格式,JSON 的设计目的是使得数据的存储和交换变得简单。 JSON 易于人的阅读和书写,同时也易于机器的解析和生成。尽管 J…

Apache BeanUtils工具介绍

beanutils,顾名思义,是java bean的一个工具类,可以帮助我们方便的读取(get)和设置(set)bean属性值、动态定义和访问bean属性;细心的话,会发现其实JDK已经提供了一个java.beans包,同样可以实现以上功能&…

Vue2.0+webpack 引入字体文件(eot,ttf,woff)

webpack.base.config.js 需要配置 {test:/\/(woff2?|eot|ttf|otf)(\?.*)?$/,loader: url-loader,options: {limit: 10000,name: utils.assetsPath(fonts/[name].[hash:7].[ext])}} 如果 Vue2.0webpack3.6引入字体文件(eot,ttf,woff&…

[PyTorch][chapter 51][Auto-Encoder -1]

目录: 简介 损失函数 自动编码器的类型 一 AutoEncoder 简介: 自动编码器是一种神经网络,用于无监督学习任务.(没有标签或标记数据), 例如降维,特征提取和数据压缩. 主要任务: 1: 输入数据 …

SCSS 学习笔记 和 vscode下载live sass compiler插件配置

1、下载livelive sass compiler插件并配置 // 在 已有代码 下面 添加下面 代码,一般刚刚下载打开最后一行是:// "liveSassCompile.settings.autoprefix": [],// 所以直接 把下面复制进去保存就行"liveSassCompile.settings.autoprefix&qu…

产业园区数字孪生3d可视化全景展示方案

随着数字经济的发展,数字技术给企业发展带来了机遇的同时,也为企业管理带来挑战。比如园区运维,不仅体量大,复杂的运维管理系统,落地难度也较高。那么如何通过数字化手段重塑园区运营,打通园区各业务数据孤…

关闭浏览器窗口弹出提示框(vue项目)

<script> export default {name: App,mounted() { //开发环境不需要提示if (process.env.NODE_ENV development) returnthis.$nextTick(() > {window.addEventListener(beforeunload, this.beforeUnload)})},beforeDestroy() {if (process.env.NODE_ENV development…

生成式AI系列 —— DCGAN生成手写数字

1、模型构建 1.1 构建生成器 # 导入软件包 import torch import torch.nn as nnclass Generator(nn.Module):def __init__(self, z_dim20, image_size256):super(Generator, self).__init__()self.layer1 nn.Sequential(nn.ConvTranspose2d(z_dim, image_size * 32,kernel_s…

「Vue|网页开发|前端开发」01 快速入门:用vue-cli快速写一个Vue的HelloWorld项目

本文主要介绍如何用vue开发的标准化工具vue-cli快速搭建一个符合实际业务项目结构的hello world网页项目并理解vue的代码文件结构以及页面渲染流程。 文章目录 一、准备工作&#xff1a;安装node.js二、项目搭建创建项目目录全局安装vue-cli使用Webpack初始化项目启动项目学会…

SpringBoot---内置Tomcat 配置和切换

&#x1f600;前言 本篇博文是关于内置Tomcat 配置和切换&#xff0c;希望你能够喜欢 &#x1f3e0;个人主页&#xff1a;晨犀主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是晨犀&#xff0c;希望我的文章可以帮助到大家&#xff0c;您的满意是我的动力&#x…

SVM详解

公式太多了&#xff0c;就用图片用笔记呈现&#xff0c;SVM虽然算法本质一目了然&#xff0c;但其中用到的数学推导还是挺多的&#xff0c;其中拉格朗日约束关于α>0这块证明我看了很长时间&#xff0c;到底是因为悟性不够。对偶问题也是&#xff0c;用了一个简单的例子才明…