Proxmox + Ceph HCI Cluster Node Decommission v9.x

Bu runbook Proxmox VE + Ceph HCI cluster ortamında node shrink işlemini güvenli şekilde yapmak için hazırlanmıştır.

Örnek Operasyon:
10 node → 5 node shrink

Operasyon Mantık Sırası
1️⃣ Operasyon planı
2️⃣ VM / HA cleanup
3️⃣ Ceph OSD removal
4️⃣ Proxmox node removal
5️⃣ Ceph rebalance & PG planning
6️⃣ CRUSH rule doğrulama

Örnek Cluster Ortamı

Proxmox Cluster: 10 node
Storage: Ceph HCI
Replica size: 3
OSD per node: 12 NVMe
Toplam: 120 OSD

Shrink hedefi: 10 → 5 node

1-Operasyon Öncesi Kontroller

Proxmox Cluster Health

pvecm status

Beklenen çıktı:
Quorate: Yes
Nodes: 10

Node Listesi

pvecm nodes

Ceph Cluster Health

ceph -s

Beklenen:
HEALTH_OK

Eğer cluster HEALTH_WARN / DEGRADED ise node removal yapılmamalıdır.

2-Node Üzerindeki VM ve Container’ları Taşı

Node tamamen boş olmalıdır.

Kontrol:
qm list
pct list

VM Migration
qm migrate VMID TARGETNODE --online

Container Migration
pct migrate CTID TARGETNODE

GUI
VM → Migrate

3-HA Kaynaklarını Temizle

HA kontrolü:
ha-manager status

HA resource taşıma:
ha-manager migrate vm:101 node02

4-Node Üzerindeki Ceph OSD’leri Tespit Et

ceph osd tree

Örnek:

host r1-prx-test-06
         osd.61
         osd.62
         osd.63
         osd.64
         osd.65

5-OSD’leri OUT Yap

ceph osd out 61
ceph osd out 62
ceph osd out 63
ceph osd out 64
ceph osd out 65

Kontrol:

ceph -s

Cluster aşağıdaki aktiviteleri başlatır:

recovery
backfill
rebalancing
⚠️ Bu işlemler bitmeden devam edilmez

6-OSD’leri STOP Et

systemctl stop ceph-osd@61
systemctl stop ceph-osd@62
systemctl stop ceph-osd@63
systemctl stop ceph-osd@64
systemctl stop ceph-osd@65

Kontrol:

systemctl status ceph-osd@61
systemctl status ceph-osd@62
systemctl status ceph-osd@63
systemctl status ceph-osd@64
systemctl status ceph-osd@65
👉 inactive olmalı

7-OSD’leri Cluster’dan Tamamen Sil

ceph osd purge 61 --yes-i-really-mean-it
ceph osd purge 62 --yes-i-really-mean-it
ceph osd purge 63 --yes-i-really-mean-it
ceph osd purge 64 --yes-i-really-mean-it
ceph osd purge 65 --yes-i-really-mean-it

Bu işlem temizler:
  • OSD map
  • CRUSH map
  • auth keys
  • metadata

8-Ceph MON Kontrol

ceph mon dump
Eğer node üzerinde MON varsa:

ceph mon remove r1-prx-test-06
MON sayısı tek sayı olmalıdır

3 / 5 / 7

9-Ceph MGR Kontrol

ceph mgr dump
Node üzerindeki mgr varsa kaldırılabilir.

10-CRUSH Host Entry Temizliği

ceph osd crush remove r1-prx-test-01

11-Disklerin Wipe ve Destroy Edilmesi

ceph-volume lvm zap /dev/nvme0n1  --destroy
ceph-volume lvm zap /dev/nvme1n1  --destroy
ceph-volume lvm zap /dev/nvme2n1  --destroy
ceph-volume lvm zap /dev/nvme3n1  --destroy
ceph-volume lvm zap /dev/nvme4n1  --destroy
ceph-volume lvm zap /dev/nvme5n1  --destroy
ceph-volume lvm zap /dev/nvme6n1  --destroy
ceph-volume lvm zap /dev/nvme7n1  --destroy
ceph-volume lvm zap /dev/nvme9n1  --destroy
ceph-volume lvm zap /dev/nvme10n1 --destroy
ceph-volume lvm zap /dev/nvme11n1 --destroy
ceph-volume lvm zap /dev/nvme12n1 --destroy

12-Node’u Power Off Et

shutdown -h now
⚠️ Node cluster networkünde tekrar açılmamalıdır.

13-Proxmox Cluster’dan Node Çıkarma

Başka bir node üzerinden çalıştırılır.
pvecm delnode r1-prx-test-06

Kontrol:
pvecm nodes

Node listeden silinmiş olmalıdır.

14-Eğer Quorum Hatası Oluşursa

pvecm expected 1

Sonra tekrar:
pvecm delnode r1-prx-test-06

15-Node Directory Temizliği

Bazı durumlarda şu klasör kalabilir:
/etc/pve/nodes/r1-prx-test-06

Temizleme:
rm -rf /etc/pve/nodes/r1-prx-test-06

16-Ceph Cluster Health Kontrol

ceph -s

Beklenen:
HEALTH_OK

17-Ceph HCI Node Shrink Planning

Örnek pool:
pool: r1_c01_artuklu
size: 3
PG: 4096
autoscaler: off

18-Ceph PG Dağılım Mantığı

Ceph veri dağılımı:

Object
 ↓
PG
 ↓
OSD

Replica:
size=3

19-PG Hesaplama Formülü

PG = (OSD × 100) / replica

20-Mevcut Cluster

10 node
12 OSD per node

Toplam: 120 OSD

PG hesap: (120 × 100) / 3 = 4000

Mevcut: 4096 PG

Bu ideal.

21-Shrik Sonrası

5 node
12 OSD

Toplam: 60 OSD

22-Yeni PG Hesabı

(60 × 100) / 3 = 2000

İdeal: 2048 PG

Ama mevcut: 4096 PG

23-PG Fazla Olursa

Etki                     Sebep
OSD RAM Artar            PG state
CPU Artar                Metadata
Peering Süresi Artar     Recovery

Production Cluster'larda Genelde Kritik Problem Yaratmaz.

24—Node Removal Data Movement

Node Removal Sırasında:

OSD OUT
 ↓
PG remap
 ↓
backfill
 ↓
recovery

25—Veri Hareketi Hesabı

Shrink: 10 → 5 node

Cluster kapasitesinin yaklaşık: %50

Yani Ceph yaklaşık: cluster data × 50% veri taşır.

26—Shrink Strategy

⚠️ 10 → 5 shrink tek seferde yapılmaz
Önerilen sıra:

10 → 9
recovery finish

9 → 8
recovery finish

8 → 7
recovery finish

7 → 6
recovery finish

6 → 5
Her adımda kontrol:

ceph -s

27-OSD Utilization Kontrol (Opsiyonel)

ceph osd df

Düzeltme: ceph osd reweight-by-utilization

28—CRUSH Failure Domain Kontrolü

Replica dağılımı şu şekilde olmalıdır:

replica1 → r1-prx-test-10
replica2 → r1-prx-test-09
replica3 → r1-prx-test-08
replica3 → r1-prx-test-07
replica3 → r1-prx-test-06

Kontrol:

ceph osd crush rule dump

Beklenen:
step chooseleaf firstn 0 type host

Bu sayede replica’lar farklı node’lara dağıtılır.

29—Final Health Check

ceph -s
ceph osd tree
ceph osd df

pvecm status

Beklenen:

HEALTH_OK

cluster stable
node removed

Final Operasyon Sırası

VM migrate
↓
HA cleanup
↓
OSD out
↓
OSD purge
↓
MON remove
↓
Node shutdown
↓
pvecm delnode
↓
Ceph rebalance

Bir sonraki yazımızda görüşmek üzere. Faydalı olması dileğiyle.