回答:
ハードマウントは通常、ローカルディスクやSANなどのブロックリソースに使用されます。通常、ソフトマウントは、NFSやCIFSなどのネットワークファイルプロトコルに使用されます。
ソフトマウントの利点は、NFSサーバーが利用できない場合、事前に構成された時間が経過するとカーネルがI / O操作をタイムアウトすることです。欠点は、NFSドライバーがデータをキャッシュし、ソフトマウントがタイムアウトした場合、NFSボリュームへの書き込みが実際にディスクにコミットされたことをアプリケーションが認識できない場合があることです。
ハードマウントと「intr」(割り込み可能)が適切な妥協点です(2.6.25より前のカーネルについては、Ryan Horrisbergerのコメントを参照)。アプリケーションは書き込みの成功についてだまされていませんが、何かがチューブを詰まらせた場合、それらを殺すことができます。
何らかの種類のネットワークファイルシステム(nfsまたはfuse)を使用するハードマウントは、切断された接続を再確立しようとする間、(場合によっては)永久にブロックする可能性があります。つまり、そのマウントにアクセスしようとするすべてのプロセスは、デバイスが再び使用可能になるか、システムがリブートされるまでディスクスリープ(D)になります。
ディスクのスリープを中断または強制終了することはできません。ゾンビプロセスのゾンビのようです。
つまり、ネットワークファイルシステムにハードマウントを使用しないでください。I / Oが不可能な場合は、ファイルシステムを(システムコールを使用するプロセスに対して)すぐに失敗させます。そうしないと、FSが失敗した場合に、彼らが主張するメモリもリークする可能性があります。
softは、nfsの原理を理解していない人によってのみ使用されます。ソフト/ハードは、ファイルシステムの使用法に依存します。ミッションクリティカルなアプリケーションでは、常にファイルの破損を防ぐためにハードマウントを使用します(これがほとんどのシステムでデフォルトである理由です)。roファイルシステムの場合は、softおよびtherforを使用しても安全です。ところで、nfsv4はソフトをサポートしなくなりました。