トップページunix
982コメント306KB

【NFS】Network File System

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2006/03/28(火) 11:42:41
nfsに関する話題を扱うスレ
0336名無しさん@お腹いっぱい。2008/04/13(日) 14:22:05
>>335
さて、これが無駄な期待でない理由を説明してくれ。

「ローカルHDDより速い感じがするくらい。」
0337名無しさん@お腹いっぱい。2008/04/13(日) 17:00:31
誇張表現
0338名無しさん@お腹いっぱい。2008/04/13(日) 17:56:21
そりゃ、ユーザ一人とか、Networkスカスカなら
そこそこ良いかもしれんけど・・・・・
0339名無しさん@お腹いっぱい。2008/04/13(日) 18:08:20
自宅でやっているときの話とかいているから
ユーザーは分かっている範囲だしネットワークはすかすかだろうな
0340名無しさん@お腹いっぱい。2008/04/14(月) 00:51:14
>>332
・/homeと/usr/localだけ共有。
相互依存が起きないように両方同じサーバに。
・システムが必要とする分だけを全て/パーティションに。
パッケージシステムに任せて決して共有しない。
・残りは別パーティションとし、nfs exportして、
画像、音楽データを入れたり、バックアップに使ったり。
0341名無しさん@お腹いっぱい。2008/04/14(月) 08:38:20
ぶっちゃけ自宅ならば/homeというよりも、/home/homepageだけをシェアして
基本的にワンユーザー(homepage)で運用したほうが効率いいんでないかい?
あとは>>340の言うとおり/usr/localもかなあ
個人的にはDNSやsambaを設定してる/etcの一部ファイルもうまくシェアできないかと悩み中
0342名無しさん@お腹いっぱい。2008/04/14(月) 08:40:19
>>341
おまえ家族いないのか?
0343名無しさん@お腹いっぱい。2008/04/14(月) 19:52:49
むしろ家族がいてNFSを使っているような奴が異常
0344名無しさん@お腹いっぱい。2008/04/14(月) 20:00:20
鯖なんか立てたら、

うるせーよとクレームくる。
0345名無しさん@お腹いっぱい。2008/04/14(月) 20:49:40
居間のPCでも寝室のPCでも子供部屋のPCでも、
どのPCからログインしても自分の$HOMEで同じ環境にするには
ふつーNFSだろ。
0346名無しさん@お腹いっぱい。2008/04/14(月) 21:03:29
寝室でエロ動画ばっか見てないで、たまには奥さんの相手してやれよ。
0347名無しさん@お腹いっぱい。2008/04/14(月) 21:32:01
恥ずかしがり屋の妻がPCの中から出てきてくれません
0348名無しさん@お腹いっぱい。2008/04/14(月) 22:19:54
君のPCの中にいてくれるならそれでいいじゃないか
0349名無しさん@お腹いっぱい。2008/04/14(月) 22:33:23
>>348
生きろ
0350名無しさん@お腹いっぱい。2008/04/15(火) 02:29:46
/homeを共有したとしてもログインするためのアカウントやパスワード情報がシェアできなきゃ意味なくね?
0351名無しさん@お腹いっぱい。2008/04/15(火) 03:40:35
ホームと比べて人力同期の手間が大した事ない上にスレ違い。
0352名無しさん@お腹いっぱい。2008/04/15(火) 06:27:47
>>350
だから NIS使うんだろ。
0353名無しさん@お腹いっぱい。2008/04/15(火) 07:42:33
NFSはv4でTCPだけで使えるようになったけど、
NISはやっぱりportmap必須でポートの制御が難しいね。
LDAPでもよくね?
0354名無しさん@お腹いっぱい。2008/04/15(火) 08:48:17
UDP通してなんか問題ある? ポートの制御? そのなの必要ある?
0355名無しさん@お腹いっぱい。2008/04/15(火) 13:48:51
ていうかエルダップ使えよ、
国民は全員使ってるぜ、おまえんち以外は。
0356名無しさん@お腹いっぱい。2008/04/15(火) 14:14:35
そもそもportmap(rpcbind)は、ポート番号を意識せずに、
さらに言えば、下位レイヤーがTCP/IPソケットかどうかすら意識せずに
通信できる上位レイヤーのための概念だ。
それを使わずにポート番号固定にしてTCP/IPに依存するのは昔の考え方。
0357名無しさん@お腹いっぱい。2008/04/15(火) 14:24:09
誰も固定にするなんて言っていない。
0358名無しさん@お腹いっぱい。2008/04/15(火) 14:47:45
そういう場合はどうすると言ったのかを言わないと「固定にする」と言ったとみなされたままになる。
0359名無しさん@お腹いっぱい。2008/04/15(火) 22:30:41
べつにNISでもLDAPでもNetInfoでもいいよ
0360名無しさん@お腹いっぱい。2008/04/16(水) 02:54:04
>>359
比較するとしたらどれが良いと思う?
0361名無しさん@お腹いっぱい。2008/04/16(水) 04:21:04
LDAP
0362impress入門者2008/04/16(水) 16:14:03
>>682, 683

マイレイアウト追加って出来ますか?
数式の規定フォントの指定って出来ますか?
0363名無しさん@お腹いっぱい。2008/04/16(水) 16:25:44
NFSじゃ無理
0364名無しさん@お腹いっぱい。2008/04/16(水) 22:21:40
いや、なんとかすりゃできるかもよ?
俺は教えないけどね
0365名無しさん@お腹いっぱい。2008/04/19(土) 03:14:55
NFSで/usrをシェアするってどうなの?
0366名無しさん@お腹いっぱい。2008/04/19(土) 06:55:24
どうって、普通だよ
0367名無しさん@お腹いっぱい。2008/04/19(土) 13:57:21
や、/usr/localを共有するもんだと思ってたんだけど
>>365みたく/usrなんて共有していいものなのか?
0368名無しさん@お腹いっぱい。2008/04/19(土) 14:53:31
>>367
/usrだからこそ共有していい。

ホスト間で共有できるものは /usr以下(/usr/bin /usr/lib /usr/sbin等)に。
ホスト間で共有できないものは /etc /var /bin /sbin /lib等に
というルールになっている。
Solarisではホスト間で共有できるファイルを増やすため、
/binをsymlinkにして、すべて/usr/binに移動している。
0369名無しさん@お腹いっぱい。2008/04/19(土) 16:58:26
NFS鯖に障害が出たときにすげー面倒くさそう。/sbinだけあってもなぁw
用途や規模や更新頻度にもよるけど、漏れはrsyncとかパッケージの管理とかで
統一する方が好きかな。
0370名無しさん@お腹いっぱい。2008/04/19(土) 21:36:28
んじゃ、NFSじゃなくrsyncで全ホスト間の/usrで同期をとるならば
cronとかで定期的に親機から全ホストに対してrsyncするスクリプトを叩く、でおk?
一時間おきとかに。
0371名無しさん@お腹いっぱい。2008/04/20(日) 11:17:05
パッケージとパッチ使えよ。
0372名無しさん@お腹いっぱい。2008/04/20(日) 12:23:00
/usr以下なら、更新したタイミングで同期すればいいじゃない
0373名無しさん@お腹いっぱい。2008/04/20(日) 12:58:33
ガチで管理したいならもうpuppetとか導入しちゃった方がいいんじゃない?
0374名無しさん@お腹いっぱい。2008/04/25(金) 02:29:03
パペットってどうよ?
10台以下の環境で使うほどの必要あるかな
0375名無しさん@お腹いっぱい。2008/04/27(日) 10:35:38
RDISKはNFSですか?
0376名無しさん@お腹いっぱい。2008/05/02(金) 07:46:00
NFSでマウントしたボリュームについても,クライアント側で
通常のファイルシステムのようにキャッシュは有効なのでしょうか?

NFS 鯖においてあるファイルを NFSv3 でマウントして,
そこそこ大きなファイル(10M程度のログファイル)を
何度も読み込むとすると,何度もトラフィックが発生
するものなのでしょうか?

Linux ユーザなのですが NFS のスレが Linux 板にないのでここに来ました.
なお,FS-Cache とか cachefilesd は使っていません.
通常のディスクキャッシュの仕組みがNFSでマウントした
ボリュームでも働くかどうかということです.
0377名無しさん@お腹いっぱい。2008/05/02(金) 07:51:22
>>376
当然キャッシュされる。もちろん、クライアントの搭載メモリ次第だが。
同じファイルを読み込む場合、2回目は速い。
0378名無しさん@お腹いっぱい。2008/05/02(金) 09:19:12
>>376
man 5 nfsも読んどいてくれ
03793762008/05/02(金) 13:35:30
レスありがとうございます。最近NFSを利用している
クライアントマシンから「NFSが気絶してる」という
苦情を受けるので、使い方を聞いてみたら10000個ほどの
10MB程度のファイルを次々と grep しただけ、とのこと。
しかも1ファイルごとに100回くらい読み直したとのコト。

せめてクライアント側でキャッシュが有効なら同じファイル
100個読むのは別に負荷じゃないよなぁとおもったのです。

さきほど nfsstat をサーバ側でやってみたら、

Server nfs v3:
null getattr setattr lookup access readlink
6 0% 18278453 80% 143964 0% 781712 3% 2524218 11% 0 0%
read write create mkdir symlink mknod
352987 1% 455073 1% 54698 0% 6321 0% 0 0% 0 0%
remove rmdir rename link readdir readdirplus
51737 0% 5598 0% 88 0% 0 0% 107265 0% 27950 0%
fsstat fsinfo pathconf commit
8 0% 2 0% 0 0% 17191 0%

うむむ、getattr だけで 80% らしい。80% というのが回数なのか
そのコールを処理するのにかかった時間なのかわかりませんが、
なんにせよ getattr 恐るべし。man 5 nfs によるとディレクトリ
エントリがらみのキャッシュ時間を設定しろということなのでしょうか。

うちの使い方では関係ないですが、ディレクトリエントリを
キャッシュしちゃうとロックファイルのような使い方を
してるアプリケーションにとってはまずいことがおきる?
0380名無しさん@お腹いっぱい。2008/05/02(金) 13:44:43
>>379
RHEL4ならbugzilla見にいけ
03813762008/05/02(金) 16:31:35
>>380
サーバは Ubuntu LTS 6.0.6 LTS です。が
今使ってるカーネルのバージョンに絡んだ何かが
あるかもしれないので時間のあるときに見てみます。

ところで、みなさん nfsd の数ってどうやって最適値を
見積もってらっしゃるんでしょうか? デフォルトが 8
だし、デュアルコアだから 16、いや、20 くらいにしておこう
程度の発想しかできないんですが、たとえば /proc 以下の
何かをモニタしていればヒントが得られるのでしょうか。
0382名無しさん@お腹いっぱい。2008/05/02(金) 16:42:55
>>381
ttp://nfs.sourceforge.net/
03833762008/05/02(金) 18:48:15
>>382 THX
0384名無しさん@お腹いっぱい。2008/05/03(土) 01:38:24
>>379
NFSマウントしているところで、
シリアスな「ロックファイル」を使っちゃいかん。
firefoxの二重起動禁止程度の奴なら実用上問題ないけど。
0385名無しさん@お腹いっぱい。2008/05/05(月) 02:07:33
NFSで10台くらいとシェアするとやっぱりパフォーマンス落ちますか
0386名無しさん@お腹いっぱい。2008/05/05(月) 03:26:14
サーバによるよ。
ローカルディスクより速いサーバは一杯ある。
0387名無しさん@お腹いっぱい。2008/05/05(月) 12:57:28
ML115なんですが
0388名無しさん@お腹いっぱい。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:14
NFSやるならNISも必須だろ
0391名無しさん@お腹いっぱい。2008/05/05(月) 18:03:12
いやそれほどでも
0392名無しさん@お腹いっぱい。2008/05/05(月) 19:49:13
NISとかLDAPとかNetInfoとかアカウント管理なくても、
NFSプロトコルは問題なく動きます。
0393名無しさん@お腹いっぱい。2008/05/05(月) 20:00:13
アカウント管理なんてする必要あるのか?
100台だろうが1万台だろうが、手作業でアカウント設定すりゃいいじゃん
0394名無しさん@お腹いっぱい。2008/05/05(月) 20:05:59
アイデンティティ管理って奴ですかな。
0395名無しさん@お腹いっぱい。2008/05/05(月) 20:07:52
認証したい時(UNIX認証は除く)はsecure RPCかKerberosが必要になる。
03963952008/05/05(月) 20:08:47
>>395
Secure RPCのDES認証かKerberos認証というべきだった。
0397名無しさん@お腹いっぱい。2008/05/08(木) 11:00:16
サーバ、クライアントともに
Ubuntu 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
>>397
>というのはどんな状態なのでしょうか

普通に、ディレクトリだけが読めない状態。
NFS関係なしに、
chmod a-r .
ってやると、カレントディレクトリをlsできなくなるが、
その下にあるファイルは(ファイル名がわかっていれば)読める。
03993972008/05/08(木) 11:12:12
複数台あるファイル鯖で、NFS v3 で普通はマウントしていて
幸せな暮らしを営んでいるのですが、ファイアウォールの関係で
隣の部署からは 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:59
まずfirewallを疑えよ。
firewallの中でnfs4で確かめてみたら。
0401名無しさん@お腹いっぱい。2008/05/08(木) 11:18:43
スキルもなく実績もないUbuntuLTSなんか使うなよ。
04023972008/05/08(木) 11:42:00
>>400
ファイル鯖上で localhost がエクスポートしているものを
localhost でマウントしても同じ障害が発生します。
とりあえず週末に業務が終わったらカーネルを差し替えるべく
VMware 上で他のバージョンのカーネルでの挙動を確かめてみます。
0403名無しさん@お腹いっぱい。2008/05/08(木) 11:59:23
TCPにしたいだけなら、NFSv3のTCPにすればいいじゃないか。
04043972008/05/08(木) 13:06:30
>>403
できれば idmap も使いたく・・
0405名無しさん@お腹いっぱい。2008/05/08(木) 13:12:41
uid振り直して統一しておけばいい。
0406名無しさん@お腹いっぱい。2008/05/08(木) 13:19:01
Googleもいいけど、そこまでログ追ったならソースコード見た方が早いよ
0407名無しさん@お腹いっぱい。2008/05/09(金) 17:45:30
サーバをSolarisに変えろ! > NFSv4
0408名無しさん@お腹いっぱい。2008/05/10(土) 04:31:26
>>397
NFSv4 で認証した時のプロセスID が変わってたらそれが原因の一つでは?

任意の時間で、チェックしてアクティブに umount してからマウントしな
おすと何事もなかったように見えるのではないでしょうか。
0409名無しさん@お腹いっぱい。2008/05/11(日) 14:29:05
>>407みたいなこという人ってどこまで本気なんだろう?
0410名無しさん@お腹いっぱい。2008/05/12(月) 18:17:58
まじ
0411名無しさん@お腹いっぱい。2008/05/13(火) 15:31:21
LinuxでNFSサーバとかどこまでマジなの? という切り口もあるので
どっちもどっち。立ち位置の違いに過ぎない。
0412名無しさん@お腹いっぱい。2008/05/13(火) 16:10:19
NECと富士通の独自NFSサーバはLinux製。
ただしNFSモジュールは別途開発したものに差し替えてる。
0413名無しさん@お腹いっぱい。2008/05/15(木) 00:31:40
nfs mount 時の rsize, wsize ですが、これを指定しない場合は
いくらになるんでしょうか?
0414名無しさん@お腹いっぱい。2008/05/15(木) 07:00:16
>>413
指定しなければデフォルトの値になります。
指定しなかったからといって決して 0にはなりませんので、ご安心ください。
0415名無しさん@お腹いっぱい。2008/05/15(木) 08:55:59
>>414
あほか。wsize/rsizeをいじりたくなったらデフォルト値を知る必要があるだろ。

>>413
OS(とそのバージョン)による。
FreeBSDなら/usr/include/nfsclient/nfs.hにNFS_WSIZE,NFS_RSIZEで定義されてる。
他は知らん。
0416名無しさん@お腹いっぱい。2008/05/15(木) 09:27:37
>>414
Linuxなら、mountコマンドを引数なしで実行したら表示されるだろww
一般ユーザーでも可能。
0417名無しさん@お腹いっぱい。2008/05/15(木) 09:34:42
>>415
ソースを見るんじゃなくて、稼働中のカーネルで実際にマウントされている時の
wsize/rsizeはわからないんですか?
0418名無しさん@お腹いっぱい。2008/05/15(木) 12:28:33
Solarisならman mount_nfsに書いてある。
0419名無しさん@お腹いっぱい。2008/05/15(木) 12:34:17
>>418
それだと、mount後に「現在の」rsize,wsizeを知ることができないじゃん。
0420名無しさん@お腹いっぱい。2008/05/15(木) 13:16:50
もうさ、tcpdumpでNFS WRITEのサイズ見ればいいじゃん
0421名無しさん@お腹いっぱい。2008/05/15(木) 14:50:09
>>418
デフォルト値がわかるからいいじゃんか。
0422名無しさん@お腹いっぱい。2008/05/15(木) 16:00:17
>>418
Solaris なら nfsstat -m でずらっと出てくるお
0423名無しさん@お腹いっぱい。2008/05/15(木) 16:28:26
Linuxでも nfsstat -m で rsize/wsize 他のパラメータもわかる。

manの情報は実際のカーネルとは合ってないことがあるし、
やっぱり現物で確認する方法がいいよね。
0424名無しさん@お腹いっぱい。2008/05/15(木) 21:08:45
その知見は現物でしか使えないけどね。
0425名無しさん@お腹いっぱい。2008/05/16(金) 16:38:33
mountコマンドが、
コマンドラインオプションで指定されなかったnfs mountオプションを、
mount(2)に渡す時に、
・0にしてkernelに任せる
・具体的な規定値を設定する
と二種類あるから気をつけて。
0426名無しさん@お腹いっぱい。2008/05/20(火) 07:44:06
server1 --- server2 -- cilent

server1は指定のディレクトリをNFSで公開します。
server2はserver1のディレクトリをマウントし、NFSで公開します
clientはserver2のディレクトリをマウントします

これはできる?
0427名無しさん@お腹いっぱい。2008/05/20(火) 07:58:47
>>426
Linuxなら可能。一般には不可能。
0428名無しさん@お腹いっぱい。2008/05/20(火) 08:33:56
>>427に追加
server2がLinuxなら〜
0429名無しさん@お腹いっぱい。2008/05/21(水) 12:53:23
>>426
ちなみにserver2でsmbでマウントしたディレクトリを公開したら
書き込みできなかった
0430名無しさん@お腹いっぱい。2008/05/22(木) 00:34:19
>>420
便乗質問
NFS WRITE のサイズって、具体的にどこを見ればいいの?
0431名無しさん@お腹いっぱい。2008/05/22(木) 01:40:19
汎用性あるかしらんが、Linuxなら、

/proc/mount
NFS-SERVER:/home /home nfs rw,v3,rsize=32768,wsize=32768
0432名無しさん@お腹いっぱい。2008/05/22(木) 06:31:01
>>431
/proc/mounts だな
0433名無しさん@お腹いっぱい。2008/06/30(月) 10:19:33
マシンA,B,Cがあったとして

AからBへnfsマウントして、さらに
BからCへnfsマウントできますか?
つまりCからAのディスクをnfsを2回中継してマウントしたいです。
0434名無しさん@お腹いっぱい。2008/06/30(月) 11:26:07
>>433
>>427
0435名無しさん@お腹いっぱい。2008/06/30(月) 11:32:13
Linuxでもできない実装なかったっけ
■ このスレッドは過去ログ倉庫に格納されています