Journal BtrPlace: un algorithme de placement de machines virtuelles pour IaaS

Posté par  . Licence CC By‑SA.
12
8
juil.
2016

BtrPlace est un algorithme de placement de machines virtuelles pour infrastructure IaaS développé par l'équipe de recherche Scale (I3S, Université Nice Sophia Antipolis). Il est distribué sous LGPL depuis 2013 et sa version 1.0 aura été publiée le 6 juillet 2016.

L'utilisateur interagit avec BtrPlace suivant une approche déclarative. Il décrit l'état courant de l'infrastructure et des contraintes de placement qu'il souhaite satisfaire (affinités, allocation des ressources, états, …). BtrPlace calcul alors, s'il existe, un plan de reconfigurations permettant de faire transiter l'infrastructure vers un état satisfaisant simultanément toutes les contraintes par le biais de migration, du lancement ou de l'extinction de machines virtuelles par exemple.

BtrPlace se differencie de l'existant par son extensibilité. Il est en effet possible d'étendre l'algorithme pour lui faire intégrer de nouvelles pré-occupations (sécurité, efficacité énergétique, …) et de nouvelles capacités de décisions. Cette flexibilité est permise, entre autre, par l'utilisation de la programmation par contraintes. Dans la pratique, BtrPlace repose le solveur de contraintes open-source Choco, développé par l'équipe de recherche TASC (INRIA / Laboratoire Informatique de Nantes-Atlantique).

  • # Nova

    Posté par  . Évalué à 5.

    Autant je vois l'avantage par rapport à un produit comme Ganeti, autant le bénéfice en matière d'ordonnanceur IaaS m'est plus difficile à voir. Dans OpenStack en particulier, les filtres du scheduler Nova permettent déjà de faire la même chose, y compris la consolidation et l'affinité/anti-affinité.
    Spontanément, on verrait donc un usage en standalone, mais dans un IaaS, il y a aussi la gestion des identités, des images et du réseau, et l'on revient donc naturellement vers une solution plus complète comme OpenStack.
    Peut-être que l'idéal serait d'en faire une bibliothèque ou une API exploitable par d'autres ordonnanceurs pour améliorer la finesse du placement des instances.

    • [^] # Re: Nova

      Posté par  . Évalué à 2.

      Autant je vois l'avantage par rapport à un produit comme Ganeti, autant le bénéfice en matière d'ordonnanceur IaaS m'est plus difficile à voir. Dans OpenStack en particulier, les filtres du scheduler Nova permettent déjà de faire la même chose, y compris la consolidation et l'affinité/anti-affinité. Spontanément, on verrait donc un usage en standalone, mais dans un IaaS, il y a aussi la gestion des identités, des images et du réseau, et l'on revient donc naturellement vers une solution plus complète comme OpenStack.

      Oui Nova inclue certaines des fonctionnalités de BtrPlace en terme de capacité de déductions, mais dans la pratique elles sont bien moindre. Je ne pense pas qu'il soit possible par exemple d'obtenir les reconfiguration qui sont dans la démo. Pour un aspect plus orienté optimisation globale, il faudrait à la rigueur aller voir du côté du projet Watcher qui vient d'intégrer la big tent.

      Peut-être que l'idéal serait d'en faire une bibliothèque ou une API exploitable par d'autres ordonnanceurs pour améliorer la finesse du placement des instances.
      C'est typiquement comme cela que BtrPlace est utilisé. On essaye timidement de s'insérer dans OpenStack par différents canaux, mais il faut des ressources/compétences que l'on ne peut pas s'offrir pour le moment.

      • [^] # Re: Nova

        Posté par  . Évalué à 1.

        Effectivement, l'interop avec Watcher serait une bonne chose. Je vois que le code est en Java, ça ne serait pas très joli de faire des appels Python vers une bibliothèque Java, mais on peut imaginer rendre le code RESTful et l'utiliser comme un service sous-jacent de Watcher, à la manière de Oslo avec les briques OpenStack.

        En tout cas il y a de l'idée et la démo me plaît, je vais en faire la promotion. Souvent, avec l'IaaS on mise surtout sur le placement initial vu la durée de vie très courte des instances, contrairement à la virtualisation traditionnelle. Il y a donc un besoin à combler pour ceux qui veulent de l'instance permanente et un taux de consolidation constant à la manière de VSphere, tout en conservant les bénéfices SOA et multi-tenants de l'IaaS.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.