Serveur NFS · 3 min read · Nov 18, 2025

Configuration d'un serveur NFS hautement disponible - Page 4

8 Installer et configurer heartbeat

heartbeat est l’instance de contrôle de toute cette configuration. Il va être installé sur server1 et server2, et il surveille l’autre serveur. Par exemple, si server1 tombe en panne, heartbeat sur server2 détecte cela et fait prendre le relais à server2. heartbeat démarre et arrête également le serveur NFS sur server1 et server2. Il fournit également NFS comme un service virtuel via l’adresse IP 192.168.0.174 afin que les nœuds du cluster de serveurs web ne voient qu’un seul serveur NFS.

Tout d’abord, nous installons heartbeat:

server1/server2:

apt-get install heartbeat

Maintenant, nous devons créer trois fichiers de configuration pour heartbeat. Ils doivent être identiques sur server1 et server2 !

server1/server2:

/etc/heartbeat/ha.cf:

| logfacility local0 keepalive 2 #deadtime 30 # UTILISEZ CECI !!! deadtime 10 bcast eth0 node server1 server2 |

En tant que noms de nœuds, nous devons utiliser la sortie de uname -n sur server1 et server2.

server1/server2:

/etc/heartbeat/haresources:

| server1 IPaddr::192.168.0.174/24/eth0 drbddisk::r0 Filesystem::/dev/drbd0::/data::ext3 nfs-kernel-server |

Le premier mot est la sortie de uname -n sur server1, peu importe si vous créez le fichier sur server1 ou server2 ! Après IPaddr, nous mettons notre adresse IP virtuelle 192.168.0.174, et après drbddisk, nous utilisons le nom de la ressource de notre ressource DRBD qui est r0 ici (rappelez-vous, c’est le nom de la ressource que nous utilisons dans /etc/drbd.conf - si vous en utilisez un autre, vous devez l’utiliser ici aussi).

server1/server2:

/etc/heartbeat/authkeys:

| auth 3 3 md5 somerandomstring |

somerandomstring est un mot de passe que les deux démons heartbeat sur server1 et server2 utilisent pour s’authentifier l’un l’autre. Utilisez votre propre chaîne ici. Vous avez le choix entre trois mécanismes d’authentification. J’utilise md5 car c’est le plus sécurisé.

/etc/heartbeat/authkeys doit être lisible uniquement par root, donc nous faisons ceci :

server1/server2:

chmod 600 /etc/heartbeat/authkeys

Enfin, nous démarrons DRBD et heartbeat sur server1 et server2 :

server1/server2:

/etc/init.d/drbd start
/etc/init.d/heartbeat start

9 Premiers tests

Maintenant, nous pouvons faire nos premiers tests. Sur server1, exécutez

server1:

ifconfig

Dans la sortie, l’adresse IP virtuelle 192.168.0.174 devrait apparaître :

| eth0 Link encap:Ethernet HWaddr 00:0C:29:A1:C5:9B inet addr:192.168.0.172 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fea1:c59b/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:18992 errors:0 dropped:0 overruns:0 frame:0 TX packets:24816 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:2735887 (2.6 MiB) TX bytes:28119087 (26.8 MiB) Interrupt:177 Base address:0x1400 eth0:0 Link encap:Ethernet HWaddr 00:0C:29:A1:C5:9B inet addr:192.168.0.174 Bcast:192.168.0.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:177 Base address:0x1400 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:71 errors:0 dropped:0 overruns:0 frame:0 TX packets:71 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:5178 (5.0 KiB) TX bytes:5178 (5.0 KiB) |

De plus, exécutez

server1:

df -h

sur server1. Vous devriez voir /data listé là maintenant :

| Filesystem Size Used Avail Use% Mounted on /dev/sda5 4.6G 430M 4.0G 10% / tmpfs 126M 0 126M 0% /dev/shm /dev/sda1 89M 11M 74M 13% /boot /dev/drbd0 24G 33M 23G 1% /data |

Si vous faites de même

server2:

ifconfig
df -h

sur server2, vous ne devriez pas voir 192.168.0.174 et /data.

Maintenant, nous créons un fichier de test dans /data/export sur server1 puis simulons une panne du serveur de server1 (en arrêtant heartbeat) :

server1:

touch /data/export/test1
/etc/init.d/heartbeat stop

Si vous exécutez ifconfig et df -h sur server2 maintenant, vous devriez voir l’adresse IP 192.168.0.174 et la partition /data, et

server2:

ls -l /data/export

devrait lister le fichier test1 que vous avez créé sur server1 auparavant. Il a donc été répliqué sur server2 !

Maintenant, nous créons un autre fichier de test sur server2 et voyons s’il est répliqué sur server1 lorsqu’il redémarre :

server2:

touch /data/export/test2

server1:

/etc/init.d/heartbeat start

(Attendez quelques secondes.)

ifconfig
df -h
ls -l /data/export

Vous devriez voir 192.168.0.174 et /data à nouveau sur server1 ce qui signifie qu’il a repris le relais (car nous l’avons défini comme principal), et vous devriez également voir le fichier /data/export/test2 !

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.