Dans cette documentation, nous allons découvrir les différences entre le stockage utilisant le système de fichiers VMFS et celui utilisant le système de fichiers NFS tout en comparant ces deux technologies.
Commençons par le système de fichiers de type VMFS.
Imaginons que nous déployons une baie de stockage iSCSI et que nous reprenions le schéma du chapitre précédent.
iSCSI n'est qu'une des options possibles que nous pourrions choisir parmi Fibre Channel, Fibre Channel sur Ethernet ou des disques locaux.
Chacune de ces technologies permettra de créer des banques de données de type VMFS sur nos hôtes ESXi.
Maintenant que nous avons une vue d'ensemble du schéma, concentrons nous sur la partie stockage iSCI et regardons la plus en détails.
Nous avons ici des switches Ethernet qui seront utilisés par nos hôtes ESXi pour communiquer avec la baie de stockage iSCSI.
Avoir un réseau Ethernet un prérequis pour utiliser une baie de stockage iSCSI.
Nous aurons donc toujours besoin de switches Ethernet pour permettre la communication entre la baie et les ESXi.
Sur la baie elle-même nous aurons obligatoirement ce que l'on appel des "storage processor (SP)".
Ils sont essentiellement les cerveaux des opérations et constituent également l’interface que nous utiliserons pour communiquer avec la baie de stockage.
Ensuite dans la baie elle-même nous avons évidemment des disques.
Il peut s'agir de disques mécaniques à 7200 rpm, des disques SAS à 15k rpm ou même des ssd, peu importe du moment qu'il s'agit de disques physiques.
Quel que soit le type de disque utilisé, la capacité de stockage de ces disques est regroupée sous forme d'agrégat.
Pour faire simple, ça signifie que nous prendrons l'espace de stockage disponible des différents disques pour en faire un seul.
Pour le faire nous utiliserons une technologie appelée "RAID", comme par exemple du RAID5 ou du RAID6 ou RAID10 ou encore d'autres types de RAID selon les besoins.
Concraitement cela va permettre de combiner tous ces périphériques de stockage et de les faire apparaître comme s'il s'agissait d'un gros périphérique de stockage mais qui lui sera virtuel.
C'est ça que l'on appel un agrégat et cela permettra entre autres de pouvoir gérer plus facilement les pannes de disques physiques ou la capacité de stockage.
Ainsi lorsque l'on aura créé un agrégat il sera alors possible d'accéder à cet espace de stockage global pour le diviser en espaces de stockage plus petits appelés des LUNs ( pour Logical Unit Numbers). Chacun des LUNs faisant la taille que l'on choisira de configurer.
Par exemple nous pourrions avoir une capacité totale de 10To dans un agrégat et décider de le découper en plusieurs LUNs de 2To et/ou de 500Go si l'on souhaite, tout en gardant le reste du stockage non utilisé pour plus tard par exemple pour les agrandir ou pour en créer d'autres.
Lorsqu'un LUN est créé, il ne représente rien d'autre que du stockage brut et non formaté et c'est ici la plus grosse différences entre du stockage de type VMFS et NFS.
La baie de stockage ne formatera pas l'espace de stockage pour nous, le stockage qu'elle présentera sera l'équivalant d'un gros disque virtuel fraichement sorti de sa boite avec une capacité brute 100% non formatée.
Ainsi avec un stockage de type VMFS ce qu'il va falloir faire maintenant c'est "découvrir la cible" qui représente ce stockage.
D'une manière ou d'une autre notre ESXi doit se renseigner sur les banques de données disponibles.
Ce que nous allons donc faire à présent c'est configurer un iSCSI Target.
Cet iSCSI Target va pointer vers l'adresse IP de notre baie de stockage iSCSI (via l'IP d'un des SP)
Cela permettra à l'ESXi d'émettre ce que l'on appelle une requête "SendTargets request" directement à la baie de stockage.
Cette requête va permettre à l'ESXi de demander à la baie de lister l'ensemble des LUNs dont elle dispose
Lorsque la baie recevra cette requête, elle répondra via un "SendTargets response" pour annoncer la liste des LUNs dont elle dispose.
De cette façon un ESXi pourra obtenir une liste complète de l'ensemble des LUNs disponibles sur la baie de stockage et il pourra formater les LUNs avec le système de fichier VMFS.
J'insiste mais il s'agit ici de la plus grande différence entre VMFS et NFS.
Un ESXi va se "renseigner" sur l'existance de LUNs disponibles, atteindre le périphérique de stockage à travers le réseau Ethernet puis formater un ou plusieur LUNs avec le système de fichiers VMFS.
Le résultat final est qu'un volume qui a été formaté par un ESXi est un volume qui "appartient" à un ESXi.
C'est donc un volume à partir duquel un ESXi peut démarrer.
Ainsi si nous voulions démarrer un ESXi qui ne possède pas de stockage local nous pourrions le faire. Nous pourrions configurer l'ESXi pour qu'il obtienne une adresse IP et données de configuration depuis un serveur DHCP et utiliser ces informations pour accéder directement à la baie de stockage iSCSI pour récupérer une image de démarrage à partir du LUN et démarrer.
Ceci n'est pas possible avec NFS.
Démarrer depuis un réseau SAN n'est possible qu'en utilisant le système de fichiers VMFS.
Passons à présent au système de fichiers de type NFS.
NFS est très différent de VMFS.
Les hôtes ESXi ne peuvent pas démarrer depuis un système de fichiers de type NFS puisqu'ils n'en sont pas propriétaires. C'est le périphérique de stockage actuel qui en est propriétaire.
Donc si depuis un ESXi je créé une banque de données ciblant un périphérique ayant un système de fichiers de type NFS, ce que l'ESXi va faire c'est tout simplement créer un répertoire partagé à l'intérieur de ce système de fichiers.
Il n'y a aucun formatage effectué par l'ESXi puisque le système de fichiers de type NFS a été précédemment configuré par le périphérique de stockage.
L'ESXi sera donc simplement autorisé à consommer la capacité de stockage mis à disposition par le périphérique de stockage NFS pour y créer un dossier partagé.
Encore une fois j'insiste, un ESXi ne pourra pas démarrer depuis un partage NFS et il ne le formatera pas.
Le système de fichiers est détenu et exploité à 100% par le serveur NFS.
On peut simplement voir ça comme étant la création de fichiers dans un dossier partagé.
Ces différences sont très importantes.
Une autre fonctionnalité qui ne sera pas prise en charge avec un système de fichiers de type NFS est le mappage de périphériques de stockage physique dans une VM.
En effet si l'on souhaite donner un accès direct au stockage physique sur une VM, cette fonctionnalité ne sera pas possible avec du NFS.
Nous l'avons vu précédemment, c'est possible via l'utilisation de LUNs mais pas avec du NFS.
On ne pourra le faire qu'avec du Fibre Channel, Fibre Channel sur Ethernet, ou des disques physiques locaux.
Regardons à présent comment notre ESXi se connecte réellement à une banque de données sur un système de fichiers de type NFS.
Pour rappel et nous l'avons vu précédemment, le système d'exploitation de la VM ne sais pas que tout est virtualisé.
Il verra un contrôleur SCSI et n'a aucune idée qu'il s'agit d'un contrôleur virtuel.
Donc chacune de nos VM possèdera un driver avec un contrôleur SCSI viruel et lorsque cette machine virtuelle émettra des commandes SCSI, ces commandes iront vers ce que l'on appelle un Storage Adapter (adaptateur de stockage) dans l'hôte ESXi.
Ce Storage Adapter est associé à un switch virtuel.
Son but est de prendre les commandes SCSI brutes qui sont émises par le système d'exploitation et de les convertir dans un format pouvant transiter sur le réseau.
Donc le Storage Adapter prend les commandes SCSI brutes, les pérare à la transmission sur le réseau et les envoi au switch virtuel, qui dans mon exemple est lui même associé à deux ports physiques de l'ESXi.
Pour effectuer la transmission vers le réseau physique, nous allons utiliser ce que l'on appelle un VMKernel Port dans notre switch virtuel.
Je l'ai dis tout à l'heure, le Storage Adapter est lié au switch virtuel. Pour être plus précis il est en réalité lié au VMKernel port du switch virtuel.
Le but du VMKernel port sera de recevoir de la part du Storage Adapter les commandes SCSI au format NFS puis de les transmettre sur l'un des ports physiques de l'hôte ESXi pour que le trafic de la VM puisse passer sur le réseau phyisique.
Le VMKernel Port va donc simplement recevoir les commandes de stockage au format NFS puis les transmettre sur le réseau physique.
Ces commandes de stockage au format NFS ont une adresse IP de destination.
Cette adresse IP correspond au serveur NFS et cette adresse IP sera donc à configurer dans nos hôtes ESXi pour leur permettre d'accéder au partage et de créer un Datastore.
Encore une fois, le Datastore est donc un dossier partagé sur un serveur NFS.
VMFS :
NFS :
Chapitre précédent : 1- Présentation et concept de différents stockage - Chapitre suivant : 3- NFS 3 et NFS 4.1