NFS ou iSCSI pour accéder aux données des machines virtuelles
NFS ou iSCSI : quel protocole choisir pour le stockage des fichiers des VMs VMware ? Cette question se pose généralement lorsque vous devez configurer un stockage partagé pour héberger des VMs devant être migrées entre des hôtes VMware ESXi, notamment pour utiliser fonctionnalités de regroupement, et lorsqu’il n’y a plus d’emplacements libres pour connecter des disques physiques au serveur.
Les entreprises qui effectuent le déploiement de VMware vSphere dans un grand centre de données préfèrent utiliser Fibre Channel (FC) ou Fibre Channel over Ethernet (FCoE), qui sont coûteux. Cependant, les protocoles NFS et iSCSI présentent un intérêt certain pour les centres de données de petite et moyenne taille hébergeant une infrastructure VMware vSphere, car le matériel nécessaire à la configuration du partage de fichiers avec ces protocoles est plus abordable. Cet article de blog compare NFS et iSCSI en mettant l’accent sur leur utilisation dans une infrastructure virtuelle VMware vSphere.
Qu’est-ce que le NFS ?
Le Network File System (NFS) est un protocole réseau qui permet de partager des fichiers stockés sur un disque ou une baie de disques d’un serveur avec d’autres ordinateurs du réseau. Le NFS a été développé par SUN Microsystems et sa première version a été présentée en 1984. À la date de rédaction de cet article, la dernière implémentation du NFS est la version 4.1. La version 4.2 est en cours de développement et n’a pas encore été mise à disposition pour une utilisation en production.
De nouvelles fonctionnalités et améliorations ont été ajoutées à chaque nouvelle version de NFS, notamment des fonctionnalités utiles pour le stockage en virtualisation. NFS v4.1 fournit un mécanisme permettant à plusieurs utilisateurs de partager le même fichier et d’assurer la cohérence des données (accès parallèle). Les opérations multi-threads sont prises en charge.
NFS est le protocole qui opère au niveau de la couche application du modèle OSI (Open Systems Interconnect). Les clients accèdent aux fichiers en envoyant des requêtes d’appel de procédure à distance (RPC) à un serveur NFS afin d’effectuer des opérations sur les fichiers et les répertoires présents sur ce serveur.
Les requêtes RPC sont transmises au protocole XDR (eXternal Data Representation), qui opère au niveau de la couche de présentation et constitue la norme en matière d’abstraction des données entre les plateformes. XDR décrit la forme unifiée et canonique de représentation des données, indépendante de l’architecture du système informatique. Lorsqu’un client transmet des données, le client RPC transforme les données locales en une forme canonique, et le serveur effectue l’opération inverse.
Une fois l’unification des données terminée, le service RPC côté client assure la requête des procédures à distance et leur exécution sur le serveur (en fournissant les fonctionnalités de la couche Session). À ce stade, l’explication des couches spécifiques au NFS est terminée. Ensuite, les données sont encapsulées dans des unités de données TCP ou UDP standard et transférées vers les couches sous-jacentes du modèle OSI.
| Couches OSI | Protocoles |
| Application | NFS |
| Présentation | XDR |
| Session | RPC |
| Transport | TCP |
| Réseau | IP |
| Liaison de données | Ethernet |
| Physique | – |
Le NFS partage les données au niveau des fichiers . Des cartes réseau standard dotées d’une interface Ethernet et d’un port RJ-45 peuvent être utilisées pour mettre en œuvre un stockage partagé NFS. Les versions les plus anciennes de NFS fonctionnent sur UDP via le réseau IP, tandis que les versions plus récentes (NFS v2 et v3) peuvent fonctionner sur TCP et UDP. Les versions NFS 4.0 et 4.1 utilisent TCP sur IPv4 par défaut. NFS v4 fonctionne à travers les pare-feu et via Internet.
VMware vSphere ESXi 6.0 et les versions supérieures d’ESXi prennent en charge NFS 3.0 et NFS 4.1. ESXi contient un client NFS qui se connecte à un serveur NFS via TCP/IP. Deux clients NFS distincts sont utilisés pour la connexion via les versions 3.0 et 4.1 de NFS. Vous pouvez choisir la version de NFS à utiliser lors de la création d’un nouveau magasin de données NFS. VMware ne prend pas en charge les fonctionnalités suivantes lorsque la version 4.1 de NFS est utilisée :
- Stockage DRS
- Contrôle des E/S de stockage
- Site Recovery Manager
L’utilisation de datastores NFS est pratique pour stocker des modèles de machines virtuelles et des images ISO destinées à l’installation de systèmes d’exploitation sur des machines virtuelles.
Qu’est-ce que l’iSCSI ?
L’Internet Small Computer Interface (iSCSI) est un protocole réseau qui assure l’interaction entre des entités (initiateurs et cibles) au sein du réseau pour le partage de données. Un initiateur iSCSI est configuré côté client et la cible iSCSI est configurée côté serveur.
Les initiateurs iSCSI peuvent être logiciels ou matériels. Les initiateurs matériels permettent de soulager le processeur (CPU) de la machine cliente et nécessitent l’installation d’un adaptateur de bus hôte (HBA) matériel. Un HBA iSCSI matériel est un contrôleur d’interface réseau (NIC) doté d’une interface Ethernet. Dans cette comparaison entre iSCSI et NFS, je me concentre sur l’utilisation d’initiateurs iSCSI logiciels. Le protocole iSCSI a été introduit en 2003 et est décrit dans la RFC 3720.
iSCSI est un protocole de couche de session (fonctionnant à la couche 5 du modèle OSI) qui s’exécute au-dessus de la pile TCP/IP. Les données sont partagées au niveau des blocs , contrairement au NFS mais à l’instar du FC. Il s’agit là d’un point important dans la comparaison entre iSCSI et NFS. Les commandes SCSI sont encapsulées dans des unités de données TCP/IP et transférées via des réseaux Ethernet standard. Par conséquent, un ordinateur peut envoyer des commandes SCSI à des périphériques de stockage en blocs situés sur un autre ordinateur par le biais d’un réseau.
| Couches | Description |
| Applications | Système de fichiers, base de données, etc. |
| SCSI | Données SCSI, commandes SCSI, statuts SCSI |
| iSCSI | Services du protocole iSCSI, nom qualifié iSCSI (IQN), service de noms de stockage Internet (iSNS), authentification CHAP, etc. |
| TCP | Protocole doté d’un mécanisme de contrôle des erreurs (fonctionne généralement au sein d’une pile TCP/IP) |
| IP | Protocole de communication réseau et de routage |
| Ethernet | Commutateurs, câbles, ports (connecteurs), protocoles |
Remarque : Il existe un fait intéressant concernant l’utilisation d’iSCSI pour Récupération des machines virtuelles VMware. Lorsque vous utilisez Instant VM Recovery dans NAKIVO Backup & Replication, par exemple, pour exécuter une machine virtuelle sur un hôte ESXi directement à partir d’une sauvegarde, la machine virtuelle est créée sur l’hôte ESXi sélectionné et les disques virtuels sont montés sur la machine virtuelle par le protocole iSCSI en tant que disques RDM en mode de compatibilité virtuelle.
VMware NFS vs iSCSI – Différences clés
Les protocoles NFS et iSCSI peuvent tous deux fonctionner sur des réseaux Ethernet 1 gigabit et 10 gigabits (1GbE et 10GbE) lors du déploiement par câbles en cuivre. Une vitesse de réseau plus élevée est préférable. Pour en savoir plus, consultez topologies de réseau. Lorsque vous utilisez un magasin de données partagé dans VMware vSphere pour stocker des fichiers de machines virtuelles, les deux implémentations (NFS et iSCSI) peuvent être utilisées pour la migration à chaud des machines virtuelles, l’équilibrage de charge et la migration des machines virtuelles entre magasins de données. Ces deux protocoles de partage génèrent une surcharge importante due au mécanisme d’encapsulation multicouche des données sur les réseaux TCP/IP.
Le protocole NFS est pris en charge par les appliances NAS de la plupart des fournisseurs, par exemple Synology et QNAP. Cependant, il n’est pas difficile aujourd’hui de choisir un NAS avec la prise en charge de iSCSI.
Examinons plus en détail cette comparaison entre NFS et iSCSI pour VMware.
Équilibrage de charge
Lorsqu’un chemin réseau tombe en panne ou est surchargé, le multipathing permet d’équilibrer la charge entre un serveur et le stockage s’il existe plusieurs chemins.
NFS 4.1 prend en charge le multipathing si le trunking de session est disponible sur les serveurs (mais pas le trunking par ID client). Vous pouvez ainsi accéder à un même volume NFS à partir de plusieurs adresses IP. Si vous utilisez NFS v3, utilisez le round-robin DNS pour l’équilibrage de charge réseau.
Dans VMware vSphere, le multipathing iSCSI fonctionne au niveau d’une carte réseau VMkernel. Pour l’équilibrage de charge iSCSI dans vSphere, vous pouvez utiliser la liaison de ports.
Mise en cache
Lors de l’utilisation du protocole NFS, un système de fichiers doté d’un cache se trouve sur un serveur NFS et une machine cliente doit vérifier régulièrement les métadonnées sur ce serveur. Les écritures asynchrones de données sont prises en charge par les versions 3 et 4 du protocole NFS, mais les mises à jour des métadonnées sont synchrones.
Lors de l’utilisation d’iSCSI, un système de fichiers est créé par le périphérique client après avoir accédé au stockage partagé au niveau des blocs (comme pour VMware vSphere, où un hôte VMware ESXi crée le système de fichiers VMFS sur un LUN iSCSI). Une politique de mise en cache est définie par le système de fichiers pour le stockage partagé iSCSI et le cache du système de fichiers se trouve côté client. Par exemple, si vous utilisez iSCSI comme protocole de partage et ext3 comme système de fichiers, vous disposez d’un cache « write-back » complet pour les mises à jour des données et des métadonnées.
Les systèmes de fichiers les plus modernes utilisent une mise à jour asynchrone des métadonnées et un journalisation basée sur un journal pour la récupération des données. En général, la mise à jour asynchrone des données (utilisée dans iSCSI) est moins fiable en termes de persistance des données et des métadonnées que la mise à jour synchrone, telle que celle utilisée dans NFS.
Fiabilité
NFS . Le regroupement de cartes réseau (NIC teaming) peut être utilisé pour se prémunir contre les pannes réseau. Si une carte réseau tombe en panne, une autre peut continuer à fonctionner.
iSCSI . L’architecture de stockage enfichable (PSA) de VMware utilise le plugin « Storage Array Type » pour la mise en œuvre du basculement lors de l’utilisation de baies iSCSI. La liaison iSCSI nécessite de mapper plusieurs cibles iSCSI situées sur différents sous-réseaux à l’initiateur iSCSI.
Comme iSCSI et NFS utilisent tous deux le protocole TCP pour l’encapsulation, la transmission des données est vérifiée au niveau du réseau.
Le système de fichiers VMFS sur le stockage iSCSI peut s’avérer fragile si vous stockez à allocation dynamique des disques virtuels pour des VMs. Une coupure de courant peut rendre un volume irrécupérable. Le comportement des magasins de données NFS dans de telles situations est légèrement plus fiable. Vous pouvez atténuer ces problèmes en effectuant régulièrement Sauvegardes VMware.
Sécurité
Le trafic iSCSI n’est généralement pas chiffré, mais cela ne signifie pas que vous ne pouvez pas le protéger. L’authentification par nom et mot de passe est prise en charge pour les partages iSCSI. Le protocole CHAP (Challenge Handshake Authentication Protocol) permet au serveur et au client de s’assurer qu’ils se font mutuellement confiance.
NFS utilise une authentification basée sur l’hôte. La configuration par défaut de NFS ne prévoit pas de chiffrement (sys=system), mais lorsque vous utilisez NFSv4 avec Kerberos activé (sec=krb5p), la connexion est sécurisée. Dans la configuration du serveur NFS, vous devez définir l’adresse IP de l’hôte autorisé à accéder au partage NFS. Vous pouvez également définir plusieurs hôtes ou l’ensemble du sous-réseau. Par exemple, le protocole de partage de fichiers SMB, très répandu, repose sur une authentification basée sur l’utilisateur.
La configuration d’un VLAN dédié ou l’utilisation d’un réseau physique distinct (privé) est la pratique recommandée pour l’utilisation d’un stockage iSCSI et NFS partagé dans VMware vSphere. Cette approche vous permet d’isoler le trafic de stockage des autres types de trafic. NFS v3 ne dispose pas de fonctionnalités de sécurité similaires à celles de NFS v4.1. Un serveur ESXi monte un partage NFS avec un accès root (lorsque Kerberos n’est pas utilisé). Gardez donc cela à l’esprit lorsque vous effectuez une configuration sécurisée. Consultez également VLAN et VXLAN.
NFS v4.1 prend en charge l’authentification Kerberos avec des mécanismes de chiffrement en plus de la norme DES (Data Encryption Standard). Les algorithmes cryptographiques de Kerberos empêchent les utilisateurs non autorisés d’accéder au trafic NFS. ESXi prend en charge les implémentations krb5 et krb5i de Kerberos. ESXi 7.0 prend en charge le chiffrement Kerberos NFS 4.1 et le mécanisme de sécurité AUTH_SYS (mais pas simultanément).
VMware NFS vs iSCSI – Mappage de périphérique brut (Raw Device Mapping)
Lorsque vous utilisez iSCSI comme stockage partagé, vous pouvez configurer le mappage de périphérique brut pour une machine virtuelle. Le mappage de périphérique brut (RDM) est une fonctionnalité qui vous permet de connecter directement l’intégralité du disque physique ou du LUN iSCSI à une machine virtuelle en tant que périphérique (au lieu de connecter un disque virtuel dans la configuration de la machine virtuelle). L’approche basée sur le RDM diffère de l’approche traditionnelle qui consiste à créer un magasin de données sur un LUN (Logical Unit Number), à créer le système de fichiers VMFS, puis à stocker les disques virtuels utilisés par les VMs sur ce magasin de données. Le RDM est possible avec iSCSI, car un partage iSCSI fonctionne au niveau des blocs, et une machine virtuelle peut formater un disque RDM de type bloc connecté avec un système de fichiers personnalisé utilisé par un système d’exploitation invité installé sur la machine virtuelle.
En ce qui concerne NFS, l’utilisation d’un partage NFS pour le connecter en tant que disque RDM n’est pas prise en charge, car les partages NFS fonctionnent au niveau des fichiers, alors que le RDM nécessite que des périphériques bloc soient connectés aux VMs. Avec les partages NFS, vous pouvez uniquement créer des magasins de données NFS et y stocker des fichiers de disques virtuels VMDK. Vous pouvez monter un partage NFS et un partage iSCSI au niveau d’un système d’exploitation invité si celui-ci dispose d’un client NFS ou d’un initiateur iSCSI. Ainsi, dans la catégorie du mappage de périphériques bruts de la comparaison VMware iSCSI vs NFS, le gagnant est l’iSCSI.
Performances iSCSI vs NFS
Dans une implémentation logicielle iSCSI, les performances sont légèrement supérieures, mais la charge du processeur sur l’hôte client est également plus élevée. L’iSCSI impose également une charge plus importante au réseau.
Le protocole iSCSI génère davantage de trafic et de charge réseau, tandis que l’utilisation de NFS est plus fluide et plus prévisible. Lorsqu’un grand nombre d’opérations d’écriture est effectué, vous pouvez constater une baisse des performances avec un partage NFS.
Lorsque vous utilisez NFS dans vSphere, il est préférable d’utiliser une version de NFS avec la prise en charge de l’API vStorage pour l’intégration des baies (VAAI) côté stockage. VAAI vous permet de créer des disques virtuels à allocation pleine sur des magasins de données NFS. Par défaut, les disques à provisionnement fin sont créés sur les magasins de données NFS. NFS et iSCSI prennent tous deux en charge les trames Jumbo pour améliorer les performances réseau.
À l’issue de cette comparaison de vitesse entre iSCSI et NFS, il convient de mentionner que les performances dépendent également du fournisseur de la baie de stockage.
Accès simultané
iSCSI ne prend pas en charge l’accès simultané ou parallèle aux données d’un périphérique bloc. Les données doivent être partagées entre deux sauts. Cependant, l’accès parallèle est autorisé au niveau d’un système de fichiers prenant en charge l’accès parallèle aux fichiers, par exemple VMFS ou GFS. Lors de l’utilisation de partages iSCSI dans VMware vSphere, l’accès simultané aux partages est assuré au niveau VMFS.
NFS prend en charge l’accès simultané aux fichiers partagés à l’aide d’un mécanisme de verrouillage et d’un mécanisme de cohérence « close-to-open » afin d’éviter les conflits et de préserver la cohérence des données. NFS v3 et NFS v4.1 utilisent des mécanismes différents. NFS v3 peut utiliser le protocole Network Lock Manager (NLM), tandis que NFS v4.1 utilise un verrouillage spécifié par le protocole natif. Si NFS v3 est utilisé sur VMware ESXi pour accéder à des partages de fichiers, ESXi n’utilise pas le protocole NLM car VMware fournit son propre protocole de verrouillage dans ce cas. Les fichiers de verrouillage nommés . lck-file_idxml-ph-0006@deepl.internonsont créés sur un partage de fichiers lors de l’utilisation de partages NFS v3 dans VMware vSphere.
NFS v4.1 utilise des réservations pour verrouiller les fichiers en vue d’un accès simultané. Si vous créez un partage de fichiers NFS, tous les clients doivent utiliser la même version du protocole NFS (tous les hôtes ESXi se connectent au partage via NFS v.4.1, par exemple). Si deux clients incompatibles utilisent des versions différentes de NFS pour accéder à des fichiers sur un serveur NFS, cela peut entraîner un comportement incohérent et une corruption des données.
Difficulté de configuration
Lors de l’utilisation de NFS, il est plus facile de configurer un serveur et un client. La configuration d’un stockage partagé via iSCSI est plus complexe. Vous devez configurer les IQN pour le stockage et les hôtes ; définir la configuration du service iSCSI, des LUN et du masquage ; et configurer plusieurs VLAN pour des raisons de sécurité (en isolant les segments de réseau utilisés pour la communication iSCSI afin d’assurer un niveau de sécurité plus élevé). Découvrez le site Volumes virtuels VMware , qui permet de stocker des données de machines virtuelles.
NFS vs iSCSI dans VMware vSphere – Tableau récapitulatif
Mettons en évidence les principales fonctionnalités de chaque protocole de partage de données dans ce comparatif iSCSI vs NFS pour VMware, présenté sous forme de tableau récapitulatif.
| iSCSI | NFS | |
| Partage de données | Au niveau des blocs | Au niveau des fichiers |
| Mappage de périphériques bruts pour les VMs | Oui | Non |
| Difficulté de configuration | Moyenne | Facile |
| Amorçage à partir du SAN | Oui | Non |
| Vérification des erreurs | Oui | Oui |
| Fonctionnalités de sécurité | CHAP | Kerberos |
| Storage vMotion | Oui | Oui |
| Storage DRS | Oui | Oui |
Conclusion
Ces deux protocoles de partage sont suffisamment aboutis pour être utilisés dans VMware vSphere. La principale différence entre iSCSI et NFS réside dans le fait qu’iSCSI partage les données au niveau des blocs, tandis que NFS les partage au niveau des fichiers. Les performances sont pratiquement identiques, mais, dans certaines situations, iSCSI peut offrir de meilleurs résultats. Les disques RDM pour VMs peuvent être utilisés avec iSCSI, mais pas avec NFS.
Ces deux protocoles de partage réseau sont fiables. Cependant, vous devez tout de même recourir à une solution tierce de protection des données pour éviter toute perte de données et tout temps d’arrêt. Évitez les coupures de courant et autres pannes matérielles afin de prévenir toute perte de données sur votre stockage partagé. Utilisez des onduleurs et effectuez régulièrement des sauvegardes.