HA - Heartbeat

HA CLUSTERS
HIGH AVAILABILITY

Guy Lessard et
Jean-Marc Vaillancourt

Club Linux Gatineau

Description

Objectif

 

 

Le besoin

 


HA clusters, High availability
Services redondants

 

 

HA peut réduire le transfert de service de façon dramatique

La règle des neuf en ce qui concerne la disponibilité :
90 % => 37 jours de non disponibilité de service par année
99 % => 3,7 jours
99,9 % => 8,8 heures
99,99 % => 53 min.
99,999 % => 5,3 min.
99,9999 % => 32 secondes

Description - Suite

Pour obtenir de hauts pourcentages de disponibilité

 

Même sans les éléments ci-dessus, on peut grandement améliorer la disponibilité avec HA.

 

Qui bénéficie de HA

 

 

Configuration avec DRBD

Config avec DBRD

Dans cette configuration, chaque noeud est connecté sur l'onduleur (UPS) de l'autre. Si l'un des deux noeuds tombe, l'onduleur de l'autre le « tue » (l'éteint) pour prévenir un conflit si jamais il revient à la vie.

Ce dont nous avons besoin

Ce dont nous avons besoin

 

 

Logiciel HA Heartbeat

 


Réplication des disques (faible performance)

 

 

Disques partagés (plus performant)

Disques partagés (plus performant)

 

 

Solutions dispendieuses allant de 5 000 $ US à plusieurs millions.

 

Étapes

 

  1. Installer deux machines de base (de préférence de même distribution, ça simplifie les choses)
  2. Installer les services de façon à ce que les fichiers de configuration, services et données soient sur le disque partagé
  3. Cartes Ethernet paramétrées et câble série installé.
  4. Logiciels Heartbeat et DRBD installés

 

Point de panne unique (single point of failure, ou SPOF)

Avec la configuration ci-dessus, nous avons :
- Deux blocs d'alimentation redondants
- Deux cartes maîtresses/mémoires/CPU redondants
- Deux disques en miroir et/ou synchronisés qui ne sont pas dans le même boîtier
- Deux onduleurs (UPS)
- Câble Ethernet croisé pour éviter une panne de concentrateur (hub) ou de commutateur, idem pour la connexion série.

Heartbeat

 

Paul est le maître et est en état de fonctionner

 

 

Paul maître fonctionne

L'adresse de service de la « grappe » est 10.10.10.20

Paul est en panne. Silas prend la relève

 

Paul en panne - Silas prend la relève

 

Logiciels à charger :

 

 

Configuration

 DRBD

 

 

Stonith (Shoot The Other Node In The Head)

 

 

Fichiers de configuration de heartbeat

 

- /etc/ha.d/ha.cf (configuration générale)
- /etc/ha.d/haresources (liste des services HA à gérer)
- /etc/ha.d/authkeys (contient la méthode d'encryption utilisée par heartbeat pour communiquer)

ha.cf, un exemple

logfacility local7     # mécanisme de journalisation
keepalive 1      # Intervalle HB en secondes
warntime 2      # Retard de l'autre à se manifester
deadtime 10      # prise de la relève dans 10 secondes
nice_failback on      #
node paul silas
ping 10.10.10.254      # adresse du routeur
respawn /usr/lib/heartbeat/ipfail
bcast eth0 eth1      # HB bcast
serial /dev/ttyS0      # Liaison HB série
stonith_host paul apcsmart silas /dev/ttyS1
stonith_host silas apcsmart paul /dev/ttyS1

Haresources, un exemple

paul 10.10.10.20 datadisk::drbd0 nfslock nfsserver nmb smb dhcpd postfix

Nota : Paul est le serveur primaire actif, le reste sont les services, incluant l'adresse IP de service, qui sont démarrés ou éteints par Heartbeat.
Nota : Tout doit être écrit sur la même ligne

Authkeys, un exemple

auth 1
1 sha1 MotdePassePrisauhasardfc970c94efb

Mesures à prendre

 

  1. Empêcher les services HA de démarrer au démarrage du serveur ( c'est heartbeat qui s'en occupe).
  2. Empêcher la partition partagée (disque partagé) de démarrer au démarrage du serveur (dans le cas de drbd; dans le cas de rsync, il n'y a pas de disque partagé)
  3. Démonter la partition ci-haut mentionnée (dans le cas de drbd)
  4. S'assurer que l'on donne l'adresse de service aux clients soit via /etc/hosts et/ou DNS. Nommer Paul et Silas aussi.
  5. Transférer les services sur la partition partagée (toujours avec drbd).
  6. Vérifier que la méthode de réplication fonctionne (drbd)
  7. Démarrer heartbeat sur les deux machines (service heartbeat start ou /etc/init.d/heartbeat start, selon votre distribution)
  8. Vérifier que les services HA sont tous démarrés par heartbeat

 

Tests, simulations

 

Configuration particulière du serveur du Club

 

- http://www.linux-ha.org/ha.cf
- http://www.linux-ha.org/haresources
- http://www.linux-ha.org/authkeys

 

Synchronisation des serveurs

 

 

crontab sur clo2

 

Guy Lessard
Jean-Marc Vaillancourt
Club Linux Gatineau
28 mars 2006