SAFC est un nouveau framework d’ordonnancement des conteneurs dans le cloud basé sur un modèle économique. La nouveauté de SAFC est qu’il permet de décider automatiquement quel est le nombre de ressources allouées pour chaque conteneur.
2. Reproduction interdite sans autorisation préalable d’Umanis
14 Juin 2019
Introduction
SAFC : Système d’ordonnancement de
conteneurs
Expériences
Conclusion et Perspectives
SAFC: Scheduling and
Allocation Framework for
Containers in a Cloud
Environment
Tarek MENOUER
OPEN SOURCE INNOVATION SPRING
2019
Paris
Sommaire
Tarek MENOUER2 www.umanis.com
4. Reproduction interdite sans autorisation préalable d’UmanisTarek MENOUER4
Introduction
Cloud Computing
• Cloud Computing offre aux clients des ressources distribuées, virtualisées et
élastiques
• Différentes formes de ressources de calcul existent : VMs, conteneurs, Bare-metal, …
• La technologie des conteneurs est largement utilisée par les entreprises
• Le temps de lancement et de terminaison d’un conteneur est très rapide par
rapport à une VM
• Plusieurs systèmes d’ordonnancement de conteneurs existent :
• Docker Swarmkit, Kubernetes, MESOS, …
www.umanis.com
5. Reproduction interdite sans autorisation préalable d’UmanisTarek MENOUER5
Introduction
Problème avec les systèmes d'ordonnancement traditionnels
• Destinés aux utilisateurs (clients) connaissaient le nombre de ressources exact
qu’il faut pour exécuter un conteneur
• Le nombre de ressources allouées pour chaque conteneur est fixé
statiquement par le client.
Solutions
• Un nouveau framework d’ordonnancement de conteneurs (SAFC: Scheduling
and Allocation Framework for Containers)
• Calcul dynamique du nombre de ressources allouées pour chaque
conteneur.
• Modèle économique basé sur des classes SLA.
www.umanis.com
6. Reproduction interdite sans autorisation préalable d’UmanisTarek MENOUER6
SAFC: Scheduling and Allocation Framework for Containers
www.umanis.com
7. Reproduction interdite sans autorisation préalable d’UmanisTarek MENOUER7
SAFC: Scheduling and Allocation Framework for Containers
Objectif
• Répondre aux besoins d’une entreprise qui a une infrastructure privée et qui veut
optimiser l’ordonnancement de plusieurs conteneurs soumis en ligne par les clients.
• Modèle économique afin de calculer le cout d’exécution et le nombre de
ressources pour chaque conteneur;
• Maximiser le nombre de conteneurs exécutés;
• Minimiser l’utilisation des cœurs de calcul ;
www.umanis.com
9. Reproduction interdite sans autorisation préalable d’UmanisTarek MENOUER9
Modèle économique
Modèle économique
• Le modèle économique est basé sur 2 classes SLAs (Service Level Agreement) et 3
services (haut, moyen et faible) pour chaque classe SLA :
• Classe SLA Qualitative: temps d’attente d’un conteneur soumis par un client
• Service Premium: Exécuter le conteneur le plus tôt possible.
• Service Advanced: Exécuter le conteneur avec un temps d’attente raisonnable.
• Service Best effort: Exécuter le conteneur sans contrainte du temps.
• Classe SLA Quantitative: Nombre de cœurs de calcul qui doit être réservés.
• Service Premium: Exécuter le conteneur avec le plus grand nombre de cœurs.
• Service Advanced: Exécuter le conteneur avec un nombre de cœurs moyen.
• Service Best effort: Exécuter le conteneur avec un petit nombre de cœurs.
www.umanis.com
10. Reproduction interdite sans autorisation préalable d’UmanisTarek MENOUER10
Principe général
Étapes de traitement
• Étape 1: Ordonnancement des conteneurs
• Choisir le conteneur 𝑐𝑖:
• Le plus haut service au niveau de la classe qualitative;
• Le plus ancien (temps d’attente le plus long)
• Étape 2: Calcul de ressources
• Décider dynamiquement le nombre de cœurs (𝑥𝑖) affectés pour exécuter le
conteneur 𝑐𝑖.
• Étape 3: Affectation d’un conteneur
• Choisir le nœud qui exécute le conteneur 𝑐𝑖 avec 𝑥𝑖 coeurs de calcul.
www.umanis.com
11. Reproduction interdite sans autorisation préalable d’UmanisTarek MENOUER11
Étape 2: Calcul de ressources
Bornes Hard et Soft
• Fixer des bornes Hard et Soft pour chaque service
• N’exécute pas un conteneur avec un faible service dans la classe quantitative en
utilisant plus de cœurs qu’un conteneur avec un haut service.
• Bornes Hard sont fixées suivant la configuration du nœud le plus petit dans
l’infrastructure.
• Bornes Soft sont fixées suivant la charge des nœuds qui forme l’infrastructure.
www.umanis.com
12. Reproduction interdite sans autorisation préalable d’UmanisTarek MENOUER12
Étape 2: Calcul de ressources
Bornes Hard
• K: le nombre de cœurs du nœud le plus petit.
• Chaque service dans la classe quantitative à un
Hard min et Hard max cœurs :
• Service Best effort : Hard min = 1 et Hard max
=
𝐾
3
;
• Service Advanced : Hard min = Hard max de
service Best effort service +1 et Hard max = 2
×
𝐾
3
;
• Service Premium : Hard min = Hard max de
service Advanced +1 et Hard max= K.
www.umanis.com
K = le nombre de cœurs du nœud le plus petit Un
conteneur est exécuté sur un seul nœud
13. Reproduction interdite sans autorisation préalable d’UmanisTarek MENOUER13
Étape 2: Calcul de ressources
Bornes Soft
• D = Hard Max cœurs - Hard Min cœurs +1
• Si la charge des nœuds entre 0% et 33% :
• Soft Min cœurs = Hard Min cœurs + 2 ×
𝐷
3
et
Soft Max cœurs = Hard Max cœurs;
www.umanis.com
14. Reproduction interdite sans autorisation préalable d’UmanisTarek MENOUER14
Étape 2: Calcul de ressources
Bornes Soft
• D = Hard Max cœurs - Hard Min cœurs +1
• Si la charge des nœuds entre 0% et 33% :
• Soft Min cœurs = Hard Min cœurs + 2 ×
𝐷
3
et
Soft Max cœurs = Hard Max cœurs;
• Si la charge des nœuds entre 34% et 66% :
• Soft Min cœurs = Hard Min cœurs +
𝐷
3
et Soft
Max cœurs = Hard Min cœurs + 2 ×
𝐷
3
-1;
www.umanis.com
15. Reproduction interdite sans autorisation préalable d’UmanisTarek MENOUER15
Étape 2: Calcul de ressources
Bornes Soft
• D = Hard Max cœurs - Hard Min cœurs +1
• Si la charge des nœuds entre 0% et 33% :
• Soft Min cœurs = Hard Min cœurs + 2 ×
𝐷
3
et
Soft Max cœurs = Hard Max cœurs;
• Si la charge des nœuds entre 34% et 66% :
• Soft Min cœurs = Hard Min cœurs +
𝐷
3
et Soft
Max cœurs = Hard Min cœurs + 2 ×
𝐷
3
-1;
• Si la charge est supérieure à 66% :
• Soft Min cœurs = Hard Min cœurs et Soft Max
cœurs = Hard Min cœurs +
𝐷
3
-1.
www.umanis.com
16. Reproduction interdite sans autorisation préalable d’UmanisTarek MENOUER16
Étape 2: Calcul de ressources
Calcul de nombre de cœurs
• 𝑥𝑖= nombre de cœurs calculé pour le conteneur 𝑐𝑖.
• C={𝑐1, · · · , 𝑐 𝑛} (ensemble des conteneurs sauvegardé dans la file).
• P= {𝑝1, · · · , 𝑝 𝑛} (priorités dans la classe quantitative qui représente le nombre
de ressources)
• T = nombre de cœurs disponibles dans tous les nœuds de l’infrastructure
• 𝑥𝑖=
• If 𝑥𝑖 > Soft Max cœurs, 𝑥𝑖 = Soft Max cœurs
• If 𝑥𝑖 < Soft Min cœurs, 𝑥𝑖 = Soft Min cœurs
www.umanis.com
Soft 𝑚𝑖𝑛𝑖 +
π ∗ 𝑝 𝑖 ∗(𝑇 −σ 𝑗=0
𝑛
𝑆𝑜𝑓𝑡 min 𝑗)
σ 𝑗=0
𝑛 𝑝 𝑗
π=൝
1 𝑖𝑓 𝑇 − σ 𝑗=0
𝑛
𝑆𝑜𝑓𝑡 min 𝑗 > 0
0 𝑒𝑙𝑠𝑒
17. Reproduction interdite sans autorisation préalable d’UmanisTarek MENOUER17
Étape 3: Affectation de conteneur
Choix de nœud
• Affecter le conteneur 𝑐𝑖 au nœud choisit en appliquant la stratégie Bin
packing:
• Affecter le conteneur 𝑐𝑖 au nœud 𝑛𝑗 qui a le plus petit nombre de
ressources disponibles.
• Réduire le nombre de nœuds actifs minimiser la consommation
énergétique.
www.umanis.com
19. Reproduction interdite sans autorisation préalable d’Umanis
•Environnement de test
• Expériences réalisées dans le cloud Grid5000 avec Linux Container (LXC)
• Plateforme composée de :
• 32 nœuds (Intel Xeon CPU)
• 32 CPUs et 128 GB de RAM
•Protocole d’exécution
• Tous les conteneurs sont soumis par 3 clients :
• Client 1: Service Premium dans les 2 classes SLA
• Client 2: Service Advanced dans les 2 classes SLA
• Client 3: Service Best effort dans les 2 classes SLA
• Temps d’exécution de chaque conteneur (𝑐𝑖) égale à
24 𝑚𝑖𝑛𝑢𝑡𝑒𝑠
𝑃 ∗ 0.8
(P = nombre
de cœurs calculé pour 𝑐𝑖).
Tarek MENOUER19
Protocole
www.umanis.com
20. Reproduction interdite sans autorisation préalable d’UmanisTarek MENOUER20
Expériences
www.umanis.com
Soumission de 150 conteneurs
LXC en même temps
Soumission de 150 conteneurs
LXC en lige avec une fréquence fixe
21. Reproduction interdite sans autorisation préalable d’UmanisTarek MENOUER21
Expériences
www.umanis.com
Soumission de 150 conteneurs
LXC suivant les traces Google
Soumission de 150 conteneurs
LXC suivant les traces Prezi
22. Reproduction interdite sans autorisation préalable d’UmanisTarek MENOUER22
Expériences
Type de
soumission
Méthode de
calcul
Temps de
calcul (s)
Nombre de cœurs moyen
Client 1 Client 2 Client 3
En même temps Min cœurs 3810,09 22 11 1
Max cœurs 1990,05 32 21 10
Dynamique 2075,06 28 18 10
En ligne Min cœurs 4730 22 11 1
Max cœurs 2040,05 32 21 10
Dynamique 2100,06 30 19 9
Suivant les traces
de Google
Min cœurs 2315,05 22 11 -
Max cœurs 1850,04 32 21 -
Dynamique 1875,04 29 18 -
Suivant les traces
de
Prezi
Min cœurs 4815,13 22 11 1
Max cœurs 2270,06 32 21 10
Dynamique 2380,06 29 17 9
www.umanis.com
Notre méthode est 3% plus lente que la méthode max cœurs par contre consomme 10% mois de cœurs par
rapport à max cœurs
23. Reproduction interdite sans autorisation préalable d’Umanis
•Conclusion
• Un nouveau framework d’ordonnancement et d’allocation de conteneurs.
• Modèle économique avec 2 classes SLA qualitative et quantitative.
• 3 services pour chaque classe SLA.
• Calcul automatique du nombre de cœurs alloués pour chaque conteneur.
• Notre framework a fait l’objet d’une publication internationale dans la conférence
International Conference on High Performance Computing & Simulation (HPCS),
Dublin, Ireland, 2019.
•Perspectives
• Utiliser un algorithme d’apprentissage pour adapter les bornes soft suivant la
fréquence de soumission des conteneurs.
• Proposer un mécanisme de consolidation pour adapter le nombre de nœuds actifs
afin de réduire la consommation énergétique.
Tarek MENOUER23
Conclusion & Perspectives
www.umanis.com
24. Reproduction interdite sans autorisation préalable d’Umanis
Temps des questions!
Tarek MENOUER24 www.umanis.com