Mise en place d’un PoC VPlex/VE (partie 2)

Après un premier billet consacré à l’installation de VPlex/VE proprement dit, je vous propose de découvrir maintenant son utilisation à travers les outils dédiés proposé par EMC. Nous évoquerons aussi, sans trop détailler malgré tout, les grandes étapes nécessaires coté ESXi pour pouvoir connecter correctement un LUN iSCSI de VPlex/VE et s’en servir de datastore.

Introduction

Quand on connait la solution VPlex historique basée sur des composants physiques, la première chose qui saute aux yeux, c’est que vous ne disposez pas de console Unisphere for VPlex ! Certes, étant adepte de la ligne de commande, je ne suis pas un gros consommateur de la console web, mais malgré tout, je m’interroge encore sur le pourquoi de cette restriction. De mon point de vue, c’est LE point noir de VPlex/VE comparé à son grand frère. En effet, une fois l’installation terminée, si vous tentez de vous connecter à l’un des deux management server, vous atterrirez immanquablement sur cette page :
status
… frustrant :) ! En lieu et place, VPlex/VE vous a installé automatiquement un plugin pour la console web-client de votre vCenter, que je vous propose de découvrir d’ici quelques lignes. Mais que les allergiques aux clicodromes, comme moi, se rassurent : l’accès vplexcli est toujours là ! Et après une petite connexion classique via ssh, on retrouve ses marques très rapidement. D’ailleurs, pour être complet, sachez qu’après ma première installation réussie, je n’ai pas pu utiliser le plug-in vCenter à cause d’un problème spécifique à mon serveur VMWare. Il a donc fallut que je passe directement en mode console pour pouvoir avancer. Au final et pour les besoins de ces articles, je me suis attelé à résoudre mon souci spécifique VMWare pour pouvoir vous montrer l’intégration VPlex/VE dans la console web-client.

Découverte des fonctions VPlex/VE intégrées à VMWare

Après connexion au web-client vCenter, vous noterez qu’une nouvelle icône apparait dans votre page d’accueil :
wc-screen1
… Une fois dans la section VPlex/VE, vous disposez de 3 contextes dédiés « Systems », « Storage Arrays » et « Maintenance ». La partie « Systems » vous permet d’ajouter votre/vos VPlex/VE et éventuellement de modifier les IP publiques des management server. La partie « Storage Arrays » concerne la gestion des connexions « back-end » de votre VPlex. La première chose à faire est donc d’ajouter le VPlex :


… ensuite, vous pourrez vous rendre dans la section Storage Arrays pour découvrir les baies iSCSI présentes et lancer des phase de découvertes (en cas de présentation d’un nouveau LUN, par exemple :

… et c’est tout ! La partie maintenance n’est présente que pour vous permettre de collecter des logs de diagnostic ainsi que de suivre une phase d’upgrade éventuelle.

Pour la partie opérationnelle, c’est tout aussi « light ». Dans la section storage de vCenter, vous disposez d’une action contextuelle supplémentaire vous permettant de provisionner un datastore distribué. Voici les captures d’écran d’une séquence de création d’un de ces datastores :


A noter qu’il n’est pas possible de créer, via l’interface, de datastores ne reposant pas sur des distributed devices, ni de proposer du raid-1 local.

Au final, les fonctions sont simples, voir simplistes, très intégrées à vCenter et relativement explicites. Ceci étant, il n’est nul part présenté les concepts spécifiques à VPlex et leur puissance : distributed devices, storage views, virtual volumes, extents etc. … En fait, techniquement, tout cela existe, mais tout est caché à l’administrateur et est automatiquement géré via les outils présentés plus haut.

Pour un techno-geek-bidouilleur-professionel comme moi, je ne vous cache pas que je suis assez déçu par cette intégration. Quitte à supprimer la console Unisphere for VPlex, j’aurais au moins imaginé qu’on avait a peu de choses près l’équivalent intégré à vSphere. En outre, il ne semble pas, d’après la FAQ d’EMC, que la version officielle, non trial, soit mieux lotie à ce niveau là. Alors, comme souvent, les roadmaps d’EMC sont toujours compliquées à obtenir mais gageons qu’il y aura sans doute des améliorations de ce coté là, notamment lors de l’intégration probable de ce produit à la suite ViPR.

Et vplexcli alors ?

Après une vraie déception du coté des fonctions web, qu’en est-il de la partie plus underground du vplexcli. Et bien … bonne nouvelle : toutes les fonctions sont là, et même plus ! Il existe tout un jeu de commandes spécifiques à VPlex/VE autour de la gestion des composants virtualisés ainsi que pour gérer la partie iSCSI, absente de l’édition FibreChannel, évidemment :

VPlexcli:/> iscsi
iscsi chap back-end add-credentials             Add a configuration credential for back-end CHAP.
iscsi chap back-end disable                     Disable back-end CHAP.
iscsi chap back-end enable                      Enable back-end CHAP configuration.
iscsi chap back-end list-credentials            List all configured back-end CHAP credentials.
iscsi chap back-end remove-credentials          Remove a configuration credential for back-end CHAP.
iscsi chap back-end remove-default-credential   Remove a default credential for back-end CHAP configuration.
iscsi chap back-end set-default-credential      Set a default credential for back-end CHAP configuration.
iscsi chap front-end add-credentials            Add a configuration credential for front-end CHAP.
iscsi chap front-end disable                    Disable front-end CHAP.
iscsi chap front-end enable                     Enable front-end CHAP configuration.
iscsi chap front-end list-credentials           List all configured front-end CHAP credentials.
iscsi chap front-end remove-credentials         Remove a configuration credential for front-end CHAP.
iscsi chap front-end remove-default-credential  Remove a default credential for front-end CHAP configuration.
iscsi chap front-end set-default-credential     Set a default credential for front-end CHAP configuration.
iscsi check-febe-connectivity                   Check the front-end and back-end configuration for iscsi connectivity.
iscsi isns add                                  Adds one or more server addresses to the list of iSNS servers.
iscsi isns list                                 Display the list of configured iSNS servers.
iscsi isns remove                               Removes one or more server addresses from the list of iSNS servers.
iscsi sendtargets add                           Adds iSCSI storage array sendtargets to the cluster, making them available for discovery.
iscsi sendtargets list                          Displays the list of iSCSI storage array sendtargets that are available for discovery on the cluster.
iscsi sendtargets rediscover                    Issues a rediscovery on all sendtargets on the cluster.
iscsi sendtargets remove                        Removes iSCSI storage array sendtargets from the cluster so they will no longer be used for discovery.
iscsi targets list                              Displays the list of iSCSI targets that are discovered on the cluster.
iscsi targets logout                            Logs-out of iSCSI storage array target portals from the cluster.

VPlexcli:/> configuration virtual
configuration virtual change-admin-password                                Changes the admin account password.
configuration virtual change-service-password                              Changes the service account password and updates the remote management server lock-box.
configuration virtual change-vapp-start-order                              Changes the start order of the VMs in the vAPP and enables vDirectors to power on when the
                                                                           vApp is powered on
configuration virtual cleanup-failed-site                                  Removes the virtual configuration associated with a failed VPLEX/VE site.
configuration virtual configure-alarms                                     Configures custom alarms on VPLEX/VE VMs and ESXi hosts
configuration virtual configure-port-groups                                Creates and maps the port groups for virtual network configuration
configuration virtual configure-replacement-server                         Configures the replacement server on a VPLEX/VE Site
configuration virtual configure-virtual-networks                           Configures the virtual networks for the vDirector VM and/or the vManagement Server VM running
                                                                           on the given ESXi host.
configuration virtual disable-ha-monitor                                   Disables periodic execution of cluster virtual-ha validate command.
configuration virtual distribute-across-datastores                         Performs the migration of the vDirector VMs' virtual disk files to the given Datastores.
configuration virtual enable-ha-monitor                                    Enables periodic execution of cluster virtual-ha validate with a default 1-hour polling
                                                                           interval.
configuration virtual eng-register-vcenter-extensions                      Registers the extensions for the events, tasks, alarms and faults with the vCenter
configuration virtual eng-unregister-vcenter-extensions                    Unregisters the extensions for the events, tasks, alarms and faults with the vCenter
configuration virtual enquire-default-service-password                     Checks whether the default service account password has been changed or not.
configuration virtual get-ESXcluster-name                                  Returns the name of the cluster the Management Server belongs to.
configuration virtual get-ESXhost-name                                     Gives the host name on which the management server resides only if the drs automation level
                                                                           of the ESXi cluster is not fully automated.
configuration virtual get-datastore-name                                   Gives the name of the datastore on which the management server resides
configuration virtual get-local-sms-ip                                     This command returns the IP address of SMS-1
configuration virtual get-remote-sms-ip                                    This command returns the IP address of SMS-2
configuration virtual get-resource-reservations                            Gives resource reservation information about the vDirector(s).
configuration virtual hosts-on-physical-sites add                          Adds the list of ESXi hosts to the Physical Sites.
configuration virtual hosts-on-physical-sites list                         Gives the list of ESXi hosts on Physical sites.
configuration virtual hosts-on-physical-sites remove                       Removes the ESXi hosts from the Physical sites.
configuration virtual list-datastores-from-host                            Lists datastores that is common across the specified hosts.
configuration virtual list-hosts-from-cluster                              Gives the list of hosts of the cluster to which the Management Server belongs.
configuration virtual list-switches-from-host                              Lists virtual switches that belong to the specified host or common across the specified
                                                                           hosts.
configuration virtual pre-check check-ports-availability                   Verify ESXi host availability of virtual switch ports for required VPLEX/VE virtual machine
                                                                           network connectivity.
configuration virtual precheck-remote-management-server-operational-state  Pre-checks the operational state of the remote management server that needs to be replaced.
configuration virtual register-disk-latency-alarm                          This command is used to register alarm for monitoring vDirector disk latency.
configuration virtual register-vsphere-plugin                              Registers the VPLEX/VE plugin on the vCenter Server.
configuration virtual replace-director                                     Replaces vDirector on a VPLEX/VE cluster.
configuration virtual replace-esx-host                                     Replaces an existing ESXi host with a new ESXi host for VPLEX/VE
configuration virtual reserve-diskshare                                    This command reserves 4000 disk shares for each director VM by default.
configuration virtual reserve-resources                                    Reserves the required resources for the VPLEX/VE vDirector.
configuration virtual reset                                                Resets the virtual components of the system
configuration virtual restore-director-backups                             Restores the director backups for a failed VPLEX/VE site.
configuration virtual restore-director-metadata                            Restores director metadata
configuration virtual restore-management-server-backup                     Restores the management server backup for a failed VPLEX/VE site.
configuration virtual set-directors-metadata                               Sets required metadata for all vDirectors of a VPLEX/VE cluster. This includes enclosure-id,
                                                                           spid, cluster-ip-seed, cluster tla, wwn-seed and director serial number. All metadata content
                                                                           is written to the respective .vmx file of each vDirector.
configuration virtual set-drs-rules                                        Configures the required DRS rules for the VPLEX/VE VMs and the ESXi hosts.
configuration virtual set-ht-sharing                                       Sets the hyperthreaded core sharing of vDirectors to 'internal'.
configuration virtual setup-federation                                     Sets up pair of RabbitMQ federated exchanges between the two management servers. to be used
                                                                           during ndu.
configuration virtual sync-xml-files                                       Syncs the virtual_deployment_configuration.xml files from the local and remote sites.
configuration virtual unregister-vsphere-plugin                            UnRegister the VPLEX/VE plugin on the vCenter Server.
configuration virtual update-datastore-info                                Updates the virtual deployment configuration file when one or more datastores on the VPLEX/VE
                                                                           virtual machines are changed.
configuration virtual update-remote-ms-service-password                    Updates the password for the service account of remote management server in lock-box.
configuration virtual update-vcenter-ip-address                            Updates the IP address of the vCenter server managing the VPLEX/VE ESXi cluster
configuration virtual validate-remote-admin-password                       Checks whether the remote service account password is valid or not.
configuration virtual validate-remote-service-password                     Checks whether the remote service account password is valid or not.
configuration virtual validate-sms-ip                                      Validates the IP given as argument to be Management Server.

Par exemple, vous pouvez directement utiliser les commandes configuration virtual unregister-vsphere-plugin et configuration virtual register-vsphere-plugin pour supprimer et réintégrer le plug-in vSphere … cela m’a aidé dans la résolution de mes problèmes initiaux ;)

D’autre part, toutes les hiérarchies habituelles (clusters, storage-elements etc, etc…) sont là et les concepts associés toujours accessibles. Comme déjà évoqué, ma première tentative d’installation réussie m’a conduit à directement me plonger dans le vplexcli. J’ai donc fait l’exercice complet de préparer un distributed device à la main, sans l’aide de l’interface web. Je ne vais pas détailler cette partie, mais sachez que toutes les habitudes que j’ai prise sur VPlex ont été parfaitement reproduites dans VE : claiming des storage-volumes, création des extents, devices, montage des distributed devices, virtual volumes. Du coté des storage view, il a fallut découvrir aussi le fonctionnement (somme toute très proche de son équivalent FC) des commande d’enregistrement d’initiateurs. En substance, un administrateur VPlex habitué à la version physique, moyennant utilisation de la ligne de commande (ou des API REST, elles sont également là) ne sera pas perdu.

Un petit mot autour du setup iSCSI coté ESXi

N’étant pas familier du iSCSI (en production tout du moins), j’ai un peu tatonné au départ quant il a fallut créer des adaptateurs logiciels pour que les ESXi se connectent correctement à VPlex. Cela n’a pas posé de difficulté particulière, mais j’ai du d’abord « apprendre » les bonnes règles VMWare pour utiliser ce protocole. Une chose à savoir, notamment, est qu’un adaptateur iSCSI ne peut être connecté au réseau qu’à travers un vSwitch, les dvSwitchs n’étant pas acceptés (avec vSPhere 5.5U2 en tout cas).


Une fois l’adapteur iSCSI configuré et connecté au bon VLAN, j’ai donc ajouté les IPs de chaque directeur VPlex pour le site concerné (4 IPs par site, donc). Ensuite, que ce soit manuellement (via vplexcli) ou automatiquement via le plugin vSPhere, j’ai pu sans problème provisionner des LUNs et les formatter comme il se doit.

Conclusion

Pour résumer et pour le moment : du très bon avec la procédure d’installation et la mise en oeuvre générale, du pas terrible voir insuffisant avec le plug-in vSphere et de l’excellent avec le vplexcli.

Dans l’ensemble ce VPlex/VE reste une très bonne surprise pour moi et il est clair qu’un outil de ce calibre sur des configurations « modestes » (pour une version production, EMC exige quand même pas moins de 8 serveurs ESXi … voir ce billet à ce sujet) peut être un excellent moyen pour mettre en place une très haute disponibilité accessible en terme de prix et potentiellement du même niveau qu’un VPlex physique, en tout cas sur le papier. Son intégration probable à la suite ViPR, qui fait sens, va sans doute le rendre plus visible et donc désirable pour les clients potentiels.

La version « Trial », quant à elle est tout simplement parfaite (hormis l’absence d’Unisphere for VPlex …. je suis chafouin :D) pour de la formation ou du test. Du reste, j’envisage plus que fortement à intégrer ce produit officiellement dans nos environnements de bac à sable. Dommage que cette version ne soit pour l’instant pas utilisable avec ViPR. J’ai tenté de l’intégrer, mais ViPR refuse de le voir à cause d’une incompatibilité de version :
vipr
… je vais essayer d’en savoir plus grâce à mes contacts EMC (Emmanuel, si tu me lis … ;) ).

Enfin, pour terminer, sachez que je vais aussi essayer de mener quelques benchs sur la plateforme, notamment en terme d’IOps (sachant que les 2 VM NAS OpenFiler que j’ai monté pour le back-end utilisent une de nos baie XtremIO comme source, je n’ai donc aucune inquiétude particulière sur un éventuel goulot d’étranglement au niveau du physique ;) ). Je vous ferais un retour à ce sujet via un troisième billet spécifique. EMC annonce, en théorie, jusqu’à 20.000 IOps par vDirector… on verra cela !