Nouvelles de Bordeaux Description de topologie et - COOP

Transcription

Nouvelles de Bordeaux Description de topologie et - COOP
Nouvelles de Bordeaux
Description de topologie et
configuration automatique
Alexandre DENIS
Équipe-projet Runtime
INRIA Bordeaux - Sud-Ouest
Réunion COOP
11/04/2011 - Rennes
Utilisation de PMF sur
topologies réseau complexes
•
•
Salomé/PadicoTM
•
Stage en démarrage (sur accord-cadre EDF-INRIA)
•
Cible : multi-cluster, IP privées, firewalls
DIET/PadicoTM
•
Déjà tenté dans LEGO
•
Ok sur topologies simples, bugué sur topologie complexes
Devrait bénéficier de développements/stabilisation récents et de
ce qui sera fait autour de Salomé (scénario similaire)

•
Grid-TLSE/PadicoTM
•
Pourquoi pas, si on a DIET/PadicoTM
Communication schemes

Example 1 :

Two clusters connected through a WAN

MPI code coupled with CORBA
WAN
SAN
SAN
Communication schemes

Example 1 :

An MPI code on each cluster (over a SAN)

code coupling through CORBA over the WAN
CORBA
MPI
Firewall
MPI
NAT
Communication schemes

Example 3:

Computation on a cluster

Cluster protected by a firewall

Visualization on a dedicated node
CORBA
Visualization
MPI
Laptop with
dynamic IP
address
Firewall
Communication schemes

Example 2:

One MPI communicator spanning accross two clusters
Infiniband
MPI
Myrinet
Applications dynamiques
•
PadicoTM et NewMadeleine sont dynamiques
•
Connexion/déconnexion dynamiques
•
API spécifiques
•
Que veut l'application ?
MPI_Spawn/Comm_connect/Comm_accept ?
 Connexion CORBA ?
 Spécifique ?
Travaux connexes en cours

•
•
Passage à l'échelle > 500 noeuds



Graphe NewMad non-complet
Connexions en arbre
Connexions paresseuses
Topologie et configuration
•
PadicoTM nécessite une configuration des méthodes de
communication
•
Heuristique besteffort pour gérer les cas “simples”
•
Configuration manuelle pour le reste...
•
Automatisable à partir de la connaissance de la topologie
•
Sources d'informations
•
Auto-détection
•
API (Grid'5000)
•
Configuration manuelle (fichiers Adage)
•
XtreemOS ?
Description de la topologie
•
Pas de standard universel de format de description
•
•
Adage semble pas mal, mais :

Incomplet pour la topologie réseau

Incomplet pour la description des machines (p/r hwloc)

Beaucoup de superflu quand on veut seulement la topologie
PadicoTM a déjà un format interne pour les annonces de routage

•
•
Chaque API a son propre format (JSON pour Grid'5000)
Chaque format conçu pour un but différent
•
•
Incomplet pour les topologies complexes
Grande unification illusoire
Besoin de savoir convertir d'un format à un autre et gérer des
descriptions incomplètes
Description de la topologie
•
Pas de source complète d'information
•
Auto-détection
•
Tout n'est pas auto-détectable
 Il faut etre connecté sur les noeuds
API (Grid'5000)
•
Incomplet : uniquement les noeuds de calcul
 Ne contient que Grid'5000
Configuration manuelle




•
3000 lignes de XML rien que pour décrire Grid'5000...
On veut réserver la configuration manuelle aux exceptions
Besoin de fusionner des informations de diverses sources
Identification, dédoublonnage
•
Jonction entre plusieurs formats/modèles
•
Identifier de façon unique chaque ressource
•
•
Interface réseau → MAC (ou GUID)

Négocié avec hwloc

À négocier avec Adage :-)
Sous-réseau

Myrinet → MAC du mapper
Auto-détectable par API MX (non-portable, mais utilisé par OpenMPI)
Infiniband → subnet GID (GUID du SM)
−

Auto-détectable par API ibverbs
IP → préfixe+netmask+gw
−

−
•
Auto-détectable par netstat -nr (portable) ou /proc/net/route (nonportable) puis parsing
Machines

Pas d'identifiant unique
Identification des machines
•
Adresse IP, hostname : pas forcément unique
•
Plusieurs machines avec la meme IP (privée)

•
•
•
•
Plusieurs noms ou IP pour une machine
Correspondance IP ↔ hostname pas toujours évidente
•
Hostname non-résolvable, pas de DNS, /etc/hosts pas cohérent
•
DNS privé (e.g. Grid'5000)
Adresse MAC
•
Liste d'adresse MAC pour l'unicité
•
Pas réaliste en configuration manuelle
Heuristique pour recouper IP, hostname, FQDN, MAC...
•
•
Tout le monde a un 10.0.0.1 ou 192.168.0.1 dans son réseau :-)
Des fois, ça ne marche pas...
Proposition : auto-détecter un identifiant unique + description
•
Au moins pour les machines “sensibles” : passerelles
Unifier les modèles
•
•
Avoir les memes notions pour convertir et fusionner
•
Adage : node / group / network_properties associées au group
•
PadicoTM : node+host / network / bindings: node-network
•
Vraie vie : bien pire que ça :-)
Modèle unifié
•
Host / network (=group) / network_properties / bindings /
binding_property
•
Binding (interface réseau, adresse) nécessaire

•
La simple appartenance au réseau ne suffit pas
binding_property nécessaire

Restrictions, filtrage, etc. sont des propriétés locales
Description manuelle
•
Description de topologie en format Adage ou PadicoTM (XML)
•
Interface graphique pour éditer la topologie
•
Projet de Programmation de M1
•
[ démo ? ]
De la topologie à la
configuration
•
•
Générer une configuration complète à partir de la topologie
•
Stage de Florence
•
Complexe, pas scalable
Étendre le besteffort pour gérer tous les cas
•
Prendre les décisions à la volée
•
Actuellement : voisins direct (meme réseau)
•
Extension :



Gérer les cas sans connexion directe
Routage via une gw (noeud appartenant à plusieurs réseaux)
Algo à la OSPF (Dijkstra) à étudier
Conclusion et roadmap
•
Mettre ça au propre dans le D2.3 :-)
•
Finaliser le modèle de topologie
•
•
Formaliser proprement les network_properties nécessaires
•
Implémenter en format PadicoTM
•
En format Adage + conversion
•
Auto-détection + fusion des différentes sources
Configuration automatique à partir de la topologie
•
Algo à finaliser
•
Voir ce que l'on veut pour la dynamicité
•
Tout mettre ensemble, avec Salomé ou DIET...

Documents pareils