GNU/Linux >> Linux Esercitazione >  >> Linux

Impedire alla connessione Nfs interrotta di bloccare il sistema client?

Abbiamo una condivisione NFS 4, che condivide un volume tra un numero di server (server NFS e client tutti Debian 8). Di recente si sono verificati alcuni problemi in cui le interruzioni di rete avrebbero bloccato i sistemi client.

Le nostre opzioni NFS erano minime, solo rw (e quindi l'impostazione predefinita hard , fg , ecc).

Ora sto sperimentando queste opzioni, ma non ottengo il comportamento che mi aspetto:
rw,soft,bg,retrans=6,timeo=150

(Ho aumentato i retrans per compensare parte del rischio soft)

La procedura che sto seguendo per testare è:

  • Macchina di avvio
  • cd a /mnt/mountpoint
  • Verifica connessione NFS ok
  • cd /
  • uccidi la rete ifdown eth0
  • cd a /mnt/mountpoint
  • ls

A questo punto la riga di comando si blocca e non posso interromperla. Dopo qualche tempo viene visualizzato il messaggio "nfs:server [servername] non risponde, timeout", che sembra ripetersi una volta al minuto (indefinitamente).

Cosa vorrei/mi aspetto che accada perché l'operazione fallisca e restituisca il controllo.

Qualcuno potrebbe dirmi dove sbaglio con queste impostazioni?

(PS:ho anche provato a montare con autofs, ma ho visto un comportamento simile)

Grazie

Risposta accettata:

intr dovrebbe permetterti di riprendere il controllo quando premi ^C , ma di solito non immediatamente.

   intr           If an NFS file operation has a major timeout and it is hard mounted, then allow signals to interupt the
                  file  operation  and cause it to return EINTR to the calling program.  The default is to not allow file
                  operations to be interrupted.

Come dici tu, qui il problema sono le aspettative. I problemi di rete possono essere temporanei, ma il fallimento di un'operazione è permanente. Quindi la maggior parte delle operazioni per impostazione predefinita si blocca semplicemente fino al completamento dell'operazione.

Questa è la risposta standard, ma guardando una pagina man attuale vedo questo:

                  The  intr / nointr mount option is deprecated after ker-
                  nel 2.6.25.  Only SIGKILL can interrupt  a  pending  NFS
                  operation on these kernels, and if specified, this mount
                  option is ignored  to  provide  backwards  compatibility
                  with older kernels.

Quindi non mi sembra un problema di NFS3/NFS4, ma una decisione su come intr lavori. Quindi dovresti essere in grado di KILL il processo, ma potrebbe non darti molta utilità.

Non sono riuscito a trovare la discussione sul motivo per cui l'opzione è stata rimossa. Puoi uccidere -KILL il tuo processo?

Correlati:il video conterrà errori se la connessione viene persa durante il caricamento su YouTube?
Linux
  1. Configurazione di un server e client NFS su Scientific Linux 6.3

  2. Xmanager:impossibile ottenere la data di installazione dal registro di sistema! [Risolto]

  3. Connessione Ssh rifiutata dall'interno della LAN?

  4. Ssh:eseguire comandi remoti, staccando completamente dalla connessione Ssh?

  5. Linux:come ottenere tutti i registri di accesso dal sistema?

Introduzione al file system Linux

Come configurare Server e Client NFS su Debian 10

Installa NFS Server e Client su Ubuntu

Come riparare il sistema operativo Ubuntu rotto senza reinstallare il sistema

Come montare NFS su Debian 11

- mongodb/mongodb 1.2.0 richiede ext-mongodb ^1.3.0 -> l'estensione PHP richiesta mongodb non è presente nel sistema