cluster de base de données - wordpress.com · 2017-06-06 · c. la solution de cluster lun des...

7
Cluster de base de données SGBD Yershki Bangarigadu, Hélène Moutinho, Guillaume Droff et Maxence Cadart

Upload: others

Post on 04-Jan-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Cluster de base de données - WordPress.com · 2017-06-06 · C. La solution de cluster Lun des solutions les plus connues de cluste ui suppote MaiaDB est Galea. Il est disponible

Cluster de base de données SGBD Yershki Bangarigadu, Hélène Moutinho, Guillaume Droff et Maxence Cadart

Page 2: Cluster de base de données - WordPress.com · 2017-06-06 · C. La solution de cluster Lun des solutions les plus connues de cluste ui suppote MaiaDB est Galea. Il est disponible

Cluster de base de données

Yershki Bangarigadu, Hélène Moutinho, Guillaume Droff et Maxence Cadart Page 2

I. Table des matières

I. Introduction ..................................................................................................................................... 3

A. Qu’est-ce qu’un cluster de base de données ? ........................................................................... 3

B. Le système de gestion de base de données ................................................................................ 3

C. La solution de cluster .................................................................................................................. 3

II. Mise en place de la solution ............................................................................................................ 4

A. Pré-requis .................................................................................................................................... 4

B. Sur les VMs faisant partie de la base de données ....................................................................... 4

1. Configuration des VMS ............................................................................................................ 4

2. Installation de mariaDB, Galera et rsync ................................................................................. 4

3. Configuration de Galera .......................................................................................................... 4

4. Démarrage du cluster Galera .................................................................................................. 5

5. Test avec création d’une base de données et voir si réplication se fait sur tous les serveurs 6

6. Problèmes et résolution .......................................................................................................... 6

III. Webographie ............................................................................................................................... 7

Page 3: Cluster de base de données - WordPress.com · 2017-06-06 · C. La solution de cluster Lun des solutions les plus connues de cluste ui suppote MaiaDB est Galea. Il est disponible

Cluster de base de données

Yershki Bangarigadu, Hélène Moutinho, Guillaume Droff et Maxence Cadart Page 3

I. Introduction

Dans le cadre du cours de SGBD (système de gestion de base de données), il nous a été demandé de mettre en place un cluster de base de données.

A. Qu’est-ce qu’un cluster de base de données ?

Un cluster de base de données comprend au minimum 2 serveurs de bases de données, mais il est conseillé d’avoir au moins 3 serveurs de base de données. Ainsi, les serveurs de bases de données sont actifs et les utilisateurs peuvent écrire sur n’importe quel serveur, les données sont alors répliquées entre les serveurs restant. Si un serveur devient injoignable, les autres serveurs sont toujours disponibles afin d’assurer la disponibilité des services.

B. Le système de gestion de base de données

Un des systèmes de gestion de base de données les plus connues est MySQL. Cependant, de nouveaux systèmes de gestion ont émergés ces dernières années, notamment MariaDB, crée par l’ex-fondateur de MySQL, Michael Widenius. MariaDB est un système de gestion de base de données édité sous licence GPL. Nous avons choisi d’utiliser MariaDB car c’est l’un des systèmes de gestion de base de données les plus utilisés dans la plupart des tutoriaux que nous avons pu trouver. De plus, il se rapproche énormément du MySQL, que nous avons pu étudier en cours.

C. La solution de cluster

L’un des solutions les plus connues de cluster qui supporte MariaDB est Galera. Il est disponible uniquement sous Linux. Cette solution permet de mettre en place avec un minimum de trois serveurs un cluster de base de données auto-répliquant et hautement disponible. Nous utiliserons donc Galera.

Page 4: Cluster de base de données - WordPress.com · 2017-06-06 · C. La solution de cluster Lun des solutions les plus connues de cluste ui suppote MaiaDB est Galea. Il est disponible

Cluster de base de données

Yershki Bangarigadu, Hélène Moutinho, Guillaume Droff et Maxence Cadart Page 4

II. Mise en place de la solution

A. Pré-requis

Nous avons besoin de 3 VMs pour le cluster de base de données. Nous utiliserons ici 3 VMs Débian. Nous ajouterons aussi une VM Débian en tant que reverse proxy. Il utilisera ainsi HAProxy.

B. Sur les VMs faisant partie de la base de données

1. Configuration des VMS

Nous allons commencer par configurer un hostname et un nom de domaine pour chaque VM. Nous allons aussi mettre une IP fixe sur la carte Réseau privé hôte, en laissant la carte NAT en DHCP. Nous la supprimerons plus tard quand nous créerons notre reverse proxy, mais pour l’instant nous la garderons pour les mises à jour et pour vérifier si ce que nous faisons est effectif.

Nom machine Nom utilisateur Hostname Adresse IP Domaine

Cluster DB1 db1 DB1 192.168.56.10 domaine.com

Cluster DB2 db2 DB2 192.168.56.20 domaine.com

Cluster DB3 db3 DB3 192.168.56.30 domaine.com

Nous faisons ensuite un apt-get update et apt-get upgrade afin de nous assurer que nos VMs sont à jour.

2. Installation de mariaDB, Galera et rsync

MariaDB et Galera n’étant pas présent sur les dépôts de nos Debian, nous allons être d’aller les chercher sur un autre dépôt en tapant les commandes : apt-get install software-properties-common apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://ftp.igh.cnrs.fr/pub/mariadb/repo/10.0/debian jessie main' apt-get update apt-get install mariadb-galera-server galera rsync

3. Configuration de Galera

Nous allons donc créer un fichier de configuration dans /etc/mysql/conf.d/galera.cnf pour paramétrer MariaDB et Galera. Dans celui-ci, nous allons copier la configuration suivante : [mysqld] #mysql settings binlog_format=ROW default-storage-engine=innodb innodb_autoinc_lock_mode=2 query_cache_size=0

Page 5: Cluster de base de données - WordPress.com · 2017-06-06 · C. La solution de cluster Lun des solutions les plus connues de cluste ui suppote MaiaDB est Galea. Il est disponible

Cluster de base de données

Yershki Bangarigadu, Hélène Moutinho, Guillaume Droff et Maxence Cadart Page 5

query_cache_type=0 bind-address=0.0.0.0 #galera settings wsrep_on=ON wsrep_provider=/usr/lib/galera/libgalera_smm.so wsrep_cluster_name="test_cluster" wsrep_cluster_address="gcomm://192.168.56.10,192.168.56.20,192.168.56.30" wsrep_sst_method=rsync wsrep_node_name="DB1.domaine.com" wsrep_node_address="192.168.56.10" La partie #mysql settings donne la configuration pour MariaDB et la partie #galera settings donne la configuration pour Galera. Les deux dernières lignes vont être différents selon les serveurs, car ils désignent le nom du nœud et son adresse IP, et sont donc spécifiques à chaque serveur. Nous sauvons et éditons le fichier. Nous allons ensuite arrêter le serveur MariaDB sur tous les serveurs par la commande systemctl stop mysql ou /etc/init.d/mysql stop.

4. Démarrage du cluster Galera

Nous allons alors redémarrer le serveur MariaDB sur notre premier nœud, ce qui initialisera notre cluster. Nous allons donc taper la commande /etc/init.d/mysql start --wsrep-new-cluster. Si l’on veut confirmer que notre cluster a bien été créé et que cela fonctionne, nous pouvons taper la commande : mysql -u root -p -e 'SELECT VARIABLE_VALUE as "cluster size" FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME="wsrep_cluster_size"' qui doit nous retourner : +-----------------+ | cluster size | +-----------------+ | 1 | +-----------------+ Nous pouvons alors redémarrer le serveur MariaDB sur les autres serveurs avec la commande /etc/init.d/mysql start et confirmer que nos serveurs sont bien rentrés dans le cluster avec la même commande que précédemment : mysql -u root -p -e 'SELECT VARIABLE_VALUE as "cluster size" FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME="wsrep_cluster_size"' qui doit retourner : +-----------------+ | cluster size | +-----------------+ | 3 | +-----------------+

Page 6: Cluster de base de données - WordPress.com · 2017-06-06 · C. La solution de cluster Lun des solutions les plus connues de cluste ui suppote MaiaDB est Galea. Il est disponible

Cluster de base de données

Yershki Bangarigadu, Hélène Moutinho, Guillaume Droff et Maxence Cadart Page 6

5. Test avec création d’une base de données et voir si réplication se fait sur tous les serveurs

On crée une base de données sur DB2 en s’identifiant sur mysql par mysql –u root –p et en exécutant la commande create database testreplication. En exécutant la commande show databases on peut voir que notre base de données a bien été créée. Pour savoir si la réplication s’est bien faite sur les autres serveurs, on s’identifie sur mysql par mysql –u root –p et on exécute la commande show databases. On voit bien que notre base de données testreplication s’est bien répliqué sur les deux autres serveurs.

6. Problèmes et résolution

Plusieurs problèmes se sont présentés. Tout d’abord, il faut savoir que si nous voulons arrêter nos VMs, il faudra tout d’abord arrêter le serveur MariaDB sur tous les serveurs par la commande systemctl stop mysql ou /etc/init.d/mysql stop. Ensuite, il nous faut découvrir quelle est la VM qu’il nous faudra redémarrer en premier. Pour cela, il nous faut faire la commande cat /var/lib/mysql/grastate.dat et voir laquelle de nos VMs aura le safe to bootstrape le plus haut. Ainsi, lorsque nous arrêterons nos VMs ou seulement le serveur MariaDB, ce sera celle-ci dont il faudra relancer le service en premier. Enfin, nous tombons sur une erreur du type ERROR 1045 (28000): Access denied for user ‘debian-sys-maint’@’localhost’ (using password: YES). En effet, à la création du cluster, le mot de passe MySQL du premier nœud a été répliqué sur les autres nœuds mais ne correspond donc plus au mot de passe présent dans le fichier /etc/mysql/debian.cnf. Il nous faut alors aller sur le premier noeud, copier ce fichier et le coller dans le second et troisième nœud afin de ne plus avoir de problème.

Page 7: Cluster de base de données - WordPress.com · 2017-06-06 · C. La solution de cluster Lun des solutions les plus connues de cluste ui suppote MaiaDB est Galea. Il est disponible

Cluster de base de données

Yershki Bangarigadu, Hélène Moutinho, Guillaume Droff et Maxence Cadart Page 7

III. Webographie

https://mariadb.com/kb/en/mariadb/getting-started-with-mariadb-galera-cluster/ https://www.digitalocean.com/community/tutorials/how-to-configure-a-galera-cluster-with-mariadb-10-1-on-ubuntu-16-04-servers https://mariadb.com/kb/en/mariadb/what-is-mariadb-galera-cluster/ https://wiki.deimos.fr/MariaDB_Galera_Cluster_:_la_r%C3%A9plication_multi_maitres http://denisrosenkranz.com/tutoha-mettre-en-place-un-cluster-de-base-de-donnees-avec-mariadb-galera-cluster-et-haproxy-sous-debian-7/ http://galeracluster.com/