ハードマウントとソフトマウントの違いは何ですか
環境
- NFS
- NAS プロトコル
回答
ハードマウントとソフトマウントの違い
NFSプロトコルを使用すると、NFSクライアントはNFSサーバ上に存在するファイルシステムをローカルファイルシステムと同様にマウントできます。
たとえば、host.server.com の「/home」ディレクトリをクライアントマシンに次のようにマウントできます:
# mount host.server.com:/home /mymountpoint
ディレクトリ “/mymountpoint”
は、NFSパーティションを保持するためにマシン上に作成する必要があります。
ハードマウントまたはソフトマウントのオプションは、NFSクライアントがNFSサーバのクラッシュ/障害にどのように対処するかを定義します。
ハードマウント
- ハードマウントは、通常、ローカルディスクやSANなどのブロックリソースに使用されます。NFSファイルシステムのマウントがハードマウントの場合、マウントされたリソースのいずれかの部分に影響するNFSリクエストは、要求が満たされるまで繰り返し発行されます(例えば、NFSサーバがクラッシュし、後で復旧する場合など)。
- NFSサーバがオンラインに戻ると、プログラムはサーバクラッシュ時の状態から中断されずに実行を継続します。マウントオプション「intr」を使用すると、NFSサーバがダウンしたり到達できなくなった場合に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サーバが使用できない場合、カーネルは事前に設定された期間が経過するとI/O操作をタイムアウトします。
欠点
- 欠点は、NFSドライバがデータをキャッシュしていてソフトマウントがタイムアウトした場合、アプリケーションはどの書き込みがNFSボリュームに実際にディスクへコミットされたかを認識できない可能性があることです。
- データ破損またはデータ損失。
マウントポイント上のリモートマシン 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
追加情報
追加情報