Il fun­zio­na­men­to continuo e l’elevata di­spo­ni­bi­li­tà sono elementi in­di­spen­sa­bi­li nelle moderne soluzioni di gestione dei database proprio come le opzioni fles­si­bi­li di sca­la­bi­li­tà. Solo in questo modo si riesce a far fronte alle esigenze odierne ca­rat­te­riz­za­te da accessi altamente flut­tuan­ti e picchi di carico ina­spet­ta­ta­men­te elevati. L’obiettivo è di sod­di­sfa­re questi requisiti no­no­stan­te il budget minimo di­spo­ni­bi­le per i costi di in­fra­strut­tu­ra su base cloud.

Galera Cluster rap­pre­sen­ta un’ottima soluzione: la soluzione di clu­ste­ring mul­ti­ma­ster per i database si basa sulla replica sincrona ad alte pre­sta­zio­ni per fornire gli stessi dati in tempo reale a tutti i nodi ap­par­te­nen­ti a una rete di banche dati. Di­spo­ni­bi­le, tra le altre cose, per MariaDB, Galera Cluster ga­ran­ti­sce una perdita minima di dati e un’elevata af­fi­da­bi­li­tà. Nelle sezioni seguenti, sco­pri­re­te esat­ta­men­te come funziona la struttura di cluster MariaDB sulla base di Galera Cluster, i vantaggi di questa tec­no­lo­gia e dove viene uti­liz­za­ta.

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’ap­pli­ca­zio­ne cluster è lo storage engine InnoDB, ovvero il fork cor­ri­spon­den­te XtraDB. Anche il motore MyISAM è sup­por­ta­to in via spe­ri­men­ta­le ed è stato uti­liz­za­to per lungo tempo con MySQL e MariaDB come pre­de­ces­so­re di InnoDB. Galera Cluster im­ple­men­ta il principio della replica sincrona durante la me­mo­riz­za­zio­ne dei dati nei vari nodi di cluster in­di­pen­den­ti: tutti i processi di copia e le modifiche ai dati me­mo­riz­za­ti vengono eseguiti si­mul­ta­nea­men­te su tutte le unità di me­mo­riz­za­zio­ne primarie e se­con­da­rie, in modo che i dati di tutti i nodi siano sempre ag­gior­na­ti e non dif­fe­ri­sca­no tra di loro.

Un Galera Cluster di base è co­sti­tui­to da tre nodi (gli svi­lup­pa­to­ri di solito rac­co­man­da­no un numero dispari). Se un nodo si arresta durante la tran­sa­zio­ne dei dati, ad esempio a causa di problemi di rete o di un sistema difettoso, gli altri due nodi sono ancora suf­fi­cien­ti 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 det­ta­glia­to delle due ap­pli­ca­zio­ni per la gestione dei database.

Come fun­zio­na­no i Galera Cluster MariaDB?

La ca­rat­te­ri­sti­ca di un cluster MariaDB basato su Galera Cluster è che tutti i nodi della rete di­spon­go­no sempre degli stessi dati. Il software cluster elimina la di­stin­zio­ne classica tra master (server scri­vi­bi­le) e slave (server di sola lettura) dei server di database: come utente, è possibile scrivere dati su qualsiasi nodo di ar­chi­via­zio­ne. Suc­ces­si­va­men­te questi dati vengono inoltrati au­to­ma­ti­ca­men­te a tutti gli altri par­te­ci­pan­ti al cluster. Questa proprietà è detta anche mul­ti­ma­ster.

Al fine di garantire questo scambio fles­si­bi­le di dati, Galera Cluster utilizza un processo sincrono di replica basato sullo scambio di cer­ti­fi­ca­ti 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 tran­sa­zio­ne di database viene assegnato un numero univoco di sequenza. Prima di au­to­riz­za­re un nodo cluster alle ri­spet­ti­ve modifiche al database, confronta questo numero di sequenza con il numero dell’ultima tran­sa­zio­ne con­fer­ma­ta. Nel corso di questo controllo, tutti i nodi arrivano sempre allo stesso risultato (“Tran­sa­zio­ne con­fer­ma­ta” o “Tran­sa­zio­ne rifiutata”). Il nodo che ha avviato la tran­sa­zio­ne lo comunica al client.
  2. Con ogni tran­sa­zio­ne vengono ag­gior­na­te tutte le repliche del database. Pertanto, se una tran­sa­zio­ne viene con­fer­ma­ta dopo la cer­ti­fi­ca­zio­ne, vengono mo­di­fi­ca­ti di con­se­guen­za anche i dati di tutti gli altri nodi. Solo nel caso in cui un nodo Galera Cluster presenti un problema ne consegue la sua tem­po­ra­nea esclu­sio­ne dalla replica sincrona.

Qual è la struttura di un Galera Cluster?

L’ar­chi­tet­tu­ra interna di un Galera Cluster ruota attorno ai quattro com­po­nen­ti seguenti:

  • sistema di gestione del database: il DBMS è l’unità centrale del cluster. Su ogni nodo viene eseguito un server di database cor­ri­spon­den­te. Come accennato, Galera Cluster supporta non solo MariaDB ma anche MySQL e Per­co­naX­traDB.
  • API wsrep: l’API wsrep definisce e im­ple­men­ta l’in­ter­fac­cia e le re­spon­sa­bi­li­tà per l’accesso ai server dei database in­cor­po­ra­ti. 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 co­mu­ni­ca­zio­ne con gli hook).
  • Plugin di replica Galera: questo plug-in im­ple­men­ta l’API wsrep. A tal fine, fornisce un livello per il processo di cer­ti­fi­ca­zio­ne, un livello per la replica (compreso il pro­to­col­lo) e il framework per le co­mu­ni­ca­zio­ni di gruppo.
  • Plugin di co­mu­ni­ca­zio­ne di gruppo: Galera Cluster fornisce diverse esten­sio­ni per l’im­ple­men­ta­zio­ne di sistemi di co­mu­ni­ca­zio­ne di gruppo, come Spread Toolkit o gcomm. La base per questi plugin è il framework di co­mu­ni­ca­zio­ne di gruppo.

Vantaggi di un cluster MariaDB

Abbiamo già accennato ai prin­ci­pa­li vantaggi di un Galera Cluster MariaDB: il passaggio a questa tec­no­lo­gia cluster offre una me­mo­riz­za­zio­ne dati fles­si­bi­le con la massima af­fi­da­bi­li­tà e di­spo­ni­bi­li­tà che una con­fi­gu­ra­zio­ne MariaDB tra­di­zio­na­le non può garantire.

Grazie alla replica sincrona, non sarà più ne­ces­sa­rio ve­ri­fi­ca­re l’ag­gior­na­men­to di tutte le unità di storage coinvolte. Galera Cluster aggiorna au­to­ma­ti­ca­men­te ogni unità di database con le ultime modifiche, eli­mi­nan­do la necessità di copiare ma­nual­men­te o di con­fi­gu­ra­re complesse strategie di backup. L’approccio mul­ti­ma­ster consente inoltre di con­trol­la­re qualsiasi server di database MariaDB coinvolto se si desidera scrivere, mo­di­fi­ca­re o eliminare i dati. Dal momento che i nodi possono essere po­si­zio­na­ti in modo mirato nelle vicinanze dei client, la latenza ri­sul­tan­te può essere ridotta al minimo.

Un ulteriore vantaggio di un cluster MariaDB basato su Galera Cluster è l’ottimo supporto cloud di tale ar­chi­tet­tu­ra: avete tutti gli strumenti per una sca­la­bi­li­tà delle risorse del database fles­si­bi­le e basata su cloud. Anche la di­stri­bu­zio­ne dei dati a diversi data center non co­sti­tui­sce un problema, poiché è suf­fi­cien­te inviare ogni tran­sa­zio­ne una sola volta a ciascuno di questi.

N.B.

Su IONOS trovate soluzioni per­so­na­liz­za­te 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 uti­liz­za­no i Galera Cluster?

Un Galera Cluster MariaDB è un’ottima soluzione per gestire il proprio database grazie alle ca­rat­te­ri­sti­che e ai vantaggi sopra citati. Nello specifico, questa con­fi­gu­ra­zio­ne di cluster viene uti­liz­za­ta nei seguenti casi d’uso:

Ap­pli­ca­zio­ni di database con elevati requisiti di velocità di scrittura

La di­stri­bu­zio­ne delle ope­ra­zio­ni di scrittura sull’intero cluster consente un utilizzo ottimale delle risorse di scrittura di­spo­ni­bi­li. Dopo l’ela­bo­ra­zio­ne iniziale di una tran­sa­zio­ne client, tutti i nodi a cui viene inoltrata questa tran­sa­zio­ne devono solo re­gi­stra­re le modifiche apportate. Il metodo di replica del Galera Cluster, quindi, ga­ran­ti­sce ge­ne­ral­men­te una velocità di scrittura si­gni­fi­ca­ti­va­men­te più elevata rispetto a quella fornita da una normale con­fi­gu­ra­zio­ne del database, rendendo questa tec­no­lo­gia cluster par­ti­co­lar­men­te in­te­res­san­te per le ap­pli­ca­zio­ni ad alta intensità di scrittura.

WAN Clu­ste­ring

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 tra­smis­sio­ne) pro­por­zio­na­le al tempo di consegna dei pacchetti (RTT, Packet Turn around Time) della rete, che influisce però soltanto sul processo di conferma delle tran­sa­zio­ni di database in entrata. Un cluster MariaDB nel cloud è quindi uno dei casi d’uso più in­te­res­san­ti.

Disaster Recovery (recupero del disastro)

Il principio del disaster recovery è stret­ta­men­te correlato all’ar­chi­via­zio­ne generale e alla gestione dei dati nel cloud. Qui i dati vengono me­mo­riz­za­ti in un data center separato per avere una copia completa dei dati pronta per il ri­pri­sti­no in caso di emergenza. In questo caso, sebbene Galera Cluster inoltri i dati di replica, non li fornisce per l’ela­bo­ra­zio­ne delle tran­sa­zio­ni client. Se dovesse essere ne­ces­sa­rio eseguire un ri­pri­sti­no, la parte di disaster recovery del cluster MariaDB viene tem­po­ra­nea­men­te impostata come istanza primaria per ridurre al minimo i tempi di inat­ti­vi­tà.

Consiglio

Nel nostro articolo sulle emergenze in­for­ma­ti­che trovate in­for­ma­zio­ni det­ta­glia­te sul disaster recovery.

Vai al menu prin­ci­pa­le