É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

Documents pareils