*

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へ 

関連記事

ssl_icon

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

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

記事を読む

no image

FreeBSD 6.0 RELEASE キター

newvers.sh のコミットログには Welcome to 6.0-RELEASE. の文字が.

記事を読む

no image

6.2-PRERELEASE

今日(昨日)会社を休んでだるだるすごしていた Seichan です. でも,会社(部)の飲み会にはし

記事を読む

no image

5.3-RELEASE から RC に…

FreeBSD-5.3-RELEASE がもう少しで出るなぁ〜 と思っていたら,cvsweb を見た

記事を読む

no image

antibadmail その後

2005/12/24 に antibadmail を導入し,約3週間たちました.現状の状態を報告して

記事を読む

vmware_logo

VMware Server 上の FreeBSD の時刻がずれる

仕事中の Seichan です.忘れやすいので,メモメモ.隣の席の人から,「いつも見てるのに更新され

記事を読む

no image

mod_php の pgsql.so

自宅サーバにインストールしてある ports/Packages を最新版にすべく作業して Apach

記事を読む

no image

PC-BSD

ひさしぶし.Seichan です. PC-BSD の Ver1.3 がリリースされて大分たち,2ch

記事を読む

no image

RBL は使ってはならない

Seichan です.毎度様です. 最近めっきり使う人がいなくなったと思っていたのに,いまだ使ってい

記事を読む

no image

orz

間違って,make world 中のマシンをリブートしてしもた… もっかい make world や

記事を読む

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 ↑