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

K8S部署的rook-ceph下线osd流程

背景

因为某个osd是ssd类型存储,现在其他盘都是hdd,所以把这个ssd的存储下线,于是开始整个流程。

要下线的盘是osd.0。

操作流程

进入到ceph的tool工具pod进行操作

kubectl exec -it -n rook-ceph rook-ceph-tools-xxx -- sh

把要下线的osd设置 noup 标志(防止 OSD 自动上线)

ceph osd add-noup 0

把要下线的osd权重设置为0

ceph osd crush reweight osd.0 0

执行 ceph -w 实时监控,直到该 OSD 的 PGs 变为 0 且集群状态稳定(HEALTH_OK 或 HEALTH_WARN 但无数据不一致告警)

ceph -w

查看osd.0的具体pg

ceph pg ls-by-osd osd.0 | grep -v ^PG | sed -e '/^$/d' -e '/^\*$/d' | awk '{print $1}' | grep '^[0-9]\+\.[0-9a-fA-F]\+$' | sort -u 

查看osd的pg数量

ceph pg ls-by-osd osd.0 | grep -v ^PG | sed -e '/^$/d' -e '/^\*$/d' | awk '{print $1}' | grep '^[0-9]\+\.[0-9a-fA-F]\+$' | sort -u | wc -l

在这里插入图片描述
数据迁移完成后在ui界面上查看数量也是0,并且没有正在迁移的pg
在这里插入图片描述
把要下线的osd标记 为 down

ceph osd down 0

把要下线的OSD标记为 out,其实设置权重为0就会自动触发迁移,等数据迁移执行完成后再标记为out的流程最符合规范,当然直接执行也可。

ceph osd out 0

在ceph的k8s cluster配置文件中更改配置取消osd对应盘配置

kubectl get cephcluster rook-ceph -n rook-ceph -o yaml > cephcluster.yaml

将其中osd对应的node盘删除,圈内的格式全部删除,哪个下线就删除哪个配置
在这里插入图片描述
重新加载配置

 kubectl apply -f cephcluster.yaml 

加载完最好等个五分钟再操作让配置生效。

接下来,在ceph集群中永久删除 OSD(操作不可逆)

ceph osd purge 0 --yes-i-really-mean-it

删除 OSD 认证密钥

ceph auth del osd.0

ceph上的操作基本完成,接下来操作k8s中现有的资源

kubectl  get deploy -n rook-ceph

删除osd.0的deployment资源

kubectl delete deploy rook-ceph-osd-0    -n rook-ceph 

在tool中查看osd数量

ceph -s

在这里插入图片描述
在web界面上查看结果
在这里插入图片描述

过程中遇见的问题

按这个流程操作下来,最后在ceph -s查看的时候查看还是原来的osd数量并没有减少
在这里插入图片描述
这个时候会觉得操作文档有问题,实际过程中我也遇见了这问题
在这里插入图片描述
ceph osd purge 0 --yes-i-really-mean-it的命令重新执行后就查询不到osd了,但在之前的流程中这个命令已经执行过了。

因为ceph的配置文件更改加载需要时间,如果配置没生效前执行这个流程,还会重新拉起那个下线的osd,然后osd的可用数量又变成原本数量。

这就是在过程中再重载配置等几分钟的原因,在出现这个问题后我也并没有执行什么其他操作只是再次删除了osd0。

ceph osd purge 0 --yes-i-really-mean-it

如果等待后还是会自动上线可以检查集群配置文件,以及osd对应ID号的配置是否删除。

http://www.dtcms.com/a/406121.html

相关文章:

  • 建站历史查询如何做网站推广页面
  • maven使用非明文密码配置
  • 做网站后期维护工资贴吧wordpress ad widget
  • Reactor 模式:高并发网络编程的事件驱动利器
  • 无人机数传模块技术要点概述
  • Telegram机器人Token和ChatID获取教程
  • Deepoc具身智能模型:为传统电厂巡检机器人注入“灵魂”与“智慧”
  • 中医智慧+AI科技,七彩喜机器人让健康养护“智”在必得
  • Ubuntu 中 Bash / Zsh / Ash / Dash 的使用与区别(含对比图)
  • leetcode 814 二叉树剪枝
  • 【Redis】热Key/大Key问题、缓存击穿、缓存穿透、缓存雪崩、缓存与数据库一致性问题
  • 大模型剪枝系列——基于权重大小剪枝
  • 制作网站的模板深圳网站改版公司
  • 【Linux基础知识系列:第一百四十篇】理解SELinux与系统安全
  • dbswitch:一款免费开源、功能强大的异构数据库迁移同步工具
  • python+uniapp基于微信小程序美食点餐系统
  • Go语言100个实战案例-进阶与部署篇:使用Go打包生成可执行文件
  • 【Golang】--- 函数深度解析
  • 后端进阶-性能优化
  • 吉林做网站wordpress创建登录页
  • 【C++篇】C++11:从列表初始化到移动语义
  • WPS清除图片段落布局脚本
  • Excel学生成绩表,如何生成成绩分析报告?
  • 面试_场景方案设计
  • 【AI - nlp】Tokenizer简介及常见编码方式
  • JavaScript--基础ES(二)
  • 案例分享:增材制造的点阵材料压缩测试-VIC-3D高空间分辨率DIC系统在增材制造复杂结构中的应用
  • Parasoft软件测试解决方案助力Renovo汽车ADAS开发安全与合规
  • 外卖网站建设费用杭州比较好的代运营公司
  • 贵州省住房和城乡建设厅门户网站wordpress怎么看展现量