Outils dexploitation dune grappe de grande taille Philippe Augerat ID-IMAG Apache-INRIA JTE cluster...

Preview:

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

Recommended