Storage Cluster con DRBD

Completo la serie degli articoli sull’alta affidabilità con il più classico dei sistemi di replica dello storage per Linux: DRBD.

E’ un progetto storico, iniziato moltissimi anni fa, che ha ormai raggiunto una maturità e stabilità significativa. La versione 8.4 consente di replicare un volume tra due nodi; la nuova 9.0 si definisce “SDS” Software Defined Storage e consente scenari più distribuiti fino a 16 nodi.

I pacchetti DRBD sono disponibili per CentOS nel repository di ELRepo: http://elrepo.org

La configurazione è molto semplice. È sufficiente disporre di un volume (di pari dimensioni) su due diversi nodi. Si configura quindi la risorsa:

Nell’esempio la risorsa si chiama “array0” replicata tra “node1” e “node2”. Fisicamente i volumi sono i dischi “/dev/sdb”, logicamente saranno disponibili come “/dev/drbd0”.

Le sezioni “disk” e “net” sono ottimizzate per garantire una rapida ri-sincronizzazione dei dati con rete a 10gb; in poco più di un ora si può ri-sincronizzare da zero un volume di 4 TB.

Normalmente però la replica è incrementale: ogni blocco modificato su “node1” viene inviato via rete a “node2” per mantenere i volumi allineati. In questo modo il consumo di banda è piuttosto contenuto. Si possono scegliere 3 protocolli diversi di replica:

A) Protocollo asincrono: l’operazione di scrittura termina sul nodo primario e appena possibile viene replicata al secondario. E’ indipendente dalla velocità della rete (ideale per una geo-replica) ma in caso di fail del primario i dati potrebbero non essere ancora arrivati al secondario, determinando una perdita di informazioni.

B) Protocollo semi-sincrono: l’operazione di scrittura termina quando il nodo secondario ha ricevuto il dato.

C) Protocollo sincrono: l’operazione di scrittura termina quando il nodo secondario ha ricevuto e scritto correttamente il dato; dei tre è il sistema più affidabile che garantisce la presenza delle stesse informazioni su entrambi i nodi in qualsiasi momento.

Dopo aver configurato la risorsa è necessario inizializzarla:

Quindi avviarla:

Ed infine, la prima volta, dobbiamo indicare chi è il nodo primario:

Il volume replicato si può monitorare tramite “/proc/drbd”

Nell’esempio la risorsa “0” risulta connessa e correttamente aggiornata su entrambi i nodi “UpToDate”. In particolare il valore “oos” indica il numero di blocchi eventualmente “Out Of Sync” nel caso in cui uno dei due nodi si stia ri-sincronizzando.

Nel caso di un cluster primario/secondario soltanto il nodo primario potrà montare il filesystem in scrittura. Lo spostamento dei servizi, in caso di fail, va affidato al software del cluster (es. pacemaker, vedi High Availability Cluster).

Con filesystem distribuiti come OCFS2 oppure GFS2 è invece possibile montare contemporaneamente le risorse in modalità primario/primario.

 

Chiama subito per maggiori informazioni +39 0113473770
oppure lasciaci i tuoi recapiti e sarai contattato il prima possibile:



 

Lascia un commento