[linux-l] lokales Netz - NFS oder Samba?

Peter Ross Peter.Ross at alumni.tu-berlin.de
Mo Apr 16 00:46:09 CEST 2007


Hallo Frank,

On Sun, 15 Apr 2007, Frank Reker wrote:

> ein quitieren allein ist noch keine transaktionskontrolle (wie du
> unten schreibst), da der server nicht wissen kann, ob der client 
> die quittung erhalten hat. - oder macht nfs noch mehr?

Die Pakete sind numeriert, so dass bis hin zum Close - dem abschliessenden 
Paket Konsistenz - gewahrt bleibt.

Z.B. stellt NFS ueber UDP so sicher, dass nicht Pakete2 vor Paket 1 
geschrieben wird, weil das erste nicht empfangen wurde, da dem Client eine 
Bestaetigung fehlt, sendet der nach einer Weile Paket 1 nochmal, das wird 
dann geschrieben, Paket 2 wird danach geschrieben.

Im Prinzip baut NFS auf RPC-Ebene ueber UDP all das nach, was es ueber TCP 
an Transaktionskontrolle "frei Haus" mitgeliefert bekommt..

Anyway, wenn kein Close kommt, kann der NFS-Server nicht wissen, was Du 
lieber moechtest - eine abgeschnittene oder keine Datei. Du wirst die 
abgeschnittene Datei haben.

Das ist Sache der Anwendung. Wenn die sicher sein will, dass alles oder 
nichts geschrieben wird, muss sie:

- eine neue Datei oeffnen,
- veraendern,
- schliessen
- als letzten Befehl sie umbenennen, um so die alte Datei zu 
"ueberschreiben"

Letzte Operation ist atomar, auch ueber NFS.

Man muss dazu sagen, dass Problem des "Abschneidens" wird bei ordentlicher 
Implementation nur passieren, wenn der Client stirbt.. Dann ist 
wahrscheinlich auch der vi tot;-) Temporaere Stoerungen des Netzwerks, bis 
hin zum NFS-Server-Reboot, sollten das alles ueberleben.

Ja, und NFS unter Linux war mal nicht besonders verlaesslich. Daher auch 
der schlechte Ruf. Ich selbst traue Linux nach eigenen schlechten 
Erfahrungen nicht besonders, und bin froh, dass ich NFS derzeit nur in 
einfachen Szenarien, ohne konkurrierenden Zugriff, einsetzen muss.

Immerhin ist unter NFS alles dokumentiert, so dass man weiss, was man 
tut;-) (ich kann z.B. in den Code gucken, und weiss, was da ablaufen 
soll).

Unter SMB ist das nicht gegeben, die Mechanismen wurden versucht, ueber 
Reengineering zu erraten - mein Vertrauen darin ist noch viel geringer.

NFS ist nach wie vor das verlaesslichste Netzwerkfilesystem, was wir 
haben. Perfekt ist es nicht.

Das sollte jetzt mit Version 4 dahin gehen. Sun war mutig und hat es bei 
Solaris 10 zum Default gemacht, wie ich hoerte, mit einigen Problemchen 
zum Anfang. Aber dafuer laeufts jetzt wohl:-)

Ich denke, wer kann, sollte auch unter Linux Version 4 einsetzen.

Wir koennen ja nicht ewig durch Traditionalisten aufgehalten werden, die 
allem ueber Version 2 und UDP nicht trauen, auch wenn die Probleme, die 
sie haben, in neueren Versionen schon gar nicht mehr auftreten koennen.

Fuer den genannten Fall, wo auch ein Windows-Rechner mitspielte, wenn ich 
mich recht erinnere, wird es aber wohl nicht gehen. Meines Wissens gibt es 
derzeit keinen freien NFSv4-Client. Den gibt es bei Hummingbird zu kaufen.

Dafuer hat NFSv4 ACLs, kann auch mit Windows-Style-ACLs umgehen.

Es gruesst
Peter



Mehr Informationen über die Mailingliste linux-l