Contributions à l expérimentation sur les systèmes distribués de grande taille Lucas Nussbaum Soutenance de thèse 4 décembre 2008 Lucas Nussbaum Expérimentation sur les systèmes distribués 1 / 49
Contexte scientifique : Expérimentation sur les systèmes distribués Lucas Nussbaum Expérimentation sur les systèmes distribués 2 / 49
Systèmes distribués? Définition Ensemble de nœuds indépendants, communiquant via un réseau, coopérant pour fournir un service. Systèmes pair-à-pair (DHT, diffusion de fichiers,...) Desktop computing (BOINC) Calcul à haute performances, grilles de calcul... Lucas Nussbaum Expérimentation sur les systèmes distribués 3 / 49
Systèmes distribués : propriétés recherchées Les systèmes distribués doivent : permettre le passage à l échelle supporter l hétérogénéité (nœuds, réseau) être tolérant aux pannes permettre d obtenir les performances souhaitées Exemple emblématique : les systèmes P2P Besoin de pouvoir évaluer et prédire les performances Lucas Nussbaum Expérimentation sur les systèmes distribués 4 / 49
Évaluation des performances des syst. distribués Différentes approches : Théoriques : Modélisation, approche analytique,... Expérimentales : Simulation Exécution sur plateformes réelles ou expérimentales Émulation Lucas Nussbaum Expérimentation sur les systèmes distribués 5 / 49
Simulation des systèmes distribués Basée sur un modèle, pas sur l application réelle Compromis précision du modèle / temps de simulation Permet d obtenir rapidement des résultats Lucas Nussbaum Expérimentation sur les systèmes distribués 6 / 49
Plateformes réelles ou expérimentales PlanetLab : 900 machines connectées à Internet (réseaux académiques) expériences sur protocoles et applications pour l Internet du futur Lucas Nussbaum Expérimentation sur les systèmes distribués 7 / 49
Plateformes réelles ou expérimentales Grid 5000 : 2000 nœuds dans 9 sites en France réseau d interconnexion dédié à 10 Gbps reconfigurable Lucas Nussbaum Expérimentation sur les systèmes distribués 7 / 49
Plateformes réelles ou expérimentales DSLLab : 40 machines reliées à l ADSL expériences sur le Desktop computing et les systèmes P2P Lucas Nussbaum Expérimentation sur les systèmes distribués 7 / 49
Plateformes réelles ou expérimentales Limites des plateformes réelles et expérimentales : plateformes de taille limitée représentativité des conditions expérimentales? reproductibilité des conditions expérimentales? Lucas Nussbaum Expérimentation sur les systèmes distribués 7 / 49
L émulation Une approche intermédiaire : Simulation : Plateformes d expérimentation : Émulation : Lucas Nussbaum Expérimentation sur les systèmes distribués 8 / 49
L émulation, en pratique Lucas Nussbaum Expérimentation sur les systèmes distribués 9 / 49
Expériences à grande échelle Simulation ou exécution sur plateformes réelles ou expérimentales pas toujours satisfaisantes En particulier : systèmes pair-à-pair Systèmes de très grande taille Exécutés dans des environnements peu disponibles pour les expériences Souvent difficiles à simuler Émulation : Approche intermédiaire Pourrait permettre des expériences à grande échelle sur des systèmes pair-à-pair Comment concevoir un émulateur adapté à l étude des systèmes pair-à-pair à grande échelle? Lucas Nussbaum Expérimentation sur les systèmes distribués 10 / 49
Plan 1 Contexte de travail : expérimentation sur les systèmes distribués 2 Anatomie d un émulateur de systèmes distribués 3 P2PLab : une plate-forme pour l émulation des systèmes pair-à-pair 4 Conclusion et perspectives Lucas Nussbaum Expérimentation sur les systèmes distribués 11 / 49
Anatomie d un émulateur de systèmes distribués Plusieurs composants importants : Émulation du réseau Partage/virtualisation des ressources matérielles Paramètres à prendre en compte : Passage à l échelle Compromis réalisme / coût (CPU, machines) Lucas Nussbaum Expérimentation sur les systèmes distribués 12 / 49
Émulation du réseau Objectif : Reproduire artificiellement les caractéristiques d un réseau Reproduire totalement une topologie réseau complexe? Possible [Emulab, MicroGrid] mais coûteux Reproduction simplifiée (= certaines contraintes supprimées) réseau en étoile [ewan, V-DS] simplification progressive [Modelnet : distillation] compromis réalisme / nombre de machines utilisées Lucas Nussbaum Expérimentation sur les systèmes distribués 13 / 49
Modelnet : distillation du réseau Lucas Nussbaum Expérimentation sur les systèmes distribués 14 / 49
Plan 1 Contexte de travail : expérimentation sur les systèmes distribués 2 Anatomie d un émulateur de systèmes distribués Émulation du réseau Virtualisation 3 P2PLab : une plate-forme pour l émulation des systèmes pair-à-pair Émulation du réseau Quel émulateur de liens réseaux? Virtualisation Validation expérimentale 4 Conclusion et perspectives Lucas Nussbaum Expérimentation sur les systèmes distribués 15 / 49
Émulation et passage à l échelle 2 approches : plateforme de taille suffisante (difficile!) N noeuds > 10000 partager les ressources physiques : virtualisation = partager une ressource entre plusieurs instances Lucas Nussbaum Expérimentation sur les systèmes distribués 16 / 49
Virtualisation de ressources Intuition : partager entre n instances = rendre la ressource n fois plus lente pour chaque instance Faux si : le partage n est pas équitable la ressource n est pas utilisée tout le temps (les ordonnanceurs utilisés couramment sont work-conserving) ordonnancement souhaité : work-conserving : Lucas Nussbaum Expérimentation sur les systèmes distribués 17 / 49
Virtualisation et équité : solutions 2 approches : Ignorer le problème [Emulab (récemment)] Les ressources ne sont pas utilisées en permanence leur partage n affecte pas les performances à vérifier en pratique pendant l expérience Dilatation temporelle [DieCast] la ressource devient n fois plus lente, donc on ralentit l écoulement du temps n fois pour que les conditions soient réalistes permet des conditions irréalisables autrement nécessaire d émuler toutes les ressources Lucas Nussbaum Expérimentation sur les systèmes distribués 18 / 49
Synthèse Solutions existantes peu adaptées : À l expérimentation à grande échelle Souvent : une émulation précise à petite échelle Problèmes de passage à l échelle Des systèmes pair-à-pair Émulation précise du coeur du réseau Proposition d une plateforme pour l émulation à grande échelle des systèmes pair-à-pair Lucas Nussbaum Expérimentation sur les systèmes distribués 19 / 49
Plan 1 Contexte de travail : expérimentation sur les systèmes distribués 2 Anatomie d un émulateur de systèmes distribués Émulation du réseau Virtualisation 3 P2PLab : une plate-forme pour l émulation des systèmes pair-à-pair Émulation du réseau Quel émulateur de liens réseaux? Virtualisation Validation expérimentale 4 Conclusion et perspectives Lucas Nussbaum Expérimentation sur les systèmes distribués 20 / 49
P2PLab Plateforme pour l émulation des systèmes pair-à-pair Restreint aux applications P2P centrées sur le réseau exemple : diffusion de fichiers Cette restriction permet des compromis Objectifs : Passage à l échelle : plus de 10000 nœuds Générique (pas spécifique à un intergiciel) Simplicité Lucas Nussbaum Expérimentation sur les systèmes distribués 21 / 49
P2PLab - émulation du réseau Lucas Nussbaum Expérimentation sur les systèmes distribués 22 / 49
P2PLab - émulation décentralisée Émulation sur les machines exécutant l application Pas de machines dédiés à l émulation réseau Utilisation d un émulateur déjà disponible Facteur limitant le passage à l échelle : nombre de règles dans l émulateur sur chaque machine Proposition : groupes de nœuds hiérarchiques Règles par groupe, pas par nœud Lucas Nussbaum Expérimentation sur les systèmes distribués 23 / 49
P2PLab - émulation de la congestion dans le cœur Avec nos applications cibles : Goulot d étranglement : lien utilisateur - FAI Hypothèse : la congestion dans le cœur du réseau n influence pas significativement les performances des applications P2P Dans le cœur du réseau : Uniquement émulation de la latence Pas d émulation de la bande passante Lucas Nussbaum Expérimentation sur les systèmes distribués 24 / 49
P2PLab - topologie du réseau Lucas Nussbaum Expérimentation sur les systèmes distribués 25 / 49
P2Plab - limites du modèle de topologie Dans le manuscrit : Autre modèle d émulation de topologies, permettant d émuler correctement une bande passante limitée dans des liens intérieurs (mais avec moins bon passage à l échelle) Lucas Nussbaum Expérimentation sur les systèmes distribués 26 / 49
Plan 1 Contexte de travail : expérimentation sur les systèmes distribués 2 Anatomie d un émulateur de systèmes distribués Émulation du réseau Virtualisation 3 P2PLab : une plate-forme pour l émulation des systèmes pair-à-pair Émulation du réseau Quel émulateur de liens réseaux? Virtualisation Validation expérimentale 4 Conclusion et perspectives Lucas Nussbaum Expérimentation sur les systèmes distribués 27 / 49
Quel émulateur de liens réseaux? Principe : Retarder/rejeter les paquets entrants/sortants d une machine en fonction de paramètres (débit, latence, taux de perte,...) De nombreux émulateurs réseaux disponibles et utilisés Dummynet (FreeBSD), NISTNet et TC/Netem (Linux),... Aussi utilisés dans des émulateurs de topologies Mais jamais évalués ou comparés Lequel choisir pour P2PLab? Fonctionnalités? Précision / performances? Lucas Nussbaum Expérimentation sur les systèmes distribués 28 / 49
Fonctionnalités Tous les émulateurs : émulation de latence, limitation de bande passante, pertes Traitement des paquets entrants et sortants : Dummynet : oui NISTNet : entrants seulement TC/Netem : sortants seulement* Réordonnancement, duplication, corruption : Dummynet : non NISTNet et TC/Netem : oui Lucas Nussbaum Expérimentation sur les systèmes distribués 29 / 49
Précision de l émulation Dépend de la source de temps utilisée pour programmer l envoi des paquets : Dummynet et TC/Netem : interruptions horloge du système Depuis Linux 2.6.24 pour TC/Netem : High Resolution Timers NISTNet : horloge différente Si manque de précision : paquets relâchés trop tard / trop tôt paquets relâchés en rafale non réaliste peut avoir des incidences sur les résultats : au niveau réseau, paquets rejetés par des nœuds intermédiaires au niveau applicatif, dimensionnement des tampons Lucas Nussbaum Expérimentation sur les systèmes distribués 30 / 49
Précision de l émulation - expérience Expérience : évolution de la latence au cours du temps mesurée avec des pings à une fréquence très élevée (> 10 khz) Latence paramétrée dans l émulateur : 10 ms Configuration expérimentale : 3 nœuds netgdx (2 cartes Gigabit Ethernet) Paramètres d émulation appliqués sur le routeur Lucas Nussbaum Expérimentation sur les systèmes distribués 31 / 49
Précision de l émulation - expérience De nombreuses configurations à tester : Linux < 2.6.24, différentes fréquences d horloge Linux 2.6.24 (High Resolution Timers) Linux + NISTNet FreeBSD, différentes fréquences d horloge Lucas Nussbaum Expérimentation sur les systèmes distribués 32 / 49
Précision de l émulation - résultats 35 30 Linux 2.6.22, 100 Hz Linux 2.6.22, 250 Hz Linux 2.6.22, 1000 Hz Latence mesurée (ms) 25 20 15 10 5 0 0 5 10 15 20 25 30 35 Temps (ms) La latence varie au cours du temps Augmenter la fréquence de l horloge améliore la précision Résultats similaires avec Dummynet (FreeBSD) Lucas Nussbaum Expérimentation sur les systèmes distribués 33 / 49
Précision de l émulation - résultats Latence mesurée (ms) 12 11.5 11 10.5 10 9.5 FreeBSD 7.0, 1000 Hz Linux 2.6.22, 1 khz FreeBSD 6.1, 10 khz Linux 2.6.26, 100 Hz Linux 2.6.26, NISTNet 9 0 0.5 1 1.5 2 2.5 3 Temps (ms) Meilleure précision obtenue avec FreeBSD 6.1 (10 khz), Linux 2.6.26 et NISTNet Mais attention au surcoût causé par le traitement des interruptions horloge Lucas Nussbaum Expérimentation sur les systèmes distribués 34 / 49
Limitation de bande passante NISTNet et Dummynet : simple calcul de retard TC : algorithme de qualité de service plus difficile à paramétrer 800Mbps 1Gbps 500Mbps bande passante mesurée 100Mbps 10Mbps 1Mbps 100kbps Tous corrects dans l ensemble 100kbps 1Mbps 10Mbps bande passante désirée Emulateur parfait Dummynet NistNet TC 100Mbps 500Mbps 800Mbps 1Gbps Lucas Nussbaum Expérimentation sur les systèmes distribués 35 / 49
Limitation de bande passante diff. avec la bande passante désirée (%) 110 105 100 95 90 85 80 100kbps Emulateur parfait Dummynet NistNet TC 1Mbps 10Mbps bande passante désirée 100Mbps 500Mbps 800Mbps 1Gbps Dummynet ne permet pas d émuler des débits importants Lucas Nussbaum Expérimentation sur les systèmes distribués 36 / 49
Illustration : SCP vs Rsync Transfert de 120 fichiers (total : 2.1 Mo) avec SCP et Rsync Bande passante fixée à 10 Mbps avec TC 90 80 SCP Rsync Temps de transfert (s) 70 60 50 40 30 20 10 0 0 20 40 60 80 100 Latence émulée (ms) Permettent d obtenir des résultats quantitatifs Lucas Nussbaum Expérimentation sur les systèmes distribués 37 / 49
Émulateurs de liens réseaux - synthèse 3 configurations utilisables : Linux 2.6.24 avec Netem HR timers, mais problème du filtrage en entrée Linux + NISTNet pas de filtrage en sortie, attention au surcoût FreeBSD 6 + Dummynet, avec horloge à 10 khz attention au surcoût Dans P2PLab : choix de FreeBSD 6 + Dummynet Attention : Dangereux de considérer les émulateurs comme des boîtes noires : important de vérifier la bonne implémentation des paramètres Lucas Nussbaum Expérimentation sur les systèmes distribués 38 / 49
Plan 1 Contexte de travail : expérimentation sur les systèmes distribués 2 Anatomie d un émulateur de systèmes distribués Émulation du réseau Virtualisation 3 P2PLab : une plate-forme pour l émulation des systèmes pair-à-pair Émulation du réseau Quel émulateur de liens réseaux? Virtualisation Validation expérimentale 4 Conclusion et perspectives Lucas Nussbaum Expérimentation sur les systèmes distribués 39 / 49
Virtualisation dans P2PLab Applis P2P généralement auto-contenues : Permet de virtualiser au niveau des processus Uniquement l identité réseau du processus Transparent pour l application (modification de la libc) Partage du processeur avec l ordonnanceur de FreeBSD Équité du partage validée (cf manuscrit) Pas de dilatation temporelle On considère que le partage des ressources (CPU, mémoire, disque) n affecte pas les résultats des expériences On le vérifie avant/pendant l expérience Lucas Nussbaum Expérimentation sur les systèmes distribués 40 / 49
Plan 1 Contexte de travail : expérimentation sur les systèmes distribués 2 Anatomie d un émulateur de systèmes distribués Émulation du réseau Virtualisation 3 P2PLab : une plate-forme pour l émulation des systèmes pair-à-pair Émulation du réseau Quel émulateur de liens réseaux? Virtualisation Validation expérimentale 4 Conclusion et perspectives Lucas Nussbaum Expérimentation sur les systèmes distribués 41 / 49
P2PLab - Validation expérimentale Questions : La virtualisation sans dilatation temporelle est-elle une méthode réaliste? Quel rapport de repliement (nb machines virt. / nb machines phys.) peut-on atteindre? Combien de nœuds virtuels peut-on émuler avec P2PLab? Peut-on expérimenter avec des implémentations différentes du même protocole? Réponses pas absolues : fonction de l expérience. Ici : expériences autour de BitTorrent Plateforme : GridExplorer (jusqu à 163 nœuds) Lucas Nussbaum Expérimentation sur les systèmes distribués 42 / 49
Rapport de repliement 160 nœuds 1 nœud par machine puis 10, 20, 40, 80 paramètres réseau : 2 Mbps / 128 kbps, latence 30 ms (réseau pas saturé même avec 80 nœuds par machine) qté totale reçue par les clients (Mo) 2500 2000 1500 1000 1 client / machine 500 10 clients / machine 20 clients / machine 40 clients / machine 80 clients / machine 0 0 500 1000 1500 2000 temps (s) Aucune influence visible du repliement sur ces résultats Premier facteur limitant : utilisation mémoire (swap) (nœuds avec 2 Go de RAM) Lucas Nussbaum Expérimentation sur les systèmes distribués 43 / 49
Passage à l échelle 13040 nœuds répartis sur 163 machines (80 NV / MP) 2 types de clients : 50% des clients utilisant BitTorrent (Python, client "officiel") 50% des clients utilisant CTorrent (C) Lucas Nussbaum Expérimentation sur les systèmes distribués 44 / 49
Passage à l échelle % du transfert effectué sur chaque client 100 80 60 40 20 0 0 500 1000 1500 2000 2500 3000 3500 temps (s) Obtention d une vue complète d un transfert sur 13k nœuds Lucas Nussbaum Expérimentation sur les systèmes distribués 45 / 49
Passage à l échelle nb de clients ayant terminé le transfert 7000 6000 5000 4000 3000 2000 1000 BitTorrent CTorrent 0 0 500 1000 1500 2000 2500 3000 3500 4000 4500 temps (s) Comparaison quantitative de deux implémentations différentes Lucas Nussbaum Expérimentation sur les systèmes distribués 46 / 49
Conclusion Conception et développement d un émulateur pour les systèmes pair-à-pair Approche incrémentale Émulation réseau distribuée, adaptée au domaine d étude Virtualisation au niveau processus Validation des composants de l émulateur Étude comparative des émulateurs de liens réseaux, Virtualisation Validation des caractéristiques de l émulateur Rapport de repliement, Passage à l échelle Lucas Nussbaum Expérimentation sur les systèmes distribués 47 / 49
Perspectives Amélioration de la remontée d information (sondes système) Détecter plus facilement la présence de biais Travail d ingénierie autour de P2PLab : Vers un émulateur intégré à Grid 5000? Convergence avec d autres travaux Émulateur générique pour les systèmes distribués Intégration d injecteurs de fautes, de générateurs de trafic Virtualisation légère ou lourde [V-DS] Différents modèles de topologie Réévaluer les différentes solutions : Domaine en constante évolution Lucas Nussbaum Expérimentation sur les systèmes distribués 48 / 49
Contributions à l expérimentation sur les systèmes distribués de grande taille Lucas Nussbaum Soutenance de thèse 4 décembre 2008 Lucas Nussbaum Expérimentation sur les systèmes distribués 49 / 49