Émulation des systèmes pair-à-pair
Transcription
Émulation des systèmes pair-à-pair
Introduction Outils pour l’émulation Présentation Évaluation Conclusion et perspectives Émulation des systèmes pair-à-pair Lucas Nussbaum sous la direction de Olivier Richard Laboratoire Informatique et Distribution Équipe Mescal Juin 2005 Lucas Nussbaum Émulation des systèmes pair-à-pair 1 / 41 Introduction Outils pour l’émulation Présentation Évaluation Conclusion et perspectives Sommaire 1 Introduction et Problématique 2 Outils pour l’émulation 3 P2PLab : présentation 4 P2PLab : évaluation 5 Conclusion et perspectives Lucas Nussbaum Émulation des systèmes pair-à-pair 2 / 41 Introduction Outils pour l’émulation Présentation Évaluation Conclusion et perspectives Problématique générale Systèmes pair-à-pair Étude des systèmes P2P Sommaire 1 Introduction et Problématique Problématique générale Systèmes pair-à-pair Étude des systèmes P2P 2 Outils pour l’émulation 3 P2PLab : présentation 4 P2PLab : évaluation 5 Conclusion et perspectives Lucas Nussbaum Émulation des systèmes pair-à-pair 3 / 41 Introduction Outils pour l’émulation Présentation Évaluation Conclusion et perspectives Problématique générale Systèmes pair-à-pair Étude des systèmes P2P Problématique générale Évolution d’Internet De plus en plus de machines connectées à Internet Qui disposent de ressources inutilisées la plupart du temps : Puissance de calcul Connectivité Stockage Objectif : utiliser ces ressources disponibles avec une nouvelle classe d’applications : les systèmes pair-à-pair Lucas Nussbaum Émulation des systèmes pair-à-pair 4 / 41 Introduction Outils pour l’émulation Présentation Évaluation Conclusion et perspectives Problématique générale Systèmes pair-à-pair Étude des systèmes P2P Systèmes pair-à-pair (P2P) (Tentative de) Définition Systèmes exploitant les ressources disponibles sur les terminaux des utilisateurs d’Internet Des utilisations diverses Desktop computing : Seti@home, Décrypthon Échange de fichiers : Napster, Freenet, BitTorrent Autres : Diffusion de radio sur Internet : PeerCast Voix sur IP : Skype Lucas Nussbaum Émulation des systèmes pair-à-pair 5 / 41 Introduction Outils pour l’émulation Présentation Évaluation Conclusion et perspectives Problématique générale Systèmes pair-à-pair Étude des systèmes P2P Étude des systèmes pair-à-pair Caractéristiques Hétérogènes Non-persistance des noeuds Difficilement contrôlables Conséquence ⇒ Étude très difficile Lucas Nussbaum Émulation des systèmes pair-à-pair 6 / 41 Introduction Outils pour l’émulation Présentation Évaluation Conclusion et perspectives Problématique générale Systèmes pair-à-pair Étude des systèmes P2P Étude des systèmes P2P log(coût) Vrais systèmes Vraies applications Plateformes de laboratoire Conditions synthétiques Vrais systèmes Vraies applications Vraies plateformes Vraies conditions Modélisation des : Systèmes Applications Plateformes Mécanismes clés des systèmes (Algorithmes...) Conditions Plateformes virtuelles Conditions synthétiques log(réalisme) Modélisation mathématique Simulation Émulation Lucas Nussbaum Systèmes réels Émulation des systèmes pair-à-pair 7 / 41 Introduction Outils pour l’émulation Présentation Évaluation Conclusion et perspectives Introduction Émulation de l’OS Émulation du réseau Particularités des systèmes P2P Synthèse Sommaire 1 Introduction et Problématique 2 Outils pour l’émulation Introduction Émulation du système d’exploitation Émulation du réseau Particularités de l’émulation des systèmes pair-à-pair Synthèse 3 P2PLab : présentation 4 P2PLab : évaluation 5 Conclusion et perspectives Lucas Nussbaum Émulation des systèmes pair-à-pair 8 / 41 Introduction Outils pour l’émulation Présentation Évaluation Conclusion et perspectives Introduction Émulation de l’OS Émulation du réseau Particularités des systèmes P2P Synthèse Émulation : introduction machine physique 1 machine physique 2 Réseau émulé machine physique 3 machine physique 4 Virtualisation des noeuds Lucas Nussbaum Émulation des systèmes pair-à-pair 9 / 41 Introduction Outils pour l’émulation Présentation Évaluation Conclusion et perspectives Introduction Émulation de l’OS Émulation du réseau Particularités des systèmes P2P Synthèse Émulation du système d’exploitation Objectif Virtualiser : exécuter plusieurs instances de systèmes d’exploitation sur la même machine physique Outils User Mode Linux, VServer, Xen Exemple : Xen Logiciels de controle Xen Xeno−Linux Drivers Xen User−space Linux Drivers Xen User−space FreeBSD Drivers Xen Xen Matériel Lucas Nussbaum Émulation des systèmes pair-à-pair 10 / 41 Introduction Outils pour l’émulation Présentation Évaluation Conclusion et perspectives Introduction Émulation de l’OS Émulation du réseau Particularités des systèmes P2P Synthèse Émulation du réseau : outils de bas niveau Modifier l’envoi et la réception des données sur le réseau ajout de délai et de gigue ; limitation de la bande passante ; simulation de congestion et de perte, duplication, déséquencement de paquets. Outils Simulation : Network Simulator Emulation Layer Bibliothèque de surcharge : Delayline Intégré au pare-feu du système : NIST Net (Linux 2.4), Netem (Linux 2.6), Dummynet (FreeBSD) Outils matériels Lucas Nussbaum Émulation des systèmes pair-à-pair 11 / 41 Introduction Outils pour l’émulation Présentation Évaluation Conclusion et perspectives Introduction Émulation de l’OS Émulation du réseau Particularités des systèmes P2P Synthèse Émulation de topologies réseaux Objectif Utiliser des briques de bas niveaux pour émuler des topologies réseaux complexes Exemple 1 : Emulab / Netbed - http ://www.emulab.net/ Composition de : Emulab classic : grappes dédiées simulation avec Network Simulator 2 émulation avec Dummynet noeuds distribués géographiquement (ADSL, cable, RTC) : 60 noeuds sur 30 sites Lucas Nussbaum Émulation des systèmes pair-à-pair 12 / 41 Introduction Outils pour l’émulation Présentation Évaluation Conclusion et perspectives Introduction Émulation de l’OS Émulation du réseau Particularités des systèmes P2P Synthèse Émulation de topologies réseaux Exemple 2 : Modelnet Utilisation de Dummynet pour émuler un coeur de réseau : Edge nodes switch Modelnet Core switch Lucas Nussbaum Émulation des systèmes pair-à-pair 13 / 41 Introduction Outils pour l’émulation Présentation Évaluation Conclusion et perspectives Introduction Émulation de l’OS Émulation du réseau Particularités des systèmes P2P Synthèse Particularités de l’émulation des systèmes pair-à-pair Applications peu intrusives Noeuds situés en bordure d’Internet Internet Core Edges Deux catégories d’applications pair-à-pair : limitées par le temps processeur limitées par le réseau Lucas Nussbaum Émulation des systèmes pair-à-pair 14 / 41 Introduction Outils pour l’émulation Présentation Évaluation Conclusion et perspectives Introduction Émulation de l’OS Émulation du réseau Particularités des systèmes P2P Synthèse Outils pour l’émulation : synthèse Solutions visant à maximiser le réalisme Efficacité ? Passage à l’échelle ? Émulation réseau ciblée sur le coeur du réseau. Important pour les systèmes pair-à-pair ? ⇒ Place pour un système léger, efficace, passant bien à l’échelle ? Lucas Nussbaum Émulation des systèmes pair-à-pair 15 / 41 Introduction Outils pour l’émulation Présentation Évaluation Conclusion et perspectives Présentation générale Virtualisation au niveau processus Aspects réseaux Sommaire 1 Introduction et Problématique 2 Outils pour l’émulation 3 P2PLab : présentation P2PLab : présentation générale P2PLab : virtualisation au niveau processus P2PLab : aspects réseaux 4 P2PLab : évaluation 5 Conclusion et perspectives Lucas Nussbaum Émulation des systèmes pair-à-pair 16 / 41 Introduction Outils pour l’émulation Présentation Évaluation Conclusion et perspectives Présentation générale Virtualisation au niveau processus Aspects réseaux P2PLab : présentation générale Objectif général Système d’émulation léger et efficace (bon rapport machines virtuelles/machines physiques) Pour les systèmes pair-à-pair Caractéristiques Utilise FreeBSD 5 (pour Dummynet) Virtualisation au niveau processus (virtualisation de l’identité réseau) Émulation du réseau avec Dummynet : approche décentralisée pour un meilleur passage à l’échelle Lucas Nussbaum Émulation des systèmes pair-à-pair 17 / 41 Introduction Outils pour l’émulation Présentation Évaluation Conclusion et perspectives Présentation générale Virtualisation au niveau processus Aspects réseaux P2PLab : virtualisation au niveau processus Objectif Associer une adresse IP à chaque processus, à la fois pour les clients et les serveurs Plusieurs solutions Modifier l’application Lier l’application avec une bibliothèque Modifier le noyau Utiliser ptrace() Modifier la bibliothèque C Lucas Nussbaum Émulation des systèmes pair-à-pair 18 / 41 Introduction Outils pour l’émulation Présentation Évaluation Conclusion et perspectives Présentation générale Virtualisation au niveau processus Aspects réseaux P2PLab : virtualisation au niveau processus Modification de la bibliothèque C Modification de bind(), connect() et listen() pour toujours faire un bind() sur l’adresse de $BINDIP socket() bind() sendto(), recvfrom(), sendmsg(), recvmsg() connect() listen() accept() Lucas Nussbaum Émulation des systèmes pair-à-pair 19 / 41 Introduction Outils pour l’émulation Présentation Évaluation Conclusion et perspectives Présentation générale Virtualisation au niveau processus Aspects réseaux P2PLab : virtualisation au niveau processus Modification de la bibliothèque C : résultats Fonctionne avec tout sauf les programmes compilés statiquement Surcoût négligeable (5% dans le pire cas : application ne faisant que des connexions/déconnexions) Lucas Nussbaum Émulation des systèmes pair-à-pair 20 / 41 Introduction Outils pour l’émulation Présentation Évaluation Conclusion et perspectives Présentation générale Virtualisation au niveau processus Aspects réseaux P2PLab : aspects réseaux Utilisation d’interfaces aliasées ⇒ Limite le surcoût de la virtualisation réseau 192.168.38.2 10.0.0.51 10.0.0.52 10.0.0.53 ... 10.0.0.100 eth0 Noeud 2 eth0 Noeud 1 192.168.38.1 10.0.0.1 10.0.0.2 10.0.0.3 ... 10.0.0.50 adresses des noeuds virtuels eth0 Noeud 3 192.168.38.3 10.0.0.101 10.0.0.102 10.0.0.103 ... 10.0.0.150 adresses des noeuds physiques SWITCH (...) Lucas Nussbaum Émulation des systèmes pair-à-pair 21 / 41 Introduction Outils pour l’émulation Présentation Évaluation Conclusion et perspectives Présentation générale Virtualisation au niveau processus Aspects réseaux Gestion de l’émulation réseau sur les noeuds Noeud Virtuel 3.2 Noeud Physique 1 Noeud Virtuel 3.1 Noeud Physique 3 Noeud Physique 2 Noeud Virtuel 1.1 Noeud Virtuel 2.1 Noeud Virtuel 1.2 Noeud Virtuel 2.2 Filtrage Dummynet en entrée Filtrage Dummynet en sortie Limitation du débit et ajout de latence pour chaque noeud Ajout de latence entre des groupes de noeuds Lucas Nussbaum Émulation des systèmes pair-à-pair 22 / 41 Introduction Outils pour l’émulation Présentation Évaluation Conclusion et perspectives Présentation générale Virtualisation au niveau processus Aspects réseaux Émulation de topologie réseau 400ms 10.2.0.0/16 latence : 5ms bande passante : 10 Mbps 1000 noeuds 10.1.0.0/16 100ms 10.1.2.0/24 latence : 40ms bande passante : 512 kbps/128kbps 250 noeuds 100ms 10.1.1.0/24 latence : 100ms bande passante : 56kbps/33.6kbps 250 noeuds 100ms 10.1.3.0/24 latence : 20ms bande passante : 8 Mbps/1Mbps 250 noeuds 600ms Lucas Nussbaum 1s 10.3.0.0/16 latence : 10ms bande passante : 1 Mbps 1000 noeuds Émulation des systèmes pair-à-pair 23 / 41 Introduction Outils pour l’émulation Présentation Évaluation Conclusion et perspectives Plateforme Passage à l’échelle Équité Application : BitTorrent Sommaire 1 Introduction et Problématique 2 Outils pour l’émulation 3 P2PLab : présentation 4 P2PLab : évaluation Plateforme d’expérimentation Passage à l’échelle du nombre de noeuds virtuels Équité entre processus émulés Application à l’étude de BitTorrent 5 Conclusion et perspectives Lucas Nussbaum Émulation des systèmes pair-à-pair 24 / 41 Introduction Outils pour l’émulation Présentation Évaluation Conclusion et perspectives Plateforme Passage à l’échelle Équité Application : BitTorrent Plateforme d’expérimentation 16 machines de Grid eXplorer (plateforme dédiée à l’expérimentation de 216 machines, située à Orsay, membre de Grid5000) Matériel bi-AMD Opteron 2 Ghz 2 Go de RAM réseau Gigabit Logiciel FreeBSD 5.4 pour AMD 64 2 ordonnanceurs essayés : 4BSD : ordonnanceur historique de BSD ULE : ordonnanceur moderne, encore en développement Lucas Nussbaum Émulation des systèmes pair-à-pair 25 / 41 Introduction Outils pour l’émulation Présentation Évaluation Conclusion et perspectives Plateforme Passage à l’échelle Équité Application : BitTorrent Passage à l’échelle du nombre de processus Processus utilisant peu de mémoire 900 temps total d’execution 800 700 temps (s) 600 500 400 300 200 100 0 0 500 1000 1500 nb d’instances 2000 2500 3000 Lancement simultané de processus effectuant un calcul (la mémoire n’est pas un facteur limitant) Lucas Nussbaum Émulation des systèmes pair-à-pair 26 / 41 Introduction Outils pour l’émulation Présentation Évaluation Conclusion et perspectives Plateforme Passage à l’échelle Équité Application : BitTorrent Passage à l’échelle du nombre de processus Processus utilisant beaucoup de mémoire 2500 temps total d’execution, avec min et max temps (s) 2000 1500 1000 500 0 0 10 20 30 40 50 nb d’instances 60 70 80 Lancement simultané de processus effectuant un calcul utilisant beaucoup de mémoire (50 Mo/instance) ⇒ influence importante du swap sur les résultats Lucas Nussbaum Émulation des systèmes pair-à-pair 27 / 41 Introduction Outils pour l’émulation Présentation Évaluation Conclusion et perspectives Plateforme Passage à l’échelle Équité Application : BitTorrent Passage à l’échelle du nombre de règles Dummynet 60 Sans Dummynet Avec Dummynet, sans regles Avec Dummynet et regles 50 temps (s) 40 30 20 10 0 0 500 1000 1500 nb de noeuds 2000 2500 Mesure du temps de parcours d’un anneau à jeton : émulé sur une seule machine physique nombre de règles = 2 X nombre de noeuds ⇒ Cause : sur chaque noeud, parcours linéaire des règles Lucas Nussbaum Émulation des systèmes pair-à-pair 28 / 41 Introduction Outils pour l’émulation Présentation Évaluation Conclusion et perspectives Plateforme Passage à l’échelle Équité Application : BitTorrent Équité entre processus émulés Question Niveau d’équité entre les processus d’une même machine ? Expérience Lancement d’un processus toutes les secondes S’il est seul sur la machine, chaque processus calcule pendant 12 secondes avant de terminer Mesure : temps pris par chaque processus pour terminer le calcul Lucas Nussbaum Émulation des systèmes pair-à-pair 29 / 41 Introduction Outils pour l’émulation Présentation Évaluation Conclusion et perspectives Plateforme Passage à l’échelle Équité Application : BitTorrent Équité entre processus émulés : résultats 1200 Scheduler ULE Scheduler 4BSD Linux 2.6 temps d’execution (s) 1000 800 600 400 200 0 0 10 20 30 40 50 60 numero du processus Lucas Nussbaum 70 80 Émulation des systèmes pair-à-pair 90 100 30 / 41 Introduction Outils pour l’émulation Présentation Évaluation Conclusion et perspectives Plateforme Passage à l’échelle Équité Application : BitTorrent Équité entre processus émulés : analyse Résultats Équité correcte pour Linux 2.6 et 4BSD Des problèmes pour ULE (développé pour l’interactivité et le SMP) Mais c’est insuffisant : Nécessité d’avoir un ordonnancement déterministe même avec des priorités différentes Par exemple, expérience avec deux noeuds virtuels : un processeur rapide un processeur lent Lucas Nussbaum Émulation des systèmes pair-à-pair 31 / 41 Introduction Outils pour l’émulation Présentation Évaluation Conclusion et perspectives Plateforme Passage à l’échelle Équité Application : BitTorrent Application à l’étude de BitTorrent Question Peut-on utiliser notre outil pour étudier un vrai système P2P ? BitTorrent Système pair-à-pair de diffusion de fichiers 3 entités nécessaires : un site web ⇒ récupérer un fichier .torrent (contient l’adresse du tracker ) un tracker ⇒ distribue aux clients des listes d’autres clients un ensemble de clients (peers). Appelés seeders si transfert terminé. Mécanisme de réciprocité efficace entre peers pour éviter le free riding Lucas Nussbaum Émulation des systèmes pair-à-pair 32 / 41 Introduction Outils pour l’émulation Présentation Évaluation Conclusion et perspectives Plateforme Passage à l’échelle Équité Application : BitTorrent Application à l’étude de BitTorrent 1ère expérience : validité des résultats Question Quelle est l’influence du rapport de repliement (nombre de noeuds virtuels / nombre de machines physiques) sur les résultats ? Expérience Récupération d’un fichier de 50 Mo par 160 clients démarrés toutes les 5 secondes Bande passante sur les clients : 2 Mbps (download) / 1 Mbps (upload) 160 clients répartis sur 16 machines physiques (10 clients par machine), puis 8, 5 et 4 machines Lucas Nussbaum Émulation des systèmes pair-à-pair 33 / 41 Introduction Outils pour l’émulation Présentation Évaluation Conclusion et perspectives Plateforme Passage à l’échelle Équité Application : BitTorrent Application à l’étude de BitTorrent 1ère expérience : validité des résultats 8000 quantite totale recue (Mo) 7000 6000 5000 4000 3000 2000 10 clients par machine 20 clients par machine 32 clients par machine 40 clients par machine 1000 0 0 200 400 Lucas Nussbaum 600 temps (s) 800 1000 Émulation des systèmes pair-à-pair 1200 34 / 41 Introduction Outils pour l’émulation Présentation Évaluation Conclusion et perspectives Plateforme Passage à l’échelle Équité Application : BitTorrent Application à l’étude de BitTorrent 2ème expérience : passage à l’échelle Question Notre outil permet-t-il de réaliser des expériences avec un nombre important de noeuds ? Expérience Récupération d’un fichier de 50 Mo 512 clients sur 16 machines (32 clients par machines) démarrés toutes les 2 secondes Bande passante sur les clients : 2 Mbps (download) / 1 Mbps (upload) Lucas Nussbaum Émulation des systèmes pair-à-pair 35 / 41 Introduction Outils pour l’émulation Présentation Évaluation Conclusion et perspectives Plateforme Passage à l’échelle Équité Application : BitTorrent Application à l’étude de BitTorrent 2ème expérience : passage à l’échelle - résultats donnees recues par les clients (%) 100 80 60 40 20 0 0 200 400 600 800 temps (s) Lucas Nussbaum 1000 1200 Émulation des systèmes pair-à-pair 1400 36 / 41 Introduction Outils pour l’émulation Présentation Évaluation Conclusion et perspectives Plateforme Passage à l’échelle Équité Application : BitTorrent Application à l’étude de BitTorrent Super Seeding Problème : Comment diffuser efficacement un fichier même si le seeder initial a une connexion à faible débit ? ⇒ Il faut optimiser l’utilisation de la connexion du seeder ⇒ Il faut envoyer chaque bloc une seule fois aux autres clients Super Seeding : le seeder prend l’initiative du bloc à envoyer à chaque client au lieu de laisser le client choisir aléatoirement 3ème expérience : conditions 320 noeuds répartis sur 16 machines, un seeder Clients démarrés toutes les 200 ms Bande passante : 2 Mbps / 1 Mbps Lucas Nussbaum Émulation des systèmes pair-à-pair 37 / 41 Introduction Outils pour l’émulation Présentation Évaluation Conclusion et perspectives Plateforme Passage à l’échelle Équité Application : BitTorrent Application à l’étude de BitTorrent Super Seeding : résultats 16000 quantite totale recue (Mo) 14000 12000 10000 8000 6000 BitTornado sans Super-seeding BitTornado avec Super-seeding BitTorrent 4.0 BitTornado sans SS, avec max_uploads = 1 BitTornado avec chunks de 214 octets BitTorrent 3.4 4000 2000 0 0 100 200 300 Lucas Nussbaum 400 500 temps (s) 600 700 800 Émulation des systèmes pair-à-pair 900 38 / 41 Introduction Outils pour l’émulation Présentation Évaluation Conclusion et perspectives Conclusion Perspectives Sommaire 1 Introduction et Problématique 2 Outils pour l’émulation 3 P2PLab : présentation 4 P2PLab : évaluation 5 Conclusion et perspectives Conclusion Perspectives Lucas Nussbaum Émulation des systèmes pair-à-pair 39 / 41 Introduction Outils pour l’émulation Présentation Évaluation Conclusion et perspectives Conclusion Perspectives Conclusion L’émulation : Une place entre simulation et exécution sur système réel Des résultats intéressants, même avec une approche légère Notre outil : correspond aux objectifs annoncés outil permettant d’étudier facilement des systèmes pair-à-pair peut émuler de nombreux noeuds sur chaque noeud physique émulation réseau paramétrable et passant très bien à l’échelle Lucas Nussbaum Émulation des systèmes pair-à-pair 40 / 41 Introduction Outils pour l’émulation Présentation Évaluation Conclusion et perspectives Conclusion Perspectives Perspectives Sur l’émulation : Continuer la validation de l’approche Adaptation du modèle d’émulation réseau pour prendre en compte la congestion dans le coeur d’Internet Adaptation de P2PLab pour pouvoir émuler des grilles ou d’autres systèmes de grande taille Sur les outils de base pour l’émulation : Amélioration de Netem (Linux 2.6) pour l’utiliser comme Dummynet Pare-feu avec hiérarchie de règles Ordonnanceur équitable avec priorités Sur les systèmes pair-à-pair : BitTorrent : problèmes de famine avec le mécanisme de réciprocité ? Expériences avec d’autres systèmes pair-à-pair Lucas Nussbaum Émulation des systèmes pair-à-pair 41 / 41