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

Høj tilgængelighed på et begrænset budget - implementering af en minimal MySQL Galera Cluster med to knudepunkter

Vi får jævnligt spørgsmål om, hvordan man opsætter en Galera-klynge med kun 2 noder.

Dokumentationen siger klart, at du skal have mindst 3 Galera-noder for at undgå netværksopdeling. Men der er nogle gyldige grunde til at overveje en implementering af 2 noder, f.eks. hvis du ønsker at opnå en høj tilgængelighed af databasen, men har et begrænset budget til at bruge på en tredje databaseknude. Eller måske kører du Galera i et udviklings-/sandbox-miljø og foretrækker en minimal opsætning.

Galera implementerer en kvorum-baseret algoritme til at vælge en primær komponent, hvorigennem den håndhæver konsistens. Den primære komponent skal have et flertal af stemmer, så i et 2-knudesystem ville der ikke være et flertal, hvilket resulterer i splittet hjerne. Heldigvis er det muligt at tilføje en garbd (Galera Arbitrator Daemon), som er en letvægts statsløs dæmon, der kan fungere som den ulige node. Voldgiftsfejl påvirker ikke klyngeoperationerne, og en ny instans kan til enhver tid genknyttes til klyngen. Der kan være flere voldgiftsdommere i klyngen.

ClusterControl har understøttelse af udrulning af garbd på ikke-databaseværter.

Normalt har en Galera-klynge brug for mindst tre værter for at være fuldt funktionsdygtige, men på tidspunktet for implementering vil to noder være tilstrækkelige til at skabe en primær komponent. Her er trinene:

  1. Implementer en Galera-klynge med to noder,
  2. Når klyngen er blevet implementeret af ClusterControl, skal du tilføje garbd på ClusterControl-noden.

Du bør ende med nedenstående opsætning:

Implementer Galera-klyngen

Gå til afsnittet ClusterControl Deploy for at implementere klyngen.

Efter at have valgt den teknologi, vi ønsker at implementere, skal vi angive bruger, nøgle eller adgangskode og port for at forbinde med SSH til vores værter. Vi har også brug for navnet på vores nye klynge, og hvis vi ønsker, at ClusterControl skal installere den tilsvarende software og konfigurationer for os.

Efter opsætning af SSH-adgangsoplysningerne skal vi vælge leverandør/version, og vi skal definere databasens admin-adgangskode, datadir og port. Vi kan også angive, hvilket lager der skal bruges.

Selvom ClusterControl advarer dig om, at en Galera-klynge har brug for et ulige antal noder, skal du kun tilføje to noder til klyngen.

Implementering af en Galera-klynge vil udløse et ClusterControl-job, som kan overvåges på Jobs-siden.

Installer Garbd

Når implementeringen er færdig, skal du installere garbd på ClusterControl-værten. Vi har mulighed for at implementere garbd fra ClusterControl, men denne mulighed virker ikke, hvis vi ønsker at implementere den i den samme ClusterControl-server. Dette er for at undgå nogle problemer relateret til databaseversionerne og pakkeafhængigheder.

Så vi skal installere det manuelt og derefter importere garbd til ClusterControl.

Lad os se den manuelle installation af Percona Garbd på CentOS 7.

Opret Percona-depotfilen:

$ 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

Installer derefter Percona XtraDB Cluster garbd-pakken:

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

Nu skal vi konfigurere garbd. Til dette skal vi redigere filen /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=""

Skift GALERA_NODES og GALERA_GROUP parameter i henhold til Galera nodes konfiguration. Vi skal også fjerne linjen # FJERN DETTE EFTER KONFIGURATION, før du starter tjenesten.

Og nu kan vi starte garb-tjenesten:

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

Nu kan vi importere den nye garbd til ClusterControl.

Gå til ClusterControl -> Vælg Cluster -> Tilføj Load Balancer.

Vælg derefter sektionen Garbd og Importer Garbd.

Her skal vi kun angive værtsnavnet eller IP-adressen og porten på den nye Garbd.

Import af garbd vil udløse et ClusterControl-job, som kan overvåges på Jobs-siden. Når det er afsluttet, kan du bekræfte, at garbd kører med et grønt flueben i den øverste bjælke:

Det er det!

Vores minimale Galera-klynge med to knudepunkter er nu klar!


  1. Opret en SQL Server-database med Azure Data Studio

  2. Spørgsmål og svar fra vores Parameter Sniffing-webinarserie

  3. Annoncering af repmgr 2.0RC2

  4. Trin-for-trin guide til installation af MySQL på Windows