MariaDB
 sql >> Base de données >  >> RDS >> MariaDB

Déploiement de MySQL Galera Cluster 4.0 sur Amazon AWS EC2

Galera Cluster est l'une des solutions de haute disponibilité les plus populaires pour MySQL. Il s'agit d'un cluster virtuellement synchrone, ce qui permet de contrôler le retard de réplication. Grâce au contrôle de flux, le cluster Galera peut s'autoréguler et permettre à davantage de nœuds chargés de rattraper le reste du cluster. La version récente de Galera 4 a apporté de nouvelles fonctionnalités et améliorations. Nous les avons couverts dans un article de blog sur MariaDB 10.4 Galera Cluster et un article de blog sur les fonctionnalités existantes et à venir de Galera 4.

Comment fonctionne Galera 4 lorsqu'il est utilisé dans Amazon EC2 ? Comme vous le savez probablement, Amazon propose des services de base de données relationnelle, conçus pour fournir aux utilisateurs un moyen simple de déployer une base de données MySQL hautement disponible. Mon collègue, Ashraf Sharif, a comparé les temps de basculement pour RDS MySQL et RDS Aurora dans son article de blog. Les temps de basculement pour Aurora ont l'air vraiment bien, mais il y a des mais. Tout d'abord, vous êtes obligé d'utiliser RDS. Vous ne pouvez pas déployer Aurora sur les instances que vous gérez. Si les fonctionnalités et options existantes disponibles dans Aurora ne vous suffisent pas, vous n'avez pas d'autre choix que de déployer quelque chose par vous-même. Ici entre Galera. Galera, contrairement à Aurora, n'est pas une boîte noire propriétaire. Au contraire, il s'agit d'un logiciel open source, qui peut être utilisé librement sur tous les environnements pris en charge. Vous pouvez installer Galera Cluster sur AWS Elastic Computing Cloud (EC2) et, grâce à cela, créer un environnement hautement disponible où le basculement est presque instantané :dès que vous pouvez détecter la défaillance d'un nœud, vous pouvez vous reconnecter à l'autre nœud Galera. Comment déployer Galera 4 dans EC2 ? Dans cet article de blog, nous allons y jeter un coup d'œil et nous vous fournirons un guide étape par étape montrant quelle est la manière la plus simple d'y parvenir.

Déployer un cluster Galera 4 sur EC2

La première étape consiste à créer un environnement que nous utiliserons pour notre cluster Galera. Nous utiliserons les machines virtuelles Ubuntu 18.04 LTS.

Nous utiliserons la taille d'instance t2.medium pour les besoins de ce blog Publier. Vous devez dimensionner vos instances en fonction de la charge attendue.

Nous allons déployer trois nœuds dans le cluster. Pourquoi trois ? Nous avons un blog qui explique comment Galera maintient une haute disponibilité.

Nous allons configurer le stockage pour ces instances.

Nous choisirons également le groupe de sécurité approprié pour les nœuds. Encore une fois, dans notre cas, le groupe de sécurité est assez ouvert. Vous devez vous assurer que l'accès est limité autant que possible - seuls les nœuds qui doivent accéder aux bases de données doivent être autorisés à s'y connecter.

Enfin, soit nous choisissons un pair de clé existant, soit nous en créons un nouveau. Après cette étape, nos trois instances seront lancées.

Une fois qu'ils sont installés, nous pouvons nous y connecter via SSH et commencer à configurer la base de données.

Nous avons décidé d'utiliser la convention de nommage "nœud1, nœud2, nœud3". Nous avons donc dû modifier /etc/hosts sur tous les nœuds et les répertorier avec leurs adresses IP locales respectives. Nous avons également modifié /etc/hostname pour utiliser le nouveau nom des nœuds. Lorsque cela est fait, nous pouvons commencer à configurer notre cluster Galera. Au moment d'écrire ces lignes, le seul fournisseur qui fournit la version GA de Galera 4 est MariaDB avec sa version 10.4, nous allons donc utiliser MariaDB 10.4 pour notre cluster. Nous allons procéder à l'installation en utilisant les suggestions et les guides du site Web de MariaDB.

Déployer un cluster MariaDB 10.4 Galera

Nous allons commencer par préparer les référentiels :

wget https://downloads.mariadb.com/MariaDB/mariadb_repo_setup

bash ./mariadb_repo_setup

Nous avons téléchargé le script destiné à configurer les référentiels et nous l'avons exécuté pour nous assurer que tout est correctement configuré. Cela a configuré les référentiels pour utiliser la dernière version de MariaDB, qui, au moment de la rédaction, est 10.4.

[email protected]:~# apt update

Hit:1 http://eu-central-1.ec2.archive.ubuntu.com/ubuntu bionic InRelease

Hit:2 http://eu-central-1.ec2.archive.ubuntu.com/ubuntu bionic-updates InRelease

Hit:3 http://eu-central-1.ec2.archive.ubuntu.com/ubuntu bionic-backports InRelease

Hit:4 http://downloads.mariadb.com/MariaDB/mariadb-10.4/repo/ubuntu bionic InRelease

Ign:5 http://downloads.mariadb.com/MaxScale/2.4/ubuntu bionic InRelease

Hit:6 http://downloads.mariadb.com/Tools/ubuntu bionic InRelease

Hit:7 http://downloads.mariadb.com/MaxScale/2.4/ubuntu bionic Release

Hit:8 http://security.ubuntu.com/ubuntu bionic-security InRelease

Reading package lists... Done

Building dependency tree

Reading state information... Done

4 packages can be upgraded. Run 'apt list --upgradable' to see them.

Comme vous pouvez le voir, les référentiels pour MariaDB 10.4 et MaxScale 2.4 ont été configurés. Nous pouvons maintenant continuer et installer MariaDB. Nous allons le faire étape par étape, nœud par nœud. MariaDB fournit un guide sur la façon dont vous devez installer et configurer le cluster.

Nous devons installer les packages :

apt-get install mariadb-server mariadb-client galera-4 mariadb-backup

Cette commande installe tous les packages nécessaires à l'exécution de MariaDB 10.4 Galera. MariaDB crée un ensemble de fichiers de configuration. Nous en ajouterons un nouveau, qui contiendrait tous les paramètres requis. Par défaut, il sera inclus à la fin du fichier de configuration afin que tous les paramètres précédents pour les variables que nous définissons soient écrasés. Idéalement, par la suite, vous modifieriez les fichiers de configuration existants pour supprimer les paramètres que nous avons mis dans le galera.cnf afin d'éviter toute confusion lorsque le paramètre donné est configuré.

[email protected]:~# cat /etc/mysql/conf.d/galera.cnf

[mysqld]

bind-address=10.0.0.103

default_storage_engine=InnoDB

binlog_format=row

innodb_autoinc_lock_mode=2



# Galera cluster configuration

wsrep_on=ON

wsrep_provider=/usr/lib/galera/libgalera_smm.so

wsrep_cluster_address="gcomm://10.0.0.103,10.0.0.130,10.0.0.62"

wsrep_cluster_name="Galera4 cluster"

wsrep_sst_method=mariabackup

wsrep_sst_auth='sstuser:pa55'



# Cluster node configuration

wsrep_node_address="10.0.0.103"

wsrep_node_name="node1"

Lorsque la configuration est prête, nous pouvons commencer.

[email protected]:~# galera_new_cluster

Cela devrait amorcer le nouveau cluster sur le premier nœud. Ensuite, nous devons procéder avec des étapes similaires sur les nœuds restants :installez les packages requis et configurez-les en gardant à l'esprit que l'adresse IP locale change, nous devons donc modifier le fichier galera.cnf en conséquence.

Lorsque les fichiers de configuration sont prêts, nous devons créer un utilisateur qui sera utilisé pour le Snapshot State Transfer (SST) :

MariaDB [(none)]> CREATE USER 'sstuser'@'localhost' IDENTIFIED BY 'pa55';

Query OK, 0 rows affected (0.022 sec)

MariaDB [(none)]> GRANT PROCESS, RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'sstuser'@'localhost';

Query OK, 0 rows affected (0.022 sec)

Nous devrions le faire sur le premier nœud. Les nœuds restants rejoindront le cluster et ils recevront un instantané de l'état complet afin que l'utilisateur leur soit transféré. Maintenant, la seule chose que nous devons faire est de démarrer les nœuds restants :

[email protected]:~# service mysql start

[email protected]:~# service mysql start

et vérifiez que le cluster a bien été formé :

MariaDB [(none)]> show global status like 'wsrep_cluster_size';

+--------------------+-------+

| Variable_name      | Value |

+--------------------+-------+

| wsrep_cluster_size | 3     |

+--------------------+-------+

1 row in set (0.001 sec)

Tout va bien, le cluster est opérationnel et il se compose de trois nœuds Galera. Nous avons réussi à déployer MariaDB 10.4 Galera Cluster sur Amazon EC2.