È stato rilasciato DRBD 9.2.0, un dispositivo di blocco replicabile distribuito che consente di implementare un array RAID-1 simile, formato da dischi di diverse macchine connessi in rete (mirror di rete). Il sistema è progettato come un modulo per il kernel di Linux e distribuito con licenza GPLv2. Il ramo drbd 9.2.0 può essere utilizzato come sostituzione trasparente per drbd 9.x.x ed è completamente compatibile a livello di protocollo, file di configurazione e utilità.
DRBD consente di unire i dispositivi dei nodi del cluster in un'unica soluzione di archiviazione tollerante ai guasti. Per le applicazioni e il sistema, tale archiviazione appare come un'unica unità di blocco per tutti i sistemi. Con DRBD, tutte le operazioni con il disco locale vengono inviate ad altri nodi e sincronizzate con i dischi di altre macchine. In caso di guasto di un nodo, l'archiviazione continuerà automaticamente a funzionare grazie agli altri nodi. Quando il nodo guasto torna disponibile, il suo stato verrà automaticamente portato alla condizione attuale.
Nel cluster che forma lo storage possono essere presenti diverse decine di nodi, ospitati sia nella rete locale che distribuiti geograficamente in posizioni diverse data center. La sincronizzazione in archiviazioni ramificate simili avviene utilizzando tecnologie di rete mesh (i dati si diffondono lungo la catena da nodo a nodo). La replica dei nodi può essere effettuata sia in modalità sincrona che in modalità asincrona. Ad esempio, i nodi collocati localmente possono adottare la replica sincrona, mentre per il trasferimento su sedi remote può essere applicata la replica asincrona con compressione e crittografia del traffico aggiuntive.

Nel nuovo rilascio:
- Ridotte le latenze per le richieste di scrittura replicate. Un'integrazione più stretta con lo stack di rete ha permesso di ridurre il numero di switch di contesto dello scheduler.
- Ridotta la competizione tra l'I/O delle applicazioni e l'I/O della risincronizzazione grazie all'ottimizzazione dei blocchi durante la risincronizzazione degli extents.
- Significativo aumento delle prestazioni di risincronizzazione nei backend in cui viene utilizzato il provisioning dinamico dello spazio di archiviazione. Le prestazioni sono state migliorate grazie all'unione delle operazioni trim/discard, che vengono eseguite molto più a lungo delle normali operazioni di scrittura.
- Aggiunta la supporto per i namespace di rete, che ha consentito l'integrazione con Kubernetes per la trasmissione del traffico di rete delle repliche attraverso una rete dedicata legata ai container, invece della rete dell'ambiente host.
- Aggiunto il modulo transport_rdma per l'uso come trasporto Infiniband/RoCE invece di TCP/IP su Ethernet. L'uso del nuovo trasporto permette di ridurre la latenza, diminuire il carico sulla CPU e garantire il recupero dei dati senza operazioni di copia superflue (zero-copy).
Fonte: opennet.ru
