web-dev-qa-db-fra.com

Automount NFS: Autofs Timeout Paramètres pour des serveurs non fiables - Comment éviter le raccourci?

Je suis un petit serveur pour notre part plat. C'est surtout un serveur de fichiers avec des services supplémentaires. Les clients sont des machines Linux (principalement Ubuntu, mais quelques autres distributions aussi) et certains Mac (Book) S dans les deux (mais ils ne sont pas importants pour la question). Le serveur est en cours d'exécution ubuntu 11.10 (Oneiric Ocelot) '' Server Edition ', le système à partir de laquelle je fais ma configuration et mes tests exécute l'édition 11.10' Desktop Edition '. Nous allons utiliser nos actions avec Samba (que nous connaissons plus) pendant un certain temps, mais migrez ensuite à NFS (parce que nous n'avons pas de fenêtres Les utilisateurs du réseau local et veulent 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 monte les actions 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 une personne a besoin de choses du serveur S/Il le pouvait enfermer et l'arrête ensuite, de sorte que cela ne fonctionne que quelques heures par jour). Mais depuis la configuration automatique des clients raccrochent souvent lorsque le serveur ne fonctionne pas.

  • Je peux commencer tous les clients très bien, même lorsque le serveur ne fonctionne pas.

  • Mais lorsque je souhaite afficher un répertoire (en terminal ou Nautilus) contenant des liens symboliques vers une action sous /nfs tandis que le serveur ne fonctionne pas, il se bloque pendant au moins deux minutes (car les autofs ne peuvent pas se connecter au serveur mais ne contiennent pas d'essayer, je suppose).

    • Y a-t-il un moyen d'éviter cela? Pour que le montage soit retardé jusqu'à ce que le répertoire soit accessible dans le répertoire ou jusqu'à ce que le contenu de ce répertoire soit accessible? Pas quand "regarder" à un lien vers une action sous /nfs? Je ne pense pas, mais peut-être qu'il est possible de ne pas essayer d'y accéder depuis si longtemps? Et donnez-moi simplement un répertoire vide ou un "ne peut pas trouver/se connecter à ce dir" ou quelque chose comme ça.
  • Lorsque le serveur est en marche, tout fonctionne bien.

  • Mais lorsque le serveur est fermé, Avant Un partage a été démontré, des outils (comme df ou ll) suspendus (en supposant parce qu'ils pensent que la part est toujours sur mais le serveur ne répondra plus).

    • Y a-t-il un moyen de démonter automatiquement les actions, lorsque la connexion est perdue?
  • De plus, les clients ne vont pas arrêter ou redémarrer lorsque le serveur est en panne et qu'ils ont toujours des actions montées. Ils sont suspendus (infiniment comme il semble) dans " tuer des processus restants" et rien ne semble arriver.

Je pense que tout est tombé aux valeurs de timeout soignées pour le montage et la démontage. Et peut-être pour supprimer toutes les actions lorsque la connexion au serveur est perdue.

Donc, ma question est la suivante: comment gérer cela? Et comme bonus: Y a-t-il un bon moyen de relier à l'intérieur /nfs Sans la nécessité de monter les actions réelles (une option Autofs ou peut-être à l'aide d'un pseudo FS pour /nfs qui est remplacé lorsque la montagne arrive ou quelque chose comme ça)?

Ma configuration

Le Réglage NFS est assez basique mais nous a bien servi jusqu'à présent (en utilisant nfsv4):

/ etc/défaut/nfs-courant

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/exportations

/srv/   192.168.0.0/24(rw,no_root_squash,no_subtree_check,crossmnt,fsid=0)

Sous la racine d'exportation /srv Nous avons eu 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 one est surtout lu que (mais j'espagie que par le biais d'attributs de fichier et de propriété au lieu des paramètres NFS) et le 2e IS RW Pour tous. Remarque: ils n'ont pas d'entrées supplémentaires dans /etc/exportations, les montage séparément fonctionne cependant.

Du côté du client, ils obtiennent la configuration dans /etc/fstab et monté manuellement au besoin (morton est le nom du serveur et elle 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 le SETUP AUTOFS J'ai supprimé les entrées de /etc/fstab sur les clients et fixez le repos comme ceci:

/ etc/auto.master

/nfs    /etc/auto.nfs

J'ai d'abord attaché l'exécutable fourni /etc/auto.net (Vous pouvez jeter un coup d'œil à cela ici ) mais il ne mont pas automatiquement rien pour moi. Ensuite, j'écris un /etc/auto.nfs Basé sur certains Howtos, j'ai trouvé en ligne:

/ etc/auto.nfs

shared  -fstype=nfs4  morton:/shared
upload  -fstype=nfs4  morton:/upload

Et cela fonctionne un peu ... ou fonctionnerait si le serveur fonctionnerait 24/7. Nous obtenons donc les suspenses lorsqu'un client botter sans le serveur en cours d'exécution ou lorsque le serveur tombe en panne pendant que des actions sont toujours connectées.

18
Brutus

En utilisant n'importe quel système de montage, vous souhaitez é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 montures dans, par exemple,/NFS. Si vous le faites, lorsque vous utilisez Nautilus pour répertorier le "Système de fichiers", il tentera de créer les montures existantes dans/nfs, et si ces tentatives de montage échouent, il faut quelques minutes à abandonner.

Donc, ce que j'ai fait était de changer Auto.Master pour créer les montages dans/nfs/mnt.

Cela corrige le problème pour moi. Je n'ai qu'un long délai que si j'essaie d'énumérer le contenu de/nfs/mnt, que je peux facilement éviter.

2
Tim Passingham

Montez le NFS-Share sur les clients à l'aide des options de montage "BG, intrudés".

Le plus important dans votre cas est "BG" pour arrière-plan - qui indique au système de ne pas bloquer lorsque le serveur n'est pas disponible.

"intr '" pour interrettable - vous pouvez donc tuer des supports suspendus sur le client avec la commande Kill.

"Hard" est le contraire de "doux". La différence est que "dur" continuera à essayer sans fin alors que "Soft" sera exponentiellement exponentiellement de ses tentatives lorsque le serveur n'est pas disponible.

20
Nils