允許 6800-7300 port 以修復 OSD 的 Got signal Interrupt 問題 on Ceph 12.2.13

近日在維護 Ceph 12.2.13 × CentOS 7.8 舊系統時,遇到怎麼建 OSD 都無法正常加入 Ceph cluster 情形, 用「Got signal Interrupt」關鍵字爬了文、除錯後才發現是防火牆 (firewalld) 沒開,OSD 服務無法正常連線所造成。

錯誤訊息:
[ chusiang@ceph02 ~ ]
$ sudo journalctl -uf ceph-osd@36 [Enter]
...

starting osd.36 at - osd_data /var/lib/ceph/osd/ceph-36 /var/lib/ceph/osd/ceph-36/journal
2026-01-20 10:22:27.977123 7fbec11eeec0 -1 osd.36 0 log_to_monitors {default=true}
2026-01-20 10:22:29.234265 7fbea6db0700 -1 osd.36 0 waiting for initial osdmap
2026-01-20 10:27:37.502012 7fbe9cd9c700 -1 Fail to open '/proc/0/cmdline' error = (2) No such file or dir
2026-01-20 10:27:37.502041 7fbe9cd9c700 -1 received signal: Interrupt from PID: 0 task name:
2026-01-20 10:27:37.502046 7fbe9cd9c700 -1 osd.36 83217 *** Got signal Interrupt ***
2026-01-20 10:27:37.502054 7fbe9cd9c700 -1 osd.36 83217 shutdown

在 Firewalld 允許 OSDs 用到的 6800-7300 TCP port。(立即生效,但未寫入)
[ chusiang@ceph02 ~ ]
$ sudo firewall-cmd --add-port=6800-7300/tcp [Enter]
success

在 Firewalld 允許 OSDs 用到的 6800-7300 TCP port。(永久生效)
[ chusiang@ceph02 ~ ]
$ sudo firewall-cmd --add-port=6800-7300/tcp --permanent [Enter]
success

網路打通後,就可以看到 OSD.36 up,成功啟動哩!
[ chusiang@ceph02 ~ ]
$ sudo ceph osd tree> [Enter]
ID  CLASS WEIGHT    TYPE NAME           STATUS REWEIGHT PRI-AFF
 -1       371.14685 root default
 ...

 -5        21.83217     host ceph02
 36   hdd   7.27739         osd.36          up  1.00000 1.00000

一般 Ceph 教學起手式會把防火牆關掉,所以不會遇到此問題;依稀記得 3 年前凍仁也踩過一樣的問題,加上重建一顆 OSD 要數個小時,就順手寫篇 Blog 筆記一下。隔壁也有 IP 衝突後出現類似狀況,就請大家多加留意網路層的問題唄!

資料來源:
[ceph-users] OSDs missing from cluster all from one node | Narkive
记一次 ceph osd 莫名其妙自动关闭进程异常_monitor daemon marked osd.90 down, but it is still | CSDN 博客
Ceph 分布式存储系统 OSD 单元 down 以及 out 状态的排查与修复 | 老俞搞技术

留言

Popular Articles

請改用國網中心的 apt 鏡像站 (mirror)