Upload
sebastien-baudet
View
104
Download
0
Embed Size (px)
Citation preview
Outils d’exploitation d’une grappe de grande taille
Philippe AugeratID-IMAG Apache-INRIA
JTE cluster computing, 2 octobre 2001
Objectifs
- Mettre en place des architectures de calcul et de services basées sur des centaines (milliers) de PC
- Voir (accéder, administrer, programmer) ces machines comme s’il s’agissait d’une seule
Ka
Passage à l’échelle des outils d’exploitation :
- installation de système d’exploitation
- lancement de commandes parallèles
- copie de fichiers/systèmes de fichiers
- outils de monitoring
Installation des machines d’une grappe de PC de grande taille
Installation un système de fichiers de grande taille :– Sur un grand nombre de machines– Dans un temps relativement court– Avec un minimum d ’interventions humaines
Ajuster quelques paramètres systèmes
Variantes/usages
dédié à un OS , matériels hétérogènes,
système double boot
Passage à l’échelle
Intégré à un environnement
de programmation
Grappes, salles
d’enseignement, intranet,
grilles de grappes
Produits : Kickstart, SIS, SCE, FAI, Ghost, Patagonia clonesys
Diffusion d’un OS
Problématique :
Très grande quantité de données (ordre du Go), seul le débit de la méthode importe sauf à vouloir aussi minimiser le traffic réseau
Solutions techniques :• Multicast • Arbres couvrants• Pipelines
Topologies de diffusion
chaîne arbre binaire
arbre binomial
multicast : fiabilisation (?)
séquentiel
Installation en chaîne : Ka-deploy (Simon Derr 2001)
• Les clients demandent à la machine source (le serveur) l’adresse IP de la fin de la chaîne et s ’y connectent
Serveur
ContrôleDonnées
Client 1 Client 2 Client 3
Disque
Disque
Disque
Récupération des données
• Quand la chaîne est formée, le serveur envoie les données à travers la chaîne
• Chacun des clients lit les données en provenance de la chaîne, les écrit sur son disque et les envoie au reste de la chaîne
Client 1 Client 2 Client 3
DisqueServeur
Plate-forme d’évaluation : I-cluster
225 HP e-PC PIII 733 Mhz
385ème au Top500
Performances
• Multicast : 4 Mo/s vers 100 nœuds se dégrade ensuite
• Par étapes, arbre binomial : Un peu plus lent pour le nombre de machines concerné (6 à 8 étapes nécessaires)
• Arbre sans étapes : débit ~= 10Mo/s (en théorie débit optimal). L’installation de 200 machines prends une vingtaine de minutes.
Problèmes
• Synchronisation : l ’écriture de petits fichiers (lente) vers la fin de la chaîne semble ralentir l ’écriture de gros fichiers (rapide) sur les premières machines de la chaîne
• Prise en compte de la topologie du réseau dans la construction de la chaîne– Trie les machines par adresse IP– Doit tenir compte d’informations plus sûres
Extensions
• Déployer Windows : utilisation de dd au lieu de tar pour les copies
• Extension à la gestion d’un Intranet• Bibliothèque d’algorithmes• Tolérance aux pannes, intrusion• Extension aux grilles
Extension à l’installation d’une grappe sur Intranet
• Préserver les données du propriétaire de la machine
• Éventuellement installer un second système• Savoir basculer la machine dans un état
particulier (utiliser un « screensaver », rebooter en mode cluster)
Reboot des machines dans un mode donné
– Par le réseau : • protocole PXE sur la carte réseau, permet de
configurer certains paramètres (DHCP) et de télécharger un programme d’amorçage
• L’opération que la machine doit réaliser au boot (étapes d’installation, démarrage en Windows ou linux, …) est décrite dans un fichier d’état accessible par le réseau (TFTP)
– Switch pris en charge au niveau du BIOS– Chargement direct d’un noyau Linux sous
Windows
Bibliothèque de communications collectives (Cyrille Martin 2000)
• But : Lancement rapide de processus sur un grand nombre de nœuds.– Récupération de signaux, entrées/sorties– Utilisation du canal de communication crée entre les
processus pour diffuser des données
Usages
– Gestion des processus et E/S (lancement de programmes ou commandes parallèles, réseau de contrôle dans un environnement de programmation parallèle ou de monitoring)
– Déplacement des données (fichiers, opération collectives dans MPI, installation de l’OS)
– Etc
Différents principes utilisés:
• Avec démons dédiés:– Score, mpid (démons existants reliés en
anneau)– ...
• Sans démon dédié:– mpirun (demande d'exécution distante
séquentielle "rsh")– Ka-run
• appel récursif aux démons classiques (rshd, rexecd …)
• mise en pipeline du client
Optimisation du lancement
• Une étape = un appel d'exécution distante• Déroulement d'une étape dans le temps:
Demande de connexion Création ou échec de connexion
authentification
il faut minimiser le nombre d'étapesarbre binomial
et faire plus en une étape réaliser les appels d’exécution distante de manière
asynchrone
Optimisation du lancement (2)
2
1
3
4
Temps
arbreséquentiel pipeline
Lancement
Diffusion de données (1)
Diffusion de données (2)
Diffusion de données (3)
- utilisation de NFS- copie des données sur les nœuds avant le
lancement de l’application (Ka-deploy)- Une évaluation de PVFS « négative »- Accès à de grands volumes de données avec
un forwarder NFS (Pierre Lombard)
Conclusion et perspectives
•Exploitation très souple d’une grappe (installation, upgrade, passage en Windows 2000)
•Des commandes parallèles performantes
•Exploitation d’un intranet
•Déploiement adaptatif dans un environnement grille
•Utilisation dans un environnement de programmation parallèle
•Intégration à une distribution Mandrake pour cluster
Monitoring système
- Deux problèmes difficiles liés au passage à l’échelle :- Limiter l’intrusion de la prise de mesure :
- Collecte locale (performance co-pilot)- Collecte réseau (Ka-run)
- Accéder à l’information pertinente :- Outil de visualisation interactif (Pajé)
- Un problème lié à la ré-utilisabilité des logiciels :- Standardisation du format des données
Pajé (Benhur Stein 1999)
<VTHD_grid> <icluster> <switch> <node> <processor> <kernel.all.cpu.user date="date">value</kernel.all.cpu.user> <kernel.all.cpu.idle date="date">value</kernel.all.cpu.idle> <kernel.all.cpu.sys date="date">value</kernel.all.cpu.sys> <network.out.bytes date="date">value</network.out.bytes> <mem.freemem date="date">value</mem.freemem> </processor> </node> </switch> </icluster></VTHD_grid>
Généricité (informations applicatives, systèmes, mixage de plusieurs traces) : XML-like
PajéScalabilité (filtres interactifs) : accéder à l’information pertinente
Plan
• Objectifs de Ka• Déploiement du système d’exploitation• Gestion de processus• Système de fichiers• Monitoring• Conclusion
Background
Modèles de performances
Opérations de communications collectives
Environnements de programmation parallèle
Utilisation de logiciels standards (MPI, Posix, NFS, rsh)
Ingénierie des OS
Utilisation des plateformes parallèles:
• Utilisation standard :– Réservation et allocation d’une partie de la plate-
forme– Environnement de programmation parallèle
• Une image de système pas si unique :– Gestion des processus– Distribution des données : copies, systèmes de
fichiers– Monitoring de la plate-forme
Questions