Pour savoir où on va, il faut savoir d'où l'on vient

Vous avez
une question ?
Un projet ?

Contactez nous !
 

Contactez-nous

Vous avez une question ? un projet ? 
Vous souhaitez plus d'informations sur un produit ? sur notre offre ? 
Contactez-nous, on vous répond sous 4H.

eZHumanCAPTCHACode reload
retour

Interfaces d'administration

Interfaces d'administration

Si la plupart des solutions open source de virtualisation sont matures en ce qui concerne les fonctionnalités de base, il n'en est pas autant de leurs interfaces d'administrations, souvent minimalistes. Or, le succès commercial d'un produit ne dépend pas que de la qualité technique de son socle, mais également de sa facilité d'accès. Il est un principe fondamental de l'open source qu'un projet n'a pas pour but de tout faire, ainsi trouve-t-on des projets open source dont le but est uniquement de fournir des interfaces d'administration à des produits existants, laissant aux projets développant les briques de base le soin de se concentrer sur les problématiques techniques bas niveau.

ProxmoxVE

Proxmox VE est une plateforme de virtualisation open source dite « Bare Metal » produite, développée et maintenue principalement par Proxmox Server Solutions GmbH depuis 2008. Elle fournit un système minimal permettant de créer et de gérer des machines virtuelles en usant de technologies ouvertes d'isolation (OpenVZ), de virtualisation complète (KVM) et de clustering (Corosync), le tout via une interface web d'administration accessible.

Les deux mondes sur une plateforme simple d'accès

Proxmox VE fournit un accès simple à l'isolation et à la virtualisation complète sur une seule et même plateforme. Il est ainsi possible de créer et gérer des machines virtuelles avec KVM et des conteneurs avec OpenVZ, le tout via une interface d'administration moderne et simple d'accès.

Screenshot from 2015-04-21 16:15:24

Capture d'écran ProxMox – Source : www.proxmox.com

La mise en place d'un cluster et la haute disponibilité sont de plus à portée de main avec une configuration des machines virtuelles et conteneurs pour lesquels assurer une continuité de service, ainsi que la configuration du fencing avec support IPMI, APC et DRAC (Dell). Il est aussi possible d'effectuer des tâches de sauvegarde ponctuelles depuis celle-ci.

Il est possible d'installer la plateforme sur une Debian Squeeze, la société fournissant des dépôts pour la distribution incluant toutes les dépendances nécessaires.

Retours d'expérience

Proxmox VE est selon nous une plateforme adaptée pour les infrastructures de toutes tailles. Elle fournit toutes les fonctionnalités de base que l'on peut attendre d'un tel produit, telles la gestion du réseau, la migration et la sauvegarde (complète et snapshots) des machines virtuelles et conteneurs, la gestion et le monitoring des ressources utilisées, mais possède quelques lacunes.

Par exemple, il est impossible de gérer l'accès aux VLAN depuis l'interface d'administration. Il est de même impossible de n'utiliser que iSCSI si l'on veut avoir de la haute disponibilité sur les conteneurs et machines virtuelles, les conteneurs ne supportant que NFS pour la haute disponibilité actuellement.

La plateforme fournissant son propre noyau allégé, il est aussi impossible d'installer son propre noyau incluant des fonctionnalités spécifiques. A titre d'exemple, le noyau fourni ne supporte pas le RAID logiciel en conséquence de cet allègement.

Enfin, la création d'un cluster Proxmox VE et l'ajout de nœuds ne se fait pas via l'interface web mais en ligne de commande sur les serveurs, alors que la gestion du cluster peut se faire via l'interface web. Ce n'est en rien gênant, mais c'est un manque de l'interface web que l'on aimerait voir combler.

La plateforme est cependant suffisante pour des besoins de virtualisation basiques, vu qu'il reste possible d'effectuer certaines tâches non implémentées sur l'interface d'administration en ligne de commande, telle la création de bridges liés à des VLAN.

Limitations de Proxmox VE

Proxmox VE implémente un monitoring de l'utilisation des ressources par les machines virtuelles ainsi qu'une supervision basique des machines virtuelles via Ping dans le cadre de la haute disponibilité, suffisant pour s'assurer que le système est disponible, mais cela implique que le système ne verra pas une indisponibilité de service. Il est donc nécessaire de prévoir une supervision externe de type Centreon/Nagios pour être averti des indisponibilités de service.

OpenStack

Présentation

OpenStack est un logiciel beaucoup plus complet et ambitieux que ProxmoxVE. Son but est de fournir toutes les briques nécessaires à la mise en place d'un service IaaS : Infrastructure as a Service.

L'IaaS est l'une des facettes du Cloud Computing : il s'agit de fournir des ressources informatiques sous forme de machine virtuelles prêtes à l'emploi, et ce directement à la demande des utilisateurs, sans passer par la mise en place à la main des VM par un administrateur système. Le système IaaS gère la mise à disposition de la ressource en fonction de la capacité actuelle de la plateforme, et assure le suivi de consommation à des fins de facturation.

OpenStack, développé initialement par Rackspace et la NASA, propose un regroupement de logiciels open source sous licence Apache. Ce regroupement permet de mettre à disposition des ressources de calcul (des machines virtuelles) ainsi que des espaces de stockage, en reprenant les principes de l'IaaS.

Historiquement, Rackspace contribuait à la partie stockage d’OpenStack tandis que la partie calcul était développée par la NASA. A l’heure actuelle la fondation en charge du projet, nommé OpenStack Consortium, intègre plus de 150 entreprises, dont Canonical, Dell et Cisco.

Screenshot from 2015-04-21 16:20:34

Captures d'écran OpenStack Dashboard – Source : www.openstack.org

Architecture du produit

Au niveau macroscopique, OpenStack se compose de 3 services principaux, chacun fournissant une API qui permet aux clients de demander des ressources. Fournir une API et non seulement une interface permet d'automatiser la mise à disposition de ressources, ce qui permet d'augmenter la capacité d'une plateforme particulière de façon totalement automatique, dans la limite de la puissance mise à disposition par l'infrastructure OpenStack.

Screenshot from 2015-04-21 16:22:12

Source : documentation officielle OpenStack

« OpenStack Compute » est le service qui instancie des machines virtuelles, c'est l'équivalent d'Amazon Elactic Compute Cloud (EC2)

« OpenStack Object Storage » met à disposition des clients un espace de stockage pour tous types de données : d'une simple image à une machine virtuelle entière. C'est l'équivalent d'Amazon Simple Storage Service (S3)

« OpenStack Imaging Service » est la brique qui fait le lien entre les deux produits et permet le stockage des modèles de VM sur Object Storage. Une fois ainsi stockés, ces modèles sont instanciables à la demande. Il est bien sûr possible pour les clients de créer de nouveaux modèles.

Par la suite, nous nous concentrerons sur OpenStack Compute, qui est le seul composant à utiliser les techniques de virtualisation présentées dans ce livre blanc.
Le schéma ci-dessous montre les principaux composants d'OpenStack Compute :

Screenshot from 2015-04-21 16:23:58

Les différents sous-composants de chaque service communiquent entre eux via un serveur de messages, en général RabbitMQ, qui garantie une communication fiable entre les services en toutes circonstances, y compris si l'un d'eux a rencontré une panne.

Parmi ces composants, on retrouve :

  • Le serveur d'API, qui reçoit les demandes des utilisateurs et des autres services d'OpenStack, les valide, et les envoie à la file d'exécution.
  • Le service de planification (scheduler) qui place les nouvelles VMs sur un des hôtes disponibles en fonction de critères pré-établis (priorités, etc.) mais aussi de l'état actuel de la plateforme (charge, indisponibilités, etc.)
  • Les services de réseau et de stockage, qui fournissent la connectivité réseau et l'espace de stockage aux VM.
  • Les nœuds de calcul (compute node) eux même, qui sont les hyperviseurs.

Généralement, plusieurs de ces services sont regroupés sur la même machine, dégageant deux types de serveurs physiques : les nœuds de calcul et les nœuds de contrôle.

Screenshot from 2015-04-21 16:26:11

Un seul nœud de contrôle peut prendre en charge plusieurs nœuds de calcul, qui sont simplement des hyperviseurs qui exécutent des machines virtuelles basées sur les images fournies par OpenStack. Il n'est pas recommandé d'utiliser différents types d'hyperviseurs au sein d'une même installation d'OpenStack, en raison de l'incompatibilité des formats de disque, du matériel, et de l'impossibilité d'effectuer des migrations des VM d'un hôte vers un autre lorsque les deux hôtes utilisent un hyperviseur différent.

Screenshot from 2015-04-21 16:27:34

Le choix de l'hôte lors de la création d'une nouvelle VM peut dépendre de plusieurs critères, par exemple, OpenStack peut choisir de créer une nouvelle VM sur la machine la moins chargée, et bien sûr ne créera pas de VM sur une machine temporairement indisponible. OpenStack peut tirer profit des fonctionnalités de migration à chaud des hyperviseurs lorsqu'elles sont disponibles afin de minimiser l'indisponibilité lors des phases de maintenance.

La pérennité d’OpenStack
Screenshot from 2015-04-21 16:27:36

Sur ce graphique on peut voir quels étaient les principaux déploiements d'OpenStack. Il est à noter que la majeure partie des déploiements en productions sont constitués de la plateforme de stockage et non de calcul, qui reste surtout pour l'instant cantonnée à l'expérimentation ou à de la production à petite échelle.

La pérennité de OpenStack Compute est fortement liée à celle de l'hyperviseur choisi. En effet les différents hyperviseurs ne sont pas toujours bien supportés, avec des fonctionnalités non implémentées ou non testées. Par exemple, à ce jour seule une version relativement ancienne de VMWare est supportée. Plus précisément, la version 4.1 update 1, sortie le 10 février 2011, alors que la version 5.0 update 1 est sortie depuis le 15 mars 2012. Initialement, HyperV de Microsoft était aussi supporté. Son intégration a finalement été abandonnée.

Le choix de l’hyperviseur est donc critique et dépend des besoins de la plateforme IaaS. Le lecteur trouvera à la fin de ce livre blanc un récapitulatif des principaux critères à considérer pour faire ce choix, auxquels il faudra ajouter le niveau de support par OpenStack : à l’heure actuelle, les hyperviseurs XenServer et KVM sont les mieux supportés.

OpenStack est packagé dans Ubuntu Server et dans Debian (Wheezy). D’autres distributions telles que RedHat Enterprise Linux sont moins bien supportées. Si la prise en charge de RedHat concentre de plus en plus d'efforts de développement, un des obstacles à l’intégration d’OpenStack dans les solutions de RedHat est actuellement son modèle de développement rapide dû à la jeunesse du produit. Vis-à-vis des 10 années de support proposées par RedHat aux entreprises, on comprend qu'une éventuelle intégration d'OpenStack à RedHat devra attendre que le produit soit suffisamment stable.

A ce jour, la solution fonctionnant ‘out-of-the-box’ est Ubuntu Server. L’intégration d’OpenStack et d’Ubuntu va même plus loin pour deux raisons. La première est l’implication de Mark Shuttleworth (fondateur et principal soutien financier d'Ubuntu). La seconde est le rythme de développement d’OpenStack. C’est-à-dire qu’une version majeure d’OpenStack sort tous les 6 mois en se calquant sur le rythme de sortie d’Ubuntu. Le choix d’OpenStack est motivé par la forte dynamique dont bénéficie Ubuntu : à l’heure actuelle, Ubuntu Server enregistre une forte progression en parts de marché sur les serveurs Web, et se situe environ au même niveau que RedHat, parfois même devant selon certaines études.

Un des freins à l'adoption d'OpenStack reste la faiblesse de son interface Web. A l’heure actuelle, une interface Web existe pour les opérations basiques (gestion des instances, gestion des IPs publiques…), mais pour un certain nombre d’actions d’administration ou d’utilisation, l’interface par ligne de commande (CLI) reste nécessaire. L'accent est clairement mis sur l'API, qui elle offre l'accès à toutes les fonctions.

Un autre frein réside dans la jeunesse d’OpenStack et son cycle de développement rapide, qui est de 6 mois, ce qui s'avère une période de temps trop courte pour de la production. Mais à l’instar d’Ubuntu, des versions ‘LTS’ (Long Time Support) d’OpenStack permet d’étendre tous les 2 ans le support d’une version.