HAProxy + NFS + DRBD + DNS RR

Haute disponibilité et répartition de charge - BTS SIO SISR

Objectifs

Mettre en place une infrastructure haute disponibilité avec :

1. HAProxy (Load Balancer)

Installation

apt install haproxy -y

Configuration

nano /etc/haproxy/haproxy.cfg

Configuration complète :

global
 log /dev/log local0
 log /dev/log local1 notice
 chroot /var/lib/haproxy
 stats socket /run/haproxy/admin.sock mode 660 level admin
 stats timeout 30s
 user haproxy
 group haproxy
 daemon

defaults
 log global
 mode http
 option httplog
 option dontlognull
 timeout connect 5000
 timeout client 50000
 timeout server 50000

frontend http_front
 bind *:80
 stats uri /haproxy?stats
 default_backend web_pool

backend web_pool
 balance roundrobin
 option httpchk GET /
 server web1 192.168.100.101:80 check
 server web2 192.168.100.102:80 check
 server webbackup 192.168.100.103:80 check backup
Explications :
  • balance roundrobin : répartition circulaire
  • check : vérification de santé (health check)
  • backup : serveur utilisé uniquement si les autres tombent

Démarrage

systemctl enable haproxy
systemctl restart haproxy
systemctl status haproxy

Vérification

Accéder aux statistiques : http://IP_HAPROXY/haproxy?stats

2. NFS (Network File System)

Serveur NFS

# Installation
apt install nfs-kernel-server -y

# Création du répertoire partagé
mkdir -p /srv/partagenfs
chown nobody:nogroup /srv/partagenfs
chmod 777 /srv/partagenfs

# Configuration des exports
nano /etc/exports

Contenu de /etc/exports :

/srv/partagenfs 192.168.100.0/24(rw,sync,no_subtree_check,no_root_squash)
Options :
  • rw : lecture/écriture
  • sync : écriture synchrone (sécurité)
  • no_root_squash : préserve les droits root (attention sécurité !)
# Appliquer les changements
exportfs -ra

# Redémarrer NFS
systemctl restart nfs-kernel-server

Client NFS

# Installation client
apt install nfs-common -y

# Montage manuel
mkdir -p /mnt/nfs
mount 192.168.100.10:/srv/partagenfs /mnt/nfs

# Montage automatique (/etc/fstab)
nano /etc/fstab

192.168.100.10:/srv/partagenfs /mnt/nfs nfs defaults 0 0

3. DRBD (Distributed Replicated Block Device)

IMPORTANT : DRBD n'est PAS un système de fichiers partagé ! C'est une réplication de disque en mode actif/passif uniquement.

Installation (sur les 2 nœuds)

apt install drbd-utils -y
modprobe drbd

Configuration (exemple simplifié niveau BTS)

nano /etc/drbd.d/r0.res

Contenu :

resource r0 {
 protocol C;
 on node1 {
 device /dev/drbd0;
 disk /dev/sdb1;
 address 192.168.100.101:7789;
 meta-disk internal;
 }
 on node2 {
 device /dev/drbd0;
 disk /dev/sdb1;
 address 192.168.100.102:7789;
 meta-disk internal;
 }
}
Protocoles DRBD :
  • A : asynchrone (rapide, risque de perte)
  • B : semi-synchrone
  • C : synchrone (lent, sûr) ← recommandé

Initialisation (sur les 2 nœuds)

drbdadm create-md r0
drbdadm up r0

Définir le nœud primaire (nœud1)

drbdadm primary --force r0

Vérification

cat /proc/drbd
drbdadm status r0
LIMITE DRBD : Un seul nœud peut accéder au disque en lecture/écriture à la fois. Pour du vrai partage actif/actif, utiliser GFS2, OCFS2 ou Ceph.

4. DNS Round Robin

Configuration BIND (exemple)

nano /etc/bind/db.example.com

Ajouter plusieurs enregistrements A avec le même nom :

www IN A 192.168.100.101
www IN A 192.168.100.102
www IN A 192.168.100.103

Les requêtes DNS seront réparties entre les 3 serveurs

LIMITE : DNS RR ne fait PAS de health check. Si un serveur tombe, le DNS continuera de le distribuer → privilégier HAProxy ou un vrai load balancer.

5. VRRP (Virtual Router Redundancy Protocol)

Concept

VRRP crée une IP virtuelle partagée entre plusieurs routeurs/serveurs. Si le maître tombe, un backup prend automatiquement le relais.

ATTENTION : VRRP n'est PAS du routage dynamique (OSPF, BGP). C'est uniquement de la redondance de gateway.

Configuration (exemple Cisco/pfSense)

vrrp 10 ip 192.168.1.1
vrrp 10 priority 120
vrrp 10 preempt
Paramètres :
  • vrrp 10 : ID du groupe VRRP
  • ip 192.168.1.1 : IP virtuelle partagée
  • priority 120 : priorité (plus élevée = maître)
  • preempt : reprendre le rôle de maître si priorité supérieure

Adresse multicast VRRP

224.0.0.18 : adresse multicast utilisée par VRRP pour les annonces

Points Clés pour l'Oral BTS