Soluzione 1:
Un hard mount viene generalmente utilizzato per bloccare le risorse come un disco locale o una SAN. Un soft mount viene solitamente utilizzato per protocolli di file di rete come NFS o CIFS.
Il vantaggio di un soft mount è che se il tuo server NFS non è disponibile, il kernel interromperà l'operazione di I/O dopo un periodo di tempo preconfigurato. Lo svantaggio è che se il tuo driver NFS memorizza nella cache i dati e il soft mount va in timeout, la tua applicazione potrebbe non sapere quali scritture sui volumi NFS sono state effettivamente salvate su disco.
Soluzione 2:
hard mounts e "intr" (interrompibile) è un buon compromesso (per i kernel precedenti alla 2.6.25, vedere il commento di Ryan Horrisberger). L'applicazione non si lascia ingannare dalle scritture riuscite, tuttavia puoi ucciderle se qualcosa intasa i tubi.
Soluzione 3:
Un hard mount che utilizza una sorta di file system di rete (nfs o fuse) può (a volte) bloccarsi per sempre durante il tentativo di ristabilire una connessione interrotta. Ciò significa che ogni processo che tenta di accedere a quel montaggio va in sospensione del disco (D) finché il dispositivo non è nuovamente disponibile o il sistema non viene riavviato.
La sospensione del disco non può essere interrotta o terminata. È come lo zombi dei processi zombi.
In breve, non utilizzare mai i montaggi rigidi per i file system di rete. Si desidera che il file system fallisca (immediatamente, ai processi utilizzando le chiamate di sistema) se l'I/O non è possibile. Altrimenti, la memoria che rivendicano potrebbe anche essere trapelata se il FS fallisce.