Können geöffnete Dateien auf NFS-gemounteten Volumes getrennt werden, während Anwendungen, in denen sie noch geöffnet sind, lesen / schreiben?

9

Kann ich mit NFS geöffnete Dateien aufheben / löschen, wie ich es mit lokalen Dateisystemen tun kann?

Der Grund, den ich frage, ist, dass ich etwas entwickle, das auf mehreren Servern ausgeführt wird und möglicherweise als Back-End auf NFS zugreift. Es vereinfacht die Dinge etwas, wenn ich eine Verknüpfung zu einer geöffneten Datei aufheben kann.

Dies ist eine nette Funktion der Linux-Dateisysteme (Unix?), Mit der Sie die Verknüpfung einer geöffneten Datei aufheben können. Der Verzeichniseintrag wird einfach entfernt. Die Datei steht einem Prozess weiterhin zur Verfügung, der sie offen hält, solange sie geöffnet ist. Nach dem Schließen wird die Inode zerstört.

Gilt dieselbe Funktionalität für Dateien, die auf NFS-Mounts geöffnet wurden?

Matt
quelle
Vielleicht möchten Sie umformulieren (um Abstimmungen zu vermeiden). Auf den ersten Blick scheint es so, als würden Sie fragen, ob Sie Dateien mit NFS löschen können. Ich war ziemlich ratlos darüber, warum Sie mit der Anzahl der Punkte, die Sie stellen, eine so grundlegende Frage stellen würden haben. :-)
Red Tux

Antworten:

9

Die kurze Antwort lautet ja mit Vorbehalten.

Da NFSv3 zustandslos ist, führt der NFS-Client-Treiber dies mit etwas aus, das als "albernes Umbenennen" bezeichnet wird, wobei die gelöschte Datei in etwas wie .nfsXXXXXXXXXX umbenannt wird. Dies funktioniert im Allgemeinen, es gibt jedoch einige Einschränkungen im Vergleich zu einem lokalen Dateisystem. Wenn der Client beispielsweise abstürzt, werden diese .nfsXXXX-Dateien nicht gelöscht, und Sie müssen sie manuell bereinigen.

Ich denke, ab NFSv4.1 verfügt das Protokoll über die erforderlichen Funktionen, um das Löschen beim letzten Schließen ohne dumme Umbenennung zu implementieren, aber ich weiß nicht, ob Clients / Server dies noch implementieren.

janneb
quelle
Es ist zu beachten, dass dies nur funktioniert, wenn die Datei auf demselben Client geöffnet wird, der die Verknüpfung aufhebt, da NFS zustandslos ist.
Quentin Casasnovas