ハードマウントとソフトマウントの違いは何ですか
環境
- NFS
- NAS プロトコル
回答
ハードマウントとソフトマウントの違い
NFSプロトコルを使用すると、NFSクライアントはNFSサーバ上に存在するファイルシステムをローカルファイルシステムと同様にマウントできます。
例えば、host.server.com の /home ディレクトリを次のようにクライアントマシンにマウントできます:
# mount host.server.com:/home /mymountpoint
NFSパーティションを格納するために、マシンにディレクトリ “/mymountpoint” を作成する必要があります。
ハード マウント オプションまたはソフト マウント オプションは、NFSクライアントがNFSサーバのクラッシュ/障害にどのように対処するかを定義します。
ハードマウント
hardマウントは、ローカルディスクやSANなどのブロックリソースに対して一般的に使用されます。- NFSファイルシステムのマウントが
hardマウントの場合、マウントされたリソースのいずれかの部分に影響するNFSリクエストは、リクエストが満たされるまで繰り返し発行されます(たとえば、サーバーがクラッシュして後で再起動する場合など)。 - サーバーがオンラインに戻ると、プログラムはサーバー障害発生時の状態から中断されることなく実行を継続します。
- マウントオプション
intrは、サーバーがダウンしたり到達不能になった場合にNFSリクエストを中断できるようにします。 - したがって、 推奨設定は
hardおよびintrオプションです。
利点:
- 接続が失われた場合、すべてのNFSクライアントはNFSサーバがオンラインに戻るまでフリーズします。したがって、データ損失はありません。
- データの整合性とメッセージングが保証されます。
デメリット:
- 常時接続ではパフォーマンスへの影響がある可能性があります。
以下のコマンド例は、リモート マシン host.server.com のディレクトリ /home をマウント ポイント /mymountpoint にハード マウントします。
rw– 読み書き可能な状態でマウントされたリソースintr– キーボード割り込みが有効
mount -o rw,hard,intr host.server.com/home /mymountpoint
ソフトマウント
ソフトマウントは通常、NFSやCIFSなどのネットワークファイルプロトコルに使用されます。NFSファイルシステムのマウントがソフトマウントの場合、プログラムまたはアプリケーションがNFSファイルシステムからファイルを要求すると、NFSクライアントデーモンはNFSサーバからデータを取得しようとします。NFSは、いずれかが発生するまでサーバへの接続を繰り返し試みます:
- 接続が確立される
- NFS再試行しきい値に達する
- nfstimeout値に到達する
これらのイベントの 1 つが発生すると、制御は呼び出し側プログラムに戻ります。
ただし、(NFSサーバのクラッシュ、タイムアウト、または障害が原因で)NFSサーバから応答を得られない場合、NFSクライアントはファイルアクセスを要求しているクライアントマシン上のプロセスにエラーを報告して終了します。
|
警告 アプリケーションベンダーがソフトマウントの使用を明示的に推奨していない限り、データ破損の可能性があるため、このマウントスタイルの使用は推奨されません。 |
利点:
- このメカニズムの利点は「応答が速い」ことであり、NFSサーバの応答を待ちません。
- NFSサーバが使用できない場合、カーネルは事前に設定された期間が経過するとI/O操作をタイムアウトします。
欠点
- 欠点は、NFSドライバがデータをキャッシュしていてソフトマウントがタイムアウトした場合、アプリケーションはどの書き込みがNFSボリュームに実際にディスクへコミットされたかを認識できない可能性があることです。
- データ破損またはデータ損失。
以下のコマンド例は、リモートの machine host.server.comからマウントポイント/mymountpointにソフトマウントを実行します
mount -o rw,soft host.server.com/home /mymountpoint
現在システムに存在するマウントの種類を確認するには:
[usero1@Linux01 ~]$ nfsstat -m
/home from vrouter:/home
Flags: rw,relatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr= 10.0.0.1,local_lock=none,addr=10.0.0.2
/mnt/test from svm-data-lif1:/vol_unix
Flags: rw,relatime,vers=4.0,rsize=65536,wsize=65536,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr= 10.0.0.1,local_lock=none,addr=10.0.0.2