🧱 Ceph on Proxmox:三節點高可用儲存叢集完整部署指南(企業架構篇)
在企業環境中,如果希望 Proxmox VE 不只做到節點 HA,連「儲存層」都能自動容錯、線上擴充、節點故障不中斷,最佳解幾乎就是:Proxmox + Ceph。 本篇以 三節點 PVE + Ceph 共置(Hyper-converged)架構 為範例,完整說明:
- Ceph 核心概念(RADOS、OSD、MON、PG、CRUSH)
- 三節點高可用儲存叢集硬體與網路規劃
- 在 Proxmox 上部署 Ceph(GUI + CLI)
- 建立 RBD Pool、CephFS 並掛載到 PVE 作為 VM 儲存
- 節點故障時的自動修復與資料重平衡(Rebalance)
- 常見問題、調校建議與企業實務最佳做法
如果你已經完成 Proxmox Cluster / HA,本篇可以視為「企業級儲存篇」的補完。
📌 第一章:Ceph 核心架構快速複習
Ceph 是一套開源分散式儲存系統,核心概念如下:
- RADOS:底層物件儲存系統(Reliable Autonomic Distributed Object Store)
- OSD(Object Storage Daemon):實際存放資料的服務,每顆資料碟通常一個 OSD
- MON(Monitor):維護叢集狀態與一致性(Quorum)
- MGR(Manager):提供額外統計與管理功能
- PG(Placement Group):物件分配與重平衡的邏輯單位
- CRUSH Map:控制資料如何在 OSD / Node / Rack 間分散與複寫
Proxmox 內建 Ceph 整合,讓你可以直接透過 Web GUI 建立:
- RBD(RADOS Block Device):給 VM / LXC 當磁碟使用
- CephFS:類似共享檔案系統,可用於 ISO、Templates、Backup 等
📌 第二章:三節點 Proxmox + Ceph 叢集設計範例
2.1 範例架構
節點:
pve1 / pve2 / pve3(同時跑 VM 與 Ceph OSD)
網路:
- Management / VM:10.10.10.0/24
- Ceph Cluster(公網 + 叢集網可分離):10.20.20.0/24
磁碟建議(每節點):
- OS:SSD / NVMe(安裝 PVE 使用)
- Ceph OSD:至少 2~3 顆 HDD 或 SSD
- 可選:獨立 SSD 作為 Ceph Journal / DB / WAL
2.2 基本需求與建議
- 節點數:至少 3 台(MON Quorum + OSD 分散)
- 網路:Ceph 網路建議 10GbE 或以上,至少獨立 VLAN
- 時間同步:所有節點需使用 NTP,同步時鐘
- 冗餘:若預計未來再擴充,PG / 副本數要提早規劃
📌 第三章:前置作業(PVE Cluster 與網路設定)
3.1 建立 Proxmox Cluster
假設你已安裝好三台 PVE,先建立叢集:
# 在 pve1 上建立叢集
pvecm create prod-cluster
# 在 pve2 / pve3 加入叢集
pvecm add 10.10.10.11 # pve1 管理 IP
使用 pvecm status 確認三節點都在同一 cluster。
3.2 設定 Ceph Network
常見模式為:
- Public Network:Client 連 Ceph 用(PVE / VM)
- Cluster Network:OSD 之間複寫、重平衡使用
如果網卡允許,建議至少:
- vmbr0:管理 + VM
- vmbr1:Ceph 公網
- vmbr2:Ceph 叢集網(可選,但非常建議)
📌 第四章:在 Proxmox 上部署 Ceph(GUI + CLI)
Proxmox 8.x 已內建 Ceph(通常是 Reef / Quincy),可以透過 Web GUI 安裝。
4.1 安裝 Ceph 套件
在 GUI 每一個節點:
- 選擇 pve1 → Ceph → 安裝
- 選擇版本(例如:reef)
- 按「開始安裝」
- pve2 / pve3 重複上述步驟
pveceph install --version reef
4.2 建立 MON / MGR
至少需要三個 MON(每節點一個):
# pve1
pveceph mon create
# pve2
pveceph mon create
# pve3
pveceph mon create
# 建立 MGR(通常每節點一個)
pveceph mgr create
在 GUI 的 Datacenter → Ceph → Monitor 也能完成。
4.3 建立 OSD(資料磁碟)
在每個節點中,將空白磁碟交給 Ceph:
pveceph osd create /dev/sdb
pveceph osd create /dev/sdc
或在 GUI:節點 → Ceph → OSD → Create OSD 選擇磁碟。
4.4 檢查叢集狀態
ceph status
ceph osd tree
ceph df
狀態應為 HEALTH_OK 或至少 HEALTH_WARN 且無嚴重錯誤。
📌 第五章:建立 Pool 與 RBD / CephFS,並掛載到 PVE
5.1 建立儲存 Pool(RBD)
一般 VM / LXC 使用 RBD:
ceph osd pool create rbd-pool 128
rbd pool init rbd-pool
PG 數量(例:128)視 OSD 數量而定,小型環境可從 64~128 起步。
5.2 在 PVE 新增 RBD Storage
在 GUI:
- Datacenter → Storage → Add → RBD
- ID:
ceph-rbd - Pool:
rbd-pool - Monitor(s):自動帶入
- 選 VM / Disk Image 可用
5.3 建立 CephFS(可選,用於 ISO / Template / Backup)
ceph fs volume create cephfs
在 PVE 新增 CephFS Storage:
- Datacenter → Storage → Add → CephFS
- ID:
cephfs - Mon Host:自動帶入
- 目標用途:ISO / Container template / VZDump Backup 等
📌 第六章:三節點 Ceph 叢集的 HA 與容錯行為
6.1 副本數(Replication)設定
一般三節點叢集,建議:
ceph osd pool set rbd-pool size 3
代表每一份資料會存 3 份,分散在不同 OSD / Node 上。
6.2 節點故障時會發生什麼?
- 失聯節點上的 OSD 標記為
down/out - PG 進入
degraded狀態(複本數不足) - Ceph 會自動在其他 OSD 重新複寫缺少的份數(Recovery)
- VM 若使用 Proxmox HA,會在其他節點啟動,磁碟仍可由 Ceph 提供
6.3 Rebalance / Recovery 監控
ceph -w
ceph status
你會看到類似:
pgs: 256 active+remapped+backfilling
當恢復完成後則會回到 active+clean。
📌 第七章:效能與可靠性調校建議
7.1 用 SSD / NVMe 當 OSD 的情境
- 追求 IOPS 高度者(DB / OLTP)
- 空間較小但性能要求高
7.2 HDD + SSD DB/WAL 的情境
- 大容量 + 尚可接受的延遲
- 可用 NVMe 作為 DB/WAL,加速 metadata 與 Journal
7.3 OSD 數量與 PG 設定
簡化建議:
- OSD ≦ 5:PG 數量可設 64~128
- OSD 5~10:PG 約 256~512
ceph osd pool autoscale 等功能)。
📌 第八章:常見問題與故障排除
8.1 HEALTH_WARN / HEALTH_ERR
ceph health detail
常見原因:
- OSD down / out
- MON 失聯導致 Quorum 不足
- PG 不平衡 / 未完成 Recovery
8.2 空間不足(NearFull / Full)
- 當 OSD 使用超過一定比例(預設 85~95%),會開始拒絕寫入
- 解決方式:擴充 OSD 或移除不必要資料
8.3 單一節點效能異常
檢查:
ceph osd perf
ceph osd df
若某顆 OSD I/O latency 異常,可能為硬碟故障前兆。
📌 第九章:企業實務最佳做法整理
- 🧱 三節點起步,但規畫時預留擴充至 5~7 節點的空間
- 🌐 Ceph 網路建議獨立 VLAN,最好 10GbE 起跳
- 📦 將 VM / LXC 重要服務全部放在 RBD 上,搭配 Proxmox HA
- 🧪 在上線前做實際「拔網線 / 關機」Failover 測試
- 📊 導入監控(Grafana + Ceph Dashboard / Proxmox API)觀察 IOPS 與延遲
- 🧯 保持至少 20% 空間餘裕,以免重平衡時爆滿
📌 結語
完成三節點 Proxmox + Ceph 叢集後,你的虛擬化平台就不只是「可以開 VM」,而是具備儲存層高可用、節點故障自動修復、線上擴容的完整企業架構。 搭配先前的 Proxmox HA、Cluster、Backup、Automation 系列,你已經具備建置中小型私有雲的完整能力。
後續可延伸主題包括:
- Ceph 多站點備援(遠端叢集 / RBD Mirroring)
- Proxmox 與 Ceph 的跨機房架構設計
- 整合 Ansible / Terraform 做基礎設施程式化管理(IaC)
這些將在未來的進階篇中陸續介紹。
沒有留言: