NFS vs. iSCSI für den Zugriff auf VM-Daten
NFS vs. iSCSI – welches Protokoll sollten Sie für die Speicherung von VMware-VM-Dateien wählen? Diese Frage stellt sich in der Regel, wenn Sie gemeinsam genutzten Speicher für Virtuelle Maschinen (VMs) konfigurieren müssen, die zwischen ESXi-Hosts migriert werden sollen, für die Nutzung von „ Clustering-Funktionen“ sowie wenn keine freien Steckplätze für den Anschluss physischer Festplatten an den Server vorhanden sind.
Unternehmen, die VMware vSphere in einem großen Rechenzentrum bereitstellen, bevorzugen Fibre Channel (FC) oder Fibre Channel over Ethernet (FCoE), was jedoch mit hohen Kosten verbunden ist. Für kleine und mittelgroße Rechenzentren, in denen eine VMware vSphere-Infrastruktur zum Einsatz kommt, sind NFS und iSCSI jedoch attraktiv, da die für die Konfiguration der Dateifreigabe mit diesen Protokollen erforderliche Hardware kostengünstiger ist. Dieser Blogbeitrag vergleicht NFS und iSCSI mit Schwerpunkt auf deren Einsatz in einer virtuellen VMware vSphere-Infrastruktur.
Was ist NFS?
Das Network File System (NFS) ist ein Netzwerkprotokoll, mit dem Sie Dateien, die auf einer Festplatte oder einem Festplattenarray eines Servers gespeichert sind, für andere Computer im Netzwerk teilen können. NFS wurde von SUN Microsystems entwickelt und die erste Version wurde 1984 vorgestellt. Zum Zeitpunkt der Erstellung dieses Beitrags ist die aktuellste Implementierung von NFS die Version 4.1. Version 4.2 befindet sich in der Entwicklung und wurde noch nicht für den produktiven Einsatz freigegeben.
Mit jeder neuen Version von NFS wurden neue Funktionen und Verbesserungen hinzugefügt, darunter auch Funktionen, die für virtualisierten Speicher nützlich sind. NFS v4.1 bietet einen Mechanismus, der es mehreren Benutzern ermöglicht, dieselbe Datei zu teilen, und der die Datenkonsistenz gewährleistet (paralleler Zugriff). Es werden mehrere Threads für Operationen unterstützt.
NFS ist das Protokoll, das auf der Anwendungsschicht des OSI-Modells (Open Systems Interconnect) arbeitet. Clients greifen auf Dateien zu, von denen sie Remote-Procedure-Call-Anfragen (RPC) an einen NFS-Server senden, um Operationen mit Dateien und Verzeichnissen auf dem NFS-Server durchzuführen.
RPC-Anfragen werden an das XDR-Protokoll (eXternal Data Representation) übertragen, das auf der Präsentationsschicht arbeitet und den Standard für die Datenabstraktion zwischen Plattformen darstellt. XDR beschreibt die einheitliche und kanonische Form der Datendarstellung, die unabhängig von der Architektur des Computersystems ist. Wenn ein Client Daten überträgt, wandelt der RPC-Client die lokalen Daten in eine kanonische Form um, und der Server führt den umgekehrten Vorgang durch.
Sobald die Datenvereinheitlichung abgeschlossen ist, gewährleistet der RPC-Dienst auf der Client-Seite die Anforderung von Remote-Prozeduren und deren Ausführung auf dem Server (wobei er Funktionen der Sitzungsschicht bereitstellt). Damit ist das Fertigstellen der NFS-spezifischen Schichten abgeschlossen. Weiter werden die Daten in standardmäßige TCP- oder UDP-Dateneinheiten gekapselt und an die darunterliegenden Schichten des OSI-Modells weitergeleitet.
| OSI-Schichten | Protokolle |
| Anwendung | NFS |
| Präsentation | XDR |
| Sitzung | RPC |
| Transport | TCP |
| Netzwerk | IP |
| Datenverbindung | Ethernet |
| Physikalisch | – |
NFS teilt Daten auf Dateiebene . Zur Implementierung von NFS-Freigaben für den Speicher können Standard-Netzwerkadapter mit Ethernet-Schnittstelle und RJ-45-Port verwendet werden. Die ältesten NFS-Versionen laufen über UDP im IP-Netzwerk, während die neueren Versionen (NFS v2 und v3) sowohl über TCP als auch über UDP arbeiten können. NFS 4.0 und 4.1 verwenden standardmäßig TCP über IPv4. NFS v4 arbeitet durch Firewalls hindurch und über das Internet.
VMware vSphere ESXi 6.0 und höhere ESXi-Versionen unterstützen NFS 3.0 und NFS 4.1. ESXi enthält einen integrierten NFS-Client, der über TCP/IP eine Verbindung zu einem NFS-Server herstellt. Für die Verbindung über die NFS-Versionen 3.0 und 4.1 werden zwei verschiedene NFS-Clients verwendet. Sie können bei der Erstellung eines neuen NFS-Datenspeichers auswählen, welche NFS-Version verwendet werden soll. VMware unterstützt die folgenden Funktionen nicht, wenn NFS v.4.1 verwendet wird:
- Speicher DRS
- Storage I/O Control
- Standortwiederherstellung (Site Recovery Manager)
Die Verwendung von NFS-Datenspeichern ist praktisch, wenn Sie VM-Vorlagen und ISO-Images zur Installation von Betriebssystemen auf Virtuellen Maschinen speichern.
Was ist iSCSI?
Internet Small Computer Interface (iSCSI) ist ein Netzwerkprotokoll, das die Interaktion von Objekten (Initiatoren und Zielen) im Netzwerk zum Austausch von Daten gewährleistet. Ein iSCSI-Initiator wird auf der Client-Seite konfiguriert, das iSCSI-Ziel auf der Server-Seite.
iSCSI-Initiatoren können softwarebasiert oder hardwarebasiert sein. Hardwarebasierte Initiatoren entlasten die Zentraleinheit (CPU oder Prozessor) auf dem Client-Rechner und erfordern die Installation eines Hardware-Host-Bus-Adapters (HBA). Ein hardwarebasierter iSCSI-HBA ist ein Netzwerk-Interface-Controller (NIC) mit einer Ethernet-Schnittstelle. In diesem Vergleich zwischen iSCSI und NFS gehe ich auf die Verwendung softwarebasierter iSCSI-Initiatoren ein. iSCSI wurde 2003 eingeführt und ist in RFC 3720 beschrieben.
iSCSI ist das Protokoll der Sitzungsschicht (arbeitet auf Schicht 5 des OSI-Modells), das auf dem TCP/IP-Stack aufsetzt. Daten werden auf Blockebene geteilt , anders als bei NFS, aber ähnlich wie bei FC. Dies ist ein wichtiger Punkt im Vergleich zwischen iSCSI und NFS. SCSI-Befehle werden in TCP/IP-Dateneinheiten gekapselt und über Standard-Ethernet-Netzwerke übertragen. Dadurch kann ein Computer über ein Netzwerk SCSI-Befehle an Speichergeräte senden, die sich auf einem anderen Computer befinden.
| Schichten | Beschreibung |
| Anwendung | Dateisystem, Datenbank usw. |
| SCSI | SCSI-Daten, SCSI-Befehle, SCSI-Status |
| iSCSI | iSCSI-Protokoll-Dienste, iSCSI Qualified Name (IQN), Internet Storage Name Service (iSNS), CHAP-Authentifizierung usw. |
| TCP | Ein Protokoll mit einem Fehlerkontrollmechanismus (funktioniert in der Regel in einem TCP/IP-Stack) |
| IP | Ein Protokoll für die Netzwerkkommunikation und das Routing |
| Ethernet | Switches, Kabel, Ports (Anschlüsse), Protokolle |
Hinweis: Es gibt eine interessante Tatsache darüber, wie iSCSI für Wiederherstellung von VMware-VMsgenutzt werden kann. Wenn Sie beispielsweise „Instant VM Recovery“ in NAKIVO Backup & Replication verwenden, um eine VM auf einem ESXi-Host direkt aus einem Backup auszuführen, wird die VM auf dem ausgewählten ESXi-Host erstellt und virtuelle Festplatten werden über das iSCSI-Protokoll als RDM-Festplatten in einem virtuellen Kompatibilitätsmodus in die VM eingebunden.
VMware NFS vs. iSCSI – Wesentliche Unterschiede
Sowohl NFS als auch iSCSI können in 1-Gigabit- und 10-Gigabit-Ethernet-Netzwerken (1GbE und 10GbE) bereitgestellt werden, die über Kupferkabel bereitgestellt werden. Eine höhere Netzwerkgeschwindigkeit ist vorteilhaft. Erfahren Sie mehr unter Netzwerktopologien. Bei der Verwendung eines gemeinsam genutzten Datenspeichers in VMware vSphere zum Speichern von VM-Dateien können beide Implementierungen (NFS und iSCSI) für die Live-Migration von VMs, den Lastausgleich und die Migration von VMs zwischen Datenspeichern genutzt werden. Beide Freigabeprotokolle weisen einen erheblichen Overhead auf, der durch den Mechanismus der mehrschichtigen Datenkapselung über TCP/IP-Netzwerke verursacht wird.
NFS wird von den NAS-Geräten der meisten Anbieter unterstützt, zum Beispiel von Synology und QNAP. Heutzutage ist es jedoch nicht schwer, ein NAS-Gerät zu finden, das einen Support für iSCSI hat.
Lassen Sie uns diesen Vergleich zwischen VMware NFS und iSCSI genauer betrachten.
Lastenausgleich
Wenn ein Netzwerkpfad ausfällt oder überlastet ist, bietet Multipathing die Möglichkeit, den Lastenausgleich zwischen einem Server und dem Speicher zu gewährleisten, sofern mehrere Pfade vorhanden sind.
NFS 4.1 unterstützt Multipathing, sofern Session Trunking auf den Servern verfügbar ist (Client-ID-Trunking jedoch nicht). Dadurch können Sie von mehreren IP-Adressen aus auf ein einzelnes NFS-Volume zugreifen. Wenn Sie NFS v3 verwenden, nutzen Sie DNS-Round-Robin für den Lastausgleich im Netzwerk.
In VMware vSphere funktioniert iSCSI-Multipathing auf der Ebene eines VMkernel-Netzwerkadapters. Für den iSCSI-Lastausgleich in vSphere können Sie Port-Binding verwenden.
Caching
Bei der Verwendung von NFS befindet sich ein Dateisystem mit Dateisystem-Cache auf einem NFS-Server, und ein Client-Rechner sollte die Metadaten auf dem NFS-Server regelmäßig überprüfen. Asynchrone Datenschreibvorgänge werden von NFS v3 und v4 unterstützt, Metadatenaktualisierungen erfolgen jedoch synchron.
Bei der Verwendung von iSCSI wird ein Dateisystem vom Client-Gerät erstellt, nach dem es Zugriff auf den gemeinsam genutzten Speicher auf Blockebene erhalten hat (wie beispielsweise bei VMware vSphere, wo ein VMware ESXi-Host das VMFS-Dateisystem auf einer iSCSI-LUN erstellt). Eine Caching-Richtlinie wird durch ein Dateisystem für den gemeinsam genutzten iSCSI-Speicher definiert, und der Dateisystem-Cache befindet sich auf der Client-Seite. Wenn Sie beispielsweise iSCSI als Freigabeprotokoll und ext3 als Dateisystem verwenden, steht Ihnen der vollständige Write-Back-Cache für Daten- und Metadatenaktualisierungen zur Verfügung.
Die modernsten Dateisysteme nutzen eine asynchrone Metadatenaktualisierung, und für die Datenwiederherstellung wird logbasiertes Journaling verwendet. Im Allgemeinen ist die asynchrone Datenaktualisierung (wie bei iSCSI) hinsichtlich der Persistenz von Daten und Metadaten weniger zuverlässig als die synchrone Aktualisierung, wie sie beispielsweise bei NFS zum Einsatz kommt.
Zuverlässigkeit
NFS . Zum Schutz vor Netzwerkausfällen kann NIC-Teaming eingesetzt werden. Fällt eine Netzwerkkarte aus, kann eine andere Netzwerkkarte den Betrieb fortsetzen.
iSCSI . Die VMware Pluggable Storage Architecture (PSA) nutzt das „Storage Array Type“-Plugin für die Failover-Implementierung bei der Arbeit mit iSCSI-Arrays. Die iSCSI-Bindung erfordert die Zuordnung mehrerer iSCSI-Ziele in verschiedenen Subnetzen zum iSCSI-Initiator.
Da sowohl iSCSI als auch NFS TCP zur Kapselung verwenden, wird die Datenübertragung auf Netzwerkebene überprüft.
VMFS auf dem iSCSI-Speicher kann anfällig sein, wenn Sie dünn bereitgestellt virtuelle Festplatten für VMs speichern. Ein Stromausfall kann dazu führen, dass ein Volume nicht mehr wiederhergestellt werden kann. Das Verhalten von NFS-Datenspeichern ist in solchen Situationen etwas zuverlässiger. Sie können diese Probleme mindern, wenn Sie regelmäßig VMware-Backupsdurchführen.
Sicherheit
Der iSCSI-Datenverkehr ist im Allgemeinen nicht verschlüsselt, was jedoch nicht bedeutet, dass Sie den iSCSI-Datenverkehr nicht schützen können. Für die Authentifizierung bei iSCSI-Freigaben wird die Verwendung von Namen und Passwort unterstützt. Das Challenge Handshake Authentication Protocol (CHAP) ermöglicht es Server und Client, sicherzustellen, dass sie einander vertrauen.
NFS verwendet eine hostbasierte Authentifizierung. Die Standardkonfiguration von NFS bietet keine Verschlüsselung (sys=system), doch bei Verwendung von NFSv4 mit aktiviertem Kerberos (sec=krb5p) ist die Verbindung sicher. In der NFS-Serverkonfiguration müssen Sie die IP-Adresse des Hosts angeben, der auf die NFS-Freigabe zugreifen darf. Sie können auch mehrere Hosts oder das gesamte Subnetz definieren. Das weithin bekannte SMB-Protokoll für die dateibasierte Dateifreigabe stützt sich beispielsweise auf eine benutzerbasierte Authentifizierung.
Die Konfiguration eines dedizierten VLANs oder die Verwendung eines separaten (privaten) physischen Netzwerks wird für die Nutzung von gemeinsam genutztem iSCSI- und NFS-Speicher in VMware vSphere empfohlen. Mit diesem Ansatz können Sie den Speicherdatenverkehr von anderen Datenverkehrstypen isolieren. NFS v3 verfügt nicht über Funktionen für Sicherheit, die denen von NFS v4.1 entsprechen. Ein ESXi-Server bindet eine NFS-Freigabe mit Root-Zugriff ein (sofern Kerberos nicht verwendet wird). Berücksichtigen Sie dies daher bei der Erstellung einer sicheren Konfiguration. Lesen Sie dazu auch VLAN und VXLAN.
NFS v.4.1 unterstützt neben dem Data Encryption Standard (DES) auch die Kerberos-Authentifizierung mit kryptografischen Mechanismen. Die kryptografischen Algorithmen in Kerberos verhindern, dass unbefugte Benutzer auf den NFS-Datenverkehr zugreifen. ESXi unterstützt die Kerberos-Implementierungen krb5 und krb5i. ESXi 7.0 unterstützt die Kerberos-Verschlüsselung nach NFS 4.1 und den Sicherheitsmechanismus AUTH_SYS (jedoch nicht gleichzeitig).
VMware NFS vs. iSCSI – Raw Device Mapping
Wenn Sie iSCSI als gemeinsam genutzten Speicher verwenden, können Sie Raw Device Mapping für eine VM konfigurieren. Raw Device Mapping (RDM) ist eine Funktion, mit der Sie die gesamte physische Festplatte oder iSCSI-LUN direkt als Gerät an eine VM anschließen können (anstatt in der VM-Konfiguration eine virtuelle Festplatte anzuschließen). Der RDM-basierte Ansatz unterscheidet sich vom herkömmlichen Ansatz, bei dem Sie einen Datenspeicher auf einer LUN (Logical Unit Number) erstellen, das VMFS-Dateisystem anlegen und die von VMs verwendeten virtuellen Festplatten in diesem Datenspeicher ablegen. RDM ist bei Verwendung von iSCSI möglich, da eine iSCSI-Freigabe auf Blockebene funktioniert und eine VM eine angeschlossene RDM-Blockfestplatte mit einem benutzerdefinierten Dateisystem formatieren kann, das von einem auf der VM installierten Gastbetriebssystem verwendet wird.
Was NFS betrifft, so wird die Verwendung einer NFS-Freigabe zum Anschließen als RDM-Festplatte nicht unterstützt, da NFS-Freigaben auf Dateiebene funktionieren und RDM erfordert, dass Blockgeräte an VMs angeschlossen werden. Mit NFS-Freigaben können Sie lediglich NFS-Datenspeicher erstellen und virtuelle VMDK-Festplattendateien auf diesen Datenspeichern ablegen. Sie können eine NFS-Freigabe und eine iSCSI-Freigabe auf der Ebene eines Gastbetriebssystems einbinden, sofern das Gastbetriebssystem über einen NFS-Client oder einen iSCSI-Initiator verfügt. Daher geht im Vergleich zwischen VMware iSCSI und NFS in der Kategorie „Raw Device Mapping“ iSCSI als Sieger hervor.
iSCSI vs. NFS – Leistung
Bei einer Software-iSCSI-Implementierung ist die Leistung etwas höher, allerdings ist auch die CPU-Auslastung auf dem Client-Host höher. iSCSI belastet zudem das Netzwerk stärker. iSCSI verursacht mehr Netzwerkverkehr und eine höhere Netzwerkauslastung, während die Nutzung von NFS reibungsloser und berechenbarer ist. Bei einer großen Anzahl von Schreibvorgängen kann es bei einer NFS-Freigabe zu Leistungseinbußen kommen.
Bei der Verwendung von NFS in vSphere empfiehlt es sich, NFS mit Support für die vStorage API for Array Integration (VAAI) auf der Speicherseite zu nutzen. Mit VAAI können Sie virtuell dicke Festplatten auf NFS-Datenspeichern erstellen. Standardmäßig werden auf NFS-Datenspeichern „Thin“-provisionierte Festplatten erstellt. Sowohl NFS als auch iSCSI unterstützen Jumbo-Frames, um die Netzwerkleistung zu verbessern.
Zum Abschluss dieses Geschwindigkeitsvergleichs zwischen iSCSI und NFS sollte erwähnt werden, dass die Leistung auch vom Anbieter des Speicher-Arrays abhängt.
Paralleler Zugriff
iSCSI unterstützt keinen gleichzeitigen oder parallelen Datenzugriff auf ein Blockgerät. Daten müssen über zwei Hops geteilt werden. Paralleler Zugriff ist jedoch auf der Ebene eines Dateisystems zulässig, das parallelen Zugriff auf Dateien unterstützt, beispielsweise VMFS oder GFS. Bei der Verwendung von iSCSI-Freigaben in VMware vSphere wird der gleichzeitige Zugriff auf die Freigaben auf VMFS-Ebene gewährleistet.
NFS unterstützt den gleichzeitigen Zugriff auf freigegebene Dateien mithilfe eines Sperrmechanismus und eines „Close-to-Open“-Konsistenzmechanismus, um Konflikte zu vermeiden und die Datenkonsistenz zu gewährleisten. NFS v3 und NFS v4.1 verwenden unterschiedliche Mechanismen. NFS v3 kann das Network Lock Manager-Protokoll (NLM) verwenden, während NFS v4.1 eine protokollspezifische Sperrung nutzt. Wird NFS v3 auf VMware ESXi für den Zugriff auf Dateifreigaben verwendet, nutzt ESXi das NLM-Protokoll nicht, da VMware in diesem Fall ein eigenes Sperrprotokoll bereitstellt. Bei der Verwendung von NFS v3-Freigaben in VMware vSphere werden auf der Dateifreigabe Sperrdateien mit den Namen „ “, „lck-file_id“ und „ “ erstellt.
NFS v4.1 nutzt Reservierungen, um Dateien für den gleichzeitigen Zugriff zu sperren. Wenn Sie eine NFS-Dateifreigabe erstellen, müssen alle Clients dieselbe Version des NFS-Protokolls verwenden (beispielsweise verbinden sich alle ESXi-Hosts über NFS v.4.1 mit der Freigabe). Wenn zwei inkompatible Clients unterschiedliche Versionen von NFS nutzen, um auf Dateien auf einem NFS-Server zuzugreifen, kann es zu inkonsistentem Verhalten und Datenkorruption kommen.
Konfigurationsaufwand
Bei der Verwendung von NFS ist die Konfiguration von Server und Client einfacher. Die Konfiguration eines gemeinsam genutzten Speichers über iSCSI ist schwieriger. Sie müssen IQNs für Speicher und Hosts konfigurieren, den iSCSI-Dienst, LUNs und die Maskierung einrichten sowie aus Sicherheitsgründen mehrere VLANs konfigurieren (Isolierung der für die iSCSI-Kommunikation genutzten Netzwerksegmente, um ein höheres Sicherheitsniveau zu gewährleisten). Lesen Sie mehr über VMware Virtual Volumes , das zur Speicherung von VM-Daten verwendet werden kann.
NFS vs. iSCSI in VMware vSphere – Übersichtstabelle
Lassen Sie uns in dieser iSCSI-vs.-NFS-VMware-Vergleichsübersicht die wichtigsten Funktionen der einzelnen Datenfreigabeprotokolle hervorheben.
| iSCSI | NFS | |
| Datenaustausch | Blockebene | Dateiebene |
| Raw Device Mapping für VMs | Ja | Nein |
| Konfigurationsaufwand | Mittel | Einfach |
| Booten vom SAN | Ja | Nein |
| Fehlerprüfung | Ja | Ja |
| Sicherheit | CHAP | Kerberos |
| Storage vMotion | Ja | Ja |
| Storage DRS | Ja | Ja |
Fazit
Beide Freigabeprotokolle sind ausgereift genug, um in VMware vSphere eingesetzt zu werden. Der Hauptunterschied zwischen iSCSI und NFS besteht darin, dass iSCSI Daten auf Blockebene und NFS Daten auf Dateiebene teilt. Die Leistung ist nahezu identisch, doch in manchen Situationen kann iSCSI bessere Ergebnisse liefern. RDM-Festplatten für VMs können mit iSCSI, jedoch nicht mit NFS verwendet werden.
Beide Netzwerkfreigabeprotokolle sind zuverlässig. Dennoch sollten Sie eine Lösung für Datensicherheit eines Drittanbieters einsetzen, um Datenverluste und Ausfallzeiten zu vermeiden. Vermeiden Sie Stromausfälle und andere Hardwareausfälle, um Datenverluste auf Ihrem gemeinsam genutzten Speicher zu verhindern. Verwenden Sie unterbrechungsfreie Stromversorgungen (USV) und erstellen Sie regelmäßig Backups.