J'utilise un petit serveur pour notre colocation. Il s'agit principalement d'un serveur de fichiers avec quelques services supplémentaires. Les clients sont des machines Linux (principalement Ubuntu, mais aussi d'autres Distros) et quelques Mac (-Book) entre les deux (mais ils ne sont pas importants pour la question). Le serveur exécute Ubuntu 11.10 (Oneiric Ocelot) ‘Server Edition’, le système à partir duquel je fais ma configuration et mes tests exécute la 11.10 ‘Desktop Edition’. Nous avons exécuté nos partages avec Samba (que nous connaissons mieux) pendant un certain temps, mais nous avons ensuite migré vers NFS (parce que nous n'avons aucun utilisateur Windows sur le réseau local et que nous voulons l'essayer) et jusqu'à présent, tout fonctionne bien .
Maintenant, je veux configurer le montage automatique avec autofs pour lisser les choses (jusqu'à présent, tout le monde montait les partages manuellement en cas de besoin). Le montage automatique semble fonctionner aussi. Le problème est que notre "serveur" ne fonctionne pas 24h/24 et 7j/7 pour économiser de l'énergie (si quelqu'un a besoin de quelque chose du serveur, il l'allume et l'éteint ensuite, il ne fonctionne donc que quelques heures par jour). Mais depuis la configuration d'autofs, les clients raccrochent souvent lorsque le serveur ne fonctionne pas.
-
Je peux très bien démarrer tous les clients, même lorsque le serveur ne fonctionne pas.
-
Mais quand je veux afficher un répertoire (dans terminal ou nautilus), qui contient des liens symboliques vers un partage sous
/nfs
tant que le serveur ne fonctionne pas, il se bloque pendant au moins deux minutes (car autofs ne peut pas se connecter au serveur mais continue d'essayer, je suppose).- Existe-t-il un moyen d'éviter cela ? Alors que le montage serait retardé jusqu'à ce qu'un changement dans le répertoire ou jusqu'à ce que le contenu de ce répertoire soit accessible ? Pas lorsque vous "regardez" un lien vers un partage sous
/nfs
? Je ne pense pas, mais peut-être est-il possible de ne pas essayer d'y accéder pendant si longtemps ? Et donnez-moi simplement un répertoire vide ou un "ne peut pas trouver / se connecter à ce répertoire" ou quelque chose comme ça.
- Existe-t-il un moyen d'éviter cela ? Alors que le montage serait retardé jusqu'à ce qu'un changement dans le répertoire ou jusqu'à ce que le contenu de ce répertoire soit accessible ? Pas lorsque vous "regardez" un lien vers un partage sous
-
Lorsque le serveur est en cours d'exécution, tout fonctionne correctement.
-
Mais quand le serveur est arrêté, avant un partage a été démonté, des outils (comme
df
oull
) se bloquent (en supposant qu'ils pensent que le partage est toujours activé mais que le serveur ne répond plus).- Existe-t-il un moyen de démonter automatiquement les partages en cas de perte de connexion ?
-
De plus, les clients ne s'arrêtent pas ou ne redémarrent pas lorsque le serveur est en panne et qu'ils ont encore des partages montés. Ils se bloquent (infiniment comme il semble) dans "tuer les processus restants ” et rien ne semble se passer.
Je pense que tout se résume à des valeurs de délai d'attente soignées pour le montage et le démontage. Et peut-être pour supprimer tous les partages lorsque la connexion au serveur est perdue.
Connexe :"$XAUTHORITY" apparaît de "nulle part" sur su+tmux ?
Ma question est donc :comment gérer cela ? Et en prime :existe-t-il un bon moyen de créer un lien à l'intérieur de /nfs
sans avoir besoin de monter les partages réels (une option autofs ou peut-être en utilisant un pseudo FS pour /nfs
qui est remplacé lorsque le montage se produit ou quelque chose comme ça) ?
Ma configuration
Le paramètre NFS est assez basique mais nous a bien servi jusqu'à présent (en utilisant NFSv4 ):
/etc/default/nfs-common
NEED_STATD=
STATDOPTS=
NEED_IDMAPD=YES
NEED_GSSD=
/etc/idmapd.conf
[General]
Verbosity = 0
Pipefs-Directory = /var/lib/nfs/rpc_pipefs
Domain = localdomain
[Mapping]
Nobody-User = nobody
Nobody-Group = nogroup
/etc/exports
/srv/ 192.168.0.0/24(rw,no_root_squash,no_subtree_check,crossmnt,fsid=0)
Sous la racine d'exportation /srv
nous avons deux répertoires avec bind
:
/etc/fstab (Serveur)
...
/shared/shared/ /srv/shared/ none bind 0 0
/home/Upload/ /srv/upload/ none bind 0 0
Le 1er est principalement en lecture seule (mais je l'applique via les attributs de fichier et la propriété au lieu des paramètres NFS) et le 2ème est rw pour tous. Remarque :Ils n'ont pas d'entrées supplémentaires dans /etc/exports , les monter séparément fonctionne cependant.
Côté client, ils sont configurés dans /etc/fstab
et monté manuellement au besoin (morton
est le nom du serveur et il résout bien).
/etc/fstab (Client)
morton:/shared /nfs/shared nfs4 noauto,users,noatime,soft,intr,rsize=8192,wsize=8192 0 0
morton:/upload /nfs/upload nfs4 noauto,users,noatime,soft,intr,rsize=8192,wsize=8192 0 0
Pour la configuration autofs J'ai supprimé les entrées de /etc/fstab
sur les clients et configurez le reste comme ceci :
/etc/auto.master
/nfs /etc/auto.nfs
J'ai d'abord lié l'exécutable fourni /etc/auto.net
(vous pouvez y jeter un œil ici) mais cela ne montera rien automatiquement pour moi. Ensuite j'écris un /etc/auto.nfs
basé sur des tutoriels que j'ai trouvés en ligne :
/etc/auto.nfs
shared -fstype=nfs4 morton:/shared
upload -fstype=nfs4 morton:/upload
Et ça marche un peu… Ou ça marcherait si le serveur fonctionnait 24h/24 et 7j/7. Nous obtenons donc des raccrochages lorsqu'un client démarre sans que le serveur ne soit en cours d'exécution ou lorsque le serveur tombe en panne alors que les partages étaient toujours connectés.
Réponse acceptée :
En utilisant n'importe quel système de montage, vous voulez éviter les situations où Nautilus répertorie le répertoire contenant un montage qui peut ou non être monté. Ainsi, avec autofs, ne créez pas de montages dans, par exemple, /nfs. Si vous le faites, lorsque vous utilisez Nautilus pour répertorier le "système de fichiers", il essaiera de créer les montages qui devraient exister dans /nfs, et si ces tentatives de montage échouent, il faut quelques minutes pour abandonner.
Donc, ce que j'ai fait, c'est changer auto.master pour créer les montages dans /nfs/mnt.
Cela a résolu le problème pour moi. Je n'obtiens un long délai que si j'essaie de lister le contenu de /nfs/mnt, ce que je peux facilement éviter.