J'ai deux conteneurs Linode. Le conteneur A est notre serveur web à usage général. Il a occasionnellement besoin d'accéder à la boîte B, qui est configurée comme un serveur NFS.
Lorsque la boîte B redémarre, la boîte A ne peut accéder à aucun partage NFS, quoi que je fasse. Après plusieurs heures de dépannage, j'ai finalement réussi à résoudre le problème en une seule étape.
Après le redémarrage de la boîte B :
$ sudo service nfs restart
Ce sont deux boîtes CentOS 6.8, à jour. Les paquets liés à NFS ont tous été installés via yum, je crois. J'ai eu quelques difficultés à configurer l'ensemble ; le processus n'a pas été facile, mais après avoir redémarré le(s) service(s) nfs, tout fonctionne parfaitement.
Si je
$ sudo service --status-all
il n'y a pas de différence avant et après le redémarrage. C'est peut-être un problème de timing ? Mais je ne sais pas comment commencer à résoudre ce problème. Qu'est-ce que je peux faire ?
D'autres choses à noter :
-
J'utilise autofs pour monter automatiquement le partage à la demande depuis la boîte A, mais le partage ne se monte pas non plus manuellement.
-
Je passe mes journées sur des ordinateurs de bureau et des serveurs Windows et Mac, mais je gère des sites web sous Linux depuis de nombreuses années. Je sais faire ce que je dois faire, mais ce n'est pas mon domaine de prédilection et je passe beaucoup de temps à chercher sur Google comment faire de nouvelles choses.
Je ne sais même pas où vérifier. Je n'ai rien vu d'évident dans les journaux, mais dites-moi ce qu'il faut chercher et je posterai.
Mise à jour
Sur la boîte B :
[shorowitz@BoxB ~]$ sudo chkconfig --list nfs
nfs 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[shorowitz@BoxB ~]$ sudo chkconfig --list nfslock
nfslock 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Mise à jour 2
Après un nouveau redémarrage de BoxB, en exécutant
$ sudo showmount -e BoxB
de BoxA montre les points de montage attendus, mais je suis incapable de les monter. Il suffit de redémarrer nfs sur BoxB
$ sudo service nfs restart
Shutting down NFS daemon: [ OK ]
Shutting down NFS mountd: [ OK ]
Shutting down NFS services: [ OK ]
Shutting down RPC idmapd: [ OK ]
FATAL: Module nfsd not found.
FATAL: Error running install command for nfsd
Starting NFS services: [ OK ]
Starting NFS mountd: [ OK ]
Starting NFS daemon: [ OK ]
Starting RPC idmapd: [ OK ]
Et les montages sont immédiatement disponibles sur BoxA. Ces erreurs fatales apparaissent également lors des redémarrages suivants lorsque NFS fonctionne déjà, donc je ne sais pas si elles sont pertinentes (je pensais les avoir déjà postées).
Informations supplémentaires sur le journal
J'ai lancé la commande reboot à 9:29 le 15 nov.
grep -i "nfs" /var/log/message*
messages:Nov 15 09:29:08 BoxB kernel: nfsd: last server has exited, flushing export cache
messages:Nov 15 09:29:54 BoxB kernel: RPC: Registered tcp NFSv4.1 backchannel transport module.
messages:Nov 15 09:29:54 BoxB kernel: FS-Cache: Netfs 'nfs' registered for caching
messages:Nov 15 09:29:54 BoxB kernel: NFS: Registering the id_resolver key type
messages:Nov 15 09:29:54 BoxB kernel: nfs4filelayout_init: NFSv4 File Layout Driver Registering...
messages:Nov 15 09:29:54 BoxB kernel: Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
messages:Nov 15 09:29:54 BoxB kernel: xenfs: not registering filesystem on non-xen platform
messages:Nov 15 09:29:54 BoxB rpc.mountd[2740]: NFS v4 mounts will be disabled unless fsid=0
messages:Nov 15 09:29:54 BoxB kernel: NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory
messages:Nov 15 09:29:54 BoxB kernel: NFSD: starting 90-second grace period (net ****************)
messages:Nov 15 09:33:39 BoxB kernel: nfsd: last server has exited, flushing export cache
messages:Nov 15 09:33:40 BoxB kernel: NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory
messages:Nov 15 09:33:40 BoxB kernel: NFSD: starting 90-second grace period (net ****************)
Mise à jour 3 :
BoxB
[shorowitz@BoxB ~]$ sudo chkconfig --list | egrep "nfs|rpc"
nfs 0:off 1:off 2:on 3:on 4:on 5:on 6:off
nfslock 0:off 1:off 2:on 3:on 4:on 5:on 6:off
rpcbind 0:off 1:off 2:on 3:on 4:on 5:on 6:off
rpcgssd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
rpcsvcgssd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
[shorowitz@BoxB ~]$ sudo iptables --list -n -v
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
0 0 REJECT all -- !lo * 127.0.0.0/8 0.0.0.0/0 reject-with icmp-port-unreachable
18 710 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW icmp type 8
471 26200 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 state NEW
204K 393M ACCEPT all -- * * {BoxA IP} 0.0.0.0/0
6721 754K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
2859 168K LOG all -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 5/min burst 5 LOG flags 0 level 7 prefix `iptables_INPUT_denied: '
9229 628K REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 5/min burst 5 LOG flags 0 level 7 prefix `iptables_FORWARD_denied: '
0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
Chain OUTPUT (policy ACCEPT 278K packets, 8386M bytes)
pkts bytes target prot opt in out source destination
[shorowitz@BoxB ~]$ sudo rpcinfo -p
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 38148 status
100024 1 tcp 45681 status
100005 1 udp 37846 mountd
100005 1 tcp 59259 mountd
100005 2 udp 59934 mountd
100005 2 tcp 42645 mountd
100005 3 udp 33867 mountd
100005 3 tcp 41823 mountd
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 2 tcp 2049 nfs_acl
100227 3 tcp 2049 nfs_acl
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100227 2 udp 2049 nfs_acl
100227 3 udp 2049 nfs_acl
100021 1 udp 37287 nlockmgr
100021 3 udp 37287 nlockmgr
100021 4 udp 37287 nlockmgr
100021 1 tcp 37579 nlockmgr
100021 3 tcp 37579 nlockmgr
100021 4 tcp 37579 nlockmgr
Cela ne renvoie rien :
grep -v "^#" /etc/sysconfig/nfs
BoîteA
$ chkconfig --list | egrep "nfs|rpc"
nfs 0:off 1:off 2:on 3:on 4:on 5:on 6:off
nfslock 0:off 1:off 2:on 3:on 4:on 5:on 6:off
rpcbind 0:off 1:off 2:on 3:on 4:on 5:on 6:off
rpcgssd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
rpcsvcgssd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
$ iptables --list -n -v
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
390K 58M ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
0 0 REJECT all -- * * 0.0.0.0/0 127.0.0.0/8 reject-with icmp-port-unreachable
990K 7850M ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 DROP all -- * * 43.255.188.145 0.0.0.0/0
8 388 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:587
11864 608K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:25
1 40 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:636
4545 238K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
9759 553K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443
24 960 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080
320 19152 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
85 5681 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
3254 194K LOG all -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 5/min burst 5 LOG flags 0 level 7 prefix `iptables denied: '
3634 227K DROP all -- * * 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
1360K 1907M ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0
$ rpcinfo -p
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 55882 status
100024 1 tcp 58283 status
100011 1 udp 875 rquotad
100011 2 udp 875 rquotad
100011 1 tcp 875 rquotad
100011 2 tcp 875 rquotad
100005 1 udp 43136 mountd
100005 1 tcp 55047 mountd
100005 2 udp 51117 mountd
100005 2 tcp 42791 mountd
100005 3 udp 44511 mountd
100005 3 tcp 46535 mountd
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 2 tcp 2049 nfs_acl
100227 3 tcp 2049 nfs_acl
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100227 2 udp 2049 nfs_acl
100227 3 udp 2049 nfs_acl
100021 1 udp 43509 nlockmgr
100021 3 udp 43509 nlockmgr
100021 4 udp 43509 nlockmgr
100021 1 tcp 38725 nlockmgr
100021 3 tcp 38725 nlockmgr
100021 4 tcp 38725 nlockmgr
$ mount | grep nfs
nfsd on /proc/fs/nfsd type nfsd (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
Mise à jour du 14 novembre
BoxA:
$ cat /etc/auto.master.d/nfs
xdata -rw boxb:/srv/nfs/xdata
xbackup -rw boxb:/srv/nfs/xbackup
zbackups -rw boxb:/srv/nfs/zbackups
$ mount | grep nfs
mount |grep nfs
nfsd on /proc/fs/nfsd type nfsd (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
boxb:/srv/nfs/xdata on /mnt/nfs/xdata type nfs (rw,sloppy,vers=4,addr={boxb ip},clientaddr={boxa ip})
3 votes
serverfault.com/a/459732/126632
2 votes
Vous devez vérifier que les services sont activés au niveau d'exécution correct :
chkconfig --list nfslock
ychkconfig --list nfs
le confirmera.1 votes
Ajout des résultats de chkconfig --list. Je ne suis pas sûr de ce que les niveaux d'exécution devrait mais ils sont cohérents avec les autres services qui travaillent sur la botte.
1 votes
Utilisez-vous des noms, des adresses IP, ou un simple * glob dans votre fichier d'exportation pour restreindre l'accès aux hôtes ? Le problème que vous mentionnez ne s'applique réellement que si vous limitez l'accès par nom. Si la solution que vous avez mentionnée ne donne rien, envisagez d'examiner vos journaux côté serveur et côté client pour voir exactement pourquoi cela peut se produire. Il s'agit d'un problème courant lorsque l'exportation échoue au démarrage. Il est généralement causé par un montage retardé du côté du serveur NFS, entraînant l'échec de l'exportation parce que le répertoire à exporter n'existe pas encore. En cas de doute, fournissez vos fichiers /etc/exports et /etc/fstab.
1 votes
@SmallLoanOf1M J'ai supprimé mon commentaire. Après avoir vérifié ce matin, les restrictions sont entièrement basées sur l'adresse IP (IP privée).
0 votes
J'ai ajouté les journaux de /var/log/messages -- je ne vois pas de bizarreries liées à NFS. Et de nouveau, dès que j'émets services nfs restart sur le Serveur NFS tout va immédiatement bien chez le client. Si le serveur NFS reste actif et que le client redémarre, tout va bien.
0 votes
Juste pour rire, spécifiez également un numéro unique de
fsid=
(numéro) pour chaque exportation, puis redémarrez les deux machines et voyez si le problème revient.0 votes
@Aaron aucune différence