280 likes | 508 Views
Jérémie LEGRAND. Université de Marne La Vallée Informatique et Réseaux 3 ème année. La haute disponibilité via Heartbeat, concepts et exemples pratiques. Exposé Système, Année 2006-2007. Ce que l’on va voir…. Généralités sur la haute disponibilité Concepts à maîtriser
E N D
Jérémie LEGRAND Université de Marne La Vallée Informatique et Réseaux 3ème année La haute disponibilité via Heartbeat, concepts et exemples pratiques Exposé Système, Année 2006-2007
Ce que l’on va voir… Généralités sur la haute disponibilité Concepts à maîtriser Exemples d’applications Heartbeat par la pratique IR3 2006-2007 - Système - Jérémie Legrand
Principes généraux « You'd better pump even if nothing happens than risking something worse happens if you do not pump.» (The Shadoks) IR3 2006-2007 - Système - Jérémie Legrand
La haute disponibilité, c’est quoi « On appelle « haute disponibilité »toutes les dispositions visant à garantir la disponibilité d'un service et son bon fonctionnement 24H/24. » (www.commentcamarche.net) IR3 2006-2007 - Système - Jérémie Legrand
Pourquoi faire ? • Ces services peuvent pénaliser l’entreprise en cas de défaillances (commandes en ligne par exemple) • Employés au chômage technique • Clients mécontents passant à la concurrence • … • Un grand nombre d’entreprises proposent des services à leurs salariés, clients, etc. • Manque à gagner pour l’entreprise (1/250ème des bénéfices par jour d’arrêt) • Votre directeur financier et votre responsable hiérarchique seront TRES mécontents de vous… • Une nouvelle offre d’emploi sortira bientôt dans les journaux spécialisés IR3 2006-2007 - Système - Jérémie Legrand
Comment peut-on agir ? • Le terme « Haute disponibilité » couvre un grand nombre de domaines : • Manipulations des serveurs « à chaud » : • Reconfiguration des services • Sauvegarde des données, … • Redondance du matériel • Répartition dynamique des données (RAID, etc.) • Stockage des données à un emplacement physique différent • Plan de secours • Fonctionnement en mode dégradé (fournir un service jugé indispensable sans ses ressources habituelles humaines ou matérielles) • … IR3 2006-2007 - Système - Jérémie Legrand
Domaine de définition de cet exposé • Un seul point étudié ici : • la détection automatique d'une défaillance d'un serveur, et la reprise du service qu'il offrait par d'autres machines. • Réalisé par le programme Heartbeat, faisant partie de la suite « The Linux Virtual Server » (LVS) • Question importante : • ai-je besoin d’une seule machine active pour répondre à tous les clients, ou de plusieurs simultanément ? IR3 2006-2007 - Système - Jérémie Legrand
Concepts à maîtriser « Avant de détruire quelqu'un, l'ordinateur le rend fou. » (Anonyme) IR3 2006-2007 - Système - Jérémie Legrand
Si une seule machine suffit (1) • Une machine active, qui répond aux clients • Une machine configurée à l’identique : • service arrêtés • surveillant la première en permanence • Lorsqu’elle détecte une panne : • elle lance ses services • elle répond aux clients à la place de l’autre • Si la première est réparée : • Soit elle se met à son tour en écoute • Soit elle demande à reprendre la main IR3 2006-2007 - Système - Jérémie Legrand
Si une seule machine suffit (2) • Une méthode de surveillance : • la tachycardie (heartbeat) IR3 2006-2007 - Système - Jérémie Legrand
1ère approche : ‘Round Robin DNS’ S’il faut plusieurs machines (1) • Il faut : • Plusieurs serveurs proposant le même service • Pouvoir rediriger les requêtes des clients de manière équitable sur tous les serveurs IR3 2006-2007 - Système - Jérémie Legrand
S’il faut plusieurs machines (2) • On peut faire mieux : le répartiteur de charge • En Anglais : « load balancer » • Prendre en compte de la puissance des machines, le nombre d’utilisateurs déjà connectés, etc. IR3 2006-2007 - Système - Jérémie Legrand
Algorithmes de load balancing • Pléthore d’algorithmes. • Ceux utilisés par « The Linux Virtual Server » (LVS) : • Least-Connection • Weighted Least Connection • Round-Robin • Weighted Round-Robin • Locality-Based Least-Connection • Destination-Hashing • Source-Hashing • Short Expected Delay • Never Queue (Caféine inside) IR3 2006-2007 - Système - Jérémie Legrand
Au final : répartition de charge requêtes Client Machines proposant le même service Gestionnaires (en haute disponibilité) Cela fonctionne mais… • Gestionnaire unique = point de faiblesse requêtes ? Gestionnaire Client Machines proposant le même service IR3 2006-2007 - Système - Jérémie Legrand
Plusieurs machines actives IP virtuelle = xxx Client Routage Simple Encapsulation IP-IP N.A.T. requête IP normale IP virtuelle Haute disponibilité Client Machine active Services Comment le gestionnaire redirige les clients ? • Machine active / machine passive IR3 2006-2007 - Système - Jérémie Legrand
Exemples d’applications « En théorie, il n'y a pas de différences entre la théorie et la pratique. En pratique, il y en a. » (Chuck Reid) IR3 2006-2007 - Système - Jérémie Legrand
Serveur mail n°2 (passif) Serveur mail n°1 (actif) Exemple : relais de messagerie Echanges Haute disponibilité IR3 2006-2007 - Système - Jérémie Legrand
Serveur SQL n°1 (actif) Serveur SQL n°2 (passif) Serveur de fichiers Exemple : serveurs MySQL Echanges Haute disponibilité NFS : Accès aux données de MySQL IR3 2006-2007 - Système - Jérémie Legrand
Serveur web n°1 (actif) Serveur web n°2 (passif) Serveur de fichiers Exemple : serveurs Web Echanges Haute disponibilité NFS. Accès aux : - pages web - données du site - fichiers de sessions IR3 2006-2007 - Système - Jérémie Legrand
lecture écriture Réplication DRBD DRBD lecture écriture écriture Partition Partition Plus dur : serveurs de fichiers Serveur NFS Serveur NFS (inactif) Serveur 1 Serveur 2 IR3 2006-2007 - Système - Jérémie Legrand
Heartbeat par la pratique… « The box said: "install on Windows 95, NT 4.0 or better". So I installed it on Linux. » (Anonyme) IR3 2006-2007 - Système - Jérémie Legrand
Sous le capot d’heartbeat (1) • Installation (sous Debian) : • /etc/heartbeat/ha.cf # apt-get update # apt-get install heartbeat logfacility local0 keepalive 2 deadtime 10 bcast eth0 node ##nom_pc1## ##nom_pc2## auto_failback no respawn hacluster /usr/lib/heartbeat/ipfail apiauth ipfail uid=hacluster gid=haclient IR3 2006-2007 - Système - Jérémie Legrand
Sous le capot d’heartbeat (2) • /etc/heartbeat/authkeys • 3 méthodes de protection • crc (réseaux sûrs, comme un câble croisé) • md5 (bonne alternative de sécurité) • sha1 (meilleure sécurité, utilise du temps CPU) • Ne pas oublier : auth 3 3 md5 ###mot_de_passe### # chmod 600 /etc/heartbeat/authkeys IR3 2006-2007 - Système - Jérémie Legrand
Sous le capot d’heartbeat (3) • /etc/heartbeat/haresources • Pleins d’actions différentes possibles. • Paramètres d’une option séparés par 4 points : “::” ##nom_pc1## action1 action2 ... actionN IR3 2006-2007 - Système - Jérémie Legrand
Sous le capot d’heartbeat (4) • Activer une adresse IP virtuelle : pc1 IPaddr:192.x.x.x/24/eth0 • Monter un système de fichiers local : pc1 Filesystem::/dev/sda1::/mnt/scsi::vfat • Monter un système de fichiers distant (NFS) pc1 Filesystem::192.x.x.x:/src::/mnt/dest::nfs • Monter un système de fichiers distant (NFS) avec des options pc1 Filesystem::192.x.x.x:/src::/mnt/dest::nfs::rsize=8192 IR3 2006-2007 - Système - Jérémie Legrand
Sous le capot d’heartbeat (5) • Restrictions : • Doit être dans /etc/init.d/ (ou /etc/heartbeat/ressource.d/) • Doit reconnaître les arguments ‘start’ et ‘stop’ • Ne doit PAS être lancé automatiquement au démarrage de Linux : • Et enfin : lancer un service : pc1 apache2 # update-rc.d –f apache2 remove IR3 2006-2007 - Système - Jérémie Legrand
Fin de cet exposé. • De plus amples informations sont disponibles sur la partie ‘web’. • Explications plus fournies et plus complètes • Liens vers des tutoriels complets • Astuces non trouvées dans les liens, etc. IR3 2006-2007 - Système - Jérémie Legrand
Références / Annexes • Heartbeat : http://linux-ha.org/ConfiguringHeartbeat • Configurer Heartbeat (Ubuntu) : http://doc.ubuntu-fr.org/serveur/heartbeat • The Linux Virtual Server (LVS) : http://www.linuxvirtualserver.org/ • Mécanismes de répartition de charges de LVS : http://www.ultramonkey.org/3/lvs.html • Mécanismes de redirection IP de LVS : http://www.linuxvirtualserver.org/how.html http://www.ultramonkey.org/3/lvs.html • Cluster Apache : http://www.howtoforge.com/high_availability_loadbalanced_apache_cluster • Cluster NFS : http://www.howtoforge.com/high_availability_nfs_drbd_heartbeat • Discussions sur la haute disponibilité : http://lea-linux.org/cached/index/Leapro-pro_sys-dispo.html IR3 2006-2007 - Système - Jérémie Legrand