Eine Linux-Maschine tritt einem VPN bei, mountet einen entfernten NFS-Export und stellt diesen Mount dann einem anderen Satz von Clients bereit. Diese Anordnung sieht wie Routing mit zusätzlichen Schritten aus, und das ist die erste falsche Annahme. Die mittlere Maschine ist Client des vorgelagerten Servers und Server für die nachgelagerten Clients, und sie nimmt an beiden Dateidienst-Beziehungen teil. Paketweiterleitung hat keine Meinung zu Dateihandles, Sperren oder Dateisystemidentität; ein Re-Export schon.

Fragen Sie zuerst, ob die nachgelagerten Clients den ursprünglichen Server direkt erreichen könnten. Wenn ja, ist die mittlere Maschine optional.

Drei Modelle, drei Geschichten von Konsistenz

Der direkte Mount ist der einfachste: Jeder Client mountet den ursprünglichen Server durch den Tunnel, und die Exportrichtlinie dieses Servers regelt den Zugriff. Re-Export ist die mittlere Maschine, die eine andere Dienstgrenze darstellt, was nützlich ist, wenn das clientseitige Netzwerk den Server nicht direkt erreichen darf. Replikation ist ein drittes Modell, und sie verschiebt die Frage von Konsistenz zu Synchronisierung und Konfliktlösung.

Beschreiben Sie eine replizierte Kopie nicht so, als wäre sie ein Live-Re-Export. Die Fehlermodi unterscheiden sich, und ein Benutzer, der erwartet, dass jeder Vorgang das ursprüngliche Dateisystem erreicht, wird während eines Verbindungsausfalls überrascht.

Identität überlebt den Mount-Befehl

Re-Exporte benötigen eine explizite Dateisystem-ID, und diese Identität muss Neustarts und Konfigurationsneubauten überleben. Die Kernel-Dokumentation ist in dieser Anforderung klar und warnt außerdem, dass crossmnt nicht die Notwendigkeit beseitigt, untergeordnete Dateisysteme mit eigenen IDs zu exportieren. Ein Verzeichnisbaum, der für einen Benutzer zusammenhängend aussieht, kann mehrere Dateisystemgrenzen überschreiten. Aktuelle nfs-utils können IDs für unterstützte Konfigurationen automatisch vergeben, und wenn sie das tun, wird ihre Datenbank Teil des Zustands des Gateways. Behandeln Sie diese IDs als Dienstidentität und nicht als Wegwerfdateien.

Dateihandles sind die andere Identitätsgrenze: Ein Re-Export umhüllt das ursprüngliche Handle, wodurch es größer wird und das Limit eines Clients überschreiten kann. Ein erfolgreicher Mount beweist nicht, dass jedes Exportlayout kompatibel ist.

Nicht jede NFS-Funktion überlebt die mittlere Maschine

Die Re-Export-Anleitung des Kernels stellt fest, dass der re-exportierende Server Sperren oder Delegierungsanfragen nicht unterstützt. Anwendungen, die von diesen Vorgängen abhängen, brauchen einen anderen Weg oder ein dagegen geprüftes Design. Ein erfolgreicher Mount und ein funktionierendes Verzeichnislisting zeigen nicht, dass die tatsächlichen Vorgänge der Anwendung funktionieren.

Benutzeridentität und Exportrichtlinie zählen auch bei jedem Sprung. Eine VPN-Anmeldung beweist, dass ein Netzwerkteilnehmer authentifiziert wurde; sie autorisiert keinen NFS-Benutzer und leitet die Anmeldedaten eines Clients nicht über das Gateway weiter.

Das Gateway hat zwei vorgelagerte Abhängigkeiten

Das Gateway hängt für den vorgelagerten Mount vom VPN und für das Dateisystem selbst vom vorgelagerten Server ab. Ein lokaler Exportprozess, der noch läuft, kann nicht verfügbaren Speicher nicht gesund machen. Planen Sie Startreihenfolge, Wiederverbindungsverhalten und Serverneustarts, einschließlich dessen, was mit Dateihandles geschieht, die Clients bereits halten. Ein Client, der über das Gateway gemountet hat und sein Handle verloren hat, braucht einen erneuten Mount, und das ist ein Betriebsereignis statt einer transparenten Wiederherstellung.

Wenn alles, was die Anforderung je brauchte, private IP-Erreichbarkeit war, ist das direkte Routing zum ursprünglichen Server die einfachere Architektur. Der Re-Export sollte aus einem Grund existieren, der es übersteht, aufgeschrieben zu werden.

Testen Sie die Arbeitslast, nicht den Mount

Üben Sie die echte Dateiarbeitslast in einer kontrollierten Umgebung: die Vorgänge, die die Anwendung ausführt, die Dateigrößen, die sie verwendet, und die Parallelität, die sie erwartet. Achten Sie auf die Funktionslücken und nicht nur auf Transportfehler. Notieren Sie dann, welches Modell Sie gewählt haben und warum, weil die nächste Person sonst annimmt, das Gateway sei ein Router.

Ein Re-Export ist legitim, wenn er aus einem bewussten Grund existiert, etwa einem isolierten Clientnetzwerk oder einer kontrollierten Versionsgrenze. Er ist ein schlechter Zufall, und der Unterschied ist, ob jemand ihn entschieden hat.

Ähnliche Artikel