rook下osd的移除与加回
2021/12/3 23:47:25
本文主要是介绍rook下osd的移除与加回,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
rook移除osd
问题:
注意:一下数据来源于个人环境,图文可能不一致需根据实际修改IP等数据
1、ceph -s 查看报错有1个pg数据不一致,并且通过ceph osd status查看osd状态都是UP状态
2、ceph health detail 查看初步确认是pg1.25的osd 52,56以及8中有硬盘可能有坏
解决:
一、查找对应的osd和磁盘关系
1、ceph osd repair 定位osd,在修复pg的过程中,报错:1.25 shard 56 soid candidate had a read error
2、找到osd.56对应pod所在节点
3、kubectl get po xxxx-osd-56-xxx -n rook-ceph -o yaml |grep UUID 查询如下,ROOK_OSD_UUID,记录此处圈起来的字符串
4、去到osd.56对应的node(第三步有查到),执行命令lsblk |grep -C2 85d2d15c(上一步记录的字符串),找到对应的磁盘是sde
5、根据物理硬盘,在所在主机的dmesg的日志中查询发现osd 56对应的硬盘sde确实有报错,blk_update_request: critical medium error
在百度中查询说是硬盘坏道
二、移除osd
现在有需求需要停⽌ 172-17-27-92 上的 sda 也就是 osd.5
1、先把operator设置为0
kubectl -n rook-ceph scale deployment rook-ceph-operator --replicas=0
2、修改配置,将需要移除的盘移除:
kubectl edit cephclusters.ceph.rook.io -n rook-ceph rook-ceph
删除对应的对应的盘,如果只有⼀块盘则直接删除主机,即上图圈起来部分:
如果是该主机下多块盘则删除对应的盘即可
3、手动移除对应osd
kubectl exec -it -n rook-ceph rook-ceph-tools-769bdf4bdd-hdx6r bash ceph osd set noup ceph osd down 0 ceph osd out 0 #ceph -w查看数据均衡进度, 等待数据均衡完成
4、均衡数据完成后移除对应的osd
ceph osd purge 0 --yes-i-really-mean-it ceph auth del osd.0
如果出现下面情况属正常
5、如果该主机只有⼀块盘则对应移除该主机(如果是多块盘无需执行此步)
可以通过 ceph osd tree 确定该主机是否为⼀块盘
执行:
ceph osd crush remove 172-17-27-77
6、检查ceph状态以及osd状态
ceph -s ceph osd tree
7、移除pod,和判断删除对应的job
kubectl delete deploy -n rook-ceph rook-ceph-osd-0
8、恢复配置
ceph osd unset noup
9、恢复rook的operator
kubectl -n rook-ceph scale deployment rook-ceph-operator --replicas=1
10、检查对应osd的pod是否启动
kubectl get pod -n rook-ceph -o wide |grep rook-ceph-osd
三、移除osd
怎么删除的,怎么加入进去
- 前提,先到对应机器格式化所需添加的磁盘
- 再执行kubectl edit cephclusters.ceph.rook.io -n rook-ceph rook-ceph
- 最后重启operator然后等待就可以了
格式盘脚本:
[root@172-17-27-92 ~]# cat ceph.sh #!/bin/bash #read -p "input your disk [/dev/sda]:" DISK DISK="/dev/sda" if [ ! -z $1 ];then DISK=$1 fi # 磁盘去格式化 # DISK="/dev/sda" # Zap the disk to a fresh, usable state (zap-all is important, b/c MBR has to be clean) # You will have to run this step for all disks. sgdisk --zap-all $DISK dd if=/dev/zero of="$DISK" bs=1M count=100 oflag=direct,dsync # These steps only have to be run once on each node # If rook sets up osds using ceph-volume, teardown leaves some devices mapped that lock the disks. ls /dev/mapper/ceph-* | xargs -I% -- dmsetup remove % # ceph-volume setup can leave ceph-<UUID> directories in /dev (unnecessary clutter) rm -rf /dev/ceph-* lsblk -f rm -rf /var/lib/rook/*
再执行:
kubectl edit cephclusters.ceph.rook.io -n rook-ceph rook-ceph
最后重启operator等待即可,查看ceph集群状态是否有新加入osd
这篇关于rook下osd的移除与加回的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南