Skip to content

Ceph — 專案總覽

Ceph 是一套以 RADOS 為核心的分散式儲存系統,能同時提供物件儲存、區塊儲存與檔案系統介面。它的設計目標不是把所有 I/O 都集中到單一控制節點,而是透過叢集地圖、CRUSH 演算法與大量 OSD 節點,把資料與流量分散到整個叢集中。

對平台工程師而言,Ceph 的價值在於:同一套底層資料平面,可以同時支撐虛擬機磁碟、Kubernetes PVC、S3 相容物件儲存與共享檔案系統。

架構速覽

                         +----------------------+
                         |        Clients       |
                         | librados / librbd /  |
                         |      libcephfs       |
                         +----------+-----------+
                                    |
                                    v
+---------+    +---------+    +-----------+    +---------+    +---------+
|  MON    |    |  MGR    |    |   RADOS   |    |  MDS    |    |  RGW    |
| quorum  |    | modules |    |  core +   |    | CephFS  |    | S3/Swift|
| maps    |    | metrics |    |  CRUSH    |    | metadata|    | gateway |
+----+----+    +----+----+    +-----+-----+    +----+----+    +----+----+
     |              |                |               |              |
     +--------------+----------------+---------------+--------------+
                                    |
                                    v
                          +-------------------+
                          |    OSD daemons    |
                          | data / replica /  |
                          | recovery / scrub  |
                          +-------------------+

Ceph 在做什麼?

  • MON(Monitor):維護叢集地圖與 quorum,提供一致的控制面資訊。
  • OSD(Object Storage Daemon):實際負責資料寫入、複寫、回復與 scrub。
  • MGR(Manager):補強監控、模組化功能與叢集管理整合。
  • MDS(Metadata Server):只在 CephFS 場景中負責目錄與 inode 類型的 metadata。
  • RGW(RADOS Gateway):把 RADOS 能力包裝成 S3 / Swift 相容 API。
  • librados / librbd / libcephfs:讓應用程式、虛擬化平台與檔案系統客戶端直接使用 Ceph。

閱讀順序建議

如果你是第一次接觸 Ceph,建議先看「整體架構概述」,再看「部署架構與 cephadm」,最後依序閱讀 MON、OSD、RADOS、RBD 與 CephFS。

文件導覽

下表整理本章節預計涵蓋的頁面。已完成頁面提供可直接點擊的連結;其餘頁面先列出檔名與主題,方便後續擴充。

分類頁面檔案說明狀態
系統架構整體架構概述architecture.mdCeph 與 RADOS 的整體設計已完成
系統架構部署架構與 cephadmdeployment.mdcephadm、bootstrap 與服務佈署已完成
核心元件MONmonitor.mdMonitor quorum 與各類 cluster map規劃中
核心元件OSDosd.md資料寫入、複寫、回復、scrub規劃中
核心元件MGRmanager.mdManager 模組與觀測能力規劃中
核心元件MDSmds.mdCephFS metadata 平面規劃中
儲存介面RADOS / libradosrados.md物件層與原生 API規劃中
儲存介面RBDrbd.md區塊裝置映像與快照規劃中
儲存介面CephFScephfs.mdPOSIX 風格共享檔案系統規劃中
儲存介面RGW Gatewayrgw.mdS3 / Swift 相容閘道規劃中
核心演算法CRUSH 演算法crush.md放置演算法與 failure domain規劃中
核心演算法PG 機制pg-replication.mdPlacement Group、peering 與複寫規劃中
維運管理cephadm 深入分析cephadm.mdOrchestrator 模組、spec 與 host / service 管理已完成
維運管理Dashboarddashboard.mdWeb UI、Prometheus / Grafana 整合與 REST API已完成
維運管理日常維運operations.md巡檢、擴容、故障排查、升級已完成
學習路徑學習路徑入口learning-path/index.md控制面與資料面閱讀順序已完成
學習路徑故事驅動式學習learning-path/story.md以一次寫入流程串起 Ceph 核心概念已完成
學習測驗架構測驗quiz/architecture.md架構與資料流測驗規劃中
學習測驗元件測驗quiz/components.mdMON / OSD / MGR / MDS 測驗規劃中
學習測驗儲存介面測驗quiz/storage.mdRADOS / RBD / CephFS / RGW 測驗規劃中

建議關注主題

  1. RADOS 如何讓 client 直接找到 OSD:這是 Ceph 可水平擴充的核心。
  2. MON 為何只處理控制面:理解這點才能掌握 Ceph 的擴充上限。
  3. PG 與 CRUSH 的關係:Ceph 的資料放置不是單純 hash,而是 map + policy 的組合。
  4. MDS 為何只服務 CephFS:它不是所有 Ceph I/O 的必經元件。
  5. cephadm 為何依賴容器與 declarative spec:這是現代 Ceph 維運模式的關鍵。

基於 Apache 2.0 授權