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).
/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).
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)?
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.
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.
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.