---
title: Ceph 恢復速度在 OSD 重啟後緩慢：如和診斷 HEALTH_WARN 及 Bluestore RocksDB 讀取瓶頸
description: 客戶反映的一個長期待解決的問題是 Ceph 叢集恢復至 HEALTH_OK 狀態的時間過長。經過一些觀察後，我們得出結論，像是重新啟動 ceph-osd（物件存儲守護進程）這樣簡單的操作，竟然會導致如此長時間的恢復過程。
---

[部落格｜資源｜Bigstack ](https://www.bigstack.co/zh-tw/blog)

# [Ceph 恢復速度在 OSD 重啟後緩慢：如和診斷 HEALTH_WARN 及 Bluestore RocksDB 讀取瓶頸](https://www.bigstack.co/zh-tw/blog/innovative-applications-of-nfs-ganesha-in-ceph-systems)

 作者：[Lee, Chien-Pang](https://www.bigstack.co/zh-tw/blog/author/lee-chien-pang) | 2025/1/22 上午 01:49:57

客戶反映的一個長期待解決的問題是 Ceph 叢集恢復至 HEALTH_OK 狀態的時間過長。根據實際的硬體和設置（主要是磁碟數量），在發生停電或計劃性維護時，這段時間從一小時到數小時不等。我們已經確認了這個問題並成功修復。經過一些觀察後，我們得出結論，像是重新啟動 ceph-osd（物件存儲守護進程）這樣簡單的操作，竟然會導致如此長時間的恢復過程。

以一個三節點叢集為例，我重新啟動了第一個節點上的所有 ceph-osd。

*圖片來源：Bigstack CubeCOS*

10 分鐘後，我仍然看到上述的 **HEALTH_WARN** 狀態。系統提示 14 個 osd 異常並且 pgs 不足。這個警告是合理的，因為該存儲叢集配置為三重複製並以主機為故障域。當三個節點中的一個節點的 osd 異常時，ceph 無法完成第三個副本，導致 pgs 不足。這個問題會在更大規模的叢集（更多節點）中惡化，因為 ceph 會開始在另一個節點上建立第三個副本。這會完全浪費磁碟的 I/O，因為當這 14 個 osd 恢復正常後，ceph 會意識到有 4 個副本，然後還會額外處理刪除多餘的副本。這些不必要的磁碟活動不僅縮短了磁碟的壽命，尤其是 SSD，還增加了 osd 進程的記憶體使用量。這還不是全部。請注意，這是一個運行中的叢集，ceph 仍在處理存儲請求。ceph 會繼續寫入數據並將 pgs 分配給剩餘的 osd。這意味著，一旦這 14 個 osd 重新加入叢集，它們必須同步並重新平衡 pgs。顯然，越早讓 osd 恢復正常狀態，對整個存儲叢集的各方面都越有利。

為了更詳細地查看日誌，我停止了其中一個啟動時間較長的 osd 進程，並手動加上調試標誌來執行它。

 

```
# systemctl restart ceph-osd@7# /usr/bin/ceph-osd -d --cluster ceph --id 7 --setuser ceph --setgroup ceph --debug_bluefs 10 --debug_bluestore 10
```

有大量的訊息，但總體來說，情況看起來還算正常，直到出現以下情況：

`bluestore(/var/lib/ceph/osd/ceph-7) _open_db_and_around read-only:0 repair:0`

在這步驟之後，發現大量的讀取活動發生在 rocksdb 上。這從磁碟的 iostat 輸出中得到了證實。經過一番搜尋和無頭實驗，我觀察到一些 osd 恢復的速度似乎比其他的快。線索指向 bluestore rocksdb 中過多的讀取操作。那麼，儲存在那裡的最大數據是什麼呢？

*圖片來源：Bigstack CubeCOS*

當我們檢查 ceph 磁碟的空間使用情況時，一個看起來可疑的欄位是 **META**。一些 osd 的 META 大小相對較小（以 MB 計算），而大多數其他 osd 則在 GB 級別。結果發現，META 大小越大，osd 完成啟動所需的時間就越長。這與我們觀察到的情況相符，因為 META 資料儲存在 bluestore rocksdb 中。

幸運的是，ceph 提供了一個工具來減少 META 資料的大小。

*圖片來源：Bigstack CubeCOS*

就這樣！當 META 資料被壓縮並將大小減少到數十 MB 後，osd 能夠在幾秒鐘內完成啟動並被識別為正常運行。

通過將這個簡單的步驟加入到我們的腳本中，從此以後我們可以重啟每個 osd，而不必擔心會影響性能或增加恢復的負擔。這是一個顯著的改進，大大減少了支援和維護成本，也改善了客戶的體驗。

 

[檢視完整文章](https://www.bigstack.co/zh-tw/blog/innovative-applications-of-nfs-ganesha-in-ceph-systems)

```json
{
  "@context" : "http://schema.org",
  "@type" : "BlogPosting",
  "author" : {
    "@type" : "Person",
    "name" : "Lee, Chien-Pang"
  },
  "dateModified" : "2026-03-10T04:48:55.307Z",
  "datePublished" : "2025-01-22T01:49:57Z",
  "headline" : "Ceph 恢復速度在 OSD 重啟後緩慢：如和診斷 HEALTH_WARN 及 Bluestore RocksDB 讀取瓶頸",
  "image" : {
    "@type" : "ImageObject",
    "height" : 533,
    "url" : "https://23917899.fs1.hubspotusercontent-na1.net/hubfs/23917899/Website%20Images%20%28Dev%29/Blog/ceph.jpg",
    "width" : 840
  },
  "mainEntityOfPage" : "https://www.bigstack.co/zh-tw/blog/innovative-applications-of-nfs-ganesha-in-ceph-systems",
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "height" : 60.0,
      "url" : "https://bigstack.co/hubfs/bigstack-logo-basic.svg",
      "width" : 206.08696
    },
    "name" : "部落格"
  }
}
```