Proxmox – Ceph su nodo singolo (per test)

Qualche anno fa avevo provato a fare su Virtualbox un cluster Proxmox di 3 nodi per smanettare con Ceph, ovviamente in virtuale le performance erano ridicole ma sono rimasto sorpreso dalla resilienza che Ceph può offrire se ben dimensionato. Più avanti ho testato con due nodi bare metal ma il fatto di avere solamente porte ethernet da 1 Gigabit lo rendeva davvero poco performante. Adesso ho 3 server che si stanno liberando ed uno switch SFP+ a 10 Gigabit e penso proprio che comprerò tre schede ethernet a 10 Gigabit e proverò seriamente ad implementarlo ma visto che dai primi test che ho citato sono passati più di 5 anni e siamo arrivati a Proxmox 7 ho deciso di smanettarci per capire meglio le varie configurazioni partendo da un singolo nodo.

Ceph su un singolo nodo Proxmox è pressoché inutile tant’è che non funziona in una installazione pulita perchè giustamente ci si aspetta almeno un altro host dove effettuare le repliche, nonostante è possibile aggiungere ed inizializzare gli OSD e creare un pool questo non diviene mai operativo e lo storage non è utilizzabile. Ma facendo qualche ricerca ho trovato un folle che spiega come e cosa modificare nella configurazione per far replicare sugli stessi OSD piuttosto che su un altro host. Non è semplicissimo se non si conosce Ceph ed infatti ho imparato un sacco di cose.

E’ necessario decompilare la crush map di Ceph, modificare una riga, ricompilarla e settarla. Vediamo rapidamente come fare:

ceph osd getcrushmap -o comp_crush_map.cm
crushtool -d comp_crush_map.cm -o crush_map.cm

editare crush_map.cm e modificare la riga

step chooseleaf firstn 0 type host

con

step chooseleaf firstn 0 type osd

e poi ricompilare e settare la crush map:

crushtool -c crush_map.cm -o new_crush_map.cmceph osd setcrushmap -i new_crush_map.cm

Così lo storage pool diverrà operativo e potrete divertirvi come scimmie ad installare qualcosa in una macchina virtuale e nel frattempo giocare a mettere In/Out/Up/Down i dischi per ore e vedere come reagisce ed opera Ceph: una figata!