[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