[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[Debian]:Re: mehr zu:NFS-Locking-Probleme: ?



Gerhard Kroder <gerhard.kroder@data-sciences.de> wrote:

> mooment, was ist das? ich bin leider gerade erst auf den thread
> gestoßen und kenne die andere mails dazu nicht. aber es interessiert
> mich doch was da mit defektem nfs (locking) ist. wir haben liunux
> mit nfs doch erheblich im einsatz. ich stelle gerade unsere
> vorhandenen linux-maschinen auf debian um, und es kommen auch noch
> immer mehr dazu... :-)? das problem betrifft aber nur die
> nfs-server, richtig?

Nein, die Probleme hängen von extrem vielen Faktoren auf Client und
Server ab:
- Kernel des Client
- Mount-Optionen des Client
- Locking-Technik der Client-Programme
- Kernel des Servers
- nfsd des Servers

Leider sind die Kombinationen, bei denen Mail verloren gehen kann,
ganz klar in der Überzahl.

> wir haben zwar viel nfs im einsatz, die server sind aber (fast) alle
> solaris-maschinen (gerade nachgesehen, der bisher einzige offizielle
> linux-server ist 2.0.36). und ich benutze selbst den 2.2.10 seit 2
> monaten als client, ohne probleme bemerkt zu haben... (/home,
> /usr/local und andere datenbereiche).

Die Probleme treten auf, wenn auf Client und Server oder auf zwei
verschiedenen Clients auf das selbe File geschrieben wird.

Das Problem-Scenario kann etwa so aussehen:
- Client liest seine Mail via NFS
- Am Server trifft eine neue Mail ein und wird in den Mailfolder
  gespeichert, der gerade von dem Client gelesen wird
- Client hat eine Mail aus der Mailbox gelöscht und schreibt die
  Mailbox nun zurück

Dank Locking sollte es theoretisch keine Probleme geben, in der Praxis 
können die aber auftreten, sobald der Client Kernel 2.2.* verwendet.
Der 2.2.* cacht nämlich Files und bekommt es so u.U. schlicht und
ergreifend nicht mit, daß sich die Mailbox geändert hat, weil er den
Server einfach nicht neu befragt. Daher ist im Kernel ein Trick
eingebaut, der dafür sorgt, daß fcntl()-Locking den Cache für das
gelockte File flusht.

Das setzt natürlich voraus, daß alle Client-Programme fcntl()-Locking
verwenden, aber genau das ist bei Debian nicht vorgeschrieben und Mutt 
ist vermutlich das einzige Paket, das das (entgegen der Policy) schon
umgesetzt hat.

Hinzu kommt dann noch ein Bug in allen 2.2.* Kernels bis
einschließlich 2.2.12 (seit 2.2.13ac10 ist das behoben und wird wohl
auch in 2.2.13 behoben sein), der das Flushen des Caches mittels
fcntl() nur dann durchführt, wenn der Server ebenfalls Locking
unterstützt und dieses client-seitig nicht durch "nolock" als
Mount-Option abgeschaltet ist.

Mit einem 2.0.36 auf dem Server hast Du da also schon verloren und
solltest den Client dringend auf 2.2.13 bringen. Mit Solaris dürfte es 
keine Probleme geben, denn die bieten ja schon lange Locking via NFS
an, aber damit habe ich bisher noch keine Erfahrungen gesammelt, da
kann ich also nichts zu sagen.

> ist das in einer (welcher?) der mailinglisten ausführlicher
> diskutiert worden?

Auf keiner :-(
Das Problem ist, daß dieses Problem kaum jemanden zu interessieren
scheint, auf debian-devel und debian-policy hat sich jedenfalls
niemand dafür interessiert (daher ist es nichtmal ansatzweise
behoben). Du kannst Dir aber mal die Bugs #43491 und #39030 anschauen, 
da ist einiges an Diskussion zu dem Thema drin.

Tschoeeee

        Roland

-- 
 * roland@spinnaker.de * http://www.spinnaker.de/ *
PGP (RSA): 1024R/DD08DD6D   2D E7 CC DE D5 8D 78 BE   3C A0 A4 F1 4B 09 CE AF
GPG (DSA): 1024D/BD8B050D   3A63 2410 4B40 422D 1111  1D2C 3BBF CF77 BD8B 050D
------------------------------------------------
Um sich aus der Liste auszutragen schicken Sie
bitte eine E-Mail an majordomo@jfl.de die im Body
"unsubscribe debian-user-de <deine emailadresse>"
enthaelt.
Bei Problemen bitte eine Mail an: Jan.Otto@jfl.de
------------------------------------------------
Anzahl der eingetragenen Mitglieder:     744


Reply to: