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?