Galera Cluster: il cluster MariaDB in sintesi

Il funzionamento continuo e l’elevata disponibilità sono elementi indispensabili nelle moderne soluzioni di gestione dei database proprio come le opzioni flessibili di scalabilità. Solo in questo modo si riesce a far fronte alle esigenze odierne caratterizzate da accessi altamente fluttuanti e picchi di carico inaspettatamente elevati. L’obiettivo è di soddisfare questi requisiti nonostante il budget minimo disponibile per i costi di infrastruttura su base cloud.

Galera Cluster rappresenta un’ottima soluzione: la soluzione di clustering multimaster per i database si basa sulla replica sincrona ad alte prestazioni per fornire gli stessi dati in tempo reale a tutti i nodi appartenenti a una rete di banche dati. Disponibile, tra le altre cose, per MariaDB, Galera Cluster garantisce una perdita minima di dati e un’elevata affidabilità. Nelle sezioni seguenti, scoprirete esattamente come funziona la struttura di cluster MariaDB sulla base di Galera Cluster, i vantaggi di questa tecnologia e dove viene utilizzata.

Che cos’è Galera Cluster?

Galera Cluster è un pacchetto software per sistemi operativi Linux che permette la creazione e la gestione di cluster MySQL, XtraDB e MariaDB. La base dell’applicazione cluster è lo storage engine InnoDB, ovvero il fork corrispondente XtraDB. Anche il motore MyISAM è supportato in via sperimentale ed è stato utilizzato per lungo tempo con MySQL e MariaDB come predecessore di InnoDB. Galera Cluster implementa il principio della replica sincrona durante la memorizzazione dei dati nei vari nodi di cluster indipendenti: tutti i processi di copia e le modifiche ai dati memorizzati vengono eseguiti simultaneamente su tutte le unità di memorizzazione primarie e secondarie, in modo che i dati di tutti i nodi siano sempre aggiornati e non differiscano tra di loro.

Un Galera Cluster di base è costituito da tre nodi (gli sviluppatori di solito raccomandano un numero dispari). Se un nodo si arresta durante la transazione dei dati, ad esempio a causa di problemi di rete o di un sistema difettoso, gli altri due nodi sono ancora sufficienti per portarla a termine con successo.

Consiglio

Galera Cluster prevede MariaDB e MySQL come sistemi di database. Nel nostro articolo MariaDB vs MySQL trovate un confronto dettagliato delle due applicazioni per la gestione dei database.

Come funzionano i Galera Cluster MariaDB?

La caratteristica di un cluster MariaDB basato su Galera Cluster è che tutti i nodi della rete dispongono sempre degli stessi dati. Il software cluster elimina la distinzione classica tra master (server scrivibile) e slave (server di sola lettura) dei server di database: come utente, è possibile scrivere dati su qualsiasi nodo di archiviazione. Successivamente questi dati vengono inoltrati automaticamente a tutti gli altri partecipanti al cluster. Questa proprietà è detta anche multimaster.

Al fine di garantire questo scambio flessibile di dati, Galera Cluster utilizza un processo sincrono di replica basato sullo scambio di certificati durante la gestione. Quando i dati vengono replicati, cioè scritti in uno dei database del cluster, nel MariaDB Galera Cluster si applicano i due seguenti principi di base:

  1. a ogni transazione di database viene assegnato un numero univoco di sequenza. Prima di autorizzare un nodo cluster alle rispettive modifiche al database, confronta questo numero di sequenza con il numero dell’ultima transazione confermata. Nel corso di questo controllo, tutti i nodi arrivano sempre allo stesso risultato (“Transazione confermata” o “Transazione rifiutata”). Il nodo che ha avviato la transazione lo comunica al client.
  2. Con ogni transazione vengono aggiornate tutte le repliche del database. Pertanto, se una transazione viene confermata dopo la certificazione, vengono modificati di conseguenza anche i dati di tutti gli altri nodi. Solo nel caso in cui un nodo Galera Cluster presenti un problema ne consegue la sua temporanea esclusione dalla replica sincrona.

Qual è la struttura di un Galera Cluster?

L’architettura interna di un Galera Cluster ruota attorno ai quattro componenti seguenti:

  • sistema di gestione del database: il DBMS è l’unità centrale del cluster. Su ogni nodo viene eseguito un server di database corrispondente. Come accennato, Galera Cluster supporta non solo MariaDB ma anche MySQL e PerconaXtraDB.
  • API wsrep: l’API wsrep definisce e implementa l’interfaccia e le responsabilità per l’accesso ai server dei database incorporati. Wsrep regola anche la replica dei dati. L’API fornisce, tra le altre cose, gli hook wsrep (link al server del database per la replica dei dati) e la funzione “dlopen()” (che permette la comunicazione con gli hook).
  • Plugin di replica Galera: questo plug-in implementa l’API wsrep. A tal fine, fornisce un livello per il processo di certificazione, un livello per la replica (compreso il protocollo) e il framework per le comunicazioni di gruppo.
  • Plugin di comunicazione di gruppo: Galera Cluster fornisce diverse estensioni per l’implementazione di sistemi di comunicazione di gruppo, come Spread Toolkit o gcomm. La base per questi plugin è il framework di comunicazione di gruppo.

Vantaggi di un cluster MariaDB

Abbiamo già accennato ai principali vantaggi di un Galera Cluster MariaDB: il passaggio a questa tecnologia cluster offre una memorizzazione dati flessibile con la massima affidabilità e disponibilità che una configurazione MariaDB tradizionale non può garantire.

Grazie alla replica sincrona, non sarà più necessario verificare l’aggiornamento di tutte le unità di storage coinvolte. Galera Cluster aggiorna automaticamente ogni unità di database con le ultime modifiche, eliminando la necessità di copiare manualmente o di configurare complesse strategie di backup. L’approccio multimaster consente inoltre di controllare qualsiasi server di database MariaDB coinvolto se si desidera scrivere, modificare o eliminare i dati. Dal momento che i nodi possono essere posizionati in modo mirato nelle vicinanze dei client, la latenza risultante può essere ridotta al minimo.

Un ulteriore vantaggio di un cluster MariaDB basato su Galera Cluster è l’ottimo supporto cloud di tale architettura: avete tutti gli strumenti per una scalabilità delle risorse del database flessibile e basata su cloud. Anche la distribuzione dei dati a diversi data center non costituisce un problema, poiché è sufficiente inviare ogni transazione una sola volta a ciascuno di questi.

N.B.

Su IONOS trovate soluzioni personalizzate di hosting SQL server. Scegliete l’opzione più adatta a voi tra diverse soluzioni di server e hosting per il vostro personale sistema di database con MariaDB, MySQL o MSSQL.

Casi d’uso: dove si utilizzano i Galera Cluster?

Un Galera Cluster MariaDB è un’ottima soluzione per gestire il proprio database grazie alle caratteristiche e ai vantaggi sopra citati. Nello specifico, questa configurazione di cluster viene utilizzata nei seguenti casi d’uso:

Applicazioni di database con elevati requisiti di velocità di scrittura

La distribuzione delle operazioni di scrittura sull’intero cluster consente un utilizzo ottimale delle risorse di scrittura disponibili. Dopo l’elaborazione iniziale di una transazione client, tutti i nodi a cui viene inoltrata questa transazione devono solo registrare le modifiche apportate. Il metodo di replica del Galera Cluster, quindi, garantisce generalmente una velocità di scrittura significativamente più elevata rispetto a quella fornita da una normale configurazione del database, rendendo questa tecnologia cluster particolarmente interessante per le applicazioni ad alta intensità di scrittura.

WAN Clustering

Anche in una WAN (Wide Area Network) come Internet, il principio di replica sincrona di Galera Cluster funziona senza problemi. Si verifica un piccolo ritardo (ritardo di trasmissione) proporzionale al tempo di consegna dei pacchetti (RTT, Packet Turn around Time) della rete, che influisce però soltanto sul processo di conferma delle transazioni di database in entrata. Un cluster MariaDB nel cloud è quindi uno dei casi d’uso più interessanti.

Disaster Recovery (recupero del disastro)

Il principio del disaster recovery è strettamente correlato all’archiviazione generale e alla gestione dei dati nel cloud. Qui i dati vengono memorizzati in un data center separato per avere una copia completa dei dati pronta per il ripristino in caso di emergenza. In questo caso, sebbene Galera Cluster inoltri i dati di replica, non li fornisce per l’elaborazione delle transazioni client. Se dovesse essere necessario eseguire un ripristino, la parte di disaster recovery del cluster MariaDB viene temporaneamente impostata come istanza primaria per ridurre al minimo i tempi di inattività.

Consiglio

Nel nostro articolo sulle emergenze informatiche trovate informazioni dettagliate sul disaster recovery.