Haute disponibilité
From All4Dev
En cours ...
Configuration (par l'exemple) de heartbeat 2.0.3 sous Debian 3.1 (Sarge)
L'installation est réalisée sur trois machines (test1, test2, test3), installée sous Debian GNU/Linux 3.1 avec un système de base est une connexion réseau fonctionnelle.
- Installation de heartbeat version 2
Heartbeat version 2 n'est pas disponible sous Sarge, il faut donc le récupérer sur http://www.backports.org (après modification de /etc/apt/sources.list et /etc/apt/preferences, aptitude update && aptitude install hearbeat-2)
- Configuration de l'authentification
Créer sur chaque machine le fichier /etc/ha.d/authkeys contenant par exemple les lignes suivantes
auth 3 3 md5 mot2pass
Changer les droits pour protéger ce fichier
chmod 0600 /etc/ha.d/authkeys
- Configuration globale
Créer sur chaque machine le fichier /etc/ha.d/ha.cf contenant les lignes suivantes
logfile /var/log/ha-log mcast eth0 225.0.0.1 694 1 0 auto_failback on autojoin any crm 1
- Configuration des resources
Après s'être bien assurée que heartbeat est arrêté, mettre en place le fichier /var/lib/heartbeat/crm/cib.xml
<cib>
<configuration>
<crm_config>
<nvpair id="transition_timeout" name="transition_timeout" value="120s"/>
<nvpair id="symmetric_cluster" name="symmetric_cluster" value="true"/>
<nvpair id="stonith_enabled" name="stonith_enabled" value="false"/>
<nvpair id="no_quorum_policy" name="no_quorum_policy" value="stop"/>
<nvpair id="default_resource_stickiness" name="default_resource_stickiness" value="0"/>
<nvpair id="is_managed_default" name="is_managed_default" value="true"/>
<nvpair id="stop_orphan_resources" name="stop_orphan_resources" value="false"/>
<nvpair id="stop_orphan_actions" name="stop_orphan_actions" value="false"/>
<nvpair id="suppress_cib_writes" name="suppress_cib_writes" value="true"/>
</crm_config>
<nodes/>
<resources>
<primitive id="ip_resource_1" class="ocf" type="IPaddr" provider="heartbeat">
<instance_attributes>
<attributes>
<nvpair name="ip" value="10.0.0.11"/>
</attributes>
</instance_attributes>
</primitive>
<primitive id="ip_resource_2" class="ocf" type="IPaddr" provider="heartbeat">
<instance_attributes>
<attributes>
<nvpair name="ip" value="10.0.0.12"/>
</attributes>
</instance_attributes>
</primitive>
<primitive id="ip_resource_3" class="ocf" type="IPaddr" provider="heartbeat">
<instance_attributes>
<attributes>
<nvpair name="ip" value="10.0.0.13"/>
</attributes>
</instance_attributes>
</primitive>
</resources>
<constraints>
<rsc_location id="run_ip_resource_1" rsc="ip_resource_1">
<rule id="pref_run_ip_resource_1" score="100">
<expression attribute="#uname" operation="eq" value="test1"/>
</rule>
</rsc_location>
<rsc_location id="run_ip_resource_2" rsc="ip_resource_2">
<rule id="pref_run_ip_resource_2" score="100">
<expression attribute="#uname" operation="eq" value="test2"/>
</rule>
</rsc_location>
<rsc_location id="run_ip_resource_3" rsc="ip_resource_3">
<rule id="pref_run_ip_resource_3" score="100">
<expression attribute="#uname" operation="eq" value="test3"/>
</rule>
</rsc_location>
</constraints>
</configuration>
<status/>
</cib>
Ici, on a 3 resources (une par serveur) spécifiant que chaque serveur doit avoir une IP de service, c'est une de celle-ci qui sera basculée d'un serveur à un autre en cas de défaillance.
- Modification de la gestion des fichiers "core"
heartbeat recommande de modifier la configuration par défaut en ajoutant la ligne suivante dans /etc/sysctl.conf
kernel/core_uses_pid=1
Il faut ensuite appliquer cette configuration:
/etc/init.d/procps.sh restart
- Démarrage
Il suffit maintenant de démarrer heartbeat sur les 3 machines
/etc/init.d/heartbeat start
Un dialogue va s'établir entre les machines et une fois dans un état stable, les resources vont être activée sur chaque machine.
- Cas du crash d'une machine
Lorsqu'une machine tombe en panne (ne répond plus au lien heartbeat), une des autres machines du cluster prendra sa resource.
- Ajout d'une machine dans le cluster
En cas de création d'une nouvelle machine par "rsync" d'une machine du cluster, il faut impérativement supprimer les fichiers suivants sur la nouvelle machine
/var/lib/heartbeat/hb_uuid

