NFS vs iSCSI – welk protocol moet je kiezen voor het opslaan van VMware VM-bestanden? Deze vraag komt meestal naar voren wanneer je gedeelde opslag moet configureren om virtuele machines (VM’s) op te slaan die tussen ESXi-hosts moeten worden gemigreerd, voor het gebruik van clusteringfuncties, en wanneer er geen vrije slots zijn om fysieke schijven aan de server te koppelen.
Organisaties die VMware vSphere implementeren in een groot datacenter geven de voorkeur aan het gebruik van Fibre Channel (FC) of Fibre Channel over Ethernet (FCoE), die kostbaar zijn. NFS en iSCSI zijn echter aantrekkelijk voor kleine en middelgrote datacenters die worden gebruikt voor de VMware vSphere-infrastructuur, omdat de benodigde hardware voor het configureren van bestandsdeling met deze protocollen betaalbaarder is. Dit blogbericht vergelijkt NFS vs iSCSI met de focus op het gebruik ervan in een virtuele infrastructuur van VMware vSphere.
Wat is NFS?
Network File System (NFS) is een netwerkprotocol dat het mogelijk maakt om bestanden die zijn opgeslagen op een schijf of een schijfarray van een server te delen met andere computers in het netwerk. NFS is ontwikkeld door SUN Microsystems en de eerste versie werd gepresenteerd in 1984. Op het moment van schrijven van deze post is de nieuwste implementatie van NFS versie 4.1. Versie 4.2 is in ontwikkeling en is nog niet gepresenteerd voor gebruik in productie.
Nieuwe functies en verbeteringen zijn toegevoegd met elke nieuwe versie van NFS, waaronder functies die nuttig zijn voor virtualisatieopslag. NFS v4.1 biedt een mechanisme om meerdere gebruikers toe te staan dezelfde bestand te delen en om dataverconsistentie te garanderen (parallelle toegang). Meerdere threads voor operaties worden ondersteund.
NFS is het protocol dat werkt op de toepassingslaag van het Open Systems Interconnect (OSI) model. Cliënten benaderen bestanden door Remote Procedure Call (RPC) verzoeken naar een NFS-server te sturen voor het uitvoeren van operaties met bestanden en mappen op de NFS-server.
RPC-verzoeken worden verzonden naar het XDR-protocol (eXternal Data Representation) dat werkt op de presentatielaag en de standaard is voor gegevensabstractie tussen platforms. XDR beschrijft de geüniformeerde en canonieke vorm van gegevensrepresentatie die niet afhankelijk is van de architectuur van het computersysteem. Wanneer een cliënt gegevens verzendt, transformeert de RPC-client de lokale gegevens naar een canonieke vorm, en de server voert de omgekeerde operatie uit.
Zodra de gegevensunificatie is voltooid, zorgt de RPC-service aan de cliëntzijde voor het verzoek van externe procedures en hun uitvoering op de server (waarbij functies van de Sessielaag worden geboden). Op dit punt is de uitleg van de NFS-specifieke lagen voltooid. Vervolgens worden de gegevens ingekapseld in standaard TCP- of UDP-gegevenseenheden en overgebracht naar de onderliggende lagen van het OSI-model.
OSI Lagen | Protocollen |
Toepassing | NFS |
Presentatie | XDR |
Sessie | RPC |
Transport | TCP |
Netwerk | IP |
Data Link | Ethernet |
Fysiek | – |
NFS deelt gegevens op bestandsniveau. Standaard netwerkadapters met een Ethernet-interface en RJ-45-poort kunnen worden gebruikt voor het implementeren van gedeelde opslag via NFS.
De oudste NFS-versies werken via UDP door het IP-netwerk, en de nieuwere versies (NFS v2 en v3) kunnen via TCP en UDP werken. NFS 4.0 en 4.1 gebruiken TCP over IPv4 als standaard. NFS v4 werkt via firewalls en via internet.
VMware vSphere ESXi 6.0 en hogere versies van ESXi ondersteunen NFS 3.0 en NFS 4.1. ESXi bevat een ingebouwde NFS-client die verbinding maakt met een NFS-server via TCP/IP. Twee verschillende NFS-clients worden gebruikt voor verbinding via NFS-versies 3.0 en 4.1. U kunt kiezen welke NFS-versie u wilt gebruiken bij het maken van een nieuwe NFS-datastore. VMware ondersteunt de volgende functies niet wanneer NFS v.4.1 wordt gebruikt:
- Opslag DRS
- Opslag I/O-besturing
- Site Recovery Manager
Het gebruik van NFS-datastores is handig bij het opslaan van VM-sjablonen en ISO-images voor het installeren van besturingssystemen op virtuele machines.
Wat is iSCSI?
Internet Small Computer Interface (iSCSI) is een netwerkprotocol dat de interactie van objecten (initiators en doelen) in het netwerk verzekert voor het delen van gegevens. Een iSCSI-initiator is geconfigureerd aan de clientzijde en het iSCSI-doel is geconfigureerd aan de serverzijde.
<iSCSI-initiators kunnen op software gebaseerd zijn en hardware gebaseerd. Hardware-gebaseerde initiators helpen bij het ontlasten van de centrale verwerkingseenheid (CPU of processor) op de clientmachine en vereisen de installatie van een hardware host bus adapter (HBA). Een hardware iSCSI HBA is een netwerkinterfacecontroller (NIC) met een Ethernetinterface. In deze iSCSI vs NFS-vergelijking overweeg ik het gebruik van op software gebaseerde iSCSI-initiators. iSCSI werd geïntroduceerd in 2003 en wordt beschreven in RFC 3720.
iSCSI is het protocol van de sessielaag (werkt op laag 5 van het OSI-model) dat boven op de TCP/IP-stack werkt. Data wordt gedeeld op het blokniveau, in tegenstelling tot NFS maar vergelijkbaar met FC. Dit is een belangrijk punt in de iSCSI vs NFS-vergelijking. SCSI-commando’s worden ingekapseld in TCP/IP-datapakketten en worden overgedragen door gebruik te maken van standaard Ethernetnetwerken. Als gevolg hiervan kan een computer SCSI-commando’s verzenden naar opslagblokapparaten die zich op een andere computer bevinden door een netwerk te gebruiken.
Lagen | Beschrijving |
Toepassing | Bestandssysteem, database, enz. |
SCSI | SCSI-gegevens, SCSI-commando’s, SCSI-statussen |
iSCSI | iSCSI-protocoldiensten, iSCSI Qualified Name (IQN), Internet Storage Name Service (iSNS), CHAP-authenticatie, enz. |
TCP | Een protocol met een foutenbesturingsmechanisme (werkt meestal in een TCP/IP-stack) |
IP | Een protocol voor netwerkcommunicatie en routering |
Ethernet | Switches, kabels, poorten (connectoren), protocollen |
Opmerking: Er is een interessant feit over hoe iSCSI kan worden gebruikt voor VMware VM-herstel. Wanneer u bijvoorbeeld Instant VM Recovery in NAKIVO Backup & Replication gebruikt om een VM rechtstreeks vanuit een back-up op een ESXi-host uit te voeren, wordt de VM gemaakt op de geselecteerde ESXi-host en worden virtuele schijven aan de VM gemonteerd door het gebruik van het iSCSI-protocol als RDM-schijven in een virtuele compatibiliteitsmodus.
VMware NFS vs iSCSI – Belangrijkste verschillen
Zowel NFS als iSCSI kunnen werken in 1-gigabit en 10-gigabit Ethernet-netwerken (1GbE en 10GbE) die worden ingezet met behulp van koperen draden. Een hogere netwerksnelheid is beter. Lees meer over netwerk topologieën. Bij het gebruik van een gedeelde datastore in VMware vSphere om VM-bestanden op te slaan, kunnen beide implementaties (NFS en iSCSI) worden gebruikt voor live migratie van VM’s, load balancing en VM-migratie tussen datastores. Beide deelprotocollen hebben aanzienlijke overhead als gevolg van het mechanisme van meerlaagse gegevensencapsulatie over TCP/IP-netwerken.
NFS wordt ondersteund op de meeste NAS-apparaten van leveranciers, bijvoorbeeld, Synology en QNAP. Het is echter tegenwoordig niet moeilijk om een NAS te selecteren met ondersteuning voor iSCSI.
Laten we deze vergelijking tussen VMware NFS en iSCSI in meer detail bekijken.
Load balancing
Wanneer een netwerkpad uitvalt of overbelast raakt, biedt multipathing de mogelijkheid om de belasting te verdelen tussen een server en opslag als er meerdere paden zijn.
NFS 4.1 ondersteunt multipathing als sessietrunking beschikbaar is op servers (maar niet Client ID trunking). Als gevolg hiervan kunt u een enkel NFS-volume benaderen vanaf meerdere IP-adressen. Als u NFS v3 gebruikt, gebruik dan DNS round-robin voor netwerk load balancing.
In VMware vSphere werkt iSCSI multipathing op het niveau van een VMkernel-netwerkadapter. Voor iSCSI load balancing in vSphere kunt u poortbinding gebruiken.
Caching
Bij het gebruik van NFS bevindt een bestandssysteem met bestandssysteemcache zich op een NFS-server en moet een clientmachine consistent metadata op de NFS-server controleren. Asynchrone gegevensschrijven worden ondersteund door NFS v3 en v4, maar metadatamutaties zijn synchroon.
Bij het gebruik van iSCSI wordt een bestandssysteem gemaakt door het clientapparaat nadat toegang is verkregen tot de gedeelde opslag op blokniveau (zoals bij VMware vSphere, waarbij een ESXi-host het VMFS-bestandssysteem creëert op iSCSI LUN). Een cachingbeleid wordt bepaald door een bestandssysteem voor gedeelde iSCSI-opslag en de bestandssysteemcache bevindt zich aan de kant van de client. Als je bijvoorbeeld iSCSI gebruikt als het deelprotocol en ext3 als het bestandssysteem, heb je de volledige write-back-cache voor gegevens- en metadatamutaties.
De meest moderne bestandssystemen gebruiken asynchrone metadatamutatie en loggebaseerde journaling wordt gebruikt voor gegevensherstel. Over het algemeen is asynchrone datamutatie (gebruikt in iSCSI) minder betrouwbaar wat betreft gegevens- en metadataperistentie in vergelijking met synchrone mutatie, zoals die wordt gebruikt in NFS.
Betrouwbaarheid
NFS. NIC-teaming kan worden gebruikt om te beschermen tegen netwerkstoringen. Als een NIC uitvalt, kan een andere NIC blijven werken.
iSCSI. VMware Pluggable Storage Architecture (PSA) gebruikt de Storage Array Type-plugin voor failover-implementatie bij het werken met iSCSI-arrays. iSCSI-binding vereist het in kaart brengen van meerdere iSCSI-doelen op verschillende subnets naar de iSCSI-initiator.
Zowel iSCSI als NFS gebruiken TCP voor encapsulatie, waardoor gegevensaflevering op het netwerkniveau wordt gecontroleerd.
VMFS op de iSCSI-opslag kan kwetsbaar zijn als u dunne geprovisioneerde virtuele schijven voor VM’s opslaat. Een stroomstoring kan een volume onherstelbaar maken. Het gedrag van NFS-datastores in dergelijke situaties is iets betrouwbaarder. U kunt deze problemen verminderen als u regelmatig VMware-back-ups uitvoert.
Beveiliging
iSCSI-verkeer wordt over het algemeen niet versleuteld, maar dit betekent niet dat u iSCSI-verkeer niet kunt beschermen. Het gebruik van een naam en wachtwoord wordt ondersteund voor authenticatie voor iSCSI-shares. Challenge Handshake Authentication Protocol (CHAP) stelt de server en de client in staat ervoor te zorgen dat ze elkaar vertrouwen.
NFS gebruikt authenticatie op basis van hosts. De standaardconfiguratie van NFS biedt geen versleuteling (sys = systeem), maar bij gebruik van NFSv4 met Kerberos ingeschakeld (sec = krb5p) is de verbinding veilig. In de NFS-serverconfiguratie moet u het IP-adres van de host definiëren die toegang heeft tot de NFS-share. U kunt ook meerdere hosts of het hele subnet definiëren. Bijvoorbeeld het wijdverspreide SMB-bestandsdelingsprotocol is gebaseerd op authenticatie op gebruikersniveau.
Het configureren van een toegewezen VLAN of het gebruiken van een apart (privé) fysiek netwerk is de aanbevolen werkwijze voor het gebruik van gedeelde iSCSI- en NFS-opslag in VMware vSphere. Deze aanpak stelt u in staat om opslagverkeer te isoleren van andere soorten verkeer. NFS v3 heeft geen beveiligingsfuncties die vergelijkbaar zijn met die in NFS v4.1. Een ESXi-server mount een NFS-share met roottoegang (wanneer Kerberos niet wordt gebruikt). Houd hier rekening mee bij het maken van een veilige configuratie. Lees ook over VLAN en VXLAN.
NFS v.4.1 ondersteunt Kerberos-authenticatie met cryptografische mechanismen naast de Data Encryption Standard (DES). De cryptografische algoritmen in Kerberos voorkomen dat onbevoegde gebruikers toegang krijgen tot NFS-verkeer. ESXi ondersteunt de krb5 en krb5i-implementaties van Kerberos. ESXi 7.0 ondersteunt NFS 4.1 Kerberos-encryptie en het AUTH_SYS-beveiligingsmechanisme (maar niet tegelijkertijd).
VMware NFS vs iSCSI – Raw Device Mapping
Wanneer u iSCSI gebruikt als gedeelde opslag, kunt u raw device mapping configureren voor een VM. Raw Device Mapping (RDM) is een functie waarmee u de volledige fysieke schijf of iSCSI LUN kunt koppelen aan een VM als een apparaat direct (in plaats van een virtuele schijf aan de VM-configuratie te koppelen). De op RDM gebaseerde aanpak verschilt van de traditionele aanpak wanneer u een datastore maakt op een LUN (Logical Unit Number), het VMFS-bestandssysteem maakt en virtuele schijven die door VM’s worden gebruikt op die datastore opslaat. RDM is mogelijk bij gebruik van iSCSI omdat een iSCSI-share op het blokniveau werkt en een VM een aangesloten blok-RDM-schijf kan formatteren met een aangepast bestandssysteem dat wordt gebruikt door een gastbesturingssysteem dat is geïnstalleerd op de VM.
Wat betreft NFS, het gebruik van een NFS-share om als een RDM-schijf te koppelen, wordt niet ondersteund omdat NFS-shares op het bestandsniveau werken en RDM vereist dat blokapparaten aan VM’s worden gekoppeld. Met NFS-shares kunt u alleen NFS-datastores maken en VMDK virtuele schijfbestanden opslaan op de datastores. U kunt een NFS-share en iSCSI-share koppelen op het niveau van een gastbesturingssysteem als het gastbesturingssysteem een NFS-client of iSCSI-initiator heeft. Dus, in de categorie raw device mapping in de vergelijking VMware iSCSI vs NFS is de winnaar iSCSI.
iSCSI vs NFS Prestaties
In een software iSCSI-implementatie is de prestatie iets hoger, maar de CPU-belasting op de clienthost is ook hoger. iSCSI legt ook een hogere belasting op het netwerk. iSCSI genereert meer netwerkverkeer en netwerkbelasting, terwijl het gebruik van NFS soepeler en voorspelbaarder is. Bij het uitvoeren van een groot aantal schrijfoperaties kunt u prestatievermindering opmerken met een NFS-share.
Wanneer je NFS gebruikt in vSphere, is het beter om NFS te gebruiken met ondersteuning voor de vStorage API voor Array Integratie (VAAI) aan de opslagzijde. VAAI maakt het mogelijk om dikke gealloceerde virtuele schijven te maken op NFS-datastores. Dunne gealloceerde schijven worden standaard gemaakt op NFS-datastores. Zowel NFS als iSCSI ondersteunen Jumbo-frames om de netwerkprestaties te verbeteren.
Aan het einde van deze iSCSI versus NFS snelheidsvergelijking moet worden vermeld dat de prestaties ook afhankelijk zijn van de opslagarrayleverancier.
Gelijktijdige toegang
iSCSI ondersteunt geen gelijktijdige of parallelle gegevenstoegang tot een blokapparaat. Gegevens moeten worden gedeeld tussen twee hops. Echter, parallelle toegang is toegestaan op het niveau van een bestandssysteem dat parallelle toegang tot bestanden ondersteunt, bijvoorbeeld VMFS of GFS. Bij het gebruik van iSCSI-shares in VMware vSphere wordt gelijktijdige toegang tot de shares gegarandeerd op het niveau van VMFS.
NFS ondersteunt gelijktijdige toegang tot gedeelde bestanden door middel van een vergrendelingsmechanisme en een consistentiemechanisme van dichtbij-naar-open om conflicten te vermijden en gegevensconsistentie te behouden. NFS v3 en NFS v4.1 gebruiken verschillende mechanismen. NFS v3 kan het Network Lock Manager-protocol (NLM) gebruiken, en NFS v4.1 gebruikt een specifiek protocol voor vergrendeling. Als NFS v3 wordt gebruikt op VMware ESXi om toegang te krijgen tot bestandshares, gebruikt ESXi niet het NLM-protocol omdat VMware in dit geval zijn eigen vergrendelingsprotocol levert. Vergrendelingsbestanden met de naam .lck-bestands-id worden aangemaakt op een bestandsshare bij het gebruik van NFS v3-shares in VMware vSphere.
NFS v4.1 gebruikt reserveringen om bestanden te vergrendelen voor gelijktijdige toegang. Als u een NFS-bestandsdeling maakt, moeten alle clients dezelfde versie van het NFS-protocol gebruiken (bijvoorbeeld alle ESXi-hosts verbinden met de deling via NFS v.4.1). Als twee onverenigbare clients verschillende versies van NFS gebruiken om bestanden op een NFS-server te benaderen, kan er inconsistent gedrag en gegevenscorruptie optreden.
Configuratie moeilijkheid
Bij gebruik van NFS is het eenvoudiger om een server en een client te configureren. Het is echter moeilijker om een gedeelde opslag te configureren met iSCSI. U moet IQN’s configureren voor opslag en hosts; een configuratie maken van de iSCSI-service, LUN’s en masking; en meerdere VLAN’s configureren om beveiligingsredenen (netwerksegmenten isoleren die worden gebruikt voor iSCSI-communicatie om een hoger beveiligingsniveau te bieden).
Lees over VMware Virtual Volumes die kunnen worden gebruikt om VM-gegevens op te slaan.
NFS vs. iSCSI in VMware vSphere – Samenvattende Tabel
Laten we de belangrijkste kenmerken van elk gegevensdelingsprotocol benadrukken in deze iSCSI vs. NFS VMware-vergelijkingstabel.
iSCSI | NFS | |
Data delen | Blok-niveau | Bestandsniveau |
Raw Device Mapping voor VM’s | Ja | Nee |
Moeilijkheidsgraad van configuratie | Gemiddeld | Gemakkelijk |
Opstarten van SAN | Ja | Nee |
Foutcontrole | Ja | Ja |
Beveiligingsfuncties | CHAP | Kerberos |
Opslag vMotion | Ja | Ja |
Opslag DRS | Ja | Ja |
Conclusie
Beide delingsprotocollen zijn volwassen genoeg om te worden gebruikt in VMware vSphere. Het belangrijkste verschil tussen iSCSI en NFS is dat iSCSI gegevens deelt op blokniveau en NFS gegevens deelt op bestandsniveau. De prestaties zijn bijna hetzelfde, maar in sommige situaties kan iSCSI betere resultaten opleveren. RDM-schijven voor VM’s kunnen worden gebruikt met iSCSI, maar niet met NFS.
Beide netwerk deelprotocollen zijn betrouwbaar. Toch moet je nog steeds een externe gegevensbeschermingsoplossing gebruiken om gegevensverlies en downtime te voorkomen. Vermijd stroomstoringen en andere hardwarestoringen om gegevensverlies op je gedeelde opslag te voorkomen. Gebruik ononderbroken stroomvoorzieningseenheden en maak regelmatig back-ups.
Source:
https://www.nakivo.com/blog/nfs-vs-iscsi-for-accessing-vm-data/