Solution 1 :
Un montage dur est généralement utilisé pour les ressources de bloc comme un disque local ou un SAN. Un montage logiciel est généralement utilisé pour les protocoles de fichiers réseau tels que NFS ou CIFS.
L'avantage d'un montage logiciel est que si votre serveur NFS n'est pas disponible, le noyau expirera l'opération d'E/S après une période de temps préconfigurée. L'inconvénient est que si votre pilote NFS met les données en cache et que le montage logiciel expire, votre application peut ne pas savoir quelles écritures sur les volumes NFS ont été réellement validées sur le disque.
Solution 2 :
les montages durs et "intr" (interruptible) est un bon compromis (pour les noyaux antérieurs au 2.6.25, voir le commentaire de Ryan Horrisberger) . L'application n'est pas dupe des écritures réussies, mais vous pouvez les tuer si quelque chose obstrue les tubes.
Solution 3 :
Un montage dur utilisant une sorte de système de fichiers réseau (nfs ou fuse) peut (parfois) bloquer pour toujours tout en essayant de rétablir une connexion interrompue. Cela signifie que chaque processus essayant d'accéder à ce montage passe en veille de disque (D) jusqu'à ce que le périphérique soit à nouveau disponible ou que le système soit redémarré.
La veille du disque ne peut pas être interrompue ou tuée. C'est comme le zombie des processus zombies.
En bref, n'utilisez jamais de montages durs pour les systèmes de fichiers réseau. Vous voulez que le système de fichiers échoue (immédiatement, aux processus utilisant des appels système) si les E/S ne sont pas possibles. Sinon, la mémoire qu'ils réclament peut également être divulguée si le FS échoue.