*

FreeBSD で NFS (5) 【NFSクライアントとマウントオプション】

公開日: : 最終更新日:2014/02/03 FreeBSD, FreeBSD くらいあんと, NFS

Seichan です.こんばんわ.公私ともにドタバタしていてまったく進みません…
前回「FreeBSD で NFS (4)」で NFS Client 側の説明に移りました.今回も同様にクライアント側の説明をつらつらと書いていきます.

以前 FreeBSD 5.0-RELEASE あたりで Pukiwiki の「FreeBSD で NFS(Network File System) サーバ & クライアント」に纏めていましたが,時代も変わってきてますので再まとめしています.よろしければ Pukiwiki 側もご覧ください.

 SPONSORED LINK
 

クライアント側設定

フォアグラウンドとバックグラウンド

NFS マウントを行う際,フォアグラウンドでのマウントは -o fg オプションでマウントします.バックグラウンドでのマウントは -o bg オプションでマウントします.オプションを付けない場合はフォアグラウンドでのマウントとなります.

たとえば,/etc/fstab に NFS マウントを行う行を記述している場合,フォアグラウンドマウントの場合は NFS マウントが成功するまでずっとマウントを再試行し,次の処理へ移りません.その為,サーバ起動時に延々とマウント待ちが発生します.
一方,バックグラウンドマウントの場合は NFS マウントが失敗したらその後はバックグラウンドでマウントを再試行させてフォアグラウンドプロセスは次の処理へ移ります.ですので,マウントが失敗した場合でもサーバ起動の次の処理に移り,ログインプロンプトの表示まで処理を進めることが出来ます.

どちらが良いか.は NFS マウントする用途によります.ホームディレクトリや Web コンテンツをマウントするような環境の場合,それが無いと NFS クライアント側の機械の意味をなさない.という場合はフォアグラウンドで実行すべきです.
一方,あっても無くても大丈夫な物,たとえば独自ビルドしたパッケージ置き場等はマウントされていないと不便かもしれませんが,通常のワークに問題はない.という形です.

ですので次のように覚えましょう.

  • マウント出来ていないとヤバイものはフォアグラウンド (fg)
  • 無くても困らないものはバックグラウンド (bg)

ハードとソフト

NFS マウントを行う際,ハードマウントの場合は -o hard オプションでマウントします.ソフトマウントの場合は -o soft オプションとなります.これらのオプションの指定が無い場合はハードマウントとなります.

ハードマウントの場合,NFS アクセス時に NFS サーバから応答が無く,タイムアウトとなった場合,ファイル操作を無期限に再試行します.また,シェル上でファイル操作を行った場合は “nfs server not responding” のメッセージがコンソールに延々と表示され,一切の中断操作を受け付けません.
ソフトマウントの場合はタイムアウトとなった場合ファイル操作を呼び出したプログラムに “I/O Error” を返します.

これだけを見るとソフトマウントの方が良いと思いがちですが,ファイル操作をするアプリケーション次第となります.
NAS 等の冗長化された NFS サーバ環境の場合は NFS サーバに障害が発生しても数分でフェイルオーバーされ再度利用出来るという環境が多いでしょう.そのような環境の場合は,ハードマウントだと切り替わり後は何事も無かったように処理を継続出来ます.ソフトマウントの場合はエラーが返り,そのプログラムはエラーで終了となっているでしょう.

Seichan の個人的見解では,クライアント用途や小規模の NFS サーバが冗長化されていない環境の場合はソフトマウントの方が扱いやすく,サーバ環境や大規模の NFS サーバが冗長化されている環境の場合はハードマウントの方が良いと考えています.

ハードマウントと割り込み

先のハードマウント,ソフトマウントの説明で,ハードマウントは延々と再試行を続け,中断操作を受け付けないと書きました.それでは都合が悪い為,再試行を中断させたいという要求があると思います.

シェルスクリプト実行時に延々と “nfs server not responding” が表示され,一切の操作を受け付けない状況は困りものです.
そういう場合に,割り込みを受け付けるようにするオプションが -o intr です.延々と再試行し続ける状況になった場合に Ctrl+C (SIGINT) を発行してプロセスをエラーで終了させることが出来るようになります.
ハードマウントする場合は割り込みも合わせて指定するようにしてください.-o hard,intr ですね.

読み込みデータサイズと書き込みデータサイズ

読み込みと書き込み時に NFS が利用するバッファサイズを調整することが出来ます.読み書きいずれも FreeBSD 9.2 の場合は 8192 バイトがデフォルト値です.通常はこのサイズでも十分なパフォーマンスですので特に理由が無ければデフォルトのままでも問題はありません.
ですが,最近のサーバ (PCでもそうですが) の処理速度の向上や NIC 自体の性能が向上していることもあり,バッファサイズを上げると殆どの場合,パフォーマンスを上げることが出来るでしょう.

読み取りバッファサイズ-o rsize=バッファサイズ で,書き込みバッファサイズ-o wsize=バッファサイズ を指定します.バッファサイズは 1024 以上で,2 のべき乗を指定する必要があります.という事は,8192 の次に大きい値は 16384 ですね.ここから 3276865536 と進んでいけるのですが,あまり大きな値を指定しても無意味ですし,逆にパフォーマンスダウンとなってしまいます.

いずれの場合も十分に試験を行ってから本番利用する必要があります.
Seichan のおすすめは 32768 で,殆どの環境で良好なパフォーマンスを出しており,基準値として利用しています.
# 遅くなっても自己責任でお願いします

NFS マウントオプションのまとめ

ここまでで通常利用する NFS マウントオプションについては解説出来たと思います.これらオプションを纏めるとおすすめのマウントオプションは次のようなオプション群になります.このオプションを基準に挙動やパフォーマンスを確認して行くのが良いと思います.

-o nfsv3,tcp,fg,hard,intr,rsize=32768,wsize=32768

以上で,FreeBSD で NFS の NFSv3 を通常利用する分は記載出来たと思います.今後はどこかのタイミングで NFSv4 や他のオプション等の解説を行いたいと思います.

SPONSORED LINK
  ☆ ブログランキング参加しました (*≧∀≦)ノシ
にほんブログ村 IT技術ブログ FreeBSDへ 

関連記事

no image

qmail SMTP-AUTH imapext

imapext ML を見てみたら,Yuuji Hirose さんが,imapext 形式のパスワー

記事を読む

FreeBSD

GEOM RAID0 を使ってみる

Seichan です.こんばんわ. 前回「GEOM のモジュールを理解する」でも書きましたが,GE

記事を読む

no image

MyServerRooM

ばんわー Seichan です. ちょっと前に,DDS4 チェンジャードライブのエントリをのっけまし

記事を読む

no image

FreeNAS 0.683b Japanese

Seichan です.おひさしぶしです. FreeNAS のメッセージを日本語化しておりました. と

記事を読む

pukiwiki-official

pukiwiki を PHP 5.4 に対応させる方法 (1)

Seichanです.こんばんわ. サーバの移行に伴い,PHP のバージョンが 5.3 から 5.4

記事を読む

no image

LDAP

自宅サーバ,クライアント及び,これから使っていきたいグループウェア等の為に本気で LDAP 化しよう

記事を読む

no image

PostgreSQL サーバをかえた

PostgreSQL を 8.0 系から,8.1 系に変更. そのついでに,物理的なサーバをかえた.

記事を読む

freenas-logo-black

FreeNAS 0.69 (Kwisatz Haderach) の日本語環境アップデート

おひさしぶりです.Seichan です.FreeNAS 0.69 が出てからちょっと立ちました.とて

記事を読む

no image

オートローダ GET だぜっ!!

IBM の DDS4 オートローダを GET しました.Seichan です. Yahoo!! オ

記事を読む

no image

FreeNAS 0.685b をビルドしてみた

Seichan です.ここしばらく FreeNAS にかまける時間が取れないでおりました. ちょっと

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Google Adsense

ssl_icon
PHPki で簡単証明書運用 (5) 【管理ユーザのメンテナンスとCRLの取得】

Seichanです.こんばんわ. いつものとおり,だいぶ日が経ってし

ssl_icon
PHPki で簡単証明書運用 (4) 【作成した証明書を管理する】

Seichanです.こんばんわ. 先日の「PHPki で簡単証明書運

ssl_icon
PHPki で簡単証明書運用 (3) 【署名されたサーバ証明書を作る】

Seichan です.こんばんわ. さて,先日の「PHPki で簡単

ssl_icon
PHPki で簡単証明書運用 (2) 【初期設定と Root CA 証明書作成】

Seichan です.こんばんわ. さて,先日の「PHPki で簡単

ssl_icon
PHPki で簡単証明書運用 (1) 【PHPki の修正と導入 (修正版)】

Seichan です.こんばんわ. 先日「PHPki で簡単証明書運

→もっと見る

PAGE TOP ↑