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 einen gemeinsamen Speicher für die Speicherung virtueller Maschinen (VMs) konfigurieren müssen, die zwischen ESXi-Hosts migriert werden müssen, um die Clustering-Funktionen von zu nutzen, und 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), die jedoch kostspielig sind. NFS und iSCSI sind jedoch für kleine und mittelgroße Rechenzentren, die für die VMware vSphere-Infrastruktur genutzt werden, attraktiv, da die für die Konfiguration der Dateifreigabe mit diesen Freigabeprotokollen erforderliche Hardware kostengünstiger ist. In diesem Blogbeitrag werden NFS und iSCSI mit Schwerpunkt auf ihrer Verwendung in einer virtuellen VMware vSphere-Infrastruktur verglichen.
Was ist NFS?
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 neueste Implementierung von NFS die Version 4.1. Version 4.2 befindet sich in der Entwicklung und wurde noch nicht für den Einsatz in der Produktion vorgestellt.
Mit jeder neuen Version von NFS wurden neue Funktionen und Verbesserungen hinzugefügt, darunter auch Funktionen, die für die Speicherung von Virtualisierungen nützlich sind. NFS v4.1 bietet einen Mechanismus, mit dem mehrere Benutzer dieselbe Datei teilen können und die Datenkonsistenz gewährleistet ist (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 einem NFS-Server aus, indem sie Remote Procedure Call (RPC)-Anfragen 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 der Standard für die Datenabstraktion zwischen Plattformen ist. XDR beschreibt die einheitliche und kanonische Form der Datendarstellung, die nicht von der Architektur des Computersystems abhängt. Wenn ein Client Daten überträgt, wandelt der RPC-Client die lokalen Daten in eine kanonische Form um, und der Server führt die umgekehrte Operation durch.
Sobald die Datenvereinheitlichung abgeschlossen ist, stellt der RPC-Dienst auf der Client-Seite die Anforderung von Remote-Prozeduren und deren Ausführung auf dem Server sicher (und stellt Funktionen der Sitzungsschicht bereit). Damit ist das Fertigstellen der Erläuterung der NFS-spezifischen Schichten abgeschlossen. Weiter werden die Daten in Standard-TCP- oder UDP-Dateneinheiten gekapselt und an die darunterliegenden Schichten des OSI-Modells übertragen.
| OSI-Schichten | Protokolle |
| Anwendung | NFS |
| Präsentation | XDR |
| Sitzung | RPC |
| Transport | TCP |
| Netzwerk | IP |
| Datenverbindung | Ethernet |
| Physikalisch | – |
NFS teilt Daten auf Dateiebene. Standard-Netzwerkadapter mit Ethernet-Schnittstelle und RJ-45-Port können für die Implementierung von NFS-Freigaben verwendet werden.
Die ältesten NFS-Versionen arbeiten über UDP über das IP-Netzwerk, während die neueren Versionen (NFS v2 und v3) über TCP und UDP arbeiten können. NFS 4.0 und 4.1 verwenden TCP über IPv4 als Standard. NFS v4 arbeitet durch Firewalls 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 NFS-Versionen 3.0 und 4.1 werden zwei verschiedene NFS-Clients verwendet. Sie können beim Erstellen 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
- Speicher-E/A-Steuerung
- Standortwiederherstellung Manager
Die Verwendung von NFS-Datenspeichern ist praktisch, wenn Sie VM-Vorlagen und ISO-Images für die Installation von Betriebssystemen auf Virtuellen Maschinen speichern möchten.
Was ist iSCSI?
Internet Small Computer Interface (iSCSI) ist ein Netzwerkprotokoll, das die Interaktion von Objekten (Initiatoren und Ziele) im Netzwerk zum Teilen von Daten sicherstellt. 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-Hostbusadapters (HBA). Ein Hardware-iSCSI-HBA ist ein Netzwerkschnittstellencontroller (NIC) mit einer Ethernet-Schnittstelle. In diesem Vergleich zwischen iSCSI und NFS betrachte ich die Verwendung von softwarebasierten iSCSI-Initiatoren. 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 läuft. 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.
| Ebenen | 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 (arbeitet normalerweise 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 VMware VM-Wiederherstellung verwendet werden kann. Wenn Sie beispielsweise Instant VM Recovery in NAKIVO Backup & Replikation & verwenden, um eine VM auf einem ESXi-Host direkt aus einem Backup heraus auszuführen, wird die VM auf dem ausgewählten ESXi-Host erstellt und virtuelle Festplatten werden von dem iSCSI-Protokoll als RDM-Festplatten in einem virtuellen Kompatibilitätsmodus an die VM angehängt.
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 mit Kupferkabeln aufgebaut sind. Eine höhere Netzwerkgeschwindigkeit ist besser. Weitere Informationen zu Netzwerktopologien. Bei 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 verwendet werden. Beide Freigabeprotokolle verursachen aufgrund des Mechanismus der mehrschichtigen Datenkapselung über TCP/IP-Netzwerke einen erheblichen Overhead.
NFS wird von den meisten NAS-Geräten verschiedener Anbieter unterstützt, zum Beispiel Synology und QNAP. Heutzutage ist es jedoch nicht schwer, ein NAS-Gerät zu finden, das einen Support für iSCSI hat.
Sehen wir uns diesen Vergleich zwischen VMware NFS und iSCSI einmal in Details an.
Lastenausgleich
Wenn ein Netzwerkpfad ausfällt oder überlastet ist, ermöglicht Multipathing den Lastenausgleich zwischen einem Server und einem Speicher, sofern mehrere Pfade vorhanden sind.
NFS 4.1 unterstützt Multipathing, wenn Session Trunking auf Servern verfügbar ist (jedoch nicht Client-ID-Trunking). 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 Netzwerk-Lastausgleich.
In VMware vSphere funktioniert iSCSI-Multipathing auf der Ebene eines VMkernel-Netzwerkadapters. Für den iSCSI-Lastausgleich in vSphere können Sie Port-Bindung verwenden.
Caching
Bei Verwendung von NFS befindet sich ein Dateisystem mit Dateisystem-Cache auf einem NFS-Server, und ein Client-Computer 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 Verwendung von iSCSI wird ein Dateisystem vom Client-Gerät erstellt, nachdem es Zugriff auf den gemeinsam genutzten Speicher auf Blockebene erhalten hat (wie bei VMware vSphere, wo ein VMware ESXi-Host das VMFS-Dateisystem auf iSCSI LUN erstellt). Eine Caching-Richtlinie wird von einem Dateisystem für iSCSI-gemeinsam genutzten Speicher definiert, und der Dateisystem-Cache befindet sich auf der Client-Seite. Wenn Sie beispielsweise iSCSI als Freigabeprotokoll und ext3 als Dateisystem verwenden, verfügen Sie über den vollständigen Write-Back-Cache für Daten- und Metadatenaktualisierungen.
Die modernsten Dateisysteme verwenden asynchrone Metadatenaktualisierungen, und für die Datenwiederherstellung wird logbasiertes Journaling verwendet. Im Allgemeinen ist die asynchrone Datenaktualisierung (die in iSCSI verwendet wird) in Bezug auf die Persistenz von Daten und Metadaten weniger zuverlässig als die synchrone Aktualisierung, wie sie beispielsweise in NFS verwendet wird.
Zuverlässigkeit
NFS. NIC-Teaming kann zum Schutz vor Netzwerkausfällen eingesetzt werden. Wenn eine Netzwerkkarte ausfällt, kann eine andere Netzwerkkarte weiterarbeiten.
iSCSI. VMware Pluggable Storage Architecture (PSA) verwendet 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 für die Kapselung verwenden, wird die Datenübertragung auf Netzwerkebene überprüft.
VMFS auf dem iSCSI-Speicher kann anfällig sein, wenn Sie Thin Provisioned 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, indem 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. Die Verwendung eines Namens und eines Passworts wird für die Authentifizierung für iSCSI-Freigaben unterstützt. Mit dem Challenge Handshake Authentication Protocol (CHAP) können Server und Client sicherstellen, dass sie einander vertrauen.
NFS verwendet eine hostbasierte Authentifizierung. Die Standardkonfiguration von NFS bietet keine Verschlüsselung (sys=system), aber 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 definieren, der auf die NFS-Freigabe zugreifen darf. Sie können auch mehrere Hosts oder das gesamte Subnetz definieren. Das weit verbreitete dateibasierte Freigabeprotokoll SMB basiert beispielsweise auf einer benutzerbasierten Authentifizierung.
Die Konfiguration eines dedizierten VLAN oder die Verwendung eines separaten (privaten) physischen Netzwerks wird für die Verwendung von gemeinsam genutztem iSCSI- und NFS-Speicher in VMware vSphere empfohlen. Mit diesem Ansatz können Sie den Speicherverkehr von anderen Arten von Datenverkehr isolieren. NFS v3 verfügt nicht über Funktionen, die denen von NFS v4.1 ähneln. Ein ESXi-Server mountet eine NFS-Freigabe mit Root-Zugriff (wenn Kerberos nicht verwendet wird). Behalten Sie dies also bei der Erstellung einer sicheren Konfiguration im Hinterkopf. Lesen Sie auch die Informationen zu VLAN und VXLAN.
NFS v.4.1 unterstützt neben der Verschlüsselung (DES) auch die Kerberos-Authentifizierung mit Kryptografie-Mechanismen. Die kryptografischen Algorithmen in Kerberos verhindern, dass unbefugte Benutzer auf den NFS-Datenverkehr zugreifen können. ESXi unterstützt die Implementierungen krb5 und krb5i von Kerberos. ESXi 7.0 unterstützt die NFS 4.1 Kerberos-Verschlüsselung und den AUTH_SYS-Sicherheitsmechanismus (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 eine virtuelle Festplatte in der VM-Konfiguration 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 erstellen und virtuelle Festplatten, die von VMs verwendet werden, auf diesem Datenspeicher speichern. RDM ist bei Verwendung von iSCSI möglich, da eine iSCSI-Freigabe auf Blockebene funktioniert und eine VM eine angehängte Block-RDM-Festplatte mit einem benutzerdefinierten Dateisystem formatieren kann, das von einem auf der VM installierten Gastbetriebssystem verwendet wird.
Was NFS betrifft, wird die Verwendung einer NFS-Freigabe zum Anfügen als RDM-Festplatte nicht unterstützt, da NFS-Freigaben auf Dateiebene funktionieren und RDM erfordert, dass Blockgeräte an VMs angehängt werden. Mit NFS-Freigaben können Sie nur NFS-Datenspeicher erstellen und virtuelle VMDK-Festplattendateien auf den Datenspeichern speichern. Sie können eine NFS-Freigabe und eine iSCSI-Freigabe auf der Ebene eines Gastbetriebssystems mounten, wenn das Gastbetriebssystem über einen NFS-Client oder einen iSCSI-Initiator verfügt. Somit ist in der Kategorie „Raw Device Mapping“ im Vergleich zwischen VMware iSCSI und NFS iSCSI der Gewinner.
iSCSI vs. NFS-Leistung
Bei einer Software-iSCSI-Implementierung ist die Leistung etwas höher, aber auch die CPU-Auslastung auf dem Client-Host ist höher. iSCSI belastet auch das Netzwerk stärker. iSCSI erzeugt mehr Netzwerkverkehr und Netzwerkauslastung, während die Verwendung von NFS reibungsloser und vorhersehbarer ist. Wenn eine große Anzahl von Schreibvorgängen durchgeführt wird, kann es bei einer NFS-Freigabe zu Leistungseinbußen kommen.
Bei der Verwendung von NFS in vSphere ist es besser, NFS mit Support für vStorage API for Array Integration (VAAI) auf der Speicherseite zu verwenden. Mit VAAI können Sie dick provisionierte virtuelle Festplatten auf NFS-Datenspeichern erstellen. Thin Provisioned Disks werden standardmäßig auf NFS-Datenspeichern erstellt. Sowohl NFS als auch iSCSI unterstützen Jumbo-Frames, um die Netzwerkleistung zu verbessern.
Am Ende dieses Geschwindigkeitsvergleichs zwischen iSCSI und NFS sollte erwähnt werden, dass die Leistung auch vom Anbieter des Speicher-Arrays abhängt.
Gleichzeitiger Zugriff
iSCSI unterstützt keinen gleichzeitigen oder parallelen Datenzugriff auf ein Blockgerät. Daten müssen zwischen zwei Hops geteilt werden. Paralleler Zugriff ist jedoch auf der Ebene eines Dateisystems zulässig, das parallelen Zugriff auf Dateien unterstützt, z. B. VMFS oder GFS. Bei 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 native, protokollspezifische Sperrung verwendet. Wenn NFS v3 auf VMware ESXi für den Zugriff auf Dateifreigaben verwendet wird, verwendet ESXi das NLM-Protokoll nicht, da VMware in diesem Fall ein eigenes Sperrprotokoll bereitstellt. Dateien mit den Namen „.lck-file_id “ werden bei Verwendung von NFS v3-Freigaben in VMware vSphere auf einer Dateifreigabe erstellt.
NFS v4.1 verwendet 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 (alle ESXi-Hosts verbinden sich beispielsweise über NFS v.4.1 mit der Freigabe). Wenn zwei inkompatible Clients unterschiedliche Versionen von NFS verwenden, um auf Dateien auf einem NFS-Server zuzugreifen, kann es zu inkonsistentem Verhalten und Datenbeschädigungen kommen.
Schwierigkeit der Konfiguration
Bei Verwendung von NFS ist es einfacher, einen Server und einen Client zu konfigurieren. Die Konfiguration eines gemeinsam genutzten Speichers mit iSCSI ist schwieriger. Sie müssen IQNs für Speicher und Hosts konfigurieren, eine Konfiguration des iSCSI-Dienstes, der LUNs und der Maskierung vornehmen und aus Gründen der Sicherheit mehrere VLANs konfigurieren (Isolierung der für die iSCSI-Kommunikation verwendeten Netzwerksegmente, um eine höhere Sicherheit zu gewährleisten).
Lesen Sie mehr über virtuelle VMware-Volumes , die zur Speicherung von VM-Daten verwendet werden können.
NFS vs. iSCSI in VMware vSphere – Übersichtstabelle
Lassen Sie uns die wichtigsten Funktionen der einzelnen Datenfreigabeprotokolle in dieser Vergleichstabelle zwischen iSCSI und NFS VMware hervorheben.
| iSCSI | NFS | |
| Datenaustausch | Blockebene | Dateiebene |
| Raw-Gerätezuordnung für VMs | Ja | Nein |
| Schwierigkeit der Konfiguration | Mittel | Einfach |
| Boot von SAN | Ja | Nein |
| Fehler bei der Überprüfung | Ja | Ja |
| Funktionen zur Sicherheit | CHAP | Kerberos |
| Speicher vMotion | Ja | Ja |
| Speicher DRS | Ja | Ja |
Fazit
Beide Protokolle zum Teilen von Daten sind ausgereift genug, um in VMware vSphere verwendet 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, aber in manchen Situationen kann iSCSI bessere Ergebnisse liefern. RDM-Festplatten für VMs können mit iSCSI, aber nicht mit NFS verwendet werden.
Beide Netzwerkfreigabeprotokolle sind zuverlässig. Sie müssen jedoch weiterhin eine Lösung für die Datensicherheit eines Drittanbieters verwenden, um Datenverluste und Ausfallzeiten zu vermeiden. Vermeiden Sie Stromausfälle und andere Hardwareausfälle, um Datenverluste auf Ihrem gemeinsam genutzten Speicher zu vermeiden. Verwenden Sie unterbrechungsfreie Stromversorgungsgeräte und erstellen Sie regelmäßig Backups.