Vous êtes sur la page 1sur 6

Cluster de base de

données
SGBD

Yershki Bangarigadu, Maxence Cadart, Guillaume Droff et


Hélène Moutinho
Cluster de base de données

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

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


Cluster de base de données

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.

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


Cluster de base de données

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

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


Cluster de base de données

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 |
+-----------------+

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


Cluster de base de données

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.

Il est possible de savoir laquel va redémarrer, il faut faire :

cat /var/lib/mysql/grastate.dat

Dans ce fichier voir lequel a le safe to bootstrap le plus haut.

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

Vous aimerez peut-être aussi