Exposé Système, Année 2006-2007
-
Upload
shay-cannon -
Category
Documents
-
view
20 -
download
1
description
Transcript of Exposé Système, Année 2006-2007
Exposé Système, Année 2006-2007
Université de Marne La ValléeInformatique et Réseaux3ème année
Jérémie LEGRAND
La haute disponibilité via Heartbeat, concepts et exemples pratiques
IR3 2006-2007 - Système - Jérémie Legrand 2
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 3
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 4
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 5
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 …
Une nouvelle offre d’emploi sortira bientôt dans les journaux spécialisés
Votre directeur financier et votre responsable hiérarchique seront TRES mécontents de vous…
Manque à gagner pour l’entreprise (1/250ème des bénéfices par jour d’arrêt)
Un grand nombre d’entreprises proposent des services à leurs salariés, clients, etc.
IR3 2006-2007 - Système - Jérémie Legrand 6
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érielRépartition dynamique des données (RAID, etc.)Stockage des données à un emplacement physique différentPlan de secoursFonctionnement 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 7
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 8
Concepts à maîtriser
« Avant de détruire quelqu'un, l'ordinateur le rend fou. »(Anonyme)
IR3 2006-2007 - Système - Jérémie Legrand 9
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 écouteSoit elle demande à reprendre la main
IR3 2006-2007 - Système - Jérémie Legrand 10
Si une seule machine suffit (2)
Une méthode de surveillance : la tachycardie (heartbeat)
IR3 2006-2007 - Système - Jérémie Legrand 11
S’il faut plusieurs machines (1)
Il faut :Plusieurs serveurs proposant le même servicePouvoir rediriger les requêtes des clients de manière équitable
sur tous les serveurs
1ère approche : ‘Round Robin DNS’
IR3 2006-2007 - Système - Jérémie Legrand 12
S’il faut plusieurs machines (2)
On peut faire mieux : le répartiteur de chargeEn 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 13
Algorithmes de load balancing
Pléthore d’algorithmes. Ceux utilisés par « The Linux Virtual Server » (LVS) :
Least-ConnectionWeighted Least ConnectionRound-RobinWeighted Round-RobinLocality-Based Least-ConnectionDestination-HashingSource-HashingShort Expected DelayNever Queue
(Caféine inside)
IR3 2006-2007 - Système - Jérémie Legrand 14
Cela fonctionne mais…
Gestionnaire unique = point de faiblesse
requêtes ?
GestionnaireMachines proposant
le même service
Client
requêtes répartition de charge
Gestionnaires(en haute disponibilité)
Client
Au final :
Machines proposant le même service
IR3 2006-2007 - Système - Jérémie Legrand 15
Comment le gestionnaire redirige les clients ?
Machine active / machine passive
IP normaleIP virtuelle
requête
ClientMachine active
IP virtuelle = xxx
Haute disponibilité
Services
Client
Plusieurs machines actives
Routage Simple Encapsulation IP-IP N.A.T.
IR3 2006-2007 - Système - Jérémie Legrand 16
Exemplesd’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 17
Exemple : relais de messagerie
Echanges Haute disponibilité
Serveur mail n°1(actif)
Serveur mail n°2(passif)
IR3 2006-2007 - Système - Jérémie Legrand 18
Exemple : serveurs MySQL
Echanges Haute disponibilité
NFS : Accès aux données de MySQL
Serveur de fichiers
Serveur SQL n°1(actif)
Serveur SQL n°2(passif)
IR3 2006-2007 - Système - Jérémie Legrand 19
Exemple : serveurs Web
Echanges Haute disponibilité
Serveur web n°1(actif)
NFS. Accès aux : - pages web - données du site - fichiers de sessions
Serveur web n°2(passif)
Serveur de fichiers
IR3 2006-2007 - Système - Jérémie Legrand 20
Plus dur : serveurs de fichiers
Serveur NFS
Serveur 1
lecture écriture
DRBD
Serveur NFS(inactif)
écriture
Partition
Serveur 2
Réplication
Partition
DRBD
lecture écriture
IR3 2006-2007 - Système - Jérémie Legrand 21
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 22
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 23
Sous le capot d’heartbeat (2)
/etc/heartbeat/authkeys
3 méthodes de protectioncrc (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 24
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 25
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 26
Sous le capot d’heartbeat (5)
Et enfin : lancer un service :
pc1 apache2
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 :# update-rc.d –f apache2 remove
IR3 2006-2007 - Système - Jérémie Legrand 27
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 28
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.htmlhttp://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