如何删除一台OSD主机
在ceph的一台OSD主机出现故障的时候,数据可以通过副本的机制进行恢复,之后通过删除osd的操作也能够将故障osd从osd tree当中删除掉,但是故障的 osd 的主机仍然会留在集群当中,通过 ceph osd tree 或者打印 crush map 都可以看到这个损坏的节点主机名,所以这里讲下怎么删除掉这个无用的host
首先集群环境为两台主机 node8109 node8110 , node8110主机出现故障需要清理掉
先看下当前的osd tree状态
[root@node8109 webui]# ceph osd tree
ID WEIGHT TYPE NAME UP/DOWN REWEIGHT PRIMARY-AFFINITY
-1 4.00000 root default
-3 4.00000 rack localrack
-2 2.00000 host node8109
0 1.00000 osd.0 up 1.00000 1.00000
1 1.00000 osd.1 up 1.00000 1.00000
-4 2.00000 host node8110
2 1.00000 osd.2 down 1.00000 1.00000
3 1.00000 osd.3 down 1.00000 1.00000
查看osd的状态
[root@node8109 webui]# ceph osd stat
osdmap e66: 4 osds: 2 up, 4 in; 52 remapped pgs
首先out掉osd
[root@node8109 ~]# ceph osd out 2
marked out osd.2.
[root@node8109 ~]# ceph osd out 3
marked out osd.3.
从crush里面删除osd
[root@node8109 ~]# ceph osd crush remove osd.2
removed item id 2 name 'osd.2' from crush map
[root@node8109 ~]# ceph osd crush remove osd.3
removed item id 3 name 'osd.3' from crush map
从集群中删除OSD
[root@node8109 ~]# ceph osd rm osd.3
removed osd.3
[root@node8109 ~]# ceph osd rm osd.2
removed osd.2
从集群认证里面删除osd
[root@node8109 ~]# ceph auth del osd.2
updated
[root@node8109 ~]# ceph auth del osd.3
updated
查看当前的crush map
root@node8109 ~]# ceph osd tree
ID WEIGHT TYPE NAME UP/DOWN REWEIGHT PRIMARY-AFFINITY
-1 2.00000 root default
-3 2.00000 rack localrack
-2 2.00000 host node8109
0 1.00000 osd.0 up 1.00000 1.00000
1 1.00000 osd.1 up 1.00000 1.00000
-4 0 host node8110
下面有两种方法从osd tree 删除掉node8110,为命令方式和修改crush map 方式
方式一:命令方式
[root@node8109 ~]# ceph osd crush remove node8110
removed item id -4 name 'node8110' from crush map
[root@node8109 ~]# ceph osd tree
ID WEIGHT TYPE NAME UP/DOWN REWEIGHT PRIMARY-AFFINITY
-1 2.00000 root default
-3 2.00000 rack localrack
-2 2.00000 host node8109
0 1.00000 osd.0 up 1.00000 1.00000
1 1.00000 osd.1 up 1.00000 1.00000
方式二:通过修改 crush map 的方式
导出当前的crush map
[root@node8109 ~]#ceph osd getcrushmap -o crushmap.txt
[root@node8109 ~]#crushtool -d crushmap.txt -o crushmap-decompile
[root@node8109 ~]# vim crushmap-decompile
删除掉node8109相关的信息
[root@node8109 ~]#crushtool -c crushmap-decompile -o crushmap-compile
[root@node8109 ~]# ceph osd setcrushmap -i crushmap-compile
set crush map
[root@node8109 ~]# ceph osd tree
ID WEIGHT TYPE NAME UP/DOWN REWEIGHT PRIMARY-AFFINITY
-1 2.00000 root default
-3 2.00000 rack localrack
-2 2.00000 host node8109
0 1.00000 osd.0 up 1.00000 1.00000
1 1.00000 osd.1 up 1.00000 1.00000
总结:
从上面的两种方式可以看出,使用命令的方式更为简单直接,而修改crush map的方式需要去做修改的操作,有一定的修改错误的风险,所以在做crush map的相关操作的时候,建议是能用命令方式做的就用命令方式去做操作
如何删除一台OSD主机的更多相关文章
- ssh 设置私钥实现两台linux主机无密码访问
在服务器主机上(称为A主机) 创建公钥与私钥: ssh-keygen -t rsa 一路回车,如果想设置密码短语,在提示 passphrase 的时候设置密码短语 查看生成的公钥及私钥: ls ~/. ...
- 两台Linux主机之间文件的复制
使用scp命令可以实现两台Linux主机之间的文件复制,基本格式是: scp [可选参数] file_source file_target 1. 复制文件 命令格式: scp local_file r ...
- docker 现实---联网多台物理主机,容器桥到物理网络(三)
docker 默认桥接卡docker0 只有当这个单元中的所有容器桥接卡.例如,在主机虚拟网络适配器容器看通常称为veth*** 和docker只要把这些卡桥接在一起,例如下面的附图: waterm ...
- 多台linux主机之间建立免密通信
多台linux主机之间设置免密通信 例:A 向 B设置免密通信 第一步 A生成密钥对 ssh-keygen -t rsa -t 指定秘钥的类型 rsa 秘钥类型 密钥目录:/root/.ssh/(如果 ...
- Docker多台物理主机之间的容器互联
Docker 默认的桥接网卡是 docker0.它只会在本机桥接所有的容器网卡,举例来说容器的虚拟网卡在主机上看一般叫做 veth* 而 Docker 只是把所有这些网卡桥接在一起,如下: [root ...
- 多台linux主机间免密码登录
即在一台主机上登录另一台主机. 有2台linux主机A.B.A输入命令ssh B的ip地址以连接B,发现需要输入B的登录密码,怎样不需要输入密码呢? 步骤1: 在主机A中,输入ssh-keygen - ...
- 两台Linux主机互传文件可以使用SCP命令来实现
当两台linux主机之间要互传文件时可使用SCP命令来实现 复制文件: (1)将本地文件拷贝到远程 scp 文件名 --用户名@计算机IP或者计算机名称:远程路径 (2)从远程将文件拷回本地 scp ...
- redis 集群安装 3主3从3台云主机
穷呀!! 3台云主机来搭建个集群! 配置低的伤心! 1u2G ! 不说了,干吧! 可以看出 OK了. 准备工作 :
- [转]Windows 8.1删除这台电脑中视频/文档/下载等六个文件夹的方法
Windows 8.1 已将“计算机”正式更名为“这台电脑”,当我们双击打开“这台电脑”后,也会很明显得发现另外一些变化:Windows 8.1 默认将视频.图片.文档.下载.音乐.桌面等常用文件夹 ...
随机推荐
- Spark学习总结
RDD及其特点 1.RDD是Spark的核心数据模型,但是个抽象类,全称为Resillient Distributed Dataset,即弹性分布式数据集. 2.RDD在抽象上来说是一种元素集合,包含 ...
- 多路查找树(2-3 树、2-3-4 树、B 树、B+ 树)
本文参考自<大话数据结构> 计算机中数据的存储 一般而言,我们都是在内存中处理数据,但假如我们要操作的数据集非常大,内存无法处理了,在这种情况下对数据的处理需要不断地从硬盘等存储设备中调入 ...
- df du linux空间清理,查看文件大小
df -h ,这个命令用于查看服务器空间,运行后的效果图如下: [root@localhost /]# df -h Filesystem Size Used Avail Use% Mounted on ...
- Vue踩坑日记-This dependency was not found:element-ui.js
该问题为在Vue启动项目时候报错找不到element-ui模块 解决办法:打开CMD 控制台 CD到项目根目录 我的目录(C:\Users\Administrator\Desktop\cms-heli ...
- mysql优化篇(基于索引)
在上一篇文章:Mysql索引(一篇就够le) 中介绍了索引的基本使用,分类和原理,也强烈建议先读Mysql索引(一篇就够le),然后继续本文的阅读 我们也知道mysql的优化可以从很多的方面进行,比如 ...
- poj 2229 一道动态规划思维题
http://poj.org/problem?id=2229 先把题目连接发上.题目的意思就是: 把n拆分为2的幂相加的形式,问有多少种拆分方法. 看了大佬的完全背包代码很久都没懂,就照着网上的写了动 ...
- MFiX-DEM中的串行碰撞搜索
在计算颗粒碰撞的时候,需要进行neighbor颗粒的搜寻,只知道大概是基于网格与颗粒绑定的方式,但是具体的实现方式还是比较模糊.搜寻部分代码如下 (mfix-19.2.2): 可以直接观察到的是,这里 ...
- java POI Excel 单元格样式
正如Html需要CSS一样,我们的POI生成的Excel同样需要样式才能更完美的表现我们的数据.下面还是从简单的例子出发,学习和了解POI的样式设计. 一.我的位置. 1 package com.my ...
- Java线程池初步解读
好好学习,天天向上 本文已收录至我的Github仓库DayDayUP:github.com/RobodLee/DayDayUP,欢迎Star 几个月前,写了一篇<Java并发学习(一):进程和线 ...
- Learn day3 深浅拷贝/格式化/字符串/列表/字典/集合/文件操作
1. pass break continue # ### pass break continue # (1) pass 过 """如果代码块当中,什么也不写,用pass来 ...