Admin Café Forums  

Précédent   Admin Café Forums > Les technologies du Domaine Libre > Administration des distributions *nix et *nux

Notices

Réponse
 
Outils de la discussion
  #1  
Vieux 20/08/2008, 15h42
Avatar de TibO
TibO TibO est déconnecté
Habitué du forum
 
Date d'inscription: June 2008
Localisation: Paris
Messages: 156
Pouvoir de réputation: 15
TibO est sur la bonne voie
Envoyer un message via MSN à TibO Envoyer un message via Skype™ à TibO
Par défaut [INFORMATION] Heartbeat (clustering)

Salut à tous,

bon je vais faire plusieurs chantiers sur les différentes technos que j'ai pu rencontrer, en faisant une brève présentation et en donnant sur quel contexte j'ai pu l'appliquer, et après j'essaierai de répondre au maximum de questions si vous en avez :)

Si y'a des experts en al matière, je leur demanderai de me corriger si je poste des bétises.


des notions de clustering sont nécessaires à la bonne compréhension de cette introduction :)

Heartbeat :

Heartbeat est une technologie dite de "clustering", c'est à dire qu'elle permet d'avoir un système dit de Haute Disponibilité (High Availability) pour accéder à des services ou des ressources sans risque de perte de service.
Ceci est un C/C d'une doc que j'ai déjà écrite :
Présentation et intérêt

Heartbeat est un logiciel Linux permettant de faire de la haute disponibilité sur un réseau entre plusieurs noeuds.


Explication et mise en place

L'application Zimbra n'étant actuellement supporté que sur la version Dapper (6.06) d'Ubuntu, nous avons commencé par essayer d'installer la version fournie avec les dépots. (la 2.0.6).
Il s'avère que cette version manque de beaucoup de fonctionnalités, et c'est pour cela qu'a été installée la version 2.1.3 en recompilation.


Installation

La page utilisée pour télécharger cette version est la suivante : http://linux-ha.org/download/index.html

Ensuite, dans le dossier dézippé du TGZ, vous avez une application ConfigureMe qu'il faut utiliser avec les flags configure puis make et install.
Si certains paquets manquent à l'installation, faites un
./ConfigureMe configure 2>&1 | more Et dès qu'un paquet apparait comme “missing”, faites un
apt-get install paquet Enfin comme on recompile à la main, il faut créer un group et un user pour heartbeat :
groupadd haclient
useradd -g haclient hacluster
passwd hacluster
Configuration

Une fois l'installation terminée (./ConfigureMe install terminé avec succès), il faut passer à la partie configuration. Il est possible d'utiliser Heartbeat en mode de configuration v1 (fichier haresources) ou en mode v2 (fichier cib.xml). La v1 ne permet pas de faire de surveillance, ce qui explique pourquoi nous allons utiliser la v2 !



Complément : la v1 permet juste de détecter si un noeud est "down" ou "up" et bascule tous les services si une des machines ne répond plus. La v2 permet quant à elle de "monitorer" des services, par exemple, si la machine marche, mais que le process apache se vautre, elle le relance, et si ça ne marche pas, bascule sur le 2e noeud.


Le fichier ha.cf (configuration du démon)


Le mieux est de lire chacune des parties de ce fichier pour comprendre à quoi elles servent. Voici le contenu du fichier ha.cf sur les 2 noeuds de notre cluster (ici : troll et gobelin) :

Code:
root@gobelin:~/heartbeat-2.1.3# egrep -v “^#|^$” /etc/ha.d/ha.cf 

bcast eth0 eth2 

coredumps true 

crm on 

debugfile /var/log/ha-debug 

initdead 30 

logfile /var/log/ha-log 

node gobelin troll 

respawn hacluster /usr/lib/heartbeat/dopd 

apiauth dopd gid=haclient uid=hacluster
Voici une explication rapide des différentes fonctions
Ligne de commande Valeur Explication bcast eth0 eth2 Interface(s) sur la(les)quelle(s) seront broadcastées les infos hearbeat coredumps true … crm on Utilisation de la configuration v2 au lieu de v1 debugfile /var/log/ha-debug Nom du fichier de log debug logfile /var/log/ha-log Nom du fichier de log standard initdead 30 Temps d'attente de l'autre noeud au boot du process avant de le considérer comme mort node gobelin troll Noms des noeuds participants au cluster (IL FAUT QU'ILS SOIENT DANS /etc/hosts en cas de problème DNS !!) respawn hacluster /usr/lib/heartbeat/dopd Si jamais le cluster est redémarré, lancement du process dopd pour le split brain apiauth dopd gid=haclient uid=hacluster Infos pour le fork du process dopd Une fois notre fichier créé, il doit être identique sur les 2 noeuds.

Configuration des resources (cib.xml)

Pour la configuration du fichier xml, le plus simple est d'utiliser la GUI fournie à partir des version 2.1.x Pour cela il suffit d'utiliser la commande
hb_gui Si vous êtes en SSH, il vous faut bien sur un serveur X exporté (soit avec la commande ssh -X sous linux, soit avec Exceed ou Cygwin sous Windows).
Voici l'interface Graphique une fois lancée :

Ici vous voyez que tout est déjà configuré. Pour tout configurer, voici l'ordre de fonctionnement : tout d'abord, créer un groupe qui contiendra toutes les resources qui doivent ne tourner que sur un noeud à la fois et qui basculera entièrement lors d'une perte de serveur. Ensuite, créer autant de resources natives dont vous avez besoin, en utilisant à chaque fois un script LSB ou OCF de la liste
[b]L'ordre de création des ressources influe sur l'ordre de leur lancement ! Ne mettez pas une ressource de montage de système de fichier avant une ressource disque par exemple…
Ici on crééra donc dans l'ordre une ressource drbddisk, une resource Filesystem, une resource IpAddr pour l'IP de service et une ressource “apache” utilisée à des fins de test. Exemple de gestion de ressource drbddisk :

Ensuite il faut créer une “Location” qui expliquera à Heartbeat sur quel node se lancer en priorité :

Ensuite la GUI vous indiquera quelles sont les erreurs eventuelles dans les fichiers indiqués dans ha-debugfile et logfile.
Pour utiliser DRBD En tant que ressource, DRBD doit être installé et lancé pour que Heartbeat puisse le gérer.

Je vais de ce pas créer un petit article DRBD pour compliquer les choses :D

N'hésitez pas à poser des questions !

A plus

TibO

Dernière modification par TibO ; 20/08/2008 à 15h58
Réponse avec citation
Liens Sponsorisés
  #2  
Vieux 20/08/2008, 16h52
Avatar de khamlon
khamlon khamlon est déconnecté
Membre
 
Date d'inscription: June 2008
Localisation: Paris
Messages: 77
Pouvoir de réputation: 14
khamlon est sur la bonne voie
Par défaut

il me semblait que le clustering consiste à lancer un traitement en parallèle sur plusieurs machine ce qui me semble différent de la haute dispo... j'ai loupé un truc?
__________________
alex.
Consultant MOSS/WSS 3
http://blogs.codes-sources.com/alex/
Réponse avec citation
  #3  
Vieux 20/08/2008, 18h04
Avatar de TibO
TibO TibO est déconnecté
Habitué du forum
 
Date d'inscription: June 2008
Localisation: Paris
Messages: 156
Pouvoir de réputation: 15
TibO est sur la bonne voie
Envoyer un message via MSN à TibO Envoyer un message via Skype™ à TibO
Par défaut

si c'est exact :)

mais comme on fait appel à une IP de service commune, et que tu ne sais pas sur quelle machine tu travailles, j'ai "confondu" ça avec le clustering.

Au temps pour moi :)
Réponse avec citation
  #4  
Vieux 01/12/2009, 16h56
kristal kristal est déconnecté
Nouveau membre
 
Date d'inscription: September 2009
Localisation: Madagascar
Âge: 24
Messages: 8
Pouvoir de réputation: 0
kristal est sur la bonne voie
Envoyer un message via Skype™ à kristal
Par défaut

coucou!
en fait, le clustering est juste une méthode d'optimisation définit de "fail over" pour assurer les services même dans le cas d'une défaillance matériel du derveur principal et de "load balancing" si il s'agit de partager une lourde tâche (ou plusieurs requêtes) entre un groupe de serveur travaillant en "synchro". N'est-ce pas?
Réponse avec citation
  #5  
Vieux 01/12/2009, 19h07
Avatar de Pilo
Pilo Pilo est déconnecté
Administrateur
 
Date d'inscription: June 2008
Localisation: Les Avirons
Âge: 32
Messages: 387
Pouvoir de réputation: 10
Pilo est sur la bonne voie
Envoyer un message via ICQ à Pilo Envoyer un message via MSN à Pilo Envoyer un message via Skype™ à Pilo
Par défaut

oui oui, c'est ça
__________________
Administrateur
Réponse avec citation
  #6  
Vieux 01/12/2009, 21h01
Avatar de TibO
TibO TibO est déconnecté
Habitué du forum
 
Date d'inscription: June 2008
Localisation: Paris
Messages: 156
Pouvoir de réputation: 15
TibO est sur la bonne voie
Envoyer un message via MSN à TibO Envoyer un message via Skype™ à TibO
Par défaut

Nan en fait c'est pas exactement ça. Le clustering c'est du partage de temps processeur pour que tu aies x serveurs, qui n'en paraissent qu'un seul au client, mais qui font tous les calculs ensemble.

Le failover/high availability, c'est ce que je décris ici, à savoir si ça pète d'un côté, ça switch

Le load balancing, c'est par exemple avoir 2 serveurs frontaux pour un meme service, servi par 4 serveurs de travail derrière avec des appels et des tâches réparties selon les dispos et les charges de chaque serveur.
Réponse avec citation
Réponse

Liens sociaux

Tags
clustering, heartbeat, linux, linux ha


Utilisateurs regardant la discussion actuelle : 1 (0 membre(s) et 1 invité(s))
 
Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 15h04.


Édité par : vBulletin® version 3.8.2
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd. Tous droits réservés.
Version française #16 par l'association vBulletin francophone