熱門分類
載入中…
目錄0%

🧱 Ceph on Proxmox:三節點高可用儲存叢集完整部署指南(企業架構篇)

    🧱 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 每一個節點:

    1. 選擇 pve1 → Ceph → 安裝
    2. 選擇版本(例如:reef)
    3. 按「開始安裝」
    4. pve2 / pve3 重複上述步驟
    或 CLI:
    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:

    1. Datacenter → Storage → Add → RBD
    2. ID:ceph-rbd
    3. Pool:rbd-pool
    4. Monitor(s):自動帶入
    5. 選 VM / Disk Image 可用
    之後在建立 VM 時即可選擇此 Storage。

    5.3 建立 CephFS(可選,用於 ISO / Template / Backup)

    ceph fs volume create cephfs
    
    在 PVE 新增 CephFS Storage:
    1. Datacenter → Storage → Add → CephFS
    2. ID:cephfs
    3. Mon Host:自動帶入
    4. 目標用途:ISO / Container template / VZDump Backup 等
    這樣整個儲存層就完全 Ceph 化。

    📌 第六章:三節點 Ceph 叢集的 HA 與容錯行為

    6.1 副本數(Replication)設定

    一般三節點叢集,建議:

    ceph osd pool set rbd-pool size 3
    
    代表每一份資料會存 3 份,分散在不同 OSD / Node 上。

    6.2 節點故障時會發生什麼?

    1. 失聯節點上的 OSD 標記為 down / out
    2. PG 進入 degraded 狀態(複本數不足)
    3. Ceph 會自動在其他 OSD 重新複寫缺少的份數(Recovery)
    4. 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 建議指令(不同版本有 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)

    這些將在未來的進階篇中陸續介紹。


    🔗 分享這篇 LINE Facebook X

    沒有留言:

    字級