GNU/Linux >> Tutoriels Linux >  >> Linux

Automount Nfs :Paramètres de délai d'attente Autofs pour les serveurs non fiables - Comment éviter les raccrochages ?

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.
  • 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 ou ll ) 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.


Linux
  1. Comment utiliser autofs pour monter des partages NFS

  2. Comment utiliser la commande showmount pour répertorier les partages sur un serveur NFS

  3. Comment augmenter le délai d'expiration de la connexion SSH

  4. Pkexec - Comment définir un délai d'expiration personnalisé pour Auth_admin_keep lors de l'écriture d'une politique Pkexec ?

  5. Comment définir correctement les autorisations pour le dossier NFS ? Autorisation refusée à la fin du montage.

Comment ajouter un hôte Linux dans le serveur Zabbix pour la surveillance

Comment configurer un serveur NFS et configurer le stockage NFS dans Proxmox VE

Comment surveiller les serveurs Linux à l'aide de CloudStats

Comment exécuter une commande pendant une durée spécifique sous Linux

Comment créer un contrôleur de domaine sous Linux pour AD

Comment configurer un serveur NGINX RTMP pour le streaming