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