Was ist los mit NFS unter Linux?

NFS ist ein Urgestein der Unix-Geschichte. Viele Admins setzen es im Rechenzentrum ein. Doch wem ist, seit Sun von Oracle gekauft wurde, klar, was der aktuelle Stand von NFS in Linux ist? Auf eine Anfrage vom Linux-Magazin hin beschäftigte ich mich näher mit dieser Frage und trug damit zum Artikel „Sundowner“ im Linux-Magazin 7/2016 bei.

Die Entwicklung von NFS ist dabei keineswegs stehen geblieben. Veraltete Informationen im NFS FAQ, im NFS Wiki und das Fehlen einer Entwicklungsübersicht wie bei BTRFS machen es jedoch aufwändig, sich einen Überblick zu verschaffen.

Halbwegs aktuelle Linux-Kernel unterstützen die zwingend vorgegebenen NFS 4.1-Funktionen. Dazu gehören Sessions, Directory Delegations und vor allem der parallele Zugriff auf Dateien, die auf mehreren Servern gespeichert sind (Parallel NFS). NFS 4.2 fügt unter anderem die Zero Copy-Funktion hinzu. Ich möchte euch in den folgenden Absätzen einen Überblick über Parallel NFS, Zero Copy und den aktuellen Stand in Bezug auf den Dual Protocol-Betrieb mit CIFS geben.

Parallel NFS

Mehrere gleichzeitig auf Dateien zugreifende Clients machen einen NFS-Server schnell zum Flaschenhals. Diesen typischen Engpass möchte Parallel NFS beseitigen. In aktuellen Kernel-Versionen agiert der NFS-Server optional nur noch als Metadaten-Server, der den Clients mitteilt, wo sie die angeforderten Daten finden. Clients, die P-NFS unterstützen, fordern die Daten dann direkt von den Storagesystemen an. Andere Clients greifen wie gewohnt über NFS-Version 4 zu.

P-NFS-Schaubild

Die Clients greifen bei P-NFS direkt auf die Speichersysteme zu. Aus dem Linux-Magazin 07/2016

Wo die Daten liegen, bestimmt das sogenannte Layout. Abhängig von der Storage-Art enthält das Layout andere Daten. Der NFS-Standard unterscheidet derzeit vier verschiedene Layout-Typen: File-, Block-, Object- und Flexi-Layouts.

Beim File Layout arbeiten Clients mit Dateien, die über mehrere Server verteilt sind. Das gelingt unter Linux mit dem verteilten Dateisystem GFS2. Das Block Layout indessen arbeitet direkt auf Blockgeräte-Ebene. In Linux funktioniert das derzeit nur in Zusammenarbeit mit einem XFS-Dateisystem, das sich direkt auf dem Block-Gerät befinden muss. Dabei muss der Kernel jedoch einen nicht mehr antwortenden Client zuverlässig aussperren, was nur das neue P-NFS SCSI-Layout Out of the Box implementiert. Schließlich bietet der Kernel auch ein Object Layout, das einen Objekt-basierten Zugriff ermöglicht. Die Implementation auf Basis des Exo-FS-Dateisystems unterstützt dabei Raid-0-Striping, Raid-1-Mirroring und Raid-5.

Zero Copy

Auch Zero Copy dient der Performance-Steigerung. Üblicherweise fordert der Client beim Kopieren von Daten innerhalb eines NFS-Exports die Daten an, nur um sie dann wieder an den Server zu übertragen. Es bietet sich an, das direkt den Server erledigen zu lassen. In Zusammenhang mit BTRFS oder XFS sogar als Copy on Write-Zugriff, ohne die eigentlichen Daten zu duplizieren. Während Samba diese Funktionalität bereits unterstützt, sind die Patches der bei NetApp arbeitenden Anna Schumaker noch nicht Bestandteil des offiziellen Kernels.

Dual Protocol Betrieb

Der Dual Protocol Betrieb spielt in heterogenen Umgebungen eine besondere Rolle, da es aufwändig ist, getrennte Fileserver für Linux- und Windows-Systeme zu betreiben. Es bietet sich an, einen Server ein Dateisystem via NFS und CIFS freigeben zu lassen. Herausfordernd sind hierbei die unterschiedliche Handhabung von Dateisperren und die unterschiedlichen Rechte-Konzepte. NFS-Version 4 schafft hier mit Mandatory Locking, Share Reservations, Delegations und Named Attributes teilweise Abhilfe. Auch die NFS ACLs, die den Windows ACLs ähneln, sind eine willkommene Neuerung.

Die Named Attributes bilden einen zusätzlichen Datenstrom ähnlich den Alternate Data Streams in NTFS. Bei den Delegations weist der Server dem Client eine Datei für die exklusive Bearbeitung zu, um die Netzwerk-Kommunikation zwischen Client und Server zu reduzieren. Die neuen Directory Delegations dienen indes dem Cachen von Verzeichnisinhalten für Lese-Zugriffe.

Fazit und Ausblick

Es ist herausfordernd sich einen Überblick zum aktuellen Stand von NFS im Linux-Kernel zu beschaffen. Wer umfangreiche neue Funktionen wie P-NFS einsetzen möchte, ist gut damit zu beraten, diese zuerst im Testbetrieb zu evaluieren.

Lesen Sie über diese und weitere Neuerungen von NFS unter Linux im Artikel „Sundowner“ im Linux-Magazin 07/2016 auf Seite 36. Derzeit erstelle ich eine neue Schulung, die NFS auf Linux thematisiert. In der geplanten Linux Datacenter Services-Schulung setzen die Teilnehmer anhand von Best Practice-Empfehlungen NFS und andere Dienste für Linux selbst auf. Lesen Sie dazu mehr in einem zukünftigen Blog-Artikel.

Sie möchten Support für Ihre Linux-Server?

Betreiben Sie eigene Linux-Server? Haben Sie Fragen zu Infrastruktur-Diensten unter Linux? Von Analysen des Ist-Zustands über Best Practice-Umbau-Maßnahmen und Aktualisierungen bis hin zu Neu-Installationen unterstützen wir Sie gerne mit Schulungen, Support und Managed Services.

Martin Steigerwald

Martin Steigerwald beschäftigt sich seit Mitte der 90er Jahre mit Linux. Er ist langjähriger Autor von Artikeln für verschiedene Computer-Magazine wie die LinuxUser (linuxuser.de) und das Linux-Magazin (linux-magazin.de). Seit Herbst 2004 ist er als Trainer für Linux-Themen bei Proact Deutschland in Nürnberg tätig.

 
Kommentare

Hallo können Sie mir sagen:
1- was sind die nachteile für NFS?
2- was ist die Strategische Bedeutung?
3- was ist die Zuverlässigkeit von NFS

Martin Steigerwald
Martin Steigerwald

Sehr geehrter Herr Abboud.

Das sind ziemlich weite Fragen, deren vollständige Beantwortung den Rahmen für einen Blog-Kommentar überschreitet. Daher hier nur ein paar Hinweise:

1) Ein Nachteil von NFS v3 und NFS v4 *ohne* Kerberos ist das Fehlen von sicheren Authentifizierungsmechanismen. Nachteil von NFS v4 mit Kerberos ist eine höhere Komplexität. Weitere Nachteile hängen in wesentlichen vom Einsatz-Szenario ab. So ist NFS auch mit pNFS kein verteiltes Dateisystem im Sinne von Ceph oder Lustre. Dennoch hat es bei einem entsprechenden Setup mit 10 GBit Ethernet und Jumbo Frames eine ziemlich gute Performance. Außerdem ist NFS eher auf Linux/Unix-Systemen als auf Windows zu Hause.

2) Mir ist nicht ganz klar, auf was Sie mit dieser Frage hinaus wollen. Strategische Bedeutung für wen oder was?

3) NFS mit den Standard-Einstellungen ist sehr zuverlässig. Zudem lässt sich NFS auch clustern. Fällt der NFS-Dienst dennoch einmal aus oder bricht die Verbindung zu ihm ab, so warten die Clients, bis der Dienst wieder verfügbar ist. Das kann natürlich auch Nachteile haben, ist aber zunächst einmal eine sinnvolle Standard-Einstellung.

Hinterlassen Sie einen Kommentar