NFS vs iSCSI pour accéder aux données de la VM

NFS contre iSCSI – quel protocole devriez-vous choisir pour stocker les fichiers VM VMware ? Cette question se pose généralement lorsque vous devez configurer un stockage partagé pour stocker des machines virtuelles (VM) qui doivent être migrées entre les hôtes ESXi, pour utiliser des fonctionnalités de clustering, et lorsqu’il n’y a pas de slots gratuits pour attacher des disques physiques au serveur.

Les organisations déployant 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, NFS et iSCSI sont attrayants pour les centres de données de taille petite et moyenne utilisés pour l’infrastructure VMware vSphere car le matériel nécessaire pour configurer le partage de fichiers avec ces protocoles de partage est plus abordable. Cet article de blog compare NFS vs iSCSI en se concentrant sur leur utilisation dans une infrastructure virtuelle VMware vSphere.

Qu’est-ce que NFS ?

Network File System (NFS) est un protocole réseau qui vous permet de partager des fichiers stockés sur un disque ou un tableau de disques d’un serveur avec d’autres ordinateurs du réseau. NFS a été développé par SUN Microsystems et la première version a été présentée en 1984. Au moment de la rédaction de cet article, la dernière implémentation de NFS est la version 4.1. La version 4.2 est en développement et n’a pas encore été présentée pour une utilisation en production.

De nouvelles fonctionnalités et améliorations ont été ajoutées à chaque nouvelle version de NFS, y compris des fonctionnalités utiles pour le stockage de la virtualisation. NFS v4.1 fournit un mécanisme permettant à plusieurs utilisateurs de partager le même fichier et de garantir la cohérence des données (accès parallèle). Les opérations à plusieurs threads sont prises en charge.

NFS est le protocole qui fonctionne à la couche application du modèle d’Interconnexion des Systèmes Ouverts (OSI). Les clients accèdent aux fichiers en envoyant des requêtes de procédure distante (RPC) à un serveur NFS pour effectuer des opérations avec des fichiers et des répertoires sur le serveur NFS.

Les requêtes RPC sont transmises au protocole XDR (eXternal Data Representation) qui fonctionne à la couche de présentation et est la norme pour l’abstraction des données entre les plates-formes. XDR décrit la forme canonique et unifiée de représentation des données qui ne dépend pas 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 demande de procédures distantes et leur exécution sur le serveur (offrant des fonctionnalités de la couche Session). À ce stade, l’explication des couches spécifiques NFS est terminée. Ensuite, les données sont encapsulées dans des unités de données standard TCP ou UDP et sont transférées aux couches inférieures 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

Les partages NFS partagent des données au niveau des fichiers. Des adaptateurs réseau standard avec une interface Ethernet et un port RJ-45 peuvent être utilisés pour mettre en œuvre le stockage partagé NFS.

Les anciennes versions de NFS fonctionnent via UDP à travers le réseau IP, et les nouvelles versions (NFS v2 et v3) peuvent fonctionner via TCP et UDP. NFS 4.0 et 4.1 utilisent TCP sur IPv4 comme standard. 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 intégré qui se connecte à un serveur NFS via TCP/IP. Deux clients NFS différents sont utilisés pour se connecter via les versions NFS 3.0 et 4.1. Vous pouvez sélectionner la version NFS à utiliser lors de la création d’un nouveau datastore NFS. VMware ne prend pas en charge les fonctionnalités suivantes lors de l’utilisation de NFS v.4.1 :

  • Storage DRS
  • Storage I/O Control
  • Site Recovery Manager

L’utilisation de datastores NFS est pratique pour stocker des modèles de machines virtuelles et des images ISO pour l’installation de systèmes d’exploitation sur des machines virtuelles.

Qu’est-ce que iSCSI?

Internet Small Computer Interface (iSCSI) est un protocole réseau qui garantit l’interaction d’objets (initiateurs et cibles) dans le réseau pour partager des données. Un initiateur iSCSI est configuré du côté client et la cible iSCSI est configurée du côté serveur.

Les initiateurs iSCSI peuvent être basés sur des logiciels ou sur du matériel. Les initiateurs basés sur du matériel aident à décharger l’unité centrale de traitement (CPU ou processeur) 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 une carte réseau (NIC) avec une interface Ethernet. Dans cette comparaison iSCSI vs NFS, je considère l’utilisation d’initiateurs iSCSI basés sur des logiciels. iSCSI a été introduit en 2003 et est décrit dans la RFC 3720.

iSCSI est le protocole de la couche de session (travaille à la couche 5 du modèle OSI) qui fonctionne par-dessus la pile TCP/IP. Les données sont partagées au niveau des blocs, contrairement à NFS mais de manière similaire à FC. C’est un point important dans la comparaison iSCSI vs NFS. Les commandes SCSI sont encapsulées dans des unités de données TCP/IP et sont transférées en utilisant des réseaux Ethernet standard. Par conséquent, un ordinateur peut envoyer des commandes SCSI à des dispositifs de stockage situés sur un autre ordinateur en utilisant un réseau.

Couches Description
Application Système de fichiers, base de données, etc.
SCSI Données SCSI, commandes SCSI, états SCSI
iSCSI Services de protocole iSCSI, Nom Qualifié iSCSI (IQN), Service de Nom de Stockage Internet (iSNS), authentification CHAP, etc.
TCP Un protocole avec un mécanisme de contrôle d’erreur (fonctionne généralement dans une pile TCP/IP)
IP Un protocole pour la communication et le routage réseau
Ethernet Commutateurs, câbles, ports (connecteurs), protocoles

Note: Il y a un fait intéressant sur la façon dont iSCSI peut être utilisé pour la récupération de machines virtuelles VMware. Lorsque vous utilisez la récupération instantanée de machine virtuelle 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 en utilisant le protocole iSCSI comme disques RDM en mode de compatibilité virtuelle.

Différences clés entre VMware NFS et iSCSI

Les deux NFS et iSCSI peuvent fonctionner dans des réseaux Ethernet de 1 gigabit et 10 gigabits (1GbE et 10GbE) déployés en utilisant des câbles en cuivre. Une vitesse de réseau plus élevée est meilleure. En savoir plus sur les topologies réseau. Lors de l’utilisation d’un datastore partagé dans VMware vSphere pour stocker des fichiers VM, les deux implémentations (NFS et iSCSI) peuvent être utilisées pour la migration en direct des VM, l’équilibrage de charge et la migration des VM entre les datastores. Les deux protocoles de partage ont une surcharge significative causée par le mécanisme d’encapsulation de données multi-niveaux sur les réseaux TCP/IP.

NFS est pris en charge sur la plupart des dispositifs NAS des fournisseurs, par exemple, Synology et QNAP. Cependant, il n’est pas difficile de sélectionner un NAS avec le support pour iSCSI de nos jours.

Examinons cette comparaison VMware NFS vs iSCSI plus en détail.

Équilibrage de charge

Lorsqu’un chemin réseau échoue ou est surchargé, le multipathage fournit la capacité d’équilibrer la charge entre un serveur et un stockage s’il existe plusieurs chemins.

NFS 4.1 prend en charge le multipathage si le tronc de session est disponible sur les serveurs (mais pas le tronc de l’identifiant client). Par conséquent, vous pouvez accéder à un seul 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 multipathage iSCSI fonctionne au niveau d’un adaptateur réseau VMkernel. Pour l’équilibrage de charge iSCSI dans vSphere, vous pouvez utiliser la liaison de port.Mise en cache

Mise en cache

Lors de l’utilisation de NFS, un système de fichiers avec cache de système de fichiers est situé sur un serveur NFS et une machine cliente doit vérifier régulièrement les métadonnées sur le serveur NFS. Les écritures de données asynchrones sont prises en charge par NFS v3 et v4 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ès au stockage partagé au niveau du bloc (comme pour VMware vSphere, un hôte ESXi crée le système de fichiers VMFS sur un LUN iSCSI). Une stratégie de mise en cache est définie par un système de fichiers pour le stockage partagé iSCSI et le cache du système de fichiers est situé du 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 complet en écriture différée pour les données et les mises à jour des métadonnées.

Les systèmes de fichiers les plus modernes utilisent une mise à jour asynchrone des métadonnées et un journal basé sur des journaux est utilisé 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 par rapport à une mise à jour synchrone, comme celle utilisée dans NFS.

Fiable

NFS. Le teaming de NIC peut être utilisé pour se protéger contre les défaillances réseau. Si une NIC échoue, une autre NIC peut continuer à fonctionner.

iSCSI. L’architecture de stockage enfichable VMware (PSA) utilise le plugin de type de tableau de stockage pour la mise en œuvre de la bascule en cas de travail avec des tableaux iSCSI. La liaison iSCSI nécessite le mappage de plusieurs cibles iSCSI sur différents sous-réseaux vers l’initiateur iSCSI.

Comme iSCSI et NFS utilisent tous deux TCP pour l’encapsulation, la livraison des données est vérifiée au niveau du réseau.

VMFS sur le stockage iSCSI peut être fragile si vous stockez des disques virtuels provisionnés de manière fine pour les VM. Une panne 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 si vous effectuez des sauvegardes VMware régulières.

La sécurité du trafic iSCSI n’est généralement pas cryptée, mais cela ne signifie pas que vous ne pouvez pas protéger le trafic iSCSI. L’utilisation d’un nom et d’un mot de passe est prise en charge pour l’authentification des partages iSCSI. Le protocole d’authentification par poignée de main de défi (CHAP) 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 fournit pas de cryptage (sys=système), mais lors de l’utilisation de 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 largement connu repose sur une authentification basée sur l’utilisateur.

Configurer un VLAN dédié ou utiliser un réseau physique séparé (privé) est la pratique recommandée pour utiliser un stockage partagé iSCSI et NFS 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 cela à l’esprit lors de la configuration sécurisée. Lisez également sur VLAN et VXLAN.

NFS v.4.1 prend en charge l’authentification Kerberos avec des mécanismes de cryptographie en plus du Standard de Chiffrement de Données (DES). Les algorithmes cryptographiques dans 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).

Comparaison VMware NFS vs iSCSI – Mappage de Périphérique Brut

Lorsque vous utilisez iSCSI comme stockage partagé, vous pouvez configurer le mappage de périphérique brut pour une VM. Le mappage de périphérique brut (RDM) est une fonctionnalité qui vous permet de joindre le disque physique entier ou la LUN iSCSI à une VM en tant que périphérique directement (au lieu de joindre un disque virtuel dans la configuration de la VM). L’approche basée sur RDM diffère de l’approche traditionnelle lorsque vous créez un datastore sur une LUN (Logical Unit Number), créez le système de fichiers VMFS et stockez les disques virtuels utilisés par les VM sur ce datastore. RDM est possible lors de l’utilisation d’iSCSI car un partage iSCSI fonctionne au niveau du bloc, et une VM peut formater un disque RDM de bloc attaché avec un système de fichiers personnalisé utilisé par un système d’exploitation invité installé sur la VM.

Quant à NFS, l’utilisation d’un partage NFS pour attacher en tant que disque RDM n’est pas prise en charge car les partages NFS fonctionnent au niveau du fichier, et RDM nécessite que des périphériques de bloc soient attachés aux VM. Avec les partages NFS, vous ne pouvez créer que des datastores NFS et stocker des fichiers de disque virtuel VMDK sur les datastores. Vous pouvez monter un partage NFS et un partage iSCSI au niveau d’un système d’exploitation invité si le système d’exploitation invité dispose d’un client NFS ou d’un initiateur iSCSI. Ainsi, dans la catégorie du mappage de périphérique brut dans la comparaison VMware iSCSI vs NFS, le gagnant est iSCSI.

Performances iSCSI vs NFS

Dans une implémentation logicielle d’iSCSI, les performances sont légèrement supérieures, mais la charge CPU sur l’hôte client est également plus élevée. iSCSI met également une charge réseau plus élevée. iSCSI génère plus de trafic réseau 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 sont effectuées, vous pouvez remarquer une dégradation des performances avec un partage NFS.

Lorsque vous utilisez NFS dans vSphere, il est préférable d’utiliser NFS avec le support de l’API de stockage pour l’intégration des tableaux (VAAI) du côté du stockage. VAAI vous permet de créer des disques virtuels épais provisionnés sur des datastores NFS. Des disques minces provisionnés sont créés par défaut sur des datastores NFS. NFS et iSCSI prennent en charge les trames Jumbo pour améliorer les performances réseau.

À la fin de cette comparaison de vitesse iSCSI vs NFS, il convient de mentionner que les performances dépendent également du fournisseur de baie de stockage.

Accès concurrent

iSCSI ne prend pas en charge l’accès concurrent ou parallèle aux données d’un périphérique de 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 qui prend 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 concurrent aux partages est assuré au niveau VMFS.

NFS prend en charge l’accès concurrent aux fichiers partagés en utilisant un mécanisme de verrouillage et un mécanisme de cohérence proche de l’ouverture pour éviter les conflits et 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), et NFS v4.1 utilise un verrouillage spécifié par protocole natif. Si NFS v3 est utilisé sur VMware ESXi pour accéder aux 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 portant le nom .fichier_verrouillé-id sont 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 afin d’un accès concurrentiel. 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 différentes versions de NFS pour accéder à des fichiers sur un serveur NFS, il peut y avoir 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. Utiliser iSCSI pour configurer un stockage partagé est plus difficile. Vous devez configurer les IQN pour le stockage et les hôtes ; effectuer une configuration du service iSCSI, des LUN et du masquage ; et configurer plusieurs VLAN pour des raisons de sécurité (isoler les segments réseau utilisés pour la communication iSCSI afin de fournir un niveau de sécurité plus élevé).

Lire à propos des volumes virtuels VMware qui peuvent être utilisés pour stocker les données des VM.

NFS vs iSCSI dans VMware vSphere – Tableau Récapitulatif

Mettons en évidence les principales caractéristiques de chaque protocole de partage de données dans cette comparaison VMware iSCSI vs NFS dans le tableau récapitulatif.

iSCSI NFS
Partage de données Niveau de bloc Niveau de fichier
Mapping de périphériques bruts pour les VM Oui Non
Difficulté de configuration Moyenne Facile
Démarrage depuis 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

Les deux protocoles de partage sont suffisamment matures pour être utilisés dans VMware vSphere. La principale différence entre iSCSI et NFS est que iSCSI partage des données au niveau du bloc, tandis que NFS partage des données au niveau du fichier. Les performances sont presque les mêmes, mais dans certaines situations, iSCSI peut fournir de meilleurs résultats. Les disques RDM pour les VM peuvent être utilisés avec iSCSI mais pas avec NFS.

Les deux protocoles de partage réseau sont fiables. Cependant, vous devez toujours utiliser une solution de protection des données tierce pour éviter les pertes de données et les temps d’arrêt. Évitez les pannes de courant et autres pannes matérielles pour éviter la perte de données sur votre stockage partagé. Utilisez des unités d’alimentation sans interruption et créez des sauvegardes régulières.

Source:
https://www.nakivo.com/blog/nfs-vs-iscsi-for-accessing-vm-data/