Mysql
 sql >> Database >  >> RDS >> Mysql

Elevata disponibilità con un budget ridotto:distribuzione di un cluster MySQL Galera minimo a due nodi

Riceviamo regolarmente domande su come configurare un cluster Galera con solo 2 nodi.

La documentazione afferma chiaramente che dovresti avere almeno 3 nodi Galera per evitare il partizionamento di rete. Ma ci sono alcuni validi motivi per considerare una distribuzione a 2 nodi, ad esempio, se si desidera ottenere un'elevata disponibilità del database ma si dispone di un budget limitato da spendere per un terzo nodo del database. O forse stai eseguendo Galera in un ambiente di sviluppo/sandbox e preferisci una configurazione minima.

Galera implementa un algoritmo basato sul quorum per selezionare un componente primario attraverso il quale impone la coerenza. Il componente principale deve avere la maggioranza dei voti, quindi in un sistema a 2 nodi non ci sarebbe la maggioranza con conseguente divisione del cervello. Fortunatamente, è possibile aggiungere un garbd (Galera Arbitrator Daemon), che è un demone stateless leggero che può fungere da nodo dispari. L'errore dell'arbitro non influisce sulle operazioni del cluster e una nuova istanza può essere ricollegata al cluster in qualsiasi momento. Possono esserci diversi arbitri nel cluster.

ClusterControl supporta la distribuzione di garbd su host non di database.

Normalmente un cluster Galera necessita di almeno tre host per essere completamente funzionante, tuttavia, al momento della distribuzione, due nodi sarebbero sufficienti per creare un componente primario. Ecco i passaggi:

  1. Distribuisci un cluster Galera di due nodi,
  2. Dopo che il cluster è stato distribuito da ClusterControl, aggiungi garbd sul nodo ClusterControl.

Dovresti ritrovarti con la configurazione seguente:

Distribuisci l'Ammasso Galera

Vai alla sezione ClusterControl Deploy per distribuire il cluster.

Dopo aver selezionato la tecnologia che vogliamo implementare, dobbiamo specificare Utente, Chiave o Password e la porta per connetterci tramite SSH ai nostri host. Abbiamo anche bisogno del nome per il nostro nuovo cluster e se vogliamo che ClusterControl installi per noi il software e le configurazioni corrispondenti.

Dopo aver impostato le informazioni di accesso SSH, dobbiamo selezionare il fornitore/versione e dobbiamo definire la password dell'amministratore del database, la datadir e la porta. Possiamo anche specificare quale repository utilizzare.

Anche se ClusterControl ti avverte che un cluster Galera necessita di un numero dispari di nodi, aggiungi solo due nodi al cluster.

La distribuzione di un cluster Galera attiverà un processo ClusterControl che può essere monitorato nella pagina Lavori.

Installa Garbd

Una volta completata la distribuzione, installare garbd sull'host ClusterControl. Abbiamo la possibilità di distribuire garbd da ClusterControl, ma questa opzione non funzionerà se vogliamo distribuirlo nello stesso server ClusterControl. Questo per evitare problemi relativi alle versioni del database e alle dipendenze dei pacchetti.

Quindi, dobbiamo installarlo manualmente e quindi importare garbd in ClusterControl.

Vediamo l'installazione manuale di Percona Garbd su CentOS 7.

Crea il file del repository Percona:

$ vi /etc/yum.repos.d/percona.repo
[percona-release-$basearch]
name = Percona-Release YUM repository - $basearch
baseurl = http://repo.percona.com/release/$releasever/RPMS/$basearch
enabled = 1
gpgcheck = 0
[percona-release-noarch]
name = Percona-Release YUM repository - noarch
baseurl = http://repo.percona.com/release/$releasever/RPMS/noarch
enabled = 1
gpgcheck = 0
[percona-release-source]
name = Percona-Release YUM repository - Source packages
baseurl = http://repo.percona.com/release/$releasever/SRPMS
enabled = 0
gpgcheck = 0

Quindi, installa il pacchetto garbd Percona XtraDB Cluster:

$ yum install Percona-XtraDB-Cluster-garbd-57

Ora dobbiamo configurare garbd. Per questo, dobbiamo modificare il file /etc/sysconfig/garb:

$ vi /etc/sysconfig/garb
# Copyright (C) 2012 Codership Oy
# This config file is to be sourced by garb service script.
# A comma-separated list of node addresses (address[:port]) in the cluster
GALERA_NODES="192.168.100.192:4567,192.168.100.193:4567"
# Galera cluster name, should be the same as on the rest of the nodes.
GALERA_GROUP="Galera1"
# Optional Galera internal options string (e.g. SSL settings)
# see http://galeracluster.com/documentation-webpages/galeraparameters.html
# GALERA_OPTIONS=""
# Log file for garbd. Optional, by default logs to syslog
# Deprecated for CentOS7, use journalctl to query the log for garbd
# LOG_FILE=""

Modificare i parametri GALERA_NODES e GALERA_GROUP in base alla configurazione dei nodi Galera. Dobbiamo anche rimuovere la riga # RIMUOVI QUESTO DOPO LA CONFIGURAZIONE prima di avviare il servizio.

E ora possiamo avviare il servizio di abbigliamento:

$ service garb start
Redirecting to /bin/systemctl start garb.service

Ora possiamo importare il nuovo garbd in ClusterControl.

Vai a ClusterControl -> Seleziona Cluster -> Aggiungi Load Balancer.

Quindi, seleziona la sezione Garbd e Import Garbd.

Qui dobbiamo solo specificare il nome host o l'indirizzo IP e la porta del nuovo Garbd.

L'importazione di garbd attiverà un lavoro ClusterControl che può essere monitorato nella pagina Lavori. Una volta completato, puoi verificare che garbd sia in esecuzione con un'icona di spunta verde nella barra in alto:

Questo è tutto!

Il nostro cluster Galera minimo a due nodi è ora pronto!