J'utilise un petit serveur pour notre colocation. Il s'agit principalement d'un serveur de fichiers avec des services supplémentaires. Les clients sont des machines Linux (principalement Ubuntu, mais aussi quelques 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 version 11.10 «Desktop Edition». Nous avons exécuté nos partages avec Samba (que nous connaissons mieux) pendant un certain temps, puis nous migrons vers NFS (car nous n'avons pas d'utilisateurs Windows sur le LAN et 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 monte les partages manuellement en cas de besoin). Le montage automatique semble également fonctionner. 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 trucs du serveur, il l'allume et l'éteint ensuite, donc il ne fonctionne que quelques heures par jour). Mais depuis la configuration automatique, les clients raccrochent souvent lorsque le serveur n'est pas en cours d'exécution.
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
alors que le serveur n'est pas en cours d'exécution, il se bloque pendant au moins deux minutes (car les autofs ne peuvent pas se connecter au serveur mais restent essayer, je suppose).- Y a-t-il un moyen d'éviter cela? Pour que le montage soit 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 pense que non, mais peut-être est-il possible de ne pas essayer d'y accéder aussi longtemps? Et donnez-moi juste un répertoire vide ou un "ne peut pas trouver / se connecter à ce répertoire" ou quelque chose comme ça.
- Y a-t-il un moyen d'éviter cela? Pour que le montage soit 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 fonctionne, tout fonctionne bien.
Mais lorsque le serveur est arrêté, avant qu'un partage ne soit démonté, les 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 lorsque la connexion est perdue?
De plus, les clients ne s'arrêteront pas ou ne redémarreront pas lorsque le serveur est arrêté et qu'ils ont toujours des partages montés. Ils pendent (à l'infini, comme il semble) pour " tuer les processus restants " et rien ne semble se produire.
Je pense que tout se résume à des valeurs de timeout soignées pour le montage et le démontage. Et peut-être pour supprimer tous les partages lorsque la connexion au serveur est perdue.
Ma question est donc la suivante: comment gérer cela? Et en bonus: existe-t-il un bon moyen de se connecter à l'intérieur /nfs
sans avoir besoin de monter les vrais partages (une option autofs ou peut-être en utilisant un pseudo FS pour /nfs
lequel il 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 obtenu 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 j'applique cela à travers 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 aucune entrée supplémentaire dans / etc / exports , leur montage séparément fonctionne cependant.
Côté client, ils sont installés /etc/fstab
et montés manuellement selon les besoins ( morton
c'est le nom du serveur et ça se résout très 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 automatique, j'ai supprimé les entrées des /etc/fstab
clients et mis en place le reste comme ceci:
/etc/auto.master
/nfs /etc/auto.nfs
J'ai d'abord attaché l'exécutable fourni /etc/auto.net
(vous pouvez le consulter ici ) mais il ne montera rien automatiquement pour moi. Ensuite, j'écris un /etc/auto.nfs
basé sur certains HowTos que j'ai trouvés 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 fonctionnait 24/7. Nous obtenons donc les blocages lorsqu'un client démarre sans que le serveur ne fonctionne ou lorsque le serveur tombe en panne alors qu'il partage où il est toujours connecté.
hard
et lesbg
sons sont contre-intuitifs pour moi au début. Je veux que la monture ne réessaye pas et ne revienne pas immédiatement si elle échoue?intr
semble correct mais ne semble plus fonctionner: " L'option de montage intr / nointr est déconseillée après le noyau 2.6.25. Seul SIGKILL peut interrompre une opération NFS en attente sur ces noyaux, et si spécifié, cette option de montage est ignorée pour assurer la compatibilité descendante avec des noyaux plus anciens. "?