Etape de configuration de Heartbeat avec DRBD

Transcription

Etape de configuration de Heartbeat avec DRBD
Buffet Gabriel
Epreuve E4
Etape de configuration de Heartbeat avec DRBD
/!\
Les étapes ci-dessous sont à effectuer sur les deux serveurs
1. Préparation des disques
-
créer une partition sur les seconds disques que nous avons rajoutés en tapant la commande : fdisk
/dev/sdb
2. Installation et configuration de DRBD
-
-
-
Installer le paquet : drbd8-utils
Activer le module : modprobe drbd version drbd via commande : modinfo drbd
a) configurer la réplication des données entre les deux disques
Créer et éditer le fichier drbd0.res dans le dossier /etc/drbd.d/
Ajouter les lignes suivantes dans le fichier :
b) Mise en place de la réplication
Tapez les commandes : drbdadm create-md r0
drbdadm up r0
Vérifier le contact entre les deux nodes : drbd-overview
Cela veut dire que les nodes se connectent mais que la réplication n’est pas encore possible étant
donné qu’aucun des deux n’est en mode Primary.
Pour y remédier nous allons mettre s-web-ext en primary et s-web-ext2 en secondary avec les
1/4
Buffet Gabriel
Epreuve E4
commandes suivantes : root@s-web-ext:~# drbdadm -- --overwrite-data-of-peer primary r0
root@s-web-ext2:~# drbdadm secondary r0
-
Vous pouvez suivre la synchronisation avec un rafraîchissement toutes les 2 secondes avec la
commande suivante: watch cat /proc/drbd
-
Si les deux sont en mode ds:UpToDate/UpToDate c’est que tout fonctionne bien.
Maintenant que notre raid réseau et fonctionnel nous allons créer un système de fichier en ext4 pour
pouvoir écrire dessus.
Tapez la commande suivante sur le node primaire (s-web-ext) : root@s-web-ext:~# mkfs.ext4 /dev/drbd0
/!\
Avec DRBD, vous devez savoir que l’on ne peut monter la partition DRBD uniquement sur le serveur sur
lequel la partition DRBD est en Primary.
3. Installation et configuration d’HeartBeat
/!\
Les étapes ci-dessous sont à effectuer sur les deux serveurs
-
Installer le paquet : heartbeat
Créer trois fichiers dans /etc/ha.d/
o ha.cf : Config’ générale de HeartBeat
o
haresources : Config’ des ressources
o
node1 = node1 = noeud primaire du cluster
IPaddr::192.168.100.14/24/eth0 = Adresse IP balancée du cluster sur eth0
drbddisk::r0 = nom de la ressource drbd (spécifé dans /etc/drbd.d/drbd0.res)
Filesystem::/dev/drbd0::/mnt::ext4 = Nom de la partition drbd, point de montage et type de
système de fichier.
2/4
Buffet Gabriel
Epreuve E4
o authkeys : clé partagée entre les serveurs du cluster. Ce fichier la doit avoir les
permissions 600. Donc sur les deux serveurs tapez : chmod 600 /etc/ha.d/authkeys
4. Test et commandes importantes
-
Sur s-web-ext démarrez Heartbeat avec la commande suivante : /etc/init.d/heartbeat start
Vérifiez si la partition /dev/drbd0 est bien montée dans /mnt/ sur s-web-ext avec la commande : drbdoverview
vérifier l’état de drbd en temps réel : watch drbd-overview
Maintenant que notre cluster DRBD est actif on va installer Apache, MySQL et PHP pour mettre en place un site
hautement disponible.
5. Installation d’Apache et de PHP
/!\
Les étapes ci-dessous sont à effectuer sur les deux serveurs
-
Installer les paquets : apache2 php5
Après l’installation d’Apache, nous allons désactiver sur les deux nodes le démarrage automatique du
service au lancement de la machine parce que c’est Heartbeat qui va gérer le lancement d’Apache.
Sur les deux nodes lancez donc la commande : insserv –r apache2
Test sur le basculement  Sur s-web-ext nous allons créer dans /mnt/ un dossier www pour stocker les pages
web. Dans ce dossier nous allons créer une page Web par défaut pour vérifier que le balancement fonctionne.
-
mkdir /mnt/www
Puis dans ce dossier créez un fichier index.php avec le contenu suivant :
Nous allons faire en sorte que le dossier des pages par défaut d’Apache soit /mnt/www au lieu de /var/www.
Il faut donc créer un lien symbolique de /var/www vers /mnt/www/
-
Sur les deux nodes faites les commandes suivantes : rm -rvf /var/www/
ln -s /mnt/www/ /var/
-
Vous pouvez vérifier que le lien est fonctionnel avec la commande : ln –la
/var/www
Maintenant nous allons configurer Heartbeat pour qu’il gère le démarrage automatique d’Apache.
Sur les deux nodes éditez le fichier /etc/ha.d/haresources et rajoutez apache2 à la fin de la ligne.
Ouvrez un navigateur internet et connectez-vous à l’adresse IP balancé de votre Cluster DRBD/Apache qui est
192.168.100.14
3/4
Buffet Gabriel
Epreuve E4
Vous devriez voir une page avec le texte suivant: Un coucou de s-web-ext si bien sur s-web-ext est le node actif.
Si vous voyez bien cela arrêtez HeartBeat sur le node1, patientez quelques secondes et rechargez la page web.
Maintenant le texte affiché devrait être Un coucou de node2.
La page index.php qui nous avons mis dans « /mnt/www/ » nous affiche le hostname de la machine. Nous voyons
donc bien que le balancement se fait bien entre les deux nodes de notre Cluster DRBD/Apache.
Pour finir relancez Heartbeat sur node1. Rechargez la page web et le texte Un coucou de node1 apparait de
nouveau.
Sur node2 vous pouvez voir avec la commande /etc/init.d/apache2 status que le service Apache n’est pas démarré.
Heartbeat démarre et arrète automatiquement le service Apache.
6. Installation de Mysql
-
Installer le paquet : mysql-server
Désactiver au démarrage : insserv –r mysql
Sur s-web-ext nous allons déplacer le dossier par défaut qui contient les bases de données dans /mnt/.
Le dossier par défaut est le dossier /var/lib/mysql
mv /var/lib/mysql/ /mnt/
-
Et on crée un lien symbolique de /mnt/mysql vers /var/lib/mysql
ln -s /mnt/mysql/ /var/lib/
-
On fait la même chose avec le fichier debian.cnf, qui est dans /etc/mysql
mv /etc/mysql/debian.cnf /mnt/mysql/
ln -s /mnt/mysql/debian.cnf /etc/mysql/
-
Maintenant connectez-vous sur s-web-ext2 et tapez les commandes suivantes:
rm -rvf /var/lib/mysql/
rm -vf /etc/mysql/debian.cnf
ln -s /mnt/mysql/ /var/lib/
ln -s /mnt/mysql/debian.cnf /etc/mysql/
-
Maintenant sur s-web-ext, démarrez MySQL avec la commande : /etc/init.d/mysql start
Editez le fichier /etc/ha.d/haresources et rajoutez mysql à la fin de la ligne comme ceci :
Si tout ok, connectez-vous au serveur mysql et vérifiez que la base de données est bien présente.
Nous avons maintenant un cluster Apache, PHP, MySQL Actif / Passif.
4/4