Je continue ma série de billets sur la découverte de ScaleIO, l’offre SDS d’EMC. Après, l’installation du cluster proprement dit (voir ici) et la découverte des outils d’administration par la mise en oeuvre de mon premier SDC (voir ici), je vais vous présenter aujourd’hui l’intégration vSphere 6.
Il s’agit d’installer le driver SDC sur chaque serveur ESXi qui vont exploiter les volumes ScaleIO, puis d’utiliser le plug-in vSphere web client pour pouvoir configurer les hosts en les connectant à notre cluster existant. Globalement, vous allez le voir, ça s’est très bien passé … sauf l’installation du plug-in où j’ai galéré pendant plusieurs heures …
Mais trève de blabla, rentrons dans le vif du sujet.
1. L’environnement de test
La première étape pour moi a été de construire un environnement virtuel propice au test. Comme je n’ai qu’un tout petit vLab chez moi, je n’ai pas pu utiliser des serveurs ESXi physiques. J’ai donc créé un nouveau cluster VMWare constitué de deux serveurs dit “Nested ESXi”, des hyperviseurs sous forme de machine virtuelle. Je ne vais pas détailler ici, mais si vous souhaitez en savoir plus à ce sujet, il y a des tonnes d’information sur le web, une petite recherche sur “nested esxi” vous suffira à trouver votre bonheur. Ceci étant, pour bien commencer, rendez-vous sur VirtuallyGhetto dans la section Nested Virtualization.
Cette opération est un peu longue, mais ça se fait très bien et c’est très pratique pour les PoC, en particulier :) . Vous le verrez dans les copies d’écrans de ce billet, le cluster en question s’appelle “Nested” et contient deux serveurs (2 CPUs / 16 Go) respectivement 172.16.16.50 et 172.16.16.51.
Ensuite, histoire de vraiment découvrir ScaleIO en détail (plutôt que de lire bêtement le Quick Start guide), j’ai installé le client SDC ESXi via Update Manager. Pour se faire, j’ai créé une baseline spécifique de type “ESXi extension”, que j’ai ensuite associé à mes deux nouveau ESXi. Voici les différentes copies d’écran pour information. La encore, pas de détail mais peut-être un moyen de vous “titiller la fibre geek” :) :
Une fois les machines relancées, je pensais qu’on aurait pu se débrouiller en ligne de commande, comme pour les SDC Linux (ou Windows), grâce à des ordres spécifiques directement sur les serveurs ESXi, or ce n’est pas le cas : il faut absolument installer le plug-in Web Client ScaleIO pour initialiser une première fois les paramètres afin que les modules kernel SDC s’insèrent correctement dans le noyau ESXi. Il est indiqué dans la doc que vous pouvez “modifier” les paramètres déjà existants via des commandes “esxcli system” mais pas créer de toutes pièces une nouvelle configuration (j’ai tenté malgré tout, vous me connaissez … mais sans succès). EDIT: mais bien sur que si c’est possible, rendez-vous ici
2. Installation du plug-in
Une fois tout cela préparé, il a fallu installer le plug-in vSphere Web Client. Comme déjà évoqué, cela m’a pris un temps infini, par rapport à l’étape elle-même qui est sensée être rapide. Mais c’était sans compter sur les facéties des services web de vCenter (qui vient de dire “comme d’habitude” ??). En fait, et pour résumer, j’ai tenté une dizaine de fois de l’installer en respectant scrupuleusement la documentation… apparemment sans succès. En désespoir de cause, j’ai rebooté mon vCenter … et hop, magie, ça a fonctionné. Ne me demandez pas pourquoi, j’ai abandonné l’idée de comprendre. Par contre, pour le coup, j’ai décortiqué tout le process d’installation de ce satané plug-in. Voici ce qu’il faut savoir, les pré-requis et la procédure à suivre à la lumière de mes déconvenues !
– Le script d’installation du plug-in est en Powershell et doit avoir les extensions VMWare (via installation préalable de PowerCLI, à télécharger chez VMWare)
– Si vous êtes dans un vLab comme moi, je pense que vous pouvez sans problème faire sauter les deux limitations par défaut via ces deux commandes :
1 2 |
Set-ExecutionPolicy Unrestricted -scope CurrentUser Set-PowerCLIConfiguration -InvalidCertificateAction Ignore |
… la première permet à votre Windows d’exécuter n’importe quel script PowerShell, qu’il soit signé ou non et la seconde autorise PowerCLI à accepter n’importe quel certificat SSL lors de la connexion à votre vCenter
– Une fois cela réalisé, vérifiez aussi que vous disposez d’une distribution Java relativement récente. J’ai utilisé la 1.8 sans souci.
– Lorsque vous lancez le script, répondez normalement aux questions et lorsque celui-ci vous demande de vous relogguer sur vSphere Web Client, surtout ne validez pas sur Enter AVANT que vous n’ayez bien votre interface VMWare chargée (lisez bien en gros … mais c’est tellement mécanique qu’on oublie de lire quelques fois)
– En fait, le script va démarrer une application Java qui lance elle-même un serveur HTTP écoutant sur le porte 65101. Dans la foulée, il enregistre le plug-in au près du vCenter avec l’adresse http de téléchargement en question (votre IP de machine, le port 65101 et un chemin spécifique). Lors du “prochain login” sur l’interface Web de vSphere, le téléchargement a lieu et le plug-in installe.
Voici la trace PowerCLI de ce que vous devrez obtenir “si tout se passe bien”. Si vous avez des messages d’erreur ou des warnings, ce n’est pas bon et il faut reprendre à la lettre les pré-requis:
Bon, en fait, d’après la documentation, cela doit marcher du premier coup. Personnellement, comme déjà expliqué, je n’y suis arrivé qu’en rebootant tout vCenter, une fois la procédure d’installation terminée. Ce n’est qu’après ce redémarrage de toute la suite vSphere que le Web Client a daigné me montrer l’icône ScaleIO.
3. Configuration des serveurs, connexion au cluster ScaleIO
Enfin! Vous avez votre joli logo ScaleIO présent dans l’interface Web Client de vSphere. Bien ! L’étape suivante consiste à configurer les hyperviseurs pour qu’ils soient connectés à notre cluster SDS. On va d’abord enregistrer notre cluster dans le plug-in. Rien de plus simple, ici, il suffit de cliquer sur “Register ScaleIO System” sur la page d’accueil du plug-in :
Un fois notre cluster intégré, on va déployer les configurations sur les serveurs déjà pré-installés avec les “vib” SDC. Pour cela on va utiliser le wizard “Deploy ScaleIO environment”.
… vous noterez que j’ai choisi l’option “Add servers to a registered system” car c’est précisément ce que l’on veut faire ici : on a un cluster déjà opérationnel et on souhaite juste intégrer nos serveurs ESXi en tant que clients SDC. Au passage, dans les différentes étapes, on retrouve bien les pools, fault sets et protection groups déjà créés lors des billets précédents. Une des étapes vous permet normalement d’installer aussi la fonction SDS sur des serveurs ESXi. L’objectif ici est de pouvoir configurer de la volumétrie supplémentaire au sein de votre cluster, si le coeur vous en dit et si vous avez du Go en local sur vos machines. On va ignorer donc cette partie dans le cadre de notre PoC et on s’attaque à la configuration des SDC :
… la encore, il y a quelques paramètres spécifiques à positionner, ils sont assez simples à comprendre, donc je ne détaille pas ici.
Une fois validé et les serveurs préparés, en retournant dans l’interface de gestion du cluster ScaleIO, on pourra confirmer que deux nouveaux SDC sont bien présents (en plus de 3 initiaux) :
4. Création d’un nouveau volume, mapping sur les ESXi et formattage vmfs
Dernière étape, la préparation du nouveau datastore, basé sur un volume ScaleIO (on peut aussi faire du RDM si on le souhaite, les volumes ScaleIO étants vus par le noyau ESXi comme un LUN scsi classique). On se place dans la section “Storage Pools”. A partir du pool0 déjà créé, on lance l’assistant de création d’un nouveau volume. Dans la foulée, on peut directement mapper ce volume sur des ESXi :
On y est presque ! si l’on retourne voir dans la section storage de nos ESXi, on constate qu’il existe un nouveau LUN disponible, qu’on va s’empresser formatter en VMFS :
Notre volume est créé, le datastore est présent et opérationnel !
Vite la suite !
Dans la foulée, j’ai cloné une VM sur ce nouveau VMFS, que j’ai ensuite démarrée. J’ai procédé à quelques test complémentaires sur cette machines : snapshots, retours arrières, consolidation et suppression de snapshosts, vmotion, storage vmotion… tout a fonctionné à la perfection. Comme lors de mes premiers tests, j’ai également procédé à l’arrêt d’une des machines SDS du cluster ScaleIO : tout a parfaitement réagit, sans perte de volume, avec reconstruction dans un premier temps puis re-balancing lorsque le cluster est revenu en nominal.
Je vous propose de terminer ce PoC dans un dernier billet qui sera plus “prospectif” et où je vous donnerai mon sentiment général sur ScaleIO, son niveau de maturité actuel, son potentiel et en quoi il pourrait devenir un remplaçant de notre TIER2, à terme. J’essayerai aussi de vous montrer son intégration avec ViPR, qui est un complément parfait, je trouve, à cette offre plutôt “brute” pour le moment … mais j’en ai déjà trop dit :)
Amusez-vous bien et à très bientôt !
Bonjour,
Très bien le POC mais attention toutefois ScaleIO n’est supporté que jusqu’à la version 5.5 chez VMware et gros bug sur la v6 ou seule solution est le reboot du serveur ESXi …
Bonjour !
Merci pour ce retour et très intéressant cette affaire de bug. Vous pouvez nous en dire plus ?
En effet, les distributions de la “community edition” fournissent bien le driver SDS pour ESXi6, donc c’est un driver “non prod” ?
scaleio est bien supporter sur esxi 6 avec la version 2.0
Par contre ce qui est un peu plus complexe, c’est de faire le deploiement de scaleio sur une plateforme VMware (simple) puis ensuite d’integrer des serveurs physiques linux ou autre. La seul solution potable etant de faire du cli (et j’ai eu quelque souci de multipathing avec centos 7)
bonjour
comment fonctione scale io si j ai 6 serveurs physique dediee au stockage hybride avec plusieurs cartes sfp 10g ?
la connectivité entre eux via une fabric ethernet?
peux t on relié des esxi ou hyperv en attachement direct ?
comment ca se passe si le switch reseau tombe on perd tous les noeuds en temps reels ?