MariaDB Cluster è un sistema di replica Multi Master creato da MariaDB Server, MySQL wsrep patch e Galera wsrep provider.
Galera si basa su un metodo di replica sincrono (o 'virtualmente sincrono'), che garantisce che i dati vengano applicati ad altri nodi prima del commit. Avere gli stessi dati su tutti i nodi significa che gli errori dei nodi possono essere facilmente tollerati e nessun dato viene perso. È anche più semplice eseguire il failover su un altro nodo, poiché tutti i nodi sono aggiornati con gli stessi dati. È corretto affermare che MariaDB Cluster è una soluzione ad alta disponibilità in grado di ottenere tempi di attività elevati per le organizzazioni con contratti di servizio di database rigorosi.
Oltre a gestire la disponibilità elevata, può anche essere utilizzato per scalare il servizio di database ed espandere il servizio a più regioni.
Distribuzione cluster MariaDB
MariaDB Cluster in ClusterControl è davvero semplice e disponibile nella Community Edition gratuita. Puoi passare da "Distribuisci", scegli MySQL Galera come mostrato di seguito:
Compila le informazioni sull'utente e le credenziali SSH, il nome del cluster che desideri utilizzare e poi Continua.
Scegli MariaDB come fornitore del database che desideri installare. Server Data Directory, Server Port può utilizzare la configurazione predefinita, a meno che non si definisca una configurazione specifica. Compila la password del database Admin/Root e infine Aggiungi nodo per aggiungere gli indirizzi IP di destinazione dei nodi del database.
I nodi Galera richiedono almeno 3 nodi oppure puoi utilizzare 2 nodi del database e l'arbitro galera configurato su un host separato.
Dopo aver compilato tutti i campi, è sufficiente distribuire il cluster. Verrà attivato un nuovo lavoro per creare cluster come mostrato di seguito:
Distribuzione su scala massima
Maxscale è un sistema di bilanciamento del carico del database, un proxy del database e un firewall che si trova tra la tua applicazione e i nodi MariaDB. Alcune delle funzionalità di Maxscale sono:
- Failover automatico per alta disponibilità
- Bilanciamento del carico del traffico (lettura e scrittura suddivise)
- Controlli del traffico per query e connessioni.
Ci sono due modi per eseguire la distribuzione di Load Balancer, puoi "Aggiungere Load Balancer" nel menu Cluster come mostrato di seguito:
Oppure puoi andare su Gestisci -> Load Balancer. Andrà alla stessa pagina, che è la pagina Load Balancer. Scegli la "scheda Maxscale" per la distribuzione del servizio di bilanciamento del carico Maxscale:
Scegli l'indirizzo del server, definisci nome utente e password maxscale, puoi lasciare il configurazione predefinita per i thread e la porta di lettura/scrittura. Includere anche i nodi MariaDB da aggiungere nel servizio di bilanciamento del carico. È possibile "Distribuire MaxScale" per distribuire il proxy del database MaxScale e il bilanciamento del carico.
La procedura migliore per rendere altamente disponibile il sistema di bilanciamento del carico consiste nell'impostare almeno 2 istanze MaxScale su host diversi.
Distribuzione mantenuta
Keepalived è un servizio daemon in Linux utilizzato per i controlli dello stato e utilizzato anche per il failover se uno dei server è inattivo. Il meccanismo utilizza VIP (Virtual IP Address) per ottenere un'elevata disponibilità, costituita da un server che funge da master e l'altro da backup.
La distribuzione di Keepalived è un servizio che può essere eseguita in Gestisci -> Load Balancer.
Scegli il tipo di Load Balancer, che è MaxScale. Attualmente, ClusterControl supporta HAProxy, ProxySQL e MaxScale come bilanciatori di carico che possono essere integrati con Keepalived. Definisci il tuo IP virtuale (VIP) e l'interfaccia di rete per l'indirizzo IP virtuale.
Dopodiché, fai clic su Distribuisci Keepalived. Verrà attivato un nuovo lavoro per distribuire Keepalived su entrambi gli host MaxScale.
L'architettura finale per MariaDB Cluster for High Availability è composta da 3 nodi di database, 2 nodi del servizio di bilanciamento del carico e un servizio keepalive in cima a ciascun sistema di bilanciamento del carico, come mostrato nella topologia di seguito:
Conclusione
Abbiamo mostrato come possiamo distribuire rapidamente un cluster MariaDB ad alta disponibilità con MaxScale e Keepalived tramite ClusterControl. Abbiamo esaminato le impostazioni per i nodi del database e i nodi proxy. Per saperne di più su Galera Cluster, dai un'occhiata al nostro tutorial online. Si noti che ClusterControl supporta anche altri sistemi di bilanciamento del carico come ProxySQL e HAProxy. Provali e facci sapere se hai domande.