Maniatux's Blog

Welcome to the internet

Aperçu de Xen Orchestra

Rédigé par Xavier - - 11 commentaires

Xen Orchestra est une interface web qui s'appuie sur xapi pour piloter un serveur Xen. Il est possible créer des VMs, les monitorer, faire des snapshot, attacher des SR et gérer des ACL pour les utilisateurs autorisés à se connecter à la console. Étant très intéressé par la virtualisation et Xen, j'ai testé cette solution et je dois dire que je suis plutôt impressionné.

Xen c'est quoi ? Et Xapi ?

Bon, si vous lisez l'article, c'est que vous connaissez probablement tout ça :)

Xen est une plateforme de virtualisation, un hyperviseur qui repose beaucoup sur la paravirtualisation. Là où la plupart des hyperviseurs émulent des machines virtuelles (cpu, disque, bios...), Xen fonctionne différemment et va se présenter comme une surcouche entre le matériel et les systèmes invités. Pas d'émulation, les systèmes invités tournent directement sur le vrai matériel, mais passent par Xen pour les accès. En gros, c'est comme un switch qui gère l'accès au hardware et isole les systèmes invités. Ce procédé est très avantageux en terme de performances mais a l'inconvénient de nécessiter des systèmes invités conçus pour fonctionner avec Xen (ce qui exclue notamment Windows !). Pour palier à cela, Xen est capable d'émuler du matériel et fonctionner ainsi comme un hyperviseur classique (VMware, KVM...).

Néanmoins, la paravirtualisation complète n'est plus aussi intéressante de nos jours car les processeurs sont puissants et intègrent des instructions pour gérer la virtualisation. Donc la virtualisation complète est aussi rapide voire plus que la paravirtualisation. Xen a donc évolué et permet de "mélanger" différents modes de fonctionnement. Il est ainsi possible d'utiliser la virtualisation complète (avec instructions CPU) pour le système et de faire appel à la paravirtualisation pour les périphériques, on a ainsi le meilleur des deux technologies. Tout ceci est récapitulé dans l'excellente documentation de Xen.org : Virtualization Spectrum - Xen.

Pour piloter Xen il existe différents outils comme xl ou libvirt mais également xapi qui est utilisé pour Xen Orchestra. Pourquoi ? Parce que xapi est stable, mature, et surtout conçu pour fonctionner en cluster (avec d'autres serveurs Xen mais également du stockage déporté - SR). La page Choice of Toolstacks liste les différentes solutions et leurs avantages / inconvénients. xapi est au coeur de XenServer (solution commerciale Citrix) + XenCenter (interface graphique pour Windows similaire à vsphere).

Xen Orchestra (XO) est une interface web capable de se connecter à XenServer, ou tout serveur Xen fonctionnant avec xapi et remplacer ainsi la console XenCenter limitée à Windows. XO est écrit en nodejs et peut être installé n'importe où, sur le serveur Xen ou non, car la connexion à xapi se fait par l'intermédiaire du réseau.

Maintenant que nous connaissons un peu mieux Xen et XO, voyons un peu à quoi ressemble le tout !

Installation de Xen Orchestra

Pour tester Xen Orchestra, j'ai créé en virtuel une mini infrastructure :

  • Deux XenServer (pour tester un cluster).
  • Une VM Debian dans Virtualbox puis installation de XO.
  • Une seconde VM Debian dans Virtualbox et création d'un iSCSI target (pour faire un SR) - non détaillé, voir cette page.

L'installation de XenServer est directe et simple, il suffit de booter sur l'ISO et suivre les étapes. L'installation de Xen Orchestra sur Debian s'est révélée en revanche un peu plus compliquée. La documentation liste toutes les étapes, en revanche il faut absolument utiliser n pour installer la version 0.10.36 de nodejs. N'essayez pas de prendre la version des dépôts ou installer la 0.12, XO n'est pas compatible. La bonne méthode d'installation de nodejs est :

curl -o /usr/local/bin/n https://raw.githubusercontent.com/visionmedia/n/master/bin/n
chmod +x /usr/local/bin/n
n 0.10.36

Suivez le reste des étapes, c'est à dire la récupération des sources xo-server puis xo-web, l'installation des dépendances et la modification (simple) du fichier de configuration. Si tout se passe bien, Xen Orchestra doit fonctionner.

Découverte

Enfin ! Après avoir bataillé contre (ou avec, comme disait Coluche) Nodejs, voici enfin Xen Orchestra !

L'interface est... adaptée aux tablettes. Sur PC, c'est un peu déroutant. Tous les éléments sont énormes (même avec un écran 1920x1080 je dois scroller), peu intuitifs, et pas vraiment organisés. Mon cerveau de sysadmin s'attendait plutôt à une arborescence listant les pool, serveurs, SR, VMs, comme sur XenCenter ou vSphere. Xen Orchestra utilise un design moderne mais un peu agaçant à mon sens.

Xen Orchestra reconnait les pool (ensemble de serveurs Xen + Storage repositories) mais ne semble pas encore en mesure de les gérer. Je l'ai donc fait directement sur le second XenServer (connexion au pool du premier) :

Xen Orchestra voit maintenant notre pool composé de deux serveurs Xen. Tentons maintenant d'ajouter un SR (Storage repository) de type iSCSI :

Après avoir saisi l'adresse de l'hôte, Xen Orchestra détecte et liste tout seul les target iSCSI et les LUN disponibles. Intéressant non ? Et ça marche. Voici donc notre Cluster, composé de deux serveurs Xen et d'un SR iSCSI vus par Xen Orchestra :

Comme les éléments graphiques sont trop gros (merci l'interface tablette !), la capture d'écran ne montre pas tout car il faut scroller, mais tout est là. Passons à la création d'une VM :

On retrouve exactement les mêmes élements que sous XenCenter : choix d'un template, source d'installation, quantité de ram / vcpu, interface réseau, SR... voilà donc un excellent point puisque rien ne manque.

La console distante n'est pas oubliée et fonctionne en prime sans flash. On peut également voir la console du serveur Xen (dom0) comme pour XenCenter :

Voilà donc encore une fois un excellent point ! Jetons maintenant un oeil aux ACL :

Plutôt clair non ? Il est possible d'accorder ou non l'accès a un pool ou à certains éléments pour un utilisateur. Peut-être est-ce trop basique à l'heure actuelle, mais nul doute que cela va évoluer !

Conclusion

Mon impression de Xen Orchestra est plutôt positive, car même s'il existe quelques bugs ils portent sur l'interface et n'empêchent pas le système de fonctionner (contrairement à virt-manager qui m'a déjà fait complètement planter un hyperviseur, plusieurs fois !). De plus si le but est de remplacer la console XenCenter, XenOrchestra est clairement sur la bonne voie. Carton rouge cependant pour le look "tablette+4K" de l'interface que je n'aime pas du tout.

11 commentaires

#1 clochette a dit :

Je te suis depuis déjà quelques temps, et je suis fort étonné que tu n'est pas encore mis le nez sur Opennebula ...

Le projet XOA est encore très jeune et la roadmap semble très bien ... laissons leur effectivement le temps de peauffiner tous ça.

#2 Xavier a dit :

@clochette : Hello,
Je n'ai jamais testé Opennebula ni même Openstack d'ailleurs.
C'est assez contraignant car cela demande une grosse infra (que je n'ai pas).
Peut-être un jour...

#3 Olivier a dit :

Salut :)

Quelques précisions : (je suis le project leader d'XO)

* il n'y a absolument pas besoin d'une version de node particulière avec « n » : à aucun moment on indique qu'il est nécessaire d'avoir une version spécifique dans la doc (« n stable » veut justement dire qu'on récupère la dernière stable !). C'est juste que « n » c'est super pratique :D
D'ailleurs, cela fonctionne avec la 0.12 dès à présent ! (il y avait encore quelques dépendances externes qui coinçaient mais ça marche nickel depuis quelques temps). Si tu rencontre encore des soucis, supprime ton dossier « node_modules » et fait un « npm rebuild » et là c'est OK :)

* Pour l'UI, un élément de type « VM » doit faire qu'une ligne normalement, c'est l'immense description qui casse tout dans le screenshot. On va mettre une ellipse si le texte est trop long pour éviter ça. Je vais créer une issue, en tout cas c'est un bug, pas une feature ;)

* Concernant le « carton rouge », promis j'ai pas mis les deux pieds devant m'sieur l'arbitre. On profite justement que ce soit du web pour « respirer » :) Il y a beaucoup d'informations à afficher, on cherche volontairement à ce que cela soit clair. Surtout que le public de l'outil ne se limite pas au Sysadmin (avec les ACLs et le self service qui va arriver...)

* Concernant l'évolution de l'application, tout est écrit en long en large (et pas en travers :o ) sur le blog : https://xen-orchestra.com/blog/

Tu en sauras beaucoup plus en lisant nos articles (évolution des ACLs par exemple ici : https://xen-orchestra.com/blog/xo-4-x-starts-to-show-up/ )

De manière générale, on prend le temps de tout expliquer, où on va, et comment on y va :)

Voilà, j'espère que ça répond à tes questions :)

#4 Xavier a dit :

@Olivier : Salut Olivier
Merci pour ta réponse :)
Si si , il faut passer par n pour installer node. J'ai essayé avec les dépots debian et bien que ce soit la 0.10.36, npm start ne passe pas sur xo-server (il manque des trucs dans /etc je n'ai plus ça en tête).

Pour l'interface tablette je ne suis pas d'accord, j'ai l'impression qu'il faut un écran 4K pour tout voir sans scroller...

#5 Olivier a dit :

Non, c'est pas lié à « n ». Tu peux aussi installer Node par les sources, pas de soucis. Pour être vraiment complet sur la réponse, c'est plus un « problème » Debian en fait, et sa façon de packager node. En fait, le soucis vient de la frontière entre la volonté de Debian du « tout package » qui entre en conflit avec... un package manager. Le problème est le même pour Pear, Gem et Pip (pour respectivement PHP, Ruby et Python). L'idéal voudrait que Debian ne contiennent que l'executable de node ainsi que npm, mais il en est autrement...

Toujours est-il que stricto-sensu XO est compatible 0.10.xx et même 0.12 ;) (re-testé tout à l'heure chez nous et plusieurs utilisateurs)

Enfin, pour l'interface que tu appelles « tablette », c'est une histoire de goût en effet :) On préfère le scroll à du « suivant suivant », parce que c'est plus du web justement ! Après j'entends bien ta remarque, et je vais voir si on peut pas resserrer certaines choses en hauteur, sans que ça soit trop ramassé.

Voilà :D

#6 Lully a dit :

Bonjour,

En ajoutant un nouveau serveur, quel est le port utilisé par défaut pour qu'il puisse se connecter ?

Merci

#7 Xavier a dit :

@Lully : Salut
Pour xapi c'est le 80 ou le 443.

#8 elodie a dit :

Bonjour,

J'essai de mettre en place, Orchestra... j'ai telecharger la VM malheureusement je reste bloqué lors de l'importation, que ce soit via CLI ou xencenter. du coup impossible de démarer la VM
j'ai donc tenter l'installation manuelle mais cette fois ci, c'est moi qui bloque,... Où faut-il copier le dossier XO-master et XO-web. Pourriez-vous m'éclairer

#9 elodie a dit :

Bonjour,

Je sollicite votre aide pour ma mise en place d'orchestra, j'ai télécharger la VM mais ça bloque lors de l'importation, via xencenter ou cli.

et pour le faire manuellement je ne sais pas ou est qu'il faut mettre les zip XI-web et XO-master

#10 Olivier a dit :

Hello !

Suite à tes remarques sur le layout cassé dans certains cas, voici des modifications apportées pour la 4.0 qui arrive bientôt :

https://xen-orchestra.com/blog/xen-orchestra-responsive-design/

Ça devrait régler pas mal tes soucis.

#11 Xavier a dit :

@Olivier :
Merci pour l'information et c'est un boulot de fou que vous faites.

Les commentaires sont fermés.