cp ./file /mnt/NFS geht nicht

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
tapferesschneiderlein
Beiträge: 189
Registriert: 11.08.2005 09:27:01

cp ./file /mnt/NFS geht nicht

Beitrag von tapferesschneiderlein » 06.05.2006 22:45:13

Hallo,

ich versuche, etwas in ein NFS-gemountetes Verzeichnis zu kopieren. Dabei steigt die Systemlast (load, nicht CPU) ins Unendliche an, ich kann kein ls mehr auf das Vezeichnis ausführen, den cp-Prozeß nicht killen (auch nicht mit -9).

Was hilft, ist ein /etc/init.d/networking restart.

Auf dem anderen Rechner ergibt ein ls -l immer eine Zieldateigröße von 0, es werden aber (laut iptables) Daten auf den anderen Rechner geschaufelt. Dessen Auslastung ist 0.01, der langweilt sich also.

Gibt es was aktuelleres/besseres als NFS?

Benutzeravatar
knecht
Beiträge: 1214
Registriert: 08.01.2004 15:33:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von knecht » 07.05.2006 11:23:51

NFS ist an sich sehr stabil und schnell, und braucht nicht viel CPU, also passt bei dir definitiv etwas nicht.

Hast du den nfs-user-server installiert ? wenn ja dann ersetzt ihn durch den nfs-kernel-server. Der user-server ist veraltet und wird nicht mehr entwickelt. Dementsprechend instabil ist er !!!

Wenn es das auch nicht ist, schau mal ob auf einem der beiden Rechner vielleicht die Netzwerkkarte defekt ist. Schau ob unter ifconfig wenn was gesendet wird error oder dropt Pakete angezeit werden. Wenn nicht ist die Hardware in Ordnung.

Nebenbei: Hast du auf beiden PCs das Programm portmap installiert ?

Und welches Debian benutzt du ? (bei unstable kann sowas ja auch mal als Bug auftreten!!)

gruss
Sebastian
_________________________________________________
Linux HowTo's, Programmierung, Wallpapers und 3D:
http://www.neoBerserker.de

tapferesschneiderlein
Beiträge: 189
Registriert: 11.08.2005 09:27:01

Beitrag von tapferesschneiderlein » 07.05.2006 12:46:39

Hallo und danke für Deine Antwort,
knecht hat geschrieben:NFS ist an sich sehr stabil und schnell, und braucht nicht viel CPU, also passt bei dir definitiv etwas nicht.
Es ist keine CPU-Last, die auf dem Client erzeugt wird, sondern allgemeine System-Load:

Code: Alles auswählen

top - 16:44:37 up 57 days, 22:59, 10 users,  load average: 32.41, 30.38, 25.20
Tasks: 262 total,   1 running, 260 sleeping,   0 stopped,   1 zombie
Cpu(s):  3.5% us,  1.9% sy,  0.8% ni, 93.3% id,  0.4% wa,  0.1% hi,  0.1% si
Mem:   1036516k total,   992608k used,    43908k free,   305840k buffers
Swap:  1461872k total,      776k used,  1461096k free,   189224k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
27069 root      16   0  2196 1076 1852 R  5.8  0.1   0:00.03 top
    1 root      16   0  1504  480 1352 S  0.0  0.0   0:05.47 init
    2 root      34  19     0    0    0 S  0.0  0.0   4:15.12 ksoftirqd/0
    3 root       5 -10     0    0    0 S  0.0  0.0   0:02.32 events/0
    4 root       7 -10     0    0    0 S  0.0  0.0   0:00.31 khelper
    5 root      14 -10     0    0    0 S  0.0  0.0   0:00.00 kacpid
   45 root       5 -10     0    0    0 S  0.0  0.0   0:48.01 kblockd/0
   58 root       5 -10     0    0    0 S  0.0  0.0   0:00.00 aio/0
   57 root      15   0     0    0    0 S  0.0  0.0   5:09.27 kswapd0
  194 root      25   0     0    0    0 S  0.0  0.0   0:00.00 kseriod
  303 root      15   0     0    0    0 S  0.0  0.0   0:18.43 kjournald
  355 root      12  -4  1492  248 1336 S  0.0  0.0   0:00.38 udevd
 1177 root       5 -10     0    0    0 S  0.0  0.0   0:04.17 reiserfs/0
Hast du den nfs-user-server installiert ?
Auf dem Client? Nein.
Auf dem Server ist nfs-kernel-server installiert, kein nfs-user-server. Auf dem Client ist es genauso, wobei ich nicht weiß, ob das eine Rolle spielt.
Wenn es das auch nicht ist, schau mal ob auf einem der beiden Rechner vielleicht die Netzwerkkarte defekt ist.
Die Netzwerkverbindung ist stabil. Ich habe gerade 1,5 GB Daten in 40 Dateien fehlerfrei per scp kopiert, auch UDP-Pakete kommen an (getestet mit netcat). Das Mounten klappt, und ich kann z. B. ls -l /mnt/NFS den Inhalt von Verzeichnissen anzeigen lassen. Das ganze fährt erst fest, wenn ich einen Kopiervorgang beginne.
Nebenbei: Hast du auf beiden PCs das Programm portmap installiert ?
Ja, auf Server und Client ist portmap installiert, da gibt es eine Abhängigkeit: nfs-kernel-server -> nfs-common -> portmap.
Und welches Debian benutzt du ? (bei unstable kann sowas ja auch mal als Bug auftreten!!)
Debian Sarge mit aktuellen Updates.

tapferesschneiderlein
Beiträge: 189
Registriert: 11.08.2005 09:27:01

Beitrag von tapferesschneiderlein » 08.05.2006 13:21:38

Google und Forensuche haben mich noch auf die Idee gebracht, die Zeitsynchronisation zu prüfen.

Ergebnis: Server und Client gleichen ihre Uhren jeweils per ntp ab, laufen also synchron. Daran liegt es vermutlich also auch nicht.

Was kann ich noch prüfen?

ToPeG
Beiträge: 437
Registriert: 14.04.2004 00:42:06

Beitrag von ToPeG » 08.05.2006 13:28:39

Wenn auf den Server oder Client die Option "sync" verwendet wird, dann wird die Übertragungsrate extrem runter gebremst.

tapferesschneiderlein
Beiträge: 189
Registriert: 11.08.2005 09:27:01

Beitrag von tapferesschneiderlein » 08.05.2006 13:46:25

Code: Alles auswählen

# zfgrep "sync" /var/log/syslog*gz
/var/log/syslog.3.gz:May  4 10:36:27 xxxxxx exportfs[7722]: \
/etc/exports [4]: No 'sync' or 'async' option specified for export \
"192.168.1.1:/home/_slave". Assuming default behaviour ('sync'). \
NOTE: this default has changed from previous versions
Aha. Werde die /etc/exports auf dem Server mal anpassen und dann testen ... oder kann ich async auch beim Mounten auf dem Client angeben? Was hat denn mehr Gewicht?

ToPeG
Beiträge: 437
Registriert: 14.04.2004 00:42:06

Beitrag von ToPeG » 08.05.2006 14:36:59

Der Server hat immer höhere priorität bei den Optionen.

Benutzeravatar
knecht
Beiträge: 1214
Registriert: 08.01.2004 15:33:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von knecht » 08.05.2006 15:28:56

Aha. Werde die /etc/exports auf dem Server mal anpassen und dann testen ... oder kann ich async auch beim Mounten auf dem Client angeben? Was hat denn mehr Gewicht?
Das was beim Server in der exports steht ist das was benutzt wird. Beim Client solltest du in den Optionen nur "defaults" reinschreiben, der Server hat eh immer recht, weil er den Zugriff ja erst wirklich macht!

gruss
Sebastian
_________________________________________________
Linux HowTo's, Programmierung, Wallpapers und 3D:
http://www.neoBerserker.de

tapferesschneiderlein
Beiträge: 189
Registriert: 11.08.2005 09:27:01

Beitrag von tapferesschneiderlein » 08.05.2006 22:08:27

tapferesschneiderlein hat geschrieben:Werde die /etc/exports auf dem Server mal anpassen und dann testen ...
Ich habe jetzt in der /etc/exports auf dem Server die Option »async« hinzugefügt, den nfs-kernel-server dort neu gestartet und auf dem Client neu gemountet.

Kein Unterschied. Sobald ich einen Kopiervorgang beginne, fährt alles, was irgendwie mit mount zu tun hat, fest: Systemlast steigt an (s. o.), cp läßt sich nicht abbrechen (auch keine -9), ein ls -l /mnt/NFS hängt, auf dem Server sieht die Datei so aus:

Code: Alles auswählen

-rw-r--r--  1 4294967294 4294967294    0 2006-05-08 21:56 testfile
und wächst nicht.

Ein Versuch, die in der manpage empfohlenen Optionen »rsize=8192,wsize=8192« anzugeben, ändert auch nichts.

Ratlos
Schneiderlein

Benutzeravatar
habakug
Moderator
Beiträge: 4314
Registriert: 23.10.2004 13:08:41
Lizenz eigener Beiträge: MIT Lizenz

cp ./file /mnt/NFS geht nicht

Beitrag von habakug » 09.05.2006 01:11:12

Hallo!

Das der Vorgang nicht abgebrochen werden kann ist default-Einstellung bei nfs. Das wird mit den Parametern "hard" und "soft" und "intr" gesteuert. Siehe manpage.
Du führst die Operation als root aus, erkennbar an der nobody-uid (-2). Stichwort user-mapping, siehe manpage von exports. Stichwort root-squashing, ebenso.
Ich vermute aber das eine Firewall fragmentierte Pakete dropt. Schalte diese mal probeweise ab.

Gruß, habakug

tapferesschneiderlein
Beiträge: 189
Registriert: 11.08.2005 09:27:01

Beitrag von tapferesschneiderlein » 09.05.2006 09:20:09

Hallo, danke für die Antwort.

Auf dem Server gibt es keine aktivierte FW

Code: Alles auswählen

iptables -vL
Chain INPUT (policy ACCEPT 495 packets, 58887 bytes)
 pkts bytes target     prot opt in     out     source               destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
Chain OUTPUT (policy ACCEPT 402 packets, 86087 bytes)
 pkts bytes target     prot opt in     out     source               destination
Auf dem Client finde ich keine Regel, die das auslösen könnte:

Code: Alles auswählen

# iptables -vnL --line-numbers
Chain INPUT (policy ACCEPT 130M packets, 67G bytes)
num   pkts bytes target     prot opt in     out     source               destination
1       32  1520 REJECT     tcp  --  ppp0   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:10000 reject-with icmp-port-unreachable
2      24M   21G            all  --  ppp0   *       0.0.0.0/0            0.0.0.0/0
3    2888K 1589M            all  --  *      *       192.168.0.0/24       0.0.0.0/0
4    21727 1086K REJECT     tcp  --  ppp0   *      !192.168.0.0/24       0.0.0.0/0           multiport dports 139,445 reject-with icmp-port-unreachable
5      216 16848 REJECT     udp  --  ppp0   *      !192.168.0.0/24       0.0.0.0/0           multiport dports 137,138 reject-with icmp-port-unreachable

Chain FORWARD (policy ACCEPT 3100K packets, 2555M bytes)
num   pkts bytes target     prot opt in     out     source               destination
1       17   816 TCPMSS     tcp  --  *      ppp0    0.0.0.0/0            0.0.0.0/0           tcp flags:0x06/0x02 tcpmss match 1400:1536 TCPMSS clamp to PMTU

Chain OUTPUT (policy ACCEPT 125M packets, 60G bytes)
num   pkts bytes target     prot opt in     out     source               destination
1     125M   60G            all  --  *      *       0.0.0.0/0            0.0.0.0/0
2      16M   14G            all  --  *      *       0.0.0.0/0            192.168.1.6
3    3039K 2900M            all  --  *      *       0.0.0.0/0            192.168.0.0/24

Code: Alles auswählen

# iptables -vnL --line-numbers -t nat

Chain PREROUTING (policy ACCEPT 405K packets, 37M bytes)
num   pkts bytes target     prot opt in     out     source               destination
1        0     0 DNAT       udp  --  *      *       0.0.0.0/0            0.0.0.0/0           multiport dports 5070,30000,30001 to:192.168.1.6
2        0     0 DNAT       udp  --  *      *       0.0.0.0/0            0.0.0.0/0           multiport dports 5071,30002,30003 to:192.168.1.100
3        1   237 DNAT       udp  --  ppp0   *       0.0.0.0/0            0.0.0.0/0           multiport dports 5060,7077,7078,7079,7080,7071 to:192.168.1.201

Chain POSTROUTING (policy ACCEPT 336K packets, 25M bytes)
num   pkts bytes target     prot opt in     out     source               destination
1     304K   19M MASQUERADE  all  --  *      ppp0    0.0.0.0/0            0.0.0.0/0

Chain OUTPUT (policy ACCEPT 606K packets, 42M bytes)
num   pkts bytes target     prot opt in     out     source               destination
1     606K   42M            all  --  *      *       0.0.0.0/0            0.0.0.0/0

Code: Alles auswählen

# iptables -vnL --line-numbers -t mangle
Chain PREROUTING (policy ACCEPT 133M packets, 69G bytes)
num   pkts bytes target     prot opt in     out     source               destination

Chain INPUT (policy ACCEPT 130M packets, 67G bytes)
num   pkts bytes target     prot opt in     out     source               destination
1     1985  185K MARK       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:22 MARK set 0x14

Chain FORWARD (policy ACCEPT 3100K packets, 2555M bytes)
num   pkts bytes target     prot opt in     out     source               destination
1        0     0 MARK       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:22 MARK set 0x14
2      217 61005 MARK       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           multiport dports 80,443,21 MARK set 0x14
3        0     0 MARK       udp  --  *      *       0.0.0.0/0            0.0.0.0/0           multiport dports 53 MARK set 0x14
4        0     0 MARK       tcp  --  *      ppp0    0.0.0.0/0            0.0.0.0/0           tcp dpts:4500:4999 MARK set 0x28
5        0     0 MARK       tcp  --  *      ppp0    0.0.0.0/0            0.0.0.0/0           tcp spts:4500:4999 MARK set 0x28
6      234  9637 MARK       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           length 0:64 MARK set 0xa

Chain OUTPUT (policy ACCEPT 125M packets, 60G bytes)
num   pkts bytes target     prot opt in     out     source               destination
1      346 26977 MARK       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:22 MARK set 0x14
2      479 59810 MARK       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           multiport dports 80,443,21 MARK set 0x14
3      530 32440 MARK       udp  --  *      *       0.0.0.0/0            0.0.0.0/0           multiport dports 53 MARK set 0x14
4        0     0 MARK       tcp  --  *      ppp0    0.0.0.0/0            0.0.0.0/0           tcp dpts:4500:4999 MARK set 0x28
5        0     0 MARK       tcp  --  *      ppp0    0.0.0.0/0            0.0.0.0/0           tcp spts:4500:4999 MARK set 0x28
6    11272  555K MARK       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           length 0:64 MARK set 0xa

Chain POSTROUTING (policy ACCEPT 128M packets, 62G bytes)
num   pkts bytes target     prot opt in     out     source               destination
Auf welchen Ports arbeitet NFS bzw. welche Regel könnte hier beteiligt sein?

Edit by Snoopy:
Ausgaben und Code-Tags verändert und aufgeräumt.

Benutzeravatar
habakug
Moderator
Beiträge: 4314
Registriert: 23.10.2004 13:08:41
Lizenz eigener Beiträge: MIT Lizenz

cp ./file /mnt/NFS geht nicht

Beitrag von habakug » 09.05.2006 11:52:37

Hallo!

Es fällt mir schwer, dir abzukaufen, das du weißt was dieses Firewallskript genau tut.
Ich hatte einfach vorgeschlagen die Firewall für einen kurzen Test auszuschalten.

Hier [1] im Forum findest du Informationen.

Gruß, habakug

[1] http://www.debianforum.de/wiki/?page=NF ... steIPPorts

Antworten