前段时间我们从Ceph集群中删除了两个损坏的OSD,osd.0和osd.8。它们现在已经从大多数Ceph命令中消失了,但仍然在CRUSH地图中出现了奇怪的设备名称:
# devices
device 0 device0 <-----
device 1 osd.1
device 2 osd.2
device 3 osd.3
device 4 osd.4
device 5 osd.5
device 6 osd.6
device 7 osd.7
device 8 device8 <-----
device 9 osd.9
有人可以解释为什么device0和device8仍在那里,如果它们对集群有任何影响,以及我们是否应该删除它们?
device0和device8不会显示在CRUSH地图中的任何其他位置。
我们在网站上使用了以下程序:
http://docs.ceph.com/docs/jewel/rados/operations/add-or-rm-osds/#removing-osds-manual
基本上:
ceph osd crush remove 8
ceph auth del osd.8
ceph osd rm 8
我主要是因为我们正在处理一些卡住的PG(不完整),这些PG仍在各个地方引用id“8”。想知道这是否相关?
否则,“ceph osd tree”看起来如我所料(没有osd.8且没有osd.0):
djakubiec@dev:~$ ceph osd tree
ID WEIGHT TYPE NAME UP/DOWN REWEIGHT PRIMARY-AFFINITY
-1 58.19960 root default
-2 7.27489 host node24
1 7.27489 osd.1 up 1.00000 1.00000
-3 7.27489 host node25
2 7.27489 osd.2 up 1.00000 1.00000
-4 7.27489 host node26
3 7.27489 osd.3 up 1.00000 1.00000
-5 7.27489 host node27
4 7.27489 osd.4 up 1.00000 1.00000
-6 7.27489 host node28
5 7.27489 osd.5 up 1.00000 1.00000
-7 7.27489 host node29
6 7.27489 osd.6 up 1.00000 1.00000
-8 7.27539 host node30
9 7.27539 osd.9 up 1.00000 1.00000
-9 7.27489 host node31
7 7.27489 osd.7 up 1.00000 1.00000
谢谢,
- 丹
答案 0 :(得分:0)
节点出现故障后,我遇到了同样的问题,并通过从挤压图上手动移除了多余的设备来解决了这个问题。我已经使用标准过程删除了osds和发生故障的节点,但是由于某种原因,我的暗恋地图中留下了幻影设备。
导出喜欢的贴图并对其进行编辑:
~# ceph osd getcrushmap -o /tmp/crushmap
~# crushtool -d /tmp/crushmap -o crush_map
~# vi crush_map
这是我的暗恋地图的设备部分之前的样子:
# devices
device 0 osd.0
device 1 device1
device 2 osd.2
device 3 osd.3
device 4 device4
device 5 osd.5
device 6 osd.6
device 7 osd.7
我将其更改为此-请注意,我必须重新编号,而不仅仅是删除多余的行。
# devices
device 0 osd.0
device 1 osd.2
device 2 osd.3
device 3 osd.5
device 4 osd.6
device 5 osd.7
然后,重新编译暗恋贴图并应用它:
~# crushtool -c crush_map -o /tmp/crushmap
~# ceph osd setcrushmap -i /tmp/crushmap
这又开始了恢复过程,并且幻影设备现在不见了。