Sie sind nicht angemeldet.

1

07.10.2007, 13:32

NFS Server/Client Aktualisierungsproblem

Hallo

ich habe mit einem Fileserver folgendes Problem, der Fileserver exportiert die Homeverzeichnisse der Nutzer über nfs4. In den Homeverzeichnissen der Nutzer liegt ein Programm, das massiv parallel rechnen kann. Aus diesem Grund ist der Fileserver an einen kleinen Cluster angeschlossen (ca 12 Prozessoren). Wenn man sich auf jeden Knoten einloggt, dann wird automatisch das jeweilige Homeverzeichnis auf den Knoten gemountet und steht dem Nutzer zur Verfügung. Das Problem besteht im Ändern von Dateiinhalten, wenn man auf dem Knoten A die Datei X in seinem Homeverzeichnis ändert und sich dann auf den Knoten B einloggt und die Datei X anschaut, dann sind die Änderungen sichtbar. Auf Knoten C hingegen ist immernoch der alte Stand der Datei X vorhanden, obwohl dort dasselbe Homeverzeichnis gemountet wird.
Dieses Verhalten variiert jedoch, denn manchmal tritt es nur bei einem Knoten auf, manchmal bei mehreren Knoten und manchmal auch gar nicht. WENN man so ca. einer Minute wartet, dann ist plötzlich auch die Datei auf dem betroffenem Knoten aktualisiert.

Ich habe schon sämtliche Attribute Server- und Clientseitig getestet (noac, no_wdelay, sync, async etc...) getestet aber ohne Erfolg, das Problem trat immer wieder auf.

Es sieht so aus, dass irgendwie einige Clients nicht ordentlich informiert werden oder irgendetwas zwischen cachen , so meine Vermutung!

Hat jmd. ne Idee wie man das lösen kann? oder woran das liegt?

linuxerr

Prof. Dr. Schlaumeier

  • »linuxerr« ist männlich

Beiträge: 8 557

Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)

  • Nachricht senden

2

07.10.2007, 14:09

RE: NFS Server/Client Aktualisierungsproblem

der nfs-server hat keine information darüber, dass er einen clienten informieren muss, wenn eine änderung einer datei stattfindet. solche änderungen bekommt der client nur mit, wenn er AKTIV beim nfs-server nachfragt (verzeichnisabfrage, dateiabfrage) nur dann teilt der nfs-server die neuen daten mit. wenn also eine datei auf dem nfs-srver geändert wurde und der nächste klient nachfragt, dann bekommt er auch die aktuelle information, ansonsten nicht. der nfs-server "vergisst" die (vor)geschichte einer transaktion sofort, nachdem sie abgewickelt wurde.

wenn ein programm nun eine datei öffnet und im ram geöffnet hält, dann bekommt es von den änderungen nichts mit!
Die Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt.
Jeder der einen findet darf ihn behalten und in eigenen Werken weiterverwenden.

3

07.10.2007, 14:15

Das kann ja so nicht sein, denn wenn man sich die Datei auf Knoten A mit VI anschaut, dann ist sie aktuell. Danach schließe ich den Editor wieder und logge mich aus Knoten A aus. Dann auf Knoten B ein und öffne sie wieder mit VI und da kommt es ab und zu vor, dass dort noch der alte Dateiinhalt steht und nicht die Aktualisierungen (siehe ersten Post). Irgendwie muss der Client dann ja nicht die aktuellen Informationen am NFS server abfragen bzw. warum verzögert sich die Aktualisierung solange?!

linuxerr

Prof. Dr. Schlaumeier

  • »linuxerr« ist männlich

Beiträge: 8 557

Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)

  • Nachricht senden

4

07.10.2007, 14:32

was meldet denn
nfsstat -rc
auf knoten a
Die Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt.
Jeder der einen findet darf ihn behalten und in eigenen Werken weiterverwenden.

5

07.10.2007, 14:49

Das ist auch so ein Ding:


Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Client rpc stats:
calls      retrans    authrefrsh
2063       0          0       

Client nfs v4:
null         read         write        commit       open         open_conf    
0         0% 51        2% 16        0% 16        0% 1067     51% 1         0% 
open_noat    open_dgrd    close        setattr      fsinfo       renew        
0         0% 0         0% 41        1% 31        1% 4         0% 0         0% 
setclntid    confirm      lock         lockt        locku        access       
1         0% 1         0% 0         0% 0         0% 0         0% 213      10% 
getattr      lookup       lookup_root  remove       rename       link         
346      16% 204       9% 2         0% 20        0% 5         0% 0         0% 
symlink      create       pathconf     statfs       readlink     readdir      
0         0% 0         0% 2         0% 0         0% 1         0% 16        0% 
server_caps  delegreturn  
6         0% 18        0%


Es steht auch bei retrans alles auf 0. Das ist ein echt komisches Verhalten.

linuxerr

Prof. Dr. Schlaumeier

  • »linuxerr« ist männlich

Beiträge: 8 557

Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)

  • Nachricht senden

6

07.10.2007, 15:05

die frage ist, wer hier puffert, der client oder der server.

also ich würde, um das problem einzugrenzen, folgendes tun.

1. test
datei auf knoten a öffnen, verändern und vi schliessen.
sofort danach datei auf knoten b öffnen und kontrollieren

2. test
datei auf knoten a öffnen, verändern und vi schliessen und ein sync hinterherschicken.
sofort danach datei auf knoten b öffnen und kontrollieren.

3. ist in der /etc/exports auf dem server async oder sync eingetragen?
bei async puffert der server das schreiben in die datei.
Die Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt.
Jeder der einen findet darf ihn behalten und in eigenen Werken weiterverwenden.

7

07.10.2007, 15:14

zu 3. der Server exportiert mit sync

zu 1. auf Knoten A geändert und auf Knoten b geschaut -> auch geändert
auf Knoten C -> nicht geändert, 1 Min gewartet und auf Knoten C auch geändert

2.Versuch: auf Knoten A geändert, auf Knoten C und D aktualisiert, nur auf Knoten B wieder nicht, dann 1 Min gewartet und Knoten B war auch OK

zu2. das sync hatte keine auswirkung

Thema bewerten