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