MariaDB
 sql >> Database >  >> RDS >> MariaDB

Confronto di MariaDB Server con MariaDB Cluster

MariaDB Server e MariaDB Cluster sono prodotti open source forniti da MariaDB Corporation. MariaDB Server è uno dei database relazionali più popolari, originariamente è stato biforcato dal server MySQL.

MariaDB Cluster è una soluzione ad alta disponibilità creata da MariaDB Server, che utilizza una libreria wsrep di Galera Cluster per sincronizzare i dati tra i nodi. Il metodo di replica di Galera è sincrono (o "virtualmente sincrono"), garantendo che i dati siano gli stessi su tutti i nodi.

Il server MariaDB può anche essere reso altamente disponibile tramite la replica standard. La replica può essere asincrona o semisincrona.

Quindi, in che modo il server MariaDB con replica standard differisce da MariaDB Cluster con Galera Cluster? In questo blog, confronteremo questi due. Useremo ClusterControl per illustrare alcune delle differenze.

Architettura del server MariaDB

L'architettura di MariaDB Server può essere un'istanza singola/autonoma o una replica master/slave come mostrato nel diagramma seguente.

L'architettura a istanza singola di MariaDB Server rappresenta un solo nodo. Lo svantaggio di avere una singola istanza è un singolo punto di errore per il database. Se il database si arresta in modo anomalo e non viene eseguito il backup, non è disponibile alcun meccanismo di failover ed è necessario eseguire un ripristino per ripristinare il database dall'ultimo backup.

L'architettura master/slave è una configurazione distribuita, con il master che agisce come scrittore e lo/gli slave/i come lettore/i. Utilizzando un sistema di bilanciamento del carico come Maxscale o ProxySQL, è possibile suddividere il traffico del database in modo che le scritture vengano inviate al master e le letture agli slave. La configurazione della replica eliminerà un singolo punto di errore per il database, ma è necessario essere in grado di eseguire il failover automaticamente in caso di errore del master. In caso contrario, le applicazioni non saranno in grado di scrivere nel database e ne risentiranno. ClusterControl può essere configurato per fornire failover e ripristino automatici per la replica di MariaDB.

Architettura del cluster MariaDB

MariaDB Cluster è una soluzione ad alta disponibilità composta da MariaDB Server e Galera Replication come mostrato nel diagramma dell'architettura seguente:

È una replica sincrona ("virtualmente sincrona"), tutti i nodi sono scrivibili. La replica sincrona garantisce che se le modifiche si verificano in uno dei nodi galera, sarà disponibile su tutti gli altri nodi del cluster prima del commit.

La grande differenza è che tutti i nodi sono uguali dal punto di vista dell'applicazione, possono inviare traffico di scrittura a qualsiasi istanza del database. Inoltre, tutti i nodi dovrebbero avere esattamente gli stessi dati, quindi non vi è alcuna perdita di dati in caso di guasto del nodo.

Distribuzione di MariaDB

Sia MariaDB Replication che MariaDB Cluster possono essere implementati tramite ClusterControl. Quando distribuisci MariaDB Server, devi iniziare scegliendo MySQL Replication mentre per MariaDB Cluster, devi scegliere MySQL Galera.

Per MariaDB Server, puoi distribuire un'istanza MariaDB a nodo singolo oppure puoi impostare la replica master/slave e bidirezionale. Il numero minimo di nodi in una configurazione di replica è due, sono necessari un master e almeno uno slave. Basta inserire l'indirizzo IP per il master e aggiungere gli slave (se si desidera avere un'architettura master/slave). È possibile utilizzare il campo Aggiungi secondo master se si desidera impostare la replica bidirezionale. Verrà eseguito il provisioning di una configurazione master-master con replica bidirezionale, ma uno dei nodi verrà impostato come di sola lettura. Il motivo è ridurre al minimo il rischio di deriva dei dati e "transazioni errate".

Per MariaDB Cluster, sono necessari almeno 3 host affinché i nodi del database di destinazione essere installato. Questo perché deve essere in grado di gestire il partizionamento della rete o la sindrome del "cervello diviso". Devi solo inserire l'indirizzo IP quando aggiungi un nodo quando definisci la configurazione dei server MySQL.

Non dimenticare di scegliere MariaDB come fornitore del database, versione del database che si desidera installare e inserire la password di root. Puoi anche cambiare la datadir non predefinita in qualsiasi altro percorso.

Dopo aver configurato tutte le cose, distribuisci semplicemente il cluster. Verrà attivato un nuovo lavoro per la distribuzione del database.

Nota che è anche possibile avere 2 nodi Galera e un arbitro Galera alias garbd su un terzo host.

Monitoraggio di server e cluster MariaDB

Il monitoraggio del database è una parte fondamentale del database, puoi conoscere lo stato attuale dello stato di salute del database. La differenza tra il monitoraggio di MariaDB Server e MariaDB Cluster è Galera Metrics per la sincronizzazione.

Su MariaDB Server, puoi controllare lo stato attuale del tuo database tramite MySQL Metrics; MySQL Server - Generale, MySQL Server - Cache, MySQL InnoDB Metrics che è visibile anche nel cluster MariaDB come mostrato di seguito:

MySQL Server - Generale fornisce informazioni sullo stato corrente del rapporto di utilizzo del pool di buffer InnoDB, sulla connessione al database, sulle query, sul blocco e sull'utilizzo della memoria del database.

MySQL Server - Cache, ci sono molte informazioni fornite in Cache. Principalmente correlato alla memorizzazione nella cache nel database, ad esempio:dimensione del pool di buffer, istanza del pool di buffer. Sono inoltre disponibili informazioni sull'utilizzo della cache delle tabelle, sulla percentuale di hit, sui risultati e sui risultati mancati della cache. Puoi anche trovare informazioni sull'utilizzo della cache dei thread e sul rapporto dei risultati.

MySQL Server - InnoDB Metrics mostra le metriche relative allo storage InnoDB, ad esempio:attività del bufferpool, operazioni di riga di InnoDB, dimensione del file di registro di InnoDB, lettura/scrittura dei dati di InnoDB.

Su MariaDB Server, se si imposta la replica master/slave, ce n'è una sottocategoria di metriche in MySQL Replication - Master. Sono disponibili informazioni relative al file di registro binario principale, alla posizione del registro binario principale e alla frequenza di creazione del registro bin.

MariaDB Server ha molte informazioni relative al database, queste sono disponibili anche per MariaDB Cluster. La differenza è che ci sono due dashboard per MariaDB Cluster:Galera Overview e Galera Server Charts.

Galera Panoramica fornisce informazioni relative allo stato attuale della replica Galera. Sono presenti informazioni come la dimensione del cluster, il controllo del flusso inviato, il controllo del flusso ricevuto, il controllo del flusso in pausa.

Galera Server Charts contiene informazioni sul nome del cluster, lo stato del cluster, la dimensione e la dimensione della cache globale.

Conclusione

MariaDB Server con replica standard e MariaDB Cluster non sono prodotti realmente differenti in termini di servizio database, ma hanno caratteristiche differenti a seconda delle vostre esigenze di disponibilità e scalabilità. ClusterControl supporta sia MariaDB Server con la replica standard che le distribuzioni MariaDB Cluster, quindi prova entrambe le configurazioni e facci sapere cosa ne pensi.