NFS ou iSCSI pour accéder aux données des machines virtuelles
NFS ou iSCSI : quel protocole 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 (VMs) qui doivent être migrées entre des hôtes VMware ESXi, afin d’utiliser les fonctionnalités de clustering, et lorsqu’il n’y a pas d’emplacements libres pour connecter des disques physiques au serveur.
Les organisations 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, NFS et iSCSI sont intéressants pour les centres de données de petite et moyenne taille 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 et iSCSI en mettant l’accent sur leur utilisation dans une infrastructure virtuelle VMware vSphere.
Qu’est-ce que NFS ?
Le Network File System (NFS) est un protocole réseau qui vous 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. 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 cours de 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, notamment des fonctionnalités utiles pour le stockage de 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). Plusieurs threads pour les opérations sont pris en charge.
NFS est le protocole qui fonctionne au niveau de la couche application du modèle OSI (Open Systems Interconnect). Les clients accèdent aux fichiers en envoyant des requêtes RPC (Remote Procedure Call) à un serveur NFS afin d’effectuer des opérations sur les fichiers et répertoires du serveur NFS.
Les requêtes RPC sont transmises au protocole XDR (eXternal Data Representation) qui fonctionne sur la couche de présentation et constitue la norme pour l’abstraction des données entre les plateformes. XDR décrit la forme unifiée et canonique 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 à distance et leur exécution sur le serveur (fournissant les fonctionnalités de la couche Session). À ce stade, l’explication des couches spécifiques au NFS est terminée. Suivant, les données sont encapsulées dans des unités de données TCP ou UDP standard et sont transférées vers les couches sous-jacentes du modèle OSI.
| Couches OSI | Protocoles |
| Applications | NFS |
| Présentation | XDR |
| Session | RPC |
| Transport | TCP |
| Réseau | IP |
| Liaison de données | Ethernet |
| Physique | – |
NFS partage les données au niveau des fichiers. Des adaptateurs réseau standard avec interface Ethernet et port RJ-45 peuvent être utilisés pour mettre en œuvre le stockage partagé NFS.
Les versions NFS les plus anciennes fonctionnent sur UDP via le réseau IP, et les versions plus récentes (NFS v2 et v3) peuvent fonctionner sur TCP et UDP. NFS 4.0 et 4.1 utilisent TCP sur IPv4 comme norme. NFS v4 travaille à travers les pare-feu et via Internet.
VMware vSphere ESXi 6.0 et les versions ESXi supérieures 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 la connexion via les versions 3.0 et 4.1 de NFS. Vous pouvez sélectionner la version 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 NFS v.4.1 est utilisé :
- Stockage DRS
- Contrôle des E/S de stockage
- Site Recovery Manager
L’utilisation de magasins de données NFS est pratique pour stocker des modèles de machines virtuelles et des images ISO destinés à 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 des objets (initiateurs et cibles) dans le 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 basés sur des logiciels ou sur du matériel. Ceux basés sur du matériel permettent de décharger l’unité centrale de traitement (processeur ou 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 considère l’utilisation d’initiateurs iSCSI logiciels. L’iSCSI a été introduit en 2003 et est décrit dans la RFC 3720.
L’iSCSI est le protocole de la couche session (qui fonctionne à la couche 5 du modèle OSI) qui opère au-dessus de la pile TCP/IP. Les données sont partagées au niveau des blocs, contrairement au NFS mais de manière similaire au FC. Il s’agit 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 sont transférées par l’intermédiaire de réseaux Ethernet standard. Ainsi, un ordinateur peut envoyer des commandes SCSI à des périphériques de stockage situés sur un autre ordinateur par l’intermédiaire 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 de 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 dans une pile TCP/IP) |
| IP | Protocole pour la mise en réseau et le routage |
| Ethernet | Commutateurs, câbles, ports (connecteurs), protocoles |
Remarque : Il existe un fait intéressant concernant l’utilisation d’iSCSI pour la récupération de machines virtuelles VMware. Lorsque vous utilisez Instant VM Recovery dans NAKIVO Backup & Replication & Réplication, par exemple pour exécuter une machine virtuelle sur un hôte VMware ESXi directement à partir d’une sauvegarde, la machine virtuelle est créée sur l’hôte VMware ESXi sélectionné et les disques virtuels sont montés sur la machine virtuelle par le protocole iSCSI en tant que disques RDM dans un mode de compatibilité virtuelle.
VMware NFS vs iSCSI – Principales différences
NFS et iSCSI peuvent tous deux fonctionner dans des réseaux Ethernet 1 gigabit et 10 gigabits (1GbE et 10GbE) déployés par l’intermédiaire de câbles en cuivre. Une vitesse réseau plus élevée est préférable. Pour en savoir plus, consultez les topologies réseau. Lorsque vous utilisez un magasin de données 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 magasins de données. Les deux protocoles de partage ont une surcharge importante causée par le mécanisme d’encapsulation de données multicouche sur les réseaux TCP/IP.
Le protocole NFS est pris en charge par la plupart des appliances NAS des fournisseurs, par exemple Synology et QNAP. Cependant, il n’est pas difficile de choisir une appliance NAS ayant une prise en charge du protocole iSCSI de nos jours.
Examinons plus en détail cette comparaison entre VMware NFS et iSCSI.
É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 un 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 d’ID client). Vous pouvez ainsi accéder à un seul volume NFS à partir de plusieurs adresses IP. Si vous utilisez NFS v3, utilisez le round robin DNS pour équilibrer la charge réseau.
Dans VMware vSphere, le multipathing iSCSI fonctionne au niveau d’un adaptateur réseau VMkernel. Pour équilibrer la charge iSCSI dans vSphere, vous pouvez utiliser la liaison de port.
Mise en cache
Lorsque vous utilisez 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 les métadonnées sur le serveur NFS de manière cohérente. 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.
Lorsque vous utilisez iSCSI, un système de fichiers est créé par le périphérique client après avoir accédé au stockage partagé au niveau du bloc (comme pour VMware vSphere, un hôte VMware ESXi crée le système de fichiers VMFS sur iSCSI LUN). Une politique 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é 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 à réécriture complète pour les mises à jour des données et des métadonnées.
Les systèmes de fichiers les plus modernes utilisent la mise à jour asynchrone des métadonnées et la journalisation basée sur les journaux est utilisée 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) peut être utilisé pour se protéger contre les pannes réseau. Si une carte réseau tombe en panne, une autre carte réseau peut continuer à travailler.
iSCSI. L’architecture de stockage enfichable (PSA) 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 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 transmission des données est vérifiée au niveau du réseau.
Le VMFS sur le stockage iSCSI peut être fragile si vous stockez
Sécurité
Le trafic iSCSI n’est généralement pas crypté, mais cela ne signifie pas que vous ne pouvez pas le protéger. L’utilisation d’un nom et d’un mot de passe est prise en charge pour l’authentification des partages iSCSI. Le protocole CHAP (Challenge Handshake Authentication Protocol) permet au serveur et au client de s’assurer qu’ils se font confiance.
NFS utilise une authentification basée sur l’hôte. La configuration par défaut de NFS ne fournit 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, largement connu, repose sur une authentification basée sur l’utilisateur.
La configuration d’un VLAN dédié ou l’utilisation d’un réseau physique séparé (privé) est la pratique recommandée pour utiliser le 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 les articles suivants : VLAN et VXLAN.
NFS v.4.1 prend en charge l’authentification Kerberos avec des mécanismes de cryptographie 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ériques bruts
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 l’intégralité du disque physique ou du LUN iSCSI à une machine virtuelle en tant que périphérique directement (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 et à stocker les disques virtuels utilisés par les VMs sur ce magasin de données. Le RDM est possible lorsque vous utilisez iSCSI, car un partage iSCSI fonctionne au niveau des blocs et une machine virtuelle peut formater un disque RDM en blocs 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 et le RDM nécessite que des périphériques blocs soient connectés aux VMs. Avec les partages NFS, vous pouvez uniquement créer des magasins de données NFS et stocker des fichiers de disque virtuel VMDK sur les magasins de données. 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 iSCSIAinsi, dans la catégorie du mappage de périphériques bruts dans la comparaison VMware iSCSI vs NFS, le gagnant est 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. L’iSCSI génère davantage de trafic et de charge réseau, tandis que l’utilisation du NFS est plus fluide et plus prévisible. Lorsqu’un grand nombre d’opérations d’écriture sont effectuées, vous pouvez constater une dégradation des performances avec un partage NFS.
Lorsque vous utilisez NFS dans vSphere, il est préférable d’utiliser 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 à provisionnement épais sur des magasins de données NFS. Les disques à provisionnement fin sont créés par défaut sur les magasins de données NFS. NFS et iSCSI prennent tous deux en charge les trames Jumbo pour améliorer les performances du réseau.
À la fin 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 qui prend en charge l’accès parallèle aux fichiers, par exemple VMFS ou GFS. Lorsque vous utilisez des 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 le verrouillage spécifié par le 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 nommés .lck-file_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 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 (par exemple, tous les hôtes ESXi se connectent au partage via NFS v.4.1). Si deux clients incompatibles utilisent des versions différentes du protocole NFS pour accéder aux fichiers sur un serveur NFS, cela peut entraîner un comportement incohérent et une corruption des données.
Difficulté de configuration
Lorsque vous utilisez NFS, il est plus facile de configurer un serveur et un client. L’utilisation d’iSCSI pour configurer un stockage partagé est plus difficile. Vous devez configurer des IQN pour le stockage et les hôtes, configurer le service iSCSI, les LUN et le masquage, et configurer plusieurs VLAN pour des raisons de sécurité (isoler les segments de réseau utilisés pour la communication iSCSI afin d’offrir un niveau de sécurité plus élevé).
En savoir plus sur Les volumes virtuels VMware qui peuvent être utilisés pour stocker des données VM.
NFS vs iSCSI dans VMware vSphere – Tableau récapitulatif
Soulignons les principales fonctionnalités de chaque protocole de partage de données dans cette comparaison iSCSI vs NFS VMware dans le tableau récapitulatif.
| iSCSI | NFS | |
| Partage de données | Au niveau des blocs | Au niveau du fichier |
| Mappage de périphérique brut pour les VMs | Oui | Non |
| Difficulté de configuration | Moyenne | Facile |
| Amorçage à partir du SAN | Oui | Non |
| Erreur de vérification | Oui | Oui |
| Fonctionnalités de sécurité | CHAP | Kerberos |
| Stockage vMotion | Oui | Oui |
| Stockage 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 réside dans le fait qu’iSCSI partage les données au niveau des blocs, tandis que NFS partage les données au niveau des fichiers. Les performances sont pratiquement identiques, mais dans certaines situations, iSCSI peut offrir de meilleurs résultats. Les disques RDM pour les VMs 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 la perte de données et les temps d’arrêt. Évitez les coupures de courant et autres pannes matérielles afin d’éviter la perte de données sur votre stockage partagé. Utilisez des onduleurs et effectuez des sauvegardes régulières.