Le code à effacement Mojette :
Applications dans les réseaux et dans le Cloud
Soutenance de l'Habilitation à Diriger des Recherches
Benoît Parrein (Université de Nantes, IRCCyN/équipe IVC)
Mardi 16 Juin 2015, Amphi 1, Bâtiment IRESTE, Polytech Nantes
Les codes à effacement chez Facebook, c'est....
87 PB (87000 TB!) de moins à stocker [1]
730 serveurs en moins
42% de réduction de la taille de l'infrastructure
20 MW de consommation en moins pour un datacentre [2]
[1] Muralidhar, S., Lloyd, W., Roy, S., Hill, C., Lin, E., Liu, W., ... & Kumar, S. f4: Facebook’s Warm BLOB Storage System. In Proceedings of the 11th USENIX conference on Operating Systems Design and Implementation (OSDI) (pp. 383-398). USENIX Association, October, 2014.
[2] Orgerie, Anne-Cecile, Assuncao, Marcos Dias de, & Lefevre, Laurent . A survey on techniques for improving the energy efficiency of large-scale distributed systems. ACM Computing Surveys (CSUR), vol. 46,
Limitation
Application uniquement sur des données “froides”
i.e 80 lectures par seconde max
Les codes à effacement
k messages
n paquets
k paquets reçus
k messages
Encoding Encoding
Decoding
Codage
Décodage Perte
Le code à effacement Mojette
C E C I
E S T U
N E D O
N N E E
0 1 0 0 1 0 0 1 0 1 1 0 0 0 1 1
Le code à effacement Mojette
Proj(0,1) Proj(0,1)
C E C I
E S T U
N E D O
N N E E
1 0 0 0 0 1 0 0 1 0 0 1 0 1 1 0 0 0 1 1
(p,q)
Le code à effacement Mojette
Proj(0,1)
0 0
Proj(0,1)
Proj(1,1) Proj(-1,1)
C E C I
E S T U
N E D O
N N E E
1 0 0 0 0 1 0 0 1 0 0 1 0 1 1 0 0 0 1 1
Le code à effacement Mojette
Proj(0,1)
0 0 1 0
Proj(0,1)
Proj(1,1) Proj(-1,1)
C E C I
E S T U
N E D O
N N E E
1 0 0 0 0 1 0 0 1 0 0 1 0 1 1 0 0 0 1 1
Le code à effacement Mojette
Proj(0,1)
0 0 0 1 1 0
Proj(0,1)
Proj(1,1) Proj(-1,1)
C E C I
E S T U
N E D O
N N E E
1 0 0 0 0 1 0 0 1 0 0 1 0 1 1 0 0 0 1 1
Le code à effacement Mojette
Proj(0,1)
0 0 0 1 0 1 1 0
Proj(0,1)
Proj(1,1) Proj(-1,1)
C E C I
E S T U
N E D O
N N E E
1 0 0 0 0 1 0 0 1 0 0 1 0 1 1 0 0 0 1 1
Le code à effacement Mojette
Proj(0,1)
0 0 0 1 0 1 1 0 0 1 0 1 1 0
Proj(0,1)
Proj(1,1) Proj(-1,1)
C E C I
E S T U
N E D O
N N E E
1 0 0 0 0 1 0 0 1 0 0 1 0 1 1 0 0 0 1 1
Le code à effacement Mojette
0 0 1 0 0 0 0 0 0
0 1 1 0 0 0 1 0 1 1
Proj(-2,1) 0
Proj(2,1)
Élément du message Élément du code
Proj(0,1)
0 0 0 1 0 1 1 0 0 1 0 1 1 0
Proj(0,1)
Proj(1,1) Proj(-1,1)
C E C I
E S T U
N E D O
N N E E
1 0 0 0
0 1 0 0
1 0 0 1
0 1 1 0
0 0 1 1
Le code à effacement Mojette
0 0 1 0 0 0 0 0 0
0 1 1 0 0 0 1 0 1 1
Proj(-2,1) 0
Proj(2,1)
Élément du message Élément du code
Proj(0,1)
0 0 0 1 0 1 1 0 0 1 0 1 1 0
Proj(0,1)
Proj(1,1) Proj(-1,1)
C E C I
E S T U
N E D O
N N E E
1 0 0 0 0 1 0 0 1 0 0 1 0 1 1 0 0 0 1 1
Le code à effacement Mojette
0 0 1 0 0 0 0 0 0
0 1 1 0 0 0 1 0 1 1
Proj(-2,1) 0
Proj(2,1)
Élément du message Élément du code
Proj(0,1)
0 0 0 1 0 1 1 0 0 1 0 1 1 0
Proj(0,1)
Proj(1,1) Proj(-1,1)
C E C I
E S T U
N E D O
N N E E
1 0 0 0 0 1 0 0 1 0 0 1 0 1 1 0 0 0 1 1
Questions
Comment positionner le code Mojette au sein de la théorie des codes correcteurs?
Intérêt pour le stockage distribué?
Intérêt pour les réseaux mobiles et P2P?
Quelles performances?
“Ben's Time-line”
Travaux de thèse 1998
préparation HDR
2013
2015
Projet Sereadmo 2001
2006 2009
Projet
P2PWeb Projet FEC4Cloud
2015 2004 : recrutement MCF
Projet MatchSlide Projet
C2M 2001
2002 2004 2010
“Ben's Time-line”
Travaux de thèse 1998
préparation HDR
2013
2015
Projet Sereadmo 2001
2006 2009
Projet
P2PWeb Projet FEC4Cloud
2015 2004 : recrutement MCF
Projet MatchSlide Projet
C2M 2001
2002 2004 2010
Plan de la soutenance
Partie 1 : Le code à effacement Mojette
– Définitions
– Performances
Partie 2 : Applications dans les réseaux auto-organisés
– Les réseaux ad hoc (le projet SEREADMO)
– Les réseaux P2P (le projet P2PWeb)
Partie 3 : Le stockage distribué (le projet FEC4Cloud)
– Le système de fichier distribué RozoFS
– Comparaison avec Ceph sur Grid5000 Conclusions :
– Conclusions et perspectives
– Résumé des encadrements
Partie 1 : Le code Mojette
Les codes à effacement (MDS)
MDS : Maximum Distance Separable
k messages
n paquets
k paquets reçus
k messages
Encoding Encoding
Decoding
Codage
Décodage Perte
Les codes Reed-Solomon (RS) (1960)
Sont des codes MDS
Usage d'une matrice génératrice G (code linéaire)
– matrice de Cauchy ou Vandermonde
c = b . G
permet d'obtenir un code systématique G={Ik∣Pk ,n−k}
Mises en œuvre des codes RS
Reed-Solomon (matrice de Cauchy [Byers, 1995])
Reed-Solomon (matrice de Vandermonde [Rizzo, 1998], RFC5510) ...
[stockage] Cauchy “Good” [Planck, 2008] in Jerasure 1.2 [stockage] Intel ISA-L par matrices de Vandermonde
(inclus instructions SSE)
Le code à effacement Mojette
basé sur la transformation Mojette [Guédon, 1995]
– Calcul d'un ensemble de projections 1D à partir d'un support 2D
Proj(0,1)
0 0 0 1 0 1 1 0 0 1 0 1 1 0
Proj(0,1)
Proj(1,1) Proj(-1,1)
C E C I
E S T U
N E D O
N N E E
1 0 0 0
0 1 0 0
1 0 0 1
0 1 1 0
0 0 1 1
Proj(0,1)
0 0 0 1 0 1 1 0 0 1 0 1 1 0
Proj(0,1)
Proj(1,1) Proj(-1,1)
C E C I
E S T U
N E D O
N N E E
1 0 0 0 0 1 0 0 1 0 0 1 0 1 1 0 0 0 1 1
Le code à effacement Mojette systématique
Exemple du code Mojette systématique (7,4) Brevet [David et al., 2013]
C E C I
E S T U
N E D O
N N E E
0 1 0 0 1 0 0 1 0 1 1 0 0 0 1 1
Conditions de reconstruction
Critère de Myron Katz [Katz, 1978]
∑
i N|pi|⩾P ou
∑
i N
|qi|⩾Q
Q
Conditions de reconstruction
Critère de Myron Katz [Katz, 1978]
Support de K lignes reconstructibles par K projections [Parrein, 2001]
Conditions de reconstruction
Critère de Myron Katz [Katz, 1978]
Support de K lignes reconstructibles par K projections [Parrein, 2001]
– usage d'angles Mojette de type (p, 1)
– chaque projection est équivalente pour la reconstruction
– N - K projections redondantes
Décodage
Définition des chemins de reconstruction [Normand et al., 2006]
(une projection reconstruit une ligne, de la gauche vers droite)
Example on a 4 lines geometrical buffer with 4 projections
+réduction du nombre d'écritures [Féron et al., 2014] (brevet Rozo Systems)
Propriété du code Mojette
Code déterministe
Code à effacement de type (1+є) MDS
Forme non systématique (par défaut) et systématique Reconstruction asynchrone
Pas de contrainte de primalité Complexité linéaire [O(IN)]
30
Performances (codage)
8192 4096
0 500 1000 1500 2000 2500 3000 3500 4000 4500
5000 4723
2621 2560
1152 Coding (k=4,m=6) [email protected]
ISA-L d 4+2 coding +memcpy Mojette RozoFS 4+2 coding
blocksize (Bytes)
CPU Cycles
Performances (codage)
8192 4096
0 500 1000 1500 2000 2500 3000 3500 4000 4500
5000 4723
2621 2560
1152 Coding (k=4,m=6) [email protected]
ISA-L d 4+2 coding +memcpy Mojette RozoFS 4+2 coding
blocksize (Bytes)
CPU Cycles
Débit = 6,40 GB/s
32
Performances (décodage)
8192 4096
0 500 1000 1500 2000 2500 3000 3500 4000 4500
5000 4710
2496
1536
832 768
542 Decoding (m=4,k=6) [email protected]
ISA-L d 4+2 decoding +memcpy Mojette RozoFS 4+2 decoding memcpy
Blocksize (Bytes)
CPU cycles
Débit = 9,60 GB/s Ccl : le code Mojette est 3 fois plus rapide que la librarie ISA-L
Plan de la soutenance
Partie 1 : Le code à effacement Mojette
– Généralité sur les codes
– Le code Mojette
– Performances
Partie 2 : Applications dans les réseaux auto-organisés
– Les réseaux ad hoc (le projet SEREADMO)
– Les réseaux P2P (le projet P2PWeb)
Partie 3 : Le stockage distribué (le projet FEC4Cloud)
– Le système de fichier distribué RozoFS
– Comparaison avec Ceph sur Grid5000 Conclusions
– Conclusions et perspectives
Partie 2 : Applications dans les réseaux auto-organisés de type ad hoc et P2P
Mobile Ad hoc NETworks (MANET)
A
B
Problèmes
Le routage
La qualité de service La sécurité
MP-OLSR
basé sur OLSR (RFC3626)
2006-2009 : le projet SEREADMO
Projet collaboratif RNRT :
– Thales (resp.), Université de Poitiers/IRCOM-SIC, IRCCyN, Keosys
Objectif : Sécurisation des réseaux ad hoc par la transformation Mojette
RNRT 2005
2006-2009 : le projet SEREADMO
Principaux résultats :
– Définition du protocole MP-OLSR (IETF ID, Manet WG document)
– Simulation (réaliste)/expérimentation des protocoles MP-OLSR et OLSR
– Validation dans le cadre de transfert vidéo graduable
(H.264/SVC) protégée de manière inégale par un code Mojette
Expérimentation MP-OLSR
Les réseaux P2P
Sont des réseaux auto-organisés
Agissent au niveau de la couche application (couche 7) Système distribué très large échelle
Applications dans le stockage et la diffusion live Alternative au modèle centralisé client/serveur
2010-2012: le projet P2PWeb
Projet collaboratif (Région PdL) : TMG (resp.), LINA, IRCCyN
Objectifs :
– delester le modèle centralisé Client/Serveur (C/S) par un modèle distribué (et auto-organisé) pair-à-pair (P2P)
– proposer une architecture hybride C/S et P2P
– inclure des codes à effacement (reste à faire!)
Le protocole P2PWeb
Validation du protocole P2PWeb
Plan de la soutenance
Partie 1 : Le code à effacement Mojette
– Généralité sur les codes
– Le code Mojette
– Performances
Partie 2 : Applications dans les réseaux auto-organisés
– Les réseaux ad hoc (le projet SEREADMO)
– Les réseaux P2P (le projet P2PWeb)
Partie 3 : Le stockage distribué (le projet FEC4Cloud)
– Le système de fichier distribué RozoFS
– Comparaison avec Ceph sur Grid5000 Conclusions
– Conclusions et perspectives
Partie 3 : Le stockage distribué haute disponibilité et tolérant aux pannes
2001: Internet Distributed Image Information System
GUÉDON, J.; PARREIN, B. & NORMAND, N. : Internet Distributed Image Information System. In: Integrated Computer-Aided Engineering, 8 (2001), Nr. 3, p. 205-214
Haute disponibilité signifie...
accessible à 99,999999....%
de la réplication le plus souvent...
une infrastructure capable de supporter la charge une haute consommation énergétique
...et des problèmes de droit à la vie privée
– les codes à effacement réduisent fortement la taille de l'infrastructure pour un même taux de
disponibilité
Distributed File Systems (DFS)
HDFS (Hadoop)
Facebook file system (f4) Scality (basé sur Chord) CephFS, GlusterFS, ...
...
– aucun DFS n'utilise aujourd'hui des codes pour des données soumises à des I/O
intensives
I/O Centric Distributed File System (DFS)
– Software Defined Storage (SDS)
– Scale-Out NAS
– compatible POSIX
– pas de contrainte matérielle
– tolérant aux pannes (jusqu'à 4 pannes)
– code à effacement Mojette (sur blocs de 4Ko ou 8Ko)
– dédié données froides et chaudes
Projet Open source (licence GPL)
metadata
Rozofsmount
ClientNode
Storaged
Storage Node Metadata Server
exportd
Storaged
StorageNode
Storaged
StorageNode
Dat a path Dat
a path Control path
Mon itoring
...
Expérimentations in vivo sur GRID5K
● Cluster de Nantes (18 nœuds): Intel Xeon [email protected] GHz, 10GbE
● Layout 1 – code Mojette (6,4) vs triplication Ceph
● lecture aléatoire (blocs 4Ko) par IOZone
54
Expérimentations in vivo sur GRID5K
● Cluster de Nantes (18 nœuds): Intel Xeon [email protected] GHz, 10GbE
● Layout 1 – code Mojette (6,4) vs triplication Ceph
● écriture aléatoire (blocs 4Ko) par IOZone
Cas d'usage (validés) de RozoFS
Montage vidéo en ligne [Pertin et al., 2014]
Exécution de machines virtuelles (QEMU/KVM)
Déploiement de bases de données transactionnelles ...
Réduction de l'espace de stockage
Capacité de stockage pour 10 Go utile
Réduction de l'espace de stockage
Capacité de stockage pour 10 Go utile
Réduction d'un facteur 2 de l'espace de stockage
Le projet FEC4Cloud
ANR 2012 (appel Emergence)
Partenaires: IRCCyN (resp.), ISAE-SupAéro, SATT-OV
Objectif: valorisation et transfert Résultats:
– accompagnement de Rozo Systems à Nantes
– création de la start-up O'Fly Co à Toulouse
Conclusions
Conclusions et perspectives (1/4)
Code à effacement
– code Mojette systématique et non systématique
– inscription dans la théorie des codes (algébriques)
– hautes performances à 10GB/s Perspectives
– Évaluation performance Mojette systématique
– Système de partage de secrets à base de codes linéaires (objectif du projet Privacy4Cloud)
Conclusions et perspectives (2/4)
Stockage distribué
– 1er DFS hautes performances basé sur des codes
– émergence de la société Rozo Systems Perspectives
– Expérimentations large échelle (Grid5000)
– Comportement dans un contexte Big Data
– Décentralisation du modèle Cloud (le Fog!)
Conclusions et perspectives (3/4)
Réseaux P2P
– Protocole hybride client-serveur et P2P
– QoS/QoE pour diffusion live (voir CFIP 2015) Perspectives
– Recrutement Soufiane Rouibia en septembre!
– Couplage avec des codes à effacement
– Transport sans couture entre C/S et P2P (offre OTT de type MPEG-DASH)
Conclusions et perspectives (4/4)
Réseaux ad hoc
– Protocole de routage MP-OLSR (draft IETF)
– Couplage code MDS (tolérance aux pannes)
– Application pour la transmission vidéo
Perspectives
– Une RFC!
– Interaction avec une infrastructure (cf Internet des Objets) – Implémentations embarquées (collab. Université
Encadrements doctoraux (1/2)
Fadi Boulos
– “Trafic audiovisuel à qualité d'usage garantie : caractérisation d'erreurs, de la gêne associée et mécanismes de protection” (Directeur Patrick Lecallet)
Jiazi Yi
– “Protocole de routage à chemins multiples pour réseaux auto-organisés”
(Directeur Jeanpierre Guédon)
Eddy Cizeron
– “Routage multichemins et codage à description multiple dans les réseaux ad hoc” (Directeur Jean-François Diouris)
Dan Radu
– “Efficient communication strategies for mobile ad hoc networks”
(Directrice Adina Astilean)
Encadrements doctoraux (2/2)
Dimitri Pertin (soutenance prévue avril 2016)
– “Code à effacement par géométrie discrète pour le stockage distribué” (Directeur Nicolas Normand) CIFRE Rozo Systems
Bastien Confais (demande de financement en cours)
– “Du Cloud storage au Fog storage : transition énergétique et intérêt pour l'Internet des Objets”
Chronologie des soutenances de thèses
Travaux de thèse 1998
préparation HDR
2013
2015
Projet Sereadmo 2001
2006 2009
Projet
P2PWeb Projet FEC4Cloud
2015 2004 : recrutement MCF
Projet MatchSlide Projet
C2M 2001
2002 2004 2010
Eddy Fadi
Jiazi
Dan
Dimitri
Bastien
Chronologie des soutenances de thèses
Travaux de thèse 1998
préparation HDR
2013
2015
Projet Sereadmo 2001
2006 2009
Projet
P2PWeb Projet FEC4Cloud
2015 2004 : recrutement MCF
Projet MatchSlide Projet
C2M 2001
2002 2004 2010
Eddy Fadi
Jiazi Dimitri
Bastien
Encadrements post-doctoraux
Asmaa Hassiba Adnane
– projet Sereadmo
Majd Ghareeb
– projet P2PWeb
Alexandre van Kempen
– projet FEC4Cloud
Responsabilités collectives
Enseignant en informatique (~250H par an)
Co-responsable de l'option Réseaux-Système-Cloud (RSC) à Polytech/INFO depuis 2011
Responsable des stages de fin d'étude à Polytech/INFO entre 2008-2011 Responsable de la formation doctorale entre 2008-2012 (ED-STIM)
Membre du GT “Innovation et valorisation de la recherche” auprès du Vice- Président Valorisation et Transfert de l'Université de Nantes depuis décembre 2014
Participation à la rédaction des documents cadres du RFI Numérique et du RFI Electronique (volet Innovation) pour la région Pays de la Loire
Membre du GT Science dans le cadre de la fusion IRCCyN – LINA
Projet de création d'équipe de recherche
Stockage distribué : système de fichier distribué, Software Defined Storage, système large échelle, Cloud/Fog Computing, bilan énergétique, expérimentations in vivo
Réseaux : réseaux ad hoc, Internet des Objets, QoS, Software Defined Networks, simulations et expérimentations
Sécurité : tolérance aux pannes, résilience, droit à la vie privée, sécurité des systèmes et des réseaux, situation critique, plan de
reprise d'activité
Merci de votre attention!
Bonus
Liste publications 2010-2015 (1/2)
Liste publications 2010-2015 (2/2)
Formulation Mojette-Dirac
76
Performance du code (#cycles CPU)
encodage(6,4) décodage (6,4)
Bloc 4K
Bloc 8K
Source :
MP-OLSR+FEC
MP-OLSR+FEC
GigE infrastructure
+
Niveau clients/applications
External Network External Network
Rozofsmount
Exportd
RozoFS
Rozofsmount Storage
Rozofsmount Storage
Rozofsmount Storage
Rozofsmount Storage
RozoFS et HDFS
Résultats Pauline Folz
Encadrements Masters
20 stages master depuis 2004
(…) (1) Xiang Zhu (2008), Polytech Nantes, Master SEGE, 100%, routage ad hoc, aujourd'hui Ingénieur HP China (2) Sylvain David (2009), Polytech Nantes, Ing. Informatique, 100%, routage ad hoc et code FEC, Ingénieur R&D Fizians (3) Wissam Hamdach (2010), Polytech Nantes, Master SEGE, 100%, routage ad hoc, ingénieur Télécom à Dubaï (4) Thibaut Perret (2011), Polytech Nantes, Ing. Informatique, 100%, réseau P2P, thèse au Canada (5) Jean-Daniel Fischer (2011), Polytech Nantes, Ing. Informatique, 50%, network time protocol (NTP) and RadClock, ingénieur Bouygues Télécom (6) Giulio d’Ippolito (2011), Université Roma Tre, Master, 50%, code à effacement, Ingénieur Système en Italie (7) Dimitri Pertin (2012), Polytech Nantes, Ing.
Informatique, 50%, code à effacement, thèse CIFRE avec moi et l'entreprise Fizians (8) Nassima Bouzakaria (2012), Master Réseaux et Télécom, Université Paul Sabatier Toulouse, 50%, transport vidéo et P2P (9) Pauline Folz (2013), Université de Nantes, Master ALMA, 100 %, traitement distribué dans le Cloud, thèse CIFRE à Nantes Métropole (10) Vikram Runthla (2014), Polytech Nantes, Master international MDM, 100 %, optimisation de services sur réseaux à faible bande-passante (11) Chen Chao (2015), Polytech Nantes, Master international MDM, 50 %, Internet of Thing and Cloud infrastructure, collaboration avec Prof. Jinlong Hu, South China University of Technology (SCUT)...
P2PWeb-Live (soumission CFIP 2015)
Technologies WebRTC et HLS
Ccl : Ça marche ! avec un allégement de charge pour le serveur de contenu de 50 %
Facebook f4 cells (pour données “chaudes”) : 14 racks de 15 serveurs, 6.3K de disques (de 4TB chacun) soit 25 PB par cell (1EB = 1000PB = 1018 octets par datacentre)
[1] Muralidhar, S., Lloyd, W., Roy, S., Hill, C., Lin, E., Liu, W., ... & Kumar, S. f4: Facebook’s Warm BLOB Storage System. In Proceedings of the 11th USENIX conference on Operating Systems Design and
Stockage distribué tolérant aux pannes:
l'exemple de Facebook
Système d'information Facebook
Extrait de [1] Muralidhar, S., Lloyd, W., Roy, S., Hill, C., Lin, E., Liu, W., ... & Kumar, S. f4: Facebook’s Warm BLOB Storage System. In Proceedings of the 11th USENIX conference on Operating Systems Design and
C E C I
E S T U
N E D O
N N E E
G N C T Proj(0,1)
C H H S K S E N A M B L W I
Proj(0,1)
Proj(1,1) Proj(-1,1)
N N R I H G V Y C
C E G A G Y Q B E E
Proj(-2,1) I
Proj(2,1)
Élément de la donnée Élément du code
Le code Mojette lettre
Expérimentations in vivo sur GRID5K
Lecture séquentielle (en Mo/s)
Expérimentations in vivo sur GRID5K
Écriture séquentielle (en Mo/s)