Dans cette partie de la documentation, nous allons voir ensemble quelques exemples de configurations que nous pourrions faire sur la partie accès au stockage iSCSI de nos ESXi.
Précédemment nous avons créé dans cette section un adaptateur logiciel iSCSI sur chacun de nos deux ESXi puis nous avons configuré la découverte dynamique pour leur permettre de découvrir les LUNs et les Datastores disponibles sur notre baie de stockage iSCSI.
L'adaptateur de stockage de nos ESXi est ce que l'on appelle un "initiateur iSCSI" et la baie de stockage iSCSI est ici ce que l'on appelle la "Target". Elle sera d'ailleurs visible dans la section concernant la découverte dynamique une fois ajoutée.
Après avoir réanalysé "l'initiateur iSCSI" nous pouvons également voir la liste des LUNs disponibles sur la baie de stockage iSCSI dans la section "Périphériques".
Nous allons aborder dans un premier temps le concept de "Network Port Bindings".
Pour accéder à ce paramètre, cliquer sur un de nos ESXi puis sur "Configurer".
Cliquer sur "Adaptateur de stockage" puis sélectionner l'initiateur iSCSi précédemment créé.
Parmis les différentes options visibles, cliquer sur "Liaison de port réseau" (Network Port Bindings en Anglais).
Pour l'instant rien n'est configuré.
Pour comprendre le fonctionnement du "Network Port Bindings" nous allons reprendre comme exemple le schéma d'architecture que nous avions vu ensemble dans la documentation Review du stockage iSCSI
Si l'on récapitule, pour l'instant sur notre hôte ESXi nous avons créé un initiateur iSCSI logiciel. Il s'agit de notre adaptateur de stockage.
Nous avons également un vSwitch sur lequel nous avons configuré un VMKernel Port permettant l'accès à la baie de stockage.
Donc à ce stade tout le trafic de stockage sort de notre adaptateur de stockage, passe au travers du VMKernel Port dédiée au stockage puis passe par un seul port physique de l'ESXi pour rejoindre le réseau Ethernet vers la baie de stockage iSCSI.
Dans cette configuration nous n'avons pour l'instant ni redondance ni tolérence de panne.
En effet si le VMKernel Port, le port physique de l'ESXi ou le switch physique devaient avoir une panne nous perdions l'accès au stockage.
Pour résoudre ce problème, ce que nous voudrions faire dans un environnement de production serait plutôt d'ajouter un second VMKernel Port dédiée au stockage et de le lier à notre initiateur iSCSI.
De cette manière, l'adaptateur de stockage pourra envoyer le trafic au travers un deuxième VMKernel Port se trouvant sur un autre vSwitch permettant ainsi au trafic de passer également par un autre port physique de l'ESXi et donc sur un autre switch physique pour atteindre la baie de stockage iSCSI.
Nous aurions ainsi une conception d'architecture capable de tolérer des défaillances puisqu'il y aurai deux manières d'accéder à la baie de stockage iSCSI.
Nous avons donc deux VMKernel Ports (VMK1 et VMK2 par exemple) configurés sur deux vSwitches différents utilisant deux ports physiques de notre ESXi qui eux même sont reliés sur deux switches physiques différents.
Dans cette configuration, ce qui va se passer c'est que le plugin Multipathing va lui même se charger de distribuer le trafic sur les deux VMKernel Ports.
Imaginons par exemple que nous avons configuré du Round Robin. Dans ce cas, une partie du trafic ira vers le VMK1 tandis que l'autre partie ira vers le VMK2, etc, etc.
Le trafic va donc simplement "tourner" entre ces deux VMKernel Ports et donc forcément entre les deux ports physiques de notre ESXi.
C'est donc l'adaptateur de stockage lui même qui va se charger de gérer l'équilibrage de la charge entre ces deux VMKernel Ports en se basant sur le plugin Multipathing.
Il s'agit donc ici d'un très bon modèle d'architecture et de tolérence de panne.
Nous pourrions même dire qu'il s'agit d'une configuration idéale car non seulement elle permet d'avoir de la redondance mais elle utilise le plugin multipathing pour effectuer cette redondance.
Il existe cependant une autre manière de procéder.
En effet, nous pourrions ne pas créer de second vSwitch et de second VMKernel Port dédié au stockage car techniquement parlant nous n'en avons pas besoin et ce n'est pas une obligation.
A la place, nous pourrions associer plusieurs ports physiques de notre ESXi sur le vSwitch ayant le VMKernel Port dédié au stockage et les relier à différents switches physiques.
De cette manière nous avons également une redondance physique puisque nous utilisons plusieurs ports de notre ESXi et plusieurs switches physiques.
De cette manière notre adaptateur de stockage enverra tout le trafic vers un seul VMKernel Port.
Nous pourrions ainsi configurer du NIC Teaming sur les ports physiques de notre ESXi comme par exemple du Load Based Teaming ou du IP Hash afin de déterminer comment le trafic circulera sur les ports physiques de l'ESXi.
Toutefois cette manière de procéder est moins efficace que la précédente.
En effet, l'efficacité de l'équilibrage de charge est moins importante dans ce cas de figure.
Nous avons un seul VMKernel Port avec une seule IP source, si j'utilise du NIC Teaming de type IP Hash le trafic se fera probablement vers la même IP de destination et il y aura donc de fortes chances que la grande majorité du trafic passera par un seul port physique de l'ESXi tandis que l'autre port physique ne sera pas autant solicité.
C'est pourquoi la première manière de procéder est la plus recommandée et la plus efficace.
Pour rappel, afin de rédiger cette documentation j'utilise un LAB composé d'ESXi virtualisés.
Mon infra physique à la maison ne comporte qu'un seul switch de 24 ports.
Je ne pourrai donc pas réellement connecter les ESXi du LAB sur différents switches physiques cependant je vais tout de même indiquer où faire les différentes configurations.
Nous avons parlé de la théorie, maintenant passons à la configuration.
Notez que nous ne parlerons que de la première manière de procéder, à savoir avec deux VMKernel Ports sur deu vSwitches différents.
Pour configurer le "Network Port Bindings", cliquer sur un ESXi puis sur "Configurer" et sur "Adaptateur de stockage".
Selectionner l'initiateur iSCSI puis dans les différents menu visible en bas, cliquer sur "Liaison de port réseau".
Par défaut il n'y a aucune configuration.
Pour commencer à mettre en place la configuration, cliquyer sur "Ajouter"
Un pop-up va alors apparaître.
Dans ce pop-up nous allons retrouver la liste des vSwitches, des VMKernel Ports et des ports physiques de notre ESXi.
Attention je rappel que l'environnement sur lequel je fais cette documentation n'est pas relié à plusieurs switches physiques, d'où la présence d'un seul exemplaire de chaque.
Imaginons que nous ayons donc plusieurs vSwitches, plusieurs VMKernel Ports avec des ports physiques reliés sur plusieurs switches.
Dans ce cas notre liste en présenterai plusieurs.
Ce que nous allons pouvoir faire ici c'est cocher la case correspondante aux VMKernel Ports depuis lesquels le trafic sera acheminé vers notre baie de stockage iSCSI puis valider par "OK"
Ce qui est important ici c'est que chacun des VMKernel Ports soit associé à un vSwitch dont le port physique de l'ESXi est connecté sur un switch physique différent permettant pour chacun d'entre eux de contacter la baie de stockage iSCSI. Avec ou sans routage mais si on peut se passer de routage c'est tout aussi bien.
Idéalement, notre ESXi possède un VMKernel Port sur un vSwitch. Ce vSwitch est associé à un port physique de l'ESXi qui lui même est connecté sur un switch physique relié en direct à la baie de stockage iSCSI.
Dans mon cas, dans ce LAB, je n'ai rien configuré en double mais imaginons que j'ai un second switch physique sur lequel serait connecté mon infrastructure physique.
Ce qu'il me faudrait faire c'est créer un second vSwitch sur les ESXi virtualisés puis un second VMKernel Port pour le stockage. Ce second vSwitch devrait être associé à un des ports physiques de mon infrastructure qui serait connecté sur le second switch.
De cette manière, je disposerai de redondance et de load balancing. J'aurai alors plusieurs choix possible dans le screen ci-dessus et je pourrai donc tous les sélectionner pour faire du "Network Port Bindings".
Voici ce à quoi est dédiée la section "Liaison de port réseau" (Network Port Bindings en Anglais).
Pour mettre en place du Network Port Bindings et du Multipathing nous allons également avoir besoin de faire une petite modification directement sur nos Datastore.
Revenons sur les Datastores que l'on a créé précédemment en cliquant sur le stockage, puis sur le Datastore que l'on va modifier puis sur "Configurer" et en fin en cliquant sur "Connectivité et chemins multiples"
Ici nous pouvons voir le ou les ESXi sur lesquels le Datastore est actuellement monté.
Si l'on sélectionne un des ESXi, dans la partie du bas nous pourrons voir la configuration du Datastore et la manière dont l'ESXi va accéder au Datastore.
Nous retrouverons donc le LUN utilisé pour créer le Datastore mais également la "Stratégie de sélection du chemin" qui est l'élément qui va nous intéresser ici.
Il s'agit du "plugin Multipathing" dont nous avons parlé précédemment.
Si l'on regarde bien cette stratégie est configurée comme étant "Fixe" ce qui signifie que pour l'instant un seul port physique est utilisé pour acheminer le trafic vers la baie de stockage.
Pour modifier cette stratégie il faudra cliquer sur "Actions" puis sur "Modifier la gestion .."
Un pop-up va apparaître permettant de modifier le type de stratégie.
Cliquer sur le menu déroulant pour définir la stratégie de sélection du chemin que l'on souhaite mettre en place pour cet ESXi et ce Datastore.
Nous avons plusieurs choix possible :
Notez que ces stratégies de Multipathing sont directement intégrées dans les ESXi.
Notre objectif étant de configurer du "Multipathing" pour permettre au trafic de stockage de passer par différents ports physiques tout en ayant de la redondance en plus d'un équilibrage de charge, nous allons sélectionner "Round-Robin" puis valider en cliquant sur "OK".
Une fois validé nous pouvons constater que la stratégie a été définie sur "Round-Robin".
Cette configuration sera à effectuer sur chacun des Datastores et des ESXi sur lesquels nous voulons mettre en place du "Network Port Bindings et Multipathing".
Avant de mettre tout ça en production je vous invite à tester dans un LAB.
De plus il est très important de consulter la documentation de votre baie de stockage afin de déterminer quelle serai la meilleur stratégie à utiliser.
En effet certains fournisseurs de stockage disposent de leurs propres politiques de "Multipathing" que nous pouvons par la suite intégrer et utiliser ici.
Chapitre précédent : 7 - Création d'un Datastore VMFS : Démonstration - Chapitre suivant : 9 - Augmenter un datastore VMFS : Démonstration