GNU/Linux >> Linux Esercitazione >  >> Linux

Automount Nfs:impostazioni di timeout di Autofs per server inaffidabili:come evitare il riattaccamento?

Sto eseguendo un piccolo server per la nostra condivisione flat. È principalmente un file server con alcuni servizi aggiuntivi. I client sono macchine Linux (principalmente Ubuntu, ma anche alcune altre Distro) e alcuni Mac (-Book) nel mezzo (ma non sono importanti per la domanda). Il server esegue Ubuntu 11.10 (Oneiric Ocelot) "Server Edition", il sistema da cui eseguo la configurazione e il test esegue l'11.10 "Desktop Edition". Abbiamo eseguito le nostre condivisioni con Samba (con cui abbiamo più familiarità) per un po' di tempo, ma poi migriamo a NFS (perché non abbiamo utenti Windows nella LAN e vogliamo provarlo) e finora funziona tutto bene .

Ora voglio configurare il montaggio automatico con autofs per semplificare le cose (finora tutti montano le condivisioni manualmente quando necessario). Anche il montaggio automatico sembra funzionare. Il problema è che il nostro "server" non funziona 24 ore su 24, 7 giorni su 7 per risparmiare energia (se qualcuno ha bisogno di qualcosa dal server, lo accende e lo spegne in seguito, quindi funziona solo un paio d'ore al giorno). Ma dal momento che l'impostazione di autofs, i client riagganciano spesso quando il server non è in esecuzione.

  • Posso avviare tutti i client bene, anche quando il server non è in esecuzione.

  • Ma quando voglio visualizzare una directory (in terminal o nautilus), che contiene collegamenti simbolici a una condivisione in /nfs mentre il server non è in esecuzione, si blocca per almeno due minuti (perché autofs non può connettersi al server ma continua a provare, suppongo).

    • C'è un modo per evitarlo? In modo che il montaggio venga ritardato fino a quando non si cambia la directory o fino a quando non si accede al contenuto di quella directory? Non quando si "guarda" un collegamento a una condivisione in /nfs ? Credo di no, ma forse è possibile non provare ad accedervi per così tanto tempo? E dammi solo una directory vuota o un "non riesco a trovare / connettersi a quella directory" o qualcosa del genere.
  • Quando il server è in esecuzione, tutto funziona correttamente.

  • Ma quando il server viene spento, prima una condivisione è stata smontata, strumenti (come df o ll ) si blocca (supponendo perché pensano che la condivisione sia ancora attiva ma il server non risponderà più).

    • C'è un modo per smontare automaticamente le condivisioni, quando la connessione viene persa?
  • Inoltre, i client non si spegneranno o non si riavvieranno quando il server è inattivo e le condivisioni sono ancora montate. Si bloccano (infinitamente come sembra) in "uccidere i processi rimanenti ” e sembra che non accada nulla.

Penso che tutto si riduca a precisi valori di timeout per il montaggio e lo smontaggio. E magari rimuovere tutte le condivisioni quando si perde la connessione al server.

Correlati:"$XAUTHORITY" appare da "nowhere" su su+tmux?

Quindi la mia domanda è:come gestirlo? E come bonus:c'è un buon modo per collegarsi all'interno di /nfs senza la necessità di montare le vere condivisioni (un'opzione autofs o magari usando uno pseudo FS per /nfs che viene sostituito quando si verifica la montatura o qualcosa del genere)?

La mia configurazione

L'impostazione NFS è piuttosto semplice ma finora ci è servito bene (usando 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)

Sotto la radice di esportazione /srv abbiamo due directory con bind :

/etc/fstab (Server)

...
/shared/shared/      /srv/shared/      none    bind  0 0
/home/Upload/        /srv/upload/      none    bind  0 0

Il primo è per lo più di sola lettura (ma lo applico tramite gli attributi e la proprietà del file anziché le impostazioni NFS) e il secondo è rw per tutti. Nota:non hanno voci aggiuntive in /etc/exports , montarli separatamente funziona però.

Sul lato client vengono impostati in /etc/fstab e montato manualmente secondo necessità (morton è il nome del server e si risolve correttamente).

/etc/fstab (Cliente)

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

Per la impostazione di autofs Ho rimosso le voci da /etc/fstab sui client e impostare il resto in questo modo:

/etc/auto.master

/nfs    /etc/auto.nfs

Per prima cosa ho legato l'eseguibile fornito /etc/auto.net (puoi dare un'occhiata qui) ma non monterà automaticamente nulla per me. Quindi scrivo un /etc/auto.nfs sulla base di alcuni HowTo che ho trovato online:

/etc/auto.nfs

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

E funziona un po'... O funzionerebbe se il server funzionasse 24 ore su 24, 7 giorni su 7. Quindi otteniamo i blocchi quando un client si avvia senza che il server sia in esecuzione o quando il server si interrompe mentre le condivisioni erano ancora connesse.

Risposta accettata:

Utilizzando qualsiasi sistema di montaggio, si desidera evitare situazioni in cui Nautilus elenca la directory contenente un montaggio che può essere montato o meno. Quindi, con autofs, non creare mount, ad esempio, in /nfs. Se lo fai, quando usi Nautilus per elencare il "File System", proverà a creare qualsiasi montaggio dovrebbe esistere in /nfs e, se quei tentativi di montaggio falliscono, ci vogliono pochi minuti per arrendersi.

Quindi quello che ho fatto è stato cambiare auto.master per creare i mount in /nfs/mnt.

Questo ha risolto il problema per me. Ottengo un lungo ritardo solo se provo a elencare il contenuto di /nfs/mnt, cosa che posso facilmente evitare.


Linux
  1. Come utilizzare autofs per montare condivisioni NFS

  2. Come utilizzare il comando showmount per elencare le condivisioni su un server NFS

  3. Come aumentare il timeout della connessione SSH

  4. Come creare server dei nomi personalizzati per il tuo server dedicato

  5. Come impostare correttamente le autorizzazioni per la cartella NFS? Autorizzazione negata alla fine del montaggio.

Come aggiungere un host Linux in Zabbix Server per il monitoraggio

Come configurare un server NFS e configurare l'archiviazione NFS in Proxmox VE

Come monitorare i server Linux utilizzando CloudStats

Come eseguire un comando per un tempo specifico in Linux

Come creare un controller di dominio su Linux per AD

Come configurare un server NGINX RTMP per lo streaming