Bonjour à tous,

 

Récemment inscrit à la liste, je sollicite votre aide pour un problème NFS, voici le contexte:

 

Nous possédons deux environnements (Production et Préproduction): sur chaque environnement se trouvent deux serveurs: un serveur de base de données et un serveur web.

Les serveurs web de chaque environnement récupèrent des données importées sur un serveur via NFS, les deux serveurs WEB sont en tout point identiques (Hardware et Software).

 

Mon problème est le suivant:

 

Nous perdons la connexion entre le serveur de Préproduction et le serveur NFS de manière aléatoire, ce problème n'a jamais été relevé jusqu’à ce jour sur le serveur de Production. Les 2 environnements et le serveur NFS sont sur deux réseaux différents, un FireWall autorisant les connexions sur le port 2049 et 111. Les flux mis en place sont les mêmes pour la Prod et la Préprod.

Voici la configuration:

Serveur WEB:

OS -> RedHat 2.6.18-164.11.1.el5

/etc/fstab -> 192.168.X.X:/var/ftp/AExporter      /usr/local/AExporter    nfs     soft,intr,rsize=32768,wsize=32768,nosuid,tcp    0 0

netstat ->
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      2950/portmap
tcp        0      0 0.0.0.0:624                 0.0.0.0:*                   LISTEN      2986/rpc.statd
tcp        0      0 0.0.0.0:56120               0.0.0.0:*                   LISTEN      -                  (NFS)

nfsstat ->
Client rpc stats:
calls      retrans    authrefrsh
10662      8543       0

Client nfs v3:
null         getattr      setattr      lookup       access       readlink
0         0% 2492     23% 103       0% 711       6% 5254     49% 0         0%
read         write        create       mkdir        symlink      mknod
0         0% 296       2% 398       3% 0         0% 0         0% 0         0%
remove       rmdir        rename       link         readdir      readdirplus
103       0% 0         0% 0         0% 0         0% 3         0% 5         0%
fsstat       fsinfo       pathconf     commit
1292     12% 4         0% 0         0% 0         0%


Serveur NFS:

OS -> RedHat 2.6.18-164.11.1.el5

netstat ->
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
tcp        0      0 0.0.0.0:2049                0.0.0.0:*                   LISTEN       -                  (NFS)
tcp        0      0 0.0.0.0:614                 0.0.0.0:*                   LISTEN      3403/rpc.mountd
tcp        0      0 0.0.0.0:650                 0.0.0.0:*                   LISTEN      3012/rpc.statd
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      2976/portmap
tcp        0      0 0.0.0.0:57118               0.0.0.0:*                   LISTEN       -                  (NFS)

nfsstat ->
Server nfs v3:
null         getattr      setattr      lookup       access       readlink
12        0% 121471   39% 14426     4% 47336    15% 50741    16% 0         0%
read         write        create       mkdir        symlink      mknod
11461     3% 19404     6% 21118     6% 0         0% 0         0% 0         0%
remove       rmdir        rename       link         readdir      readdirplus
14423     4% 0         0% 0         0% 0         0% 188       0% 835       0%
fsstat       fsinfo       pathconf     commit
5331      1% 18        0% 0         0% 209       0%


L'erreur qui nous est remontée est la suivante: "kernel: nfs: server 192.168.X.X not responding, timed out"
Cette erreur ne concerne que le serveur WEB de préproduction

L'analyse que nous avons mené jusqu'à présent nous indique un problème de session (tcpdump effectué au niveau du firewall):

 

Le client essai bien de contacter le serveur ( tcp syn sur port 2049 )
192.168.X.X 192.168.X.X TCP 784 > nfs [SYN] Seq=0 Win=5840 Len=0 MSS=1460 TSV=277750420 TSER=0 WS=7 784 nfs

Le paquet arrive bien sur le serveur
192.168.X.X 192.168.X.X TCP 784 > nfs [SYN] Seq=0 Win=5840 Len=0 MSS=1460 TSV=277750420 TSER=0 WS=7 784 nfs

Le serveur envoie sont paquet en retour ( ACK ) afin d'etablir la session tcp
2 0.000007 192.168.X.X 192.168.X.X TCP [TCP ACKed lost segment] nfs > 784 [ACK] Seq=1 Ack=2049758058 Win=501 Len=0 TSV=1624483218 TSER=1589620550 SLE=0

mais ce paquet n'arrive pas au client.

 

Il faut savoir que ce montage NFS fonctionne la majorité du temps (C'est pourquoi je ne pense pas à un problème de config client) et que ces pertes de connexion concernent uniquement le serveur de Préproduction (c'est pourquoi je ne pense pas a un problème de configuration serveur).

En ce qui concerne la config du FireWall, les serveurs de Prod et Préprod appartiennent au même groupe qui est autorisé à communiquer avec le serveur NFS sur les ports 2049 et 111.

 

Merci pour vos lumières.

 

Cordialement,

 

David