OpenStack.fr

OpenStack.fr

samedi 18 juin 2011

De Cactus à Diablo [1-4]

Où en sommes-nous, 2 mois après la sortie de la release Cactus. La nouvelle release Diablo est divisée en  4 incréments majeurs, dont le 1er (diablo-1) a été rendu disponible (trunk) depuis le début juin dernier. Il contient pour Nova 4 projets implémentés suivants :

  • Snapshots de volumes : nécessaires pour les backups de volumes, à défaut de les faire sur S3, voire avec Swift à l'aide des commandes EC2 (euca) adéquates,
    • Clones de volumes : permettant, entre autres, de créer un nouveau volume depuis un Snapshot,
    • Prise en compte du bundle OpenvSwith de XenServer en pilotant xenstore depuis le driver « vif_rules.py”.
    • KVM (paused & suspend) : permet de mettre la VM dans ces 2 états. La différence entre les 2 est que l’état « suspend » conserve le contexte de la VM sur disque et permet de reprendre ou elle a été arrêtée.
    Ceci est disponible sur les repositories suivants :
    • ppa:nova-core/trunk,
    • ppa:glance-core/trunk.

    Les Design Summit d’avril dernier ont été l’occasion de nombreux débats et de présentations de projets. Les noms de ces derniers sont, entre autres, ceux mentionnés ci-dessous. Toutes ces présentations, propositions, suggestions, etc. ne seront pas systématiquement traduites en projet (totalement, partiellement, voire progressivement) pour « diablo », voire releases suivantes. Seuls les « blueprints » de launchpad portent les projets pour Nova. Les dénominations de certains « blueprints » n’ont pas de lien avec les noms des projets proposés ci-dessous :
    • NaaS (Network as a Service) dont l'objectif est avec les projets associés donnés ci-dessous :
    • Être capable de construire et de configurer des réseaux virtuels isolés pour des instances de VM, 
    • Sécuriser les réseaux virtuels avec des pares-feux, 
    • Gestion de la configuration IP et le routage à travers les réseaux virtuels, 
    • Éviter l'enfermement dans une technologie spécifique propre à des constructeurs ou des choix technologiques.
      o   Quantum (Nicira, slides (ici)) : ensemble de services réseau couche 2-3 exposés (ex: ajout de réseaux virtuels aux projets et VM, load balancer, etc.), exposition d’API avec règles de sécurité entre interfaces, modulaire à l’aide de plugins, etc.

      Ci-dessous, une vue d’OpenStack Dashboard extraite des slides, ayant pris en compte certains de ces services réseau. Les slides sont à parcourir, car il y a des schémas intéressants pour la compréhension de la couverture fonctionnelle et technique.

      configuration réseau client

      architecture Quantum

      o   Donabe (Cisco, slides (ici)): sorte de meta services bundle ou container de ressources (compute, network, storage, …) avec pour le réseau NetContainers pouvant rassembler : Quantum, IPAM Service, VPN Service et FW Service.

      o   IPAM ou Melange : Service d’informations  sur le réseau (release Diablo sur les adresses IP, DHCP et dnsmasq). A terme évoluera pour couvrir d’autres services réseau (ex : Quantum), voire l’ensemble des services Nova.

      o   Atlas LB (Rackspace) : Load Balancer basé sur Zeus en back end, le projet développé en Java pour tourner sous Glassfish. En parallèle, Citrix travaille sur l’intégration de Netscaler basé sur HAProxy (Open Source)
      • VaaS  (Volume as a Service) :
      o   VSA (Zadera, pdf (ici)) : offrir un service de stockage supérieur à EBS d’Amazon avec choix de différents médias (ex : SSD, SATA, FC, NFS, etc.) pour améliorer la qualité de services. Lire les spécifications détaillées (ici).

      Comme pour le service réseau (Quantum) des écrans issus des documents Zadera montrent l’IHM de ce service VSA via OpenStack Dashboard.


      o   Gluster  (Gluster, slides (ici)) : projet proposé par cette société pour être intégré avec Swift.

      o   LunR Block Storage: API basé sur iSCSI pour offrir un stockage à bas coût.
      • Auth :
      o   KeyStone (BitKoo, web site (ici)) : Nécessité d’unification de l’identification et de l’authentification d’accès aux services (ex : alignement de Nova sur Swift). C'est un énorme changement, environ 30% du code devra être impacté. En conséquence, le refactoring va être effectué en plusieurs phases.

      L’incrément 2 de Diablo contient la majorité des projets (qte: 21) de la release. Celle-ci est attendue pour fin juin (c.à.d sous peu !), mais tous ne seront pas aboutis, voire démarrés pour cette date. Les plus importants, à priori, sont :
      • nova-multi-nic (essential ; good progress) : couvert pour XenAPI et libvirt. Ce projet est lié à « xs_multi_nic » et « libvirt_multi_nic ». Ceci est essentiel pour gérer plus d’un réseau virtuel par VM
      • distributed-scheduler (essential ; implemented) : reprise du modèle de données peu adapté pour un environnement opérationnel conséquent (ex : optique multi-clusters, etc.). 
      • integrate-nova-auth (essential ; good progress) : Keystone fournit un cadre commun pour l’authentification à tous les services. Ce 1er projet concerne uniquement Nova, mais l’impact n’est pas neutre, beaucoup de code doit être repris.
      Quant aux releases3 et 4, on devrait y trouver quelques projets relatifs aux noms donnés ci-dessus avec (integrate-network-services, finalize-nova-auth, etc.) et les éventuels correctifs et/ou finalisations des incréments précédents.

      Bref, le release Diablo pour fin septembre (à priori, le 22) ou début octobre prochain sera très riche de fonctionnalités complémentaires.Quantum aura une 1ère intégration avec une API agnostique, une authentification / autorisation, un plugin Open Source (probablement Open vSwitch) et une intégration complète avec Nova. Les projets cités ne seront pas pour la plupart finalisés pour cette version, mais quelques fonctionnalités seront présentes pour les projets retenus.En un an, la communauté OpenStack aura fait avancer de façon significative ce projet.

      Le guide de toutes ces informations a été la publication des synthèses des Design Summit d’avril dernier par Joe Arnold sur son blog (ici).

      2 commentaires:

      1. Le 30/05/2011: C'est la journée de la publication de la release Diablo incrément 2. Sur la vingtaine de blueprints prévus, seulement la moitié ont été implémentés. Malheureusement, le plus attendu "nova-multi-nic" n'a pas été intégré. En rapport de son état, il n'est pas certain qu'il le soit à fin juillet (diablo-3). Gardons espoir toutefois!

        L'été va donc être chaud, voire très chaud!

        RépondreSupprimer
      2. Le 18/07/2011: Je m'aperçois en retour de congé (sans Internet) que je me suis trompé lors de mon commentaire précédent (erreur sur la date). Il ne s'agit pas du 30/05/2011 pour la date de sortie du 2ème incrément de Diablo, mais du 30/06/2011. La lecture du blueprint diablo-3 mentionne que "nova-multi-nic" est déjà implémenté. Bonne nouvelle!

        RépondreSupprimer