Ceph排錯之osd之間心跳檢測沒有回應

2021-07-25 23:56:12 字數 3741 閱讀 1580

ceph儲存集群是建立在八台伺服器上面,每台伺服器各有9個osd節點,上班的時候發現,四台伺服器上總共有8個osd節點在crush裡面顯示down狀態,重啟osd節點後恢復正常,但是之後會繼續顯示down狀態,實際上osd程序已經在執行中了。檢視osd節點日誌後發現,整個故障過程如下:

1. 單個osd節點接收不到另外一台伺服器節點上的所有osd心跳資訊,日誌記錄如下

2017-01-12 15:46:44.461929 7f913748c700 -1 error_msg osd.49 359369 heartbeat_check: no reply from osd.57 ever on either front or back, first ping sent 2017-01-12 15:18:09.046948 (cutoff 2017-01-12 15:46:24.461923)

2017-01-12 15:46:44.461946 7f913748c700 -1 error_msg osd.49 359369 heartbeat_check: no reply from osd.58 ever on either front or back, first ping sent 2017-01-12 15:18:09.046948 (cutoff 2017-01-12 15:46:24.461923)

2017-01-12 15:46:44.461967 7f913748c700 -1 error_msg osd.49 359369 heartbeat_check: no reply from osd.61 ever on either front or back, first ping sent 2017-01-12 15:18:09.046948 (cutoff 2017-01-12 15:46:24.461923)

2017-01-12 15:46:44.529580 7f838761f700 -1 error_msg osd.52 359367 heartbeat_check: no reply from osd.58 ever on either front or back, first ping sent 2017-01-12 15:17:14.579226 (cutoff 2017-01-12 15:46:24.529579)

2017-01-12 15:46:44.529596 7f838761f700 -1 error_msg osd.52 359367 heartbeat_check: no reply from osd.61 ever on either front or back, first ping sent 2017-01-12 15:17:14.579226 (cutoff 2017-01-12 15:46:24.529579)

2017-01-12 15:46:44.711242 7f83670f2700 -1 error_msg osd.52 359367 heartbeat_check: no reply from osd.58 ever on either front or back, first ping sent 2017-01-12 15:17:14.579226 (cutoff 2017-01-12 15:46:24.711242)

2. 單個osd節點接收不到相同伺服器上其他節點的osd心跳資訊;

2017-01-12 15:46:44.461929 7f913748c700 -1 error_msg osd.49 359369 heartbeat_check: no reply from osd.57 ever on either front or back, first ping sent 2017-01-12 15:18:09.046948 (cutoff 2017-01-12 15:46:24.461923)

2017-01-12 15:46:44.461946 7f913748c700 -1 error_msg osd.49 359369 heartbeat_check: no reply from osd.58 ever on either front or back, first ping sent 2017-01-12 15:18:09.046948 (cutoff 2017-01-12 15:46:24.461923)

2017-01-12 15:46:44.461967 7f913748c700 -1 error_msg osd.49 359369 heartbeat_check: no reply from osd.61 ever on either front or back, first ping sent 2017-01-12 15:18:09.046948 (cutoff 2017-01-12 15:46:24.461923)

2017-01-12 15:46:44.529580 7f838761f700 -1 error_msg osd.52 359367 heartbeat_check: no reply from osd.58 ever on either front or back, first ping sent 2017-01-12 15:17:14.579226 (cutoff 2017-01-12 15:46:24.529579)

2017-01-12 15:46:44.529596 7f838761f700 -1 error_msg osd.52 359367 heartbeat_check: no reply from osd.61 ever on either front or back, first ping sent 2017-01-12 15:17:14.579226 (cutoff 2017-01-12 15:46:24.529579)

2017-01-12 15:46:44.711242 7f83670f2700 -1 error_msg osd.52 359367 heartbeat_check: no reply from osd.58 ever on either front or back, first ping sent 2017-01-12 15:17:14.579226 (cutoff 2017-01-12 15:46:24.711242)

3. 該osd節點被map標記為down狀態,日誌提示是:map wrongly mark me down;

2017-01-12 15:46:44.711242 7f715610e700  0 log_channel(cluster) log [wrn] : map e83 wrongly marked me down

排錯過程如下:

1. 首先第一反應應該是時鐘問題,時鐘不同步(環境用的是ntp),檢查發現確實時鐘不同步,錯誤的時區。然後解決時鐘問題,解決時鐘問題之後,還是不行,還是no reply from osd.***

2. 會不會是網路問題?

然後我選擇其中兩台有問題的伺服器,登陸上去檢視是不是網路不通,簡單ping了一下,發現可以,也沒有丟包現象。那就奇怪了,到底腫麼了?然後我突然想到防火牆,這可是很多linux服務的克星。關閉防火牆和selinux,ceph集群恢復正常!!!

附加關閉防火牆和selinux的命令:

關閉iptables:

關閉命令:  service iptables stop 

永久關閉防火牆:chkconfig iptables off

關閉selinux

永久性關閉(這樣需要重啟伺服器後生效)

# sed -i 's/selinux=enforcing/selinux=disabled/' /etc/selinux/config

臨時性關閉(立即生效,但是重啟伺服器後失效)

# setenforce 0 #設定selinux為permissive模式(即關閉)

# setenforce 1 #設定selinux為enforcing模式(即開啟)

ceph增加osd流程

假如需要新增乙個主機名 osd4 ip 192.168.0.110的osd 1.在osd4建立掛載目錄及放置配置檔案的目錄 ssh 192.168.0.110 這裡是從mon主機ssh到osd4主機 mkdir ceph osd.4 mkdir etc ceph 2.在osd4上格式化ext4的sd...

ceph運維 新增osd

ceph osd create 獲取osd的id號,假設輸出的是2 ssh osd2 登入到要新增到集群的主機 sudo mkdir var lib ceph osd ceph 2 建立新的osd目錄 sudo mkfs.btrfs dev sdb 如果檔案系統用的不是btrfs,在終端輸入mkfs...

ceph 新增osd失敗問題

在ceph集群使用過程中遇到乙個問題,剔除一塊磁碟需要更換新磁碟,使用下面兩個新增命令反覆操作了多次,osd都沒有加到集群裡面,不知道是什麼原因,無奈之下重啟了伺服器,伺服器啟動後,osd設定到了集群中。新增命令應該是生效了,可能是機器處於某種狀態導致新增osd異常,遇到類似問題可以考慮重啟要新增o...