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 :
… 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 :
… 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 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
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 :
… 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 !
1 thought on “Mise en place d’un PoC VPlex/VE (partie 2)”