Menu
InformatiWeb Pro
  • Index
  • Admin système
  • Virtualisation

Connexion

Inscription Mot de passe perdu ?
US
  • Windows Server
    • WMS 2012
    • WS2012 R2
    • WS2016
  • Citrix
    • Citrix NetScaler Gateway
    • Citrix XenApp / XenDesktop
    • Citrix XenServer
  • VMware
    • VMware ESXi
    • VMware vSphere
    • VMware Workstation
  • Microsoft
    • Hyper-V
  • RAID
    • Adaptec SmartRAID
  • UPS
    • APC Back-UPS Pro
  • InformatiWeb Pro
  • Admin système
  • Linux
  • Réplication de données sur 2 serveurs avec clustering et balancement de services sous Debian

Réplication de données sur 2 serveurs avec clustering et balancement de services sous Debian

  • Linux
  • 21 juillet 2017 à 12:23
  • InformatiWeb
  • 2/2
Page précédente

5. Heartbeat (Cluster et balancement de services)

5.1. Installation

Pour installer Heartbeat, il suffit d'installer le paquet "heartbeat".

IMPORTANT : Comme pour DRBD, les commandes proposées et les fichiers à créer devront être exécutées et créés sur les 2 serveurs (sauf mention contraire).

Bash

apt-get install heartbeat

5.2. Configuration

Pour configurer Heartbeat, vous devrez créer 3 fichiers dans le dossier "/etc/ha.d/" :
- ha.cf : fichier de configuration de heartbeat
- haresources : fichier de configuration pour les ressources
- authkeys : fichier contenant une clé qui permettra aux serveurs de s'identifier l'un l'autre.

Pour commencer, créez le fichier "ha.cf" et collez ceci à l'intérieur.

Bash

vi /etc/ha.d/ha.cf

Plain Text

# 2 chemins différents (eth0 et eth1) pour permettre
# à HeartBeat de savoir si l'autre serveur est toujours accessible.
# - mcast eth0 : IP multicast utilisée via l'interface réseau : eth0
# - bcast eth1 : paquets de broadcast envoyés sur l'interface eth1 (il est préférable d'y indiquer une interface réseau réservée à Heartbeat, et DRBD si vous le souhaitez)
mcast eth0 239.0.0.20 694 1 0
bcast eth1

# Délai à partir duquel HeartBeat considérera l'autre serveur comme défaillant
# Fréquence à laquelle HeartBeat enverra son paquet "keepalive" à l'autre serveur
# Etc.
warntime 4
deadtime 5
initdead 15
keepalive 2

# Lorsque le serveur principal redevient disponible, HeartBeat repassera ce serveur en "Primary"
# si vous activez cette option (auto_failback on).
# Néanmoins, pour éviter de provoquer 2 interruptions de services (lorsque le serveur principal
# tombe en panne, puis quand il redevient disponible), nous vous recommandons de
# désactiver cette option (auto_failback off).
auto_failback off

# Liste des serveurs du cluster
node server1
node server2

Pour plus d'infos sur le fichier "ha.cf", consultez la documentation officielle de DRBD.

Ensuite, créez le fichier "haresources".

Bash

vi /etc/ha.d/haresources

Et collez ceci :

Plain Text

server1 IPaddr::10.0.0.30/24/eth0 drbddisk::iw0 Filesystem::/dev/drbd0::/mnt::ext4

Infos :
- server1 : nom du serveur primaire
- 10.0.0.30 : IP virtuel à laquelle vos utilisateurs accéderont pour accéder au serveur actif (le serveur 1 ou le serveur 2 si le serveur 1 est défaillant)
- eth0 : spécifie l'interface réseau à utiliser.
- iw0 : nom de la ressource que nous avions indiqué dans le fichier : /etc/drbd.d/drbd0.res
- Filesystem::/dev/drbd0::/mnt::ext4 : la partition fournie par DRBD, son point de montage et le système de fichiers utilisés sur cette partition.

Et enfin, créez le fichier "authkeys" qui contiendra une clé (un mot de passe) partagée entre les 2 serveurs.
Note : vous pouvez remplacer "my-private-key" par ce que vous voulez, mais cette valeur devra être identique sur les 2 serveurs.

Bash

vi /etc/ha.d/authkeys

Plain Text

auth 1
1 md5 my-private-key

Changer les permissions de ce fichier :

Bash

chmod 600 /etc/ha.d/authkeys

5.3. Démarrage de HeartBeat

Pour commencer, vérifiez que la partition "/dev/drbd0" n'est pas montée.
Pour cela, tapez cette commande :

Bash

df -h

Comme vous pouvez le voir, la partition "/dev/drbd0" n'apparait pas dans la liste.

Plain Text

Sys. fich.                                             Taille Util. Dispo Uti% Monté sur
rootfs                                                    57G  4,9G   49G  10% /
udev                                                      10M     0   10M   0% /dev
tmpfs                                                    396M  644K  395M   1% /run
/dev/disk/by-uuid/3f7e5d0d-62e7-4ec9-a36b-a9f0983644c8    57G  4,9G   49G  10% /
tmpfs                                                    5,0M  4,0K  5,0M   1% /run/lock
tmpfs                                                    1,3G  224K  1,3G   1% /run/shm

Démarrez HeartBeat sur le serveur principal (dans notre cas : server1).

Bash

/etc/init.d/heartbeat start

Lors du démarrage de HeartBeat, vous verrez ceci.
C'est tout à fait normal. Il ne s'agit pas d'une erreur, mais d'une information (INFO).

Plain Text

Starting High-Availability services: IPaddr[6171]: INFO:  Resource is stopped
Done.

Attendez pendant quelques secondes et tapez à nouveau la commande :

Bash

df -h

Vous devriez voir apparaitre la partition "/dev/drbd0" montée sur "/mnt".
Si ce n'est pas le cas, attendez encore 1 minute et tapez à nouveau la commande "df -h".
Si la partition n'apparait toujours pas, vérifiez que votre configuration est correcte (configuration de DRBD, de HeartBeat, et de vos interfaces réseau).

Plain Text

Sys. fich.                                             Taille Util. Dispo Uti% Monté sur
rootfs                                                    57G  4,9G   49G  10% /
udev                                                      10M     0   10M   0% /dev
tmpfs                                                    396M  648K  395M   1% /run
/dev/disk/by-uuid/3f7e5d0d-62e7-4ec9-a36b-a9f0983644c8    57G  4,9G   49G  10% /
tmpfs                                                    5,0M  4,0K  5,0M   1% /run/lock
tmpfs                                                    1,3G  372K  1,3G   1% /run/shm
/dev/drbd0                                                79G  184M   75G   1% /mnt

Si la partition "/dev/drbd0" apparait, alors vous pourrez aussi lancer HeartBeat sur le serveur secondaire ("server2" dans notre cas).

Notez qu'une interface "eth0:0" devrait aussi apparaitre si vous tapez la commande :

Bash

ifconfig

Plain Text

...
eth0:0    Link encap:Ethernet  HWaddr 00:0c:29:49:00:aa 
inet adr:10.0.0.30  Bcast:10.0.0.255  Masque:255.255.255.0
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
...

Sur le serveur secondaire, tapez la commande :

Bash

/etc/init.d/heartbeat start

Notez que la partition ne sera pas montée sur le serveur secondaire tant que le serveur principal sera disponible (non défaillant).

6. Test du cluster

Pour le moment, si vous tapez la commande "drbd-overview" sur le serveur 1, vous verrez qu'il s'agit du serveur principal (Primary) et que la partition de DRBD est bien montée sur "/mnt".

Bash

drbd-overview

Plain Text

 0:iw0  Connected Primary/Secondary UpToDate/UpToDate C r----- /mnt ext4 79G 184M 75G 1%

Si vous tapez la commande "watch drbd-overview" sur le serveur 2, vous verrez qu'il s'agit du serveur secondaire et que la partition n'est pas montée pour le moment.
Pour que celle-ci soit montée sur ce serveur, il faut que le serveur principal soit en panne.
Note : la commande ci-dessous actualise son affichage toutes les 2 secondes.

Bash

watch drbd-overview

Plain Text

Every 2,0s: drbd-overview                               Thu Oct 13 21:32:27 2016

  0:iw0  Connected Secondary/Primary UpToDate/UpToDate C r-----

Pour simuler cette panne, il suffit d'arrêter HeartBeat sur le serveur principal.

Bash

/etc/init.d/heartbeat stop

Du coup, vous verrez que le serveur 2 vous affichera ceci.
Ce qui veut dire que HeartBeat vient de passer votre serveur secondaire en principal.
Et comme vous pouvez le voir, HeartBeat a bien monté la partition sur le serveur secondaire, car le serveur principal est "défaillant".

Plain Text

Every 2,0s: drbd-overview                               Thu Oct 13 21:34:06 2016

  0:iw0  Connected Primary/Secondary UpToDate/UpToDate C r----- /mnt ext4 79G 184M 75G 1%

Si vous relancez HeartBeat sur le serveur 1 (qui était le serveur principal), HeartBeat basculera à nouveau vos services sur le serveur 1 (si l'option "auto_failback on" est présente dans le fichier "/etc/ha.d/ha.cf").

Note : appuyez sur CTRL + C pour quitter la commande "watch drbd-overview".

Partager ce tutoriel

Partager
Tweet

A voir également

  • Debian / Ubuntu - Monitoring réseau avec statistiques HTML

    Linux 12/9/2015

    Debian / Ubuntu - Monitoring réseau avec statistiques HTML

  • Monitoring réseau en temps réel avec IPTraf

    Linux 5/10/2015

    Monitoring réseau en temps réel avec IPTraf

  • Ubuntu - Sécuriser son serveur LDAP grâce à SSL

    Linux 14/2/2014

    Ubuntu - Sécuriser son serveur LDAP grâce à SSL

  • Ubuntu - Sécuriser votre serveur dédié ou VPS avec Iptables

    Linux 28/2/2014

    Ubuntu - Sécuriser votre serveur dédié ou VPS avec Iptables

Commentaires

Pas de commentaire

Donnez-nous votre avis

Contenu épinglé

  • Logiciels (Admin système)
  • Logiciels Linux
  • Nos programmes
  • Conditions générales
  • Donnez votre avis

Contact

  • Livre d'or
  • Support technique
  • Contact

® InformatiWeb-Pro.net - InformatiWeb.net 2008-2022 - © Lionel Eppe - Tous droits réservés.

Toute reproduction totale ou partielle de ce site est interdite et constituerait une contrefaçon sanctionnée par les articles L.335-2 et suivants du Code de la propriété intellectuelle.