【NFS】Network File System
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
2006/03/28(火) 11:42:410381376
2008/05/02(金) 16:31:35サーバは Ubuntu LTS 6.0.6 LTS です。が
今使ってるカーネルのバージョンに絡んだ何かが
あるかもしれないので時間のあるときに見てみます。
ところで、みなさん nfsd の数ってどうやって最適値を
見積もってらっしゃるんでしょうか? デフォルトが 8
だし、デュアルコアだから 16、いや、20 くらいにしておこう
程度の発想しかできないんですが、たとえば /proc 以下の
何かをモニタしていればヒントが得られるのでしょうか。
0382名無しさん@お腹いっぱい。
2008/05/02(金) 16:42:55ttp://nfs.sourceforge.net/
0383376
2008/05/02(金) 18:48:150384名無しさん@お腹いっぱい。
2008/05/03(土) 01:38:24NFSマウントしているところで、
シリアスな「ロックファイル」を使っちゃいかん。
firefoxの二重起動禁止程度の奴なら実用上問題ないけど。
0385名無しさん@お腹いっぱい。
2008/05/05(月) 02:07:330386名無しさん@お腹いっぱい。
2008/05/05(月) 03:26:14ローカルディスクより速いサーバは一杯ある。
0387名無しさん@お腹いっぱい。
2008/05/05(月) 12:57:280388名無しさん@お腹いっぱい。
2008/05/05(月) 13:56:40少々のコマンドを読む程度ならそれもあまり変わらない。
I/Oを大量に発生させるクライアントが多ければ、下がる。
としか言いようがないよ。
ここ参考にならんかな?
http://www.spec.org/benchmarks.html#nfs
ならんか。
0389名無しさん@お腹いっぱい。
2008/05/05(月) 14:27:08そういう手間暇かけて試行錯誤するのが許されず、
一発で正着が欲しいなら、経験のある人に頼めばいい。
0390名無しさん@お腹いっぱい。
2008/05/05(月) 17:06:140391名無しさん@お腹いっぱい。
2008/05/05(月) 18:03:120392名無しさん@お腹いっぱい。
2008/05/05(月) 19:49:13NFSプロトコルは問題なく動きます。
0393名無しさん@お腹いっぱい。
2008/05/05(月) 20:00:13100台だろうが1万台だろうが、手作業でアカウント設定すりゃいいじゃん
0394名無しさん@お腹いっぱい。
2008/05/05(月) 20:05:590395名無しさん@お腹いっぱい。
2008/05/05(月) 20:07:520397名無しさん@お腹いっぱい。
2008/05/08(木) 11:00:16Ubuntu Linux 6.06 LTS
kernel 2.6.15
で nfs4 での利用を試みているのですが、
ブート後数日は普通に動いているのに
いつの間にか ls すると Input/ouptut error
と表示されるようになります。
でもディレクトリエントリが取得できないだけで
そこにあるはずのファイルは読み書きできます。
何が起こっているのでしょうか?
ちなみに Netfilter (iptables) や hosts.{allow|deny}
での制限は一切無しの状態です。
/etc/exports を書き換えて、同じ場所を
NFS v3 でエクスポートしてマウントすると
普通に ls できます。NFS において ls だけできない
(そこにあるはずのファイルにはアクセスできているのに)
というのはどんな状態なのでしょうか?
0398名無しさん@お腹いっぱい。
2008/05/08(木) 11:05:27>というのはどんな状態なのでしょうか
普通に、ディレクトリだけが読めない状態。
NFS関係なしに、
chmod a-r .
ってやると、カレントディレクトリをlsできなくなるが、
その下にあるファイルは(ファイル名がわかっていれば)読める。
0399397
2008/05/08(木) 11:12:12幸せな暮らしを営んでいるのですが、ファイアウォールの関係で
隣の部署からは NFS v4 (proto=tcp) でマウントしています。
そいつだけたまにディレクトリエントリが見えなくなるのです。
ファイルにはアクセスできているので気づかないことも多いです。
障害発生時刻とログをつぶさに観察していると
nfs_update_inode : inode number mismatch
expected (0:14/0x2), got(0:14/0xb001)
がサーバ側で出たあとにクライアント側からディレクトリ
エントリが見えなくなるようです。それが出たあとも
気を取り直して NFS v3 でマウントしているクライアントからは
何も障害が見えません。
さらに NFS 鯖のログをさかのぼってみていると
nfs4_cb : server xxx.xxx.xxx.xxx not responding, timed out
が頻繁に出ています。これと関係あるのでしょうか。
nfs4_cb が何かこれからググろうと思いますが、
属性キャッシュがらみなのだろうか・・
0400名無しさん@お腹いっぱい。
2008/05/08(木) 11:17:59firewallの中でnfs4で確かめてみたら。
0401名無しさん@お腹いっぱい。
2008/05/08(木) 11:18:430402397
2008/05/08(木) 11:42:00ファイル鯖上で localhost がエクスポートしているものを
localhost でマウントしても同じ障害が発生します。
とりあえず週末に業務が終わったらカーネルを差し替えるべく
VMware 上で他のバージョンのカーネルでの挙動を確かめてみます。
0403名無しさん@お腹いっぱい。
2008/05/08(木) 11:59:230405名無しさん@お腹いっぱい。
2008/05/08(木) 13:12:410406名無しさん@お腹いっぱい。
2008/05/08(木) 13:19:010407名無しさん@お腹いっぱい。
2008/05/09(金) 17:45:300408名無しさん@お腹いっぱい。
2008/05/10(土) 04:31:26NFSv4 で認証した時のプロセスID が変わってたらそれが原因の一つでは?
任意の時間で、チェックしてアクティブに umount してからマウントしな
おすと何事もなかったように見えるのではないでしょうか。
0409名無しさん@お腹いっぱい。
2008/05/11(日) 14:29:050410名無しさん@お腹いっぱい。
2008/05/12(月) 18:17:580411名無しさん@お腹いっぱい。
2008/05/13(火) 15:31:21どっちもどっち。立ち位置の違いに過ぎない。
0412名無しさん@お腹いっぱい。
2008/05/13(火) 16:10:19ただしNFSモジュールは別途開発したものに差し替えてる。
0413名無しさん@お腹いっぱい。
2008/05/15(木) 00:31:40いくらになるんでしょうか?
0414名無しさん@お腹いっぱい。
2008/05/15(木) 07:00:16指定しなければデフォルトの値になります。
指定しなかったからといって決して 0にはなりませんので、ご安心ください。
0415名無しさん@お腹いっぱい。
2008/05/15(木) 08:55:59あほか。wsize/rsizeをいじりたくなったらデフォルト値を知る必要があるだろ。
>>413
OS(とそのバージョン)による。
FreeBSDなら/usr/include/nfsclient/nfs.hにNFS_WSIZE,NFS_RSIZEで定義されてる。
他は知らん。
0416名無しさん@お腹いっぱい。
2008/05/15(木) 09:27:37Linuxなら、mountコマンドを引数なしで実行したら表示されるだろww
一般ユーザーでも可能。
0417名無しさん@お腹いっぱい。
2008/05/15(木) 09:34:42ソースを見るんじゃなくて、稼働中のカーネルで実際にマウントされている時の
wsize/rsizeはわからないんですか?
0418名無しさん@お腹いっぱい。
2008/05/15(木) 12:28:330419名無しさん@お腹いっぱい。
2008/05/15(木) 12:34:17それだと、mount後に「現在の」rsize,wsizeを知ることができないじゃん。
0420名無しさん@お腹いっぱい。
2008/05/15(木) 13:16:500421名無しさん@お腹いっぱい。
2008/05/15(木) 14:50:09デフォルト値がわかるからいいじゃんか。
0422名無しさん@お腹いっぱい。
2008/05/15(木) 16:00:17Solaris なら nfsstat -m でずらっと出てくるお
0423名無しさん@お腹いっぱい。
2008/05/15(木) 16:28:26manの情報は実際のカーネルとは合ってないことがあるし、
やっぱり現物で確認する方法がいいよね。
0424名無しさん@お腹いっぱい。
2008/05/15(木) 21:08:450425名無しさん@お腹いっぱい。
2008/05/16(金) 16:38:33コマンドラインオプションで指定されなかったnfs mountオプションを、
mount(2)に渡す時に、
・0にしてkernelに任せる
・具体的な規定値を設定する
と二種類あるから気をつけて。
0426名無しさん@お腹いっぱい。
2008/05/20(火) 07:44:06server1は指定のディレクトリをNFSで公開します。
server2はserver1のディレクトリをマウントし、NFSで公開します
clientはserver2のディレクトリをマウントします
これはできる?
0427名無しさん@お腹いっぱい。
2008/05/20(火) 07:58:47Linuxなら可能。一般には不可能。
0428名無しさん@お腹いっぱい。
2008/05/20(火) 08:33:56server2がLinuxなら〜
0429名無しさん@お腹いっぱい。
2008/05/21(水) 12:53:23ちなみにserver2でsmbでマウントしたディレクトリを公開したら
書き込みできなかった
0430名無しさん@お腹いっぱい。
2008/05/22(木) 00:34:19便乗質問
NFS WRITE のサイズって、具体的にどこを見ればいいの?
0431名無しさん@お腹いっぱい。
2008/05/22(木) 01:40:19/proc/mount
NFS-SERVER:/home /home nfs rw,v3,rsize=32768,wsize=32768
0432名無しさん@お腹いっぱい。
2008/05/22(木) 06:31:01/proc/mounts だな
0433名無しさん@お腹いっぱい。
2008/06/30(月) 10:19:33AからBへnfsマウントして、さらに
BからCへnfsマウントできますか?
つまりCからAのディスクをnfsを2回中継してマウントしたいです。
0434名無しさん@お腹いっぱい。
2008/06/30(月) 11:26:07>>427
0435名無しさん@お腹いっぱい。
2008/06/30(月) 11:32:130436名無しさん@お腹いっぱい。
2008/06/30(月) 11:41:00unfsdは可
0437名無しさん@お腹いっぱい。
2008/06/30(月) 12:01:580438名無しさん@お腹いっぱい。
2008/06/30(月) 12:10:000439名無しさん@お腹いっぱい。
2008/07/09(水) 14:56:06その環境で、Solaris9上でMacのフォルダの容量を取得したい。
そこで質問>>
Solaris9上でNFSマウントしたMacのフォルダをdu -skの値と、
Mac上でdu -skの値に差がある。
Solaris9:2676
Mac:892
NFSマウント方法や、他に容量の取得する方法があれば教えてほしい。
お願いします。
0440名無しさん@お腹いっぱい。
2008/07/09(水) 15:28:30つ du -sB 1 filename
0441名無しさん@お腹いっぱい。
2008/07/14(月) 05:04:45NFS でマウントしたディレクトリ以下で、
mkdir した場合は、強制的に permission 775 に
するようにできないのかな。
exports しているディレクトリは 2775 にセットしているから、
直下に 755 なファイルを作られても、group ユーザは消せる
けど、directory を 755 で掘らて、その下に 755 なファイルや
ディレクトリを作られると、消せなくて不便。
anonymous にすると、group で共有ディレクトリを制御
できないし。
0442名無しさん@お腹いっぱい。
2008/07/14(月) 06:43:05クライアント側で mountする時に、-o grpid オプションを付ければ、
ディレクトリのgidはサブディレクトリに伝播するよ。
0443名無しさん@お腹いっぱい。
2008/07/14(月) 23:59:16を 2775 の 2 (setgid) を立てておくのと同じです。
結局、 全員に permission 775 (umask 002) 以外に
設定することを禁止し、その代わり /usr/home 用に、
uid ごとの個別のgid を用意して、運用することにしました。
NFS をグループ別に共有することができるようになったけど、
なんか、車輪の再生産をした気分。
0444名無しさん@お腹いっぱい。
2008/07/15(火) 11:32:010445名無しさん@お腹いっぱい。
2008/07/21(月) 14:23:42NFSで/usr/localを共有するのと、/usrを共有するのってどちらの方が運用上賢いでしょうか?
yum upgradeとかしたときに全てのサーバマシンに影響するのかな。
0446名無しさん@お腹いっぱい。
2008/07/21(月) 19:54:13NFSで/usrを共有すると、たとえばNFSサーバ上で何かパッケージをインストール
したとき、NFSクライアント側は、/usrが更新されて/varが更新されていないという
不整合な状態になると思われ。
パッケージシステムを使うなら、複数ホストのパッケージ管理を1操作で
できるようにするのが筋ではないかと。
0447名無しさん@お腹いっぱい。
2008/07/21(月) 19:58:220448名無しさん@お腹いっぱい。
2008/07/21(月) 20:30:09system-config-netbootで全部
0449名無しさん@お腹いっぱい。
2008/07/21(月) 23:36:11そんなの初耳なんだが
0450名無しさん@お腹いっぱい。
2008/07/22(火) 07:24:50NFS 鯖と心中という障害ポイントを作る以上のメリットがない。
そんな程度なら定期的に rsync とかで同期した方が安定かつ高速。
0451名無しさん@お腹いっぱい。
2008/07/22(火) 08:16:30定期的にrsync、というのはどの程度の間隔が良いのでしょうか?
ていうか、障害ポイントを発生させたとしても、管理ポイントが共有によりひとつに
まとまるNFSの方が楽じゃない? NFS鯖を極力落ちないよう準備しておけばいいだけだし。
あくまで確率論だとは思いますが。
0452名無しさん@お腹いっぱい。
2008/07/22(火) 08:23:43パッケージ管理の整合性という本質的な問題が理解できてないように思うが?
0453名無しさん@お腹いっぱい。
2008/07/23(水) 09:13:30NFSサーバだってきっと落ちるさ。
0454名無しさん@お腹いっぱい。
2008/07/23(水) 14:40:53マスターサーバを更新したときに手動で実行するとか、
もしくはクライアントがマスターサーバに何らかの方法で問い合わせて、
更新フラグが立ってたら同期するとかね。
0455名無しさん@お腹いっぱい。
2008/07/23(水) 17:53:210456名無しさん@お腹いっぱい。
2008/07/23(水) 18:04:070457名無しさん@お腹いっぱい。
2008/07/23(水) 18:17:140458名無しさん@お腹いっぱい。
2008/07/23(水) 18:28:45パッケージアップデートとか、
NFS鯖上で各クライアントディレクトリにchrootしてやってる。
クライアントPCが電源OFFでも、NFS鯖上だけでアップデートできるので管理すごく楽。
0459名無しさん@お腹いっぱい。
2008/07/23(水) 18:43:02クライアントごとにインスタンス作ってるの?
すごく無駄な気が...
0460名無しさん@お腹いっぱい。
2008/07/23(水) 18:48:04クライアントごとにあるのは / (/var /etc /sbin等)のみ。
/usrは共有してる。共有後にパッケージ管理もしてる。
あ、/sbinのバイナリは個別にハードリンク共有してる。
0461名無しさん@お腹いっぱい。
2008/08/07(木) 14:41:190462名無しさん@お腹いっぱい。
2008/08/07(木) 23:56:53逆にyumは一切しないで元ツリー側でのyumに任せる運用をしてもいいぞ。
0463名無しさん@お腹いっぱい。
2008/08/13(水) 08:19:45flock()使ってるPerlのCGI動かすと1分くらい無反応になって終了しちゃう
ファイルロックかからなくていいから、flock使っても無視するmount方法ってないかな?
ちょっと前のLinuxだと、ふつーにmountしてflockつかっても問題ないんだけど
0464名無しさん@お腹いっぱい。
2008/08/13(水) 08:43:04mount -o nolock
0465名無しさん@お腹いっぱい。
2008/08/13(水) 11:17:26ちょっと前っていつ頃?
0466名無しさん@お腹いっぱい。
2008/08/13(水) 11:38:340467名無しさん@お腹いっぱい。
2008/08/13(水) 13:00:34b)ファイルロックかからなくていい
c)スクリプトの方を書き換えようとしない
d)デフォルトでNFSマウントされたディレクトリでflockしようとする
いずれも俺には理解できない発想の集合体だ。
a)システムが正常に動いてないんだから、まずどこが異常なのか調べてくれ。
statdとかlockdとか動いてないんじゃないのか。他のアプリケーションの動作にも
支障があるだろう。
b)競合すればデータが壊れる。同時実行しないという仮定でCGI運用したって
必ずいつかどこかで隙を突かれる。
c)なんのためのスクリプト言語なんだ
d)たとえhomeとかNFSマウントしてても、CGIを実行するホストが単一なら
/varのようなローカルマウントしてるディレクトリ上のファイルに対する
ロックで排他するのが筋。
0468名無しさん@お腹いっぱい。
2008/08/13(水) 14:12:26aはNFS鯖がFreeBSDとかじゃねーの?
0469名無しさん@お腹いっぱい。
2008/08/13(水) 14:23:57> cとdは連鯖なら普通だろ。
動かない規定scriptがあるレンタルサーバが普通なのか?
> aはNFS鯖がFreeBSDとかじゃねーの?
( ゚д゚)ポカーン
0470名無しさん@お腹いっぱい。
2008/08/13(水) 14:30:07おまいさんは客のスクリプトを勝手に書き換えるのか?
>( ゚д゚)ポカーン
このすれを>>1から読んでこい
0471名無しさん@お腹いっぱい。
2008/08/13(水) 14:43:34質問主からの結果報告がないようだけど。
>>464 の回答で解決でしょ。
0472名無しさん@お腹いっぱい。
2008/08/13(水) 16:08:430473名無しさん@お腹いっぱい。
2008/08/13(水) 16:15:24ハイ次。
0474名無しさん@お腹いっぱい。
2008/08/13(水) 16:19:56Linuxの -o nolock オプション付でmountした場合、
rpc.lockd経由の異ホスト間のロックがかからなくなるだけで、
同一ホスト上だと、(たとえロック対象ファイルがNFS上でも)ちゃんとlockがかかるよ。
なので、-o nolock が質問者に対する適切な回答と思われる。
0475名無しさん@お腹いっぱい。
2008/08/13(水) 17:08:08この場合、壊れているのはロック要求に応えないNFSサーバであり、
ロックの必要がないのに獲得しようとしているスクリプトだ。
-o nolockは逆に、壊れていないNFSクライアントを壊してしまう。
(ネットワークワイドでのlockを無効にし、アプリケーションにエラーも返さない)。
そのサイトで動作するアプリケーション全体に影響が及ぶことを考えれば、
他で対処できないときの次善の策と考えた方がよい。
0476名無しさん@お腹いっぱい。
2008/08/13(水) 17:29:560477名無しさん@お腹いっぱい。
2008/08/13(水) 17:39:09どっちも。
0478名無しさん@お腹いっぱい。
2008/08/13(水) 17:54:023人とも。
0479名無しさん@お腹いっぱい。
2008/08/13(水) 21:31:45でもしっくりいかないなあ
statdやlockd走しらせてmountしたファイルシステムにflockかけただけで半ストール状態になっちゃうものなの?
サーバー側がおかしいのかな
0480名無しさん@お腹いっぱい。
2008/08/13(水) 23:43:29だから、質問者が発した質問が適切に組み立てられるとは期待出来ない。
質問の裏にある、質問者が抱えている真の問題を見抜いて解決法を回答するのが、
知識のある回答者の側の責務。
>>479
サーバ側、もしくはサーバとの通信がおかしい。
たとえばdaemonは動いていてもどこかのレイヤでパケットがフィルタリングされている、等。
■ このスレッドは過去ログ倉庫に格納されています