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

【NFS】Network File System

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2006/03/28(火) 11:42:41
nfsに関する話題を扱うスレ
0642名無しさん@お腹いっぱい。2008/12/13(土) 22:31:19
>>641
おいおい・・・

creat(2)が10msとしても、シェルスクリプトからファイル作るための
オーバーヘッドが100msあるだけで2週間ほど時間余分にかかるんだぞ?

数千万とか、ms/usとかの数字の感覚がちょっと弱くないか?
0643名無しさん@お腹いっぱい。2008/12/13(土) 22:35:07
touch に引数複数与えれば 1fork あたりは減らせるし
別に上にいるのが shell script なだけなら
そんなにつるし上げるほどの話ではないような
0644名無しさん@お腹いっぱい。2008/12/13(土) 22:42:51
>>642
おいおい・・・

いくらシェルスクリプトとは言え、ファイル作るオーバーヘッドが100msだとか、
いまどきcreat(2)でファイル作ってると言うとか、

今の時代の感覚がちょっと弱くないか?


>>643
touchじゃなくて、> $file でファイル作れば外部コマンドをforkしないから高速。
0645名無しさん@お腹いっぱい。2008/12/14(日) 11:15:42
そんなしょうもない心配するくらいならCで書けば?って気がするんですが。
別に難しいプログラムじゃないんだし。
0646名無しさん@お腹いっぱい。2008/12/14(日) 11:31:37
>>639
全然違うぞw
コピー先でのremove動作をロールバックする必然性があるかどうかの問題。
0647名無しさん@お腹いっぱい。2008/12/14(日) 12:09:14
もうNFS全然関係ないけど、FreeBSDのufs, soft-updatesにて。

% time zsh -c 'for i in {10000..19999}; do touch $i; done'
zsh -c 'for i in {10000..19999}; do touch $i; done' 1.78s user 7.34s system 105% cpu 8.652 total
% time zsh -c 'touch {20000..29999}'
zsh -c 'touch {20000..29999}' 0.01s user 0.60s system 85% cpu 0.715 total

0648名無しさん@お腹いっぱい。2008/12/14(日) 14:23:15
>>646
rsync先もZFSならrolebackでremoveが一瞬なのでお勧めの意味?

>>647
touchって最大いくつまでファイル渡せるんだろう
10000も渡せるとは驚き
0649名無しさん@お腹いっぱい。2008/12/14(日) 14:59:38
それはtouchじゃなくて、kernelの制限。
0650名無しさん@お腹いっぱい。2008/12/14(日) 21:47:33
kernel? shellじゃない?
0651名無しさん@お腹いっぱい。2008/12/14(日) 22:20:45
ファイル記述子の制約?
0652名無しさん@お腹いっぱい。2008/12/14(日) 22:28:48
kernelです。> ARG_MAX

今度暇な時に、ps(1)にコマンド引数も出力させた時、
どうやって引数を得ているか調べてみてください。
0653名無しさん@お腹いっぱい。2008/12/15(月) 00:01:54
シェルはコマンドラインの文字列長でしたかな。
0654名無しさん@お腹いっぱい。2009/01/03(土) 23:47:28
ls叩くと数秒待ってからコマンドの出力が出てくるのですが何が原因でしょうか?
0655名無しさん@お腹いっぱい。2009/01/04(日) 11:11:19
ネットワークが重いとか
0656名無しさん@お腹いっぱい。2009/01/04(日) 16:35:11
>>654
/bin/ls -nでも遅いですか?
0657名無しさん@お腹いっぱい。2009/01/04(日) 22:30:59
ご回答有難うございます。

>>655
NFSサーバとNFSクライアントは同じスイッチのバックプレーンに収まる配置でして、全てGigabitEtherにて構築されているのでネットワークは詰まっていないのですよ(MRTG等で確認済み)。。。

>>656
ls -nだと即レスポンスがありました。ls -lすると遅いです。。。
1ディレクトリには100個程度のファイルがあるのですが所有者とかタイムスタンプを取得するのって、そんなに大変なんでしたっけ?
0658名無しさん@お腹いっぱい。2009/01/04(日) 22:54:08
>>657
/bin/ls -n
/bin/ls -ln
/bin/ls -l
も試してください。
一番上だけ速い→i-nodeキャッシュが足りない
上の二つが速い→nssが遅い
全部遅い→NFSサーバ or ネットワークが遅い

aliasやshell内蔵lsに誤魔化されないように/bin/lsってしてね。いい子だから。
0659名無しさん@お腹いっぱい。2009/01/04(日) 23:34:35
>>658
ご丁寧に有難うございます。
/bin/lsする対象については各項目を試す前にumount/mountを実施してみました。

・/bin/ls -n
real 0m0.019s
user 0m0.000s
sys 0m0.002s

・/bin/ls -ln
real 0m1.163s
user 0m0.000s
sys 0m0.005s

・/bin/ls -l
real 0m1.134s
user 0m0.000s
sys 0m0.006s

inodeのキャッシュが足りないのでしょうか?
こういう場合、一般的にはどのように対処するものでしょうか。。。
0660名無しさん@お腹いっぱい。2009/01/05(月) 00:05:32
何回連続でやってもその差が変らないなら、
mountのオプションでi-nodeのリードキャッシュを増加&延ばす!

uid, gidの逆引きは全く問題がないよう。
nsswitch.confはfilesオンリーかな?
0661名無しさん@お腹いっぱい。2009/01/05(月) 00:07:06
あ、それから
・tcpマウント
・version 3, 4マウント
も試した方がよい。
0662名無しさん@お腹いっぱい。2009/01/05(月) 00:17:31
>>660-661
色々と情報を有難うございます。

>mountのオプションでi-nodeのリードキャッシュを増加&延ばす!
fstabやmountでread cacheの指定ができるんですか??
軽くmanしてみたり検索してみたのですが具体的に言及しているものにたどり着けず・・・

nsswitch.confはhosts以外は全部filesになっています。
現在はTCPのNFSv3にてマウントしています。
0663名無しさん@お腹いっぱい。2009/01/05(月) 00:32:06
man 5 nfsかな?

man -k mount | grep nfsするとか、mountのSEE ALSOみるとか。
0664名無しさん@お腹いっぱい。2009/01/05(月) 00:40:10
acregmin, acregmax, acdirmin, acdirmaxあたりでしょうか?
0665名無しさん@お腹いっぱい。2009/01/05(月) 01:48:11
rsizeも。
0666名無しさん@お腹いっぱい。2009/01/05(月) 07:39:31
i-node cacheやらlookup cacheの保持量の指定ってNFSプロトコル上の話でなく
OS依存のことだから、OSわからないことには具体的なことは言えないような。
0667名無しさん@お腹いっぱい。2009/01/05(月) 08:23:39
UNIX類はほとんど一緒。
0668名無しさん@お腹いっぱい。2009/01/05(月) 08:34:54
知ったか乙
0669名無しさん@お腹いっぱい。2009/01/05(月) 09:15:27
そういや元質問者は OS もバージョンも書いてないのぅ…
0670名無しさん@お腹いっぱい。2009/01/05(月) 09:55:33
>>666
そういう場合は、自分の知っているOSの場合について回答すれば良い。

「OSわからないと答えられない」という奴に限って、
OSがわかっても答えられない。
0671名無しさん@お腹いっぱい。2009/01/06(火) 08:30:00
まあなんだ、いろいろ乙
0672名無しさん@お腹いっぱい。2009/01/06(火) 09:03:09
>>663
man 5 で nfsの項目があるのは Linuxだと、エスパーならわかる。
0673名無しさん@お腹いっぱい。2009/01/06(火) 13:46:50
>>670
どうぞどうぞ。
0674名無しさん@お腹いっぱい。2009/01/16(金) 05:24:18
nfsv4 だと単一ファイルシステムとしてエクスポートしますが、
そのためのディレクトリってどこが標準なんでしょうか。
/export とか /shared とか、これは標準ってないもんですか?
0675名無しさん@お腹いっぱい。2009/01/16(金) 09:09:01
ないね。
0676名無しさん@お腹いっぱい。2009/01/16(金) 09:17:34
NFSエクスポートするディレクトリ名は、

/lBd1sZ35XRpAl

みたいに、ランダムで覚えられない大小英文字と数字の組合せにしましょう。
LAN内からの悪戯でマウントされるのを防ぐためです。
0677名無しさん@お腹いっぱい。2009/01/16(金) 09:28:33
つ showmount -e hostname
0678名無しさん@お腹いっぱい。2009/01/16(金) 09:44:09
「つ」のレスは、外してる、の法則成立
0679名無しさん@お腹いっぱい。2009/01/16(金) 10:00:09
pgr
0680名無しさん@お腹いっぱい。2009/01/16(金) 10:05:22
ちゃんと説明できないから「つ」でごまかしてんだよな。
0681名無しさん@お腹いっぱい。2009/01/18(日) 10:24:18
>LAN内からの悪戯でマウントされるのを防ぐためです。

それで防げるのか?
0682名無しさん@お腹いっぱい。2009/01/18(日) 11:42:06
管理しきれないホストがつながるセグメントなのに、
exportsにセグメントを指定しているのか?
0683名無しさん@お腹いっぱい。2009/01/19(月) 06:29:35
nfs4でマウントしているんだけど,rpc.idmapdが動いているのに
クライアント側にはUID=GID=4294967294 で公開されてる.
俺の rpc.idmapd ちゃんがちゃんと動いているかどうか
もっと詳しく知りたいのだが…
06846832009/01/19(月) 06:31:51
サーバは Debian i386 クライアントは Debian sparc で
クライアント側のログはこんな感じ.

Jan 19 06:30:00 nas-01-CD-4C rpc.idmapd[8371]: libnfsidmap: using domain: localdomain
Jan 19 06:30:00 nas-01-CD-4C rpc.idmapd[8371]: libnfsidmap: using translation method: nsswitch
Jan 19 06:30:00 nas-01-CD-4C rpc.idmapd[8372]: Expiration time is 600 seconds.
Jan 19 06:30:00 nas-01-CD-4C rpc.idmapd[8372]: Opened /proc/net/rpc/nfs4.nametoid/channel
Jan 19 06:30:00 nas-01-CD-4C rpc.idmapd[8372]: Opened /proc/net/rpc/nfs4.idtoname/channel

プロセス自体は起動しているようなんだが.
0685名無しさん@お腹いっぱい。2009/01/19(月) 08:37:06
つ rpc.idmapd -d "exsample.com" -f -vvv
0686名無しさん@お腹いっぱい。2009/01/19(月) 22:32:30
一般的にNAS(NFS)にDBを乗せるとパフォーマンスが出ないって言いますが、
FibreChannelのストレージだと乗せても大丈夫と聞きました。
ロックの問題があるかもしれませんが、それ以外の部分でNFSがFibreChannelに劣っている部分ってどこですか?
0687名無しさん@お腹いっぱい。2009/01/19(月) 23:33:27
ローレベルなアクセスができないことだな。
VFSを経由したアクセスがすべて。
0688名無しさん@お腹いっぱい。2009/01/20(火) 13:08:46
>>686
>>687 の指摘通り、
DBエンジンがストレージの下の層へ直接アクセスできないのが弱点。

NASを使用した場合、ファイルシステムを介してのみ
表領域へアクセスできるわけで、
SANの時には介在しない層がオーバーヘッドになってくる。

まあ、Oracle 本社みたいに、NAS使ってる事例もあるから
一長一短じゃないかなと。

今はNASをSANに統合(SANにNASコントローラを接続)する方法も、
NASにSANを統合(NASがSANをエミュレーション)する方法も
あるから、何を重視するかによって選べば良いのでは。
0689名無しさん@お腹いっぱい。2009/01/20(火) 22:07:26
NASだとパフォーマンスでないというか、
NASだとパフォーマンスでない設定が簡単にできるって感じかな。
長い時間書込みが続くような非現実的なベンチだとかなり差がつくけど。
0690名無しさん@お腹いっぱい。2009/01/23(金) 15:49:29
ここで聞くべきかどうか分からんがちょっとこれを見てくれ

〔NFSサーバ側〕
[hostA]と[hostB]
OS:solaris 10 x86
3台のHDD(ATA)全体をZFSのストライプで構成
sharenfs=onで共有
どちらもオンボードコントローラでハードウェアRAID無し

相違点はHDD
[hostA]が20G×3
[hostB]が40G,60G,160G

〔クライアント側〕
OS:winXP(SFUを導入)
TCPでハードマウント、再試行間隔:0.8秒、読み取りバッファ:16KB、書き込みバッファ:32KB
ユーザー名マッピングはpasswd,groupを利用

〔問題点〕
winXPからhostAの共有をエクスプローラで表示する際
hostBに比べて表示速度がかなり遅い(3分以上かかる場合がある)

〔環境〕
どのマシンも100BASE-Tの全二重、同じサブネットに属する
1つのHUBに3台のみの環境でテストしたためこれ以外のトラフィックは無し

というわけなんだが誰か何か分かる人居ないかな?
他に情報が欲しければ出すけど
0691名無しさん@お腹いっぱい。2009/01/23(金) 17:35:13
なんという上から目線・・・
0692名無しさん@お腹いっぱい。2009/01/23(金) 18:08:52
お取り引き先業者にインシデント先払いにてお申し付けください
0693名無しさん@お腹いっぱい。2009/01/23(金) 22:09:59
>>690
欲しい情報はオマエの名前と会社名
0694名無しさん@お腹いっぱい。2009/01/23(金) 23:20:18
AとBそれぞれにアクセスした際のtcpdump結果を比較しる。
0695名無しさん@お腹いっぱい。2009/01/23(金) 23:24:16
tcpdump結果…?
問題ありませんが、
ハイ次。
0696名無しさん@お腹いっぱい。2009/01/23(金) 23:27:07
終了
ハイ次。
0697名無しさん@お腹いっぱい。2009/01/23(金) 23:32:40
すみませんが詳しい方のみ回答をお願いします
0698名無しさん@お腹いっぱい。2009/01/23(金) 23:43:27
ワロスw
遅いってんだから、どっかで遅延してる原因があるだろ?
タイムスタンプ付きでtcpdumpして、そのポイントを調べろよ。
まずは切り分けして行くことが大事だろうて。
0699名無しさん@お腹いっぱい。2009/01/23(金) 23:43:43
すみませんが、インシデント料をお支払いただける方のみ質問をお願いします
0700名無しさん@お腹いっぱい。2009/01/23(金) 23:45:42
終了だな。はい、次の方〜
0701名無しさん@お腹いっぱい。2009/01/23(金) 23:50:57
質問料は払えませんが、NFSって何でステートレスなんて無謀な事考えたんですか?
0702名無しさん@お腹いっぱい。2009/01/23(金) 23:54:04
終了
ハイ次。


0703名無しさん@お腹いっぱい。2009/01/24(土) 00:03:47
>>701
サーバを再起動しても、
ファイルサービスを続行できるから。
0704名無しさん@お腹いっぱい。2009/01/24(土) 00:27:00
裏2chに原因書いておいたよ
0705名無しさん@お腹いっぱい。2009/01/24(土) 00:28:55
ワッフルワッフル
0706名無しさん@お腹いっぱい。2009/01/24(土) 16:25:41
よくあるミスだが、
ホスト名の解決ができずに、応答待ちになっている。
WebDAVが有効になっていて、その応答待ちになっている。
0707名無しさん@お腹いっぱい。2009/02/22(日) 09:30:08
idmapd を使ったからといって、パーミッションまで
面倒みてくれるわけじゃないんだね・・・

ls -ln で見る限りちゃんとUIDのマッピングもやってくれてる
ように見えるけど、いざ touch x とかやると Permission denied になる。

http://linux-nfs.org/pipermail/nfsv4/2009-January/009809.html
0708名無しさん@お腹いっぱい。2009/02/22(日) 09:45:16
AuthorizationはRPCでやっているので、
NFSしか面倒を見ないidmapdで、
remoteのauthorizationをどうこうするわけにはいきません。
0709名無しさん@お腹いっぱい。2009/02/22(日) 14:04:00
ふうむ、そうなんですか…
ではidmapdって何のためにって感じもするんですが
uidとユーザ名合わせておかなきゃならないなら
いままで通りNISと合わせて運用するのがいいみたいですね。
0710名無しさん@お腹いっぱい。2009/02/22(日) 14:08:09
今はLDAPでしょ。
0711名無しさん@お腹いっぱい。2009/02/22(日) 15:00:20
Kerberosって帰ってくると思ってた.
0712名無しさん@お腹いっぱい。2009/02/22(日) 15:07:59
NFSとCIFSのパフォーマンスの比較について書かれたドキュメントってありません?
0713名無しさん@お腹いっぱい。2009/02/22(日) 17:54:38
>>711
Kerberosは、authorizationが足りません。
LDAPで言うところのNIS schemaがない。
つまりuid, gid, グループ所属、パスワード期間を管理できない。
>>712
プロトコル上の優劣はほとんどないです。
それより問題になるのはAAAの仕組み、
特にauthorizationの仕組みが違うことでしょう。
0714名無しさん@お腹いっぱい。2009/03/28(土) 11:27:12
solarisで言うforcedirectioってLinuxだとどうやって設定したらいいですか?
0715名無しさん@お腹いっぱい。2009/03/28(土) 11:28:16
Solarisで言うforcedirectioってLinuxだとどうやって設定したらいいんですか?
0716名無しさん@お腹いっぱい。2009/03/28(土) 11:38:23
キャッシュ切れないです。
i-nodeの方だけnoacで切れます。
0717名無しさん@お腹いっぱい。2009/04/01(水) 21:45:44
どこかにRFC1813の和訳はありませんか?
0718名無しさん@お腹いっぱい。2009/04/01(水) 22:01:10
ググった限りない。
自動翻訳版 ttp://pentan.info/doc/rfc/j1813.html
0719名無しさん@お腹いっぱい。2009/04/05(日) 10:19:38
Linux (RHEL) の NFS クライアントに forcedirectio 機能はないよ。
他のディストリビューションは知らん。
0720名無しさん@お腹いっぱい。2009/05/17(日) 16:24:51
>>714
noac,syncでforcedirectoioぽいかなとおもったけど差が分からん・・・
0721名無しさん@お腹いっぱい。2009/05/18(月) 22:43:42
NASの移行考えているけど、rsyncよりいい方法ない?

ベンダー製品はタケーし
0722名無しさん@お腹いっぱい。2009/05/21(木) 18:20:04
>>721
なんでrsync以外のものを探しているのか書かないと誰からもレス付かない予感
0723名無しさん@お腹いっぱい。2009/05/21(木) 22:45:30
>>721
一回こっきりのデータ移行ならrcp,scpとか
0724名無しさん@お腹いっぱい。2009/05/23(土) 08:06:33
NFSのクライアント側でのデータ本体(メタデータ部分ではなくて)
のキャッシュって Linux だと FS-Cache というのが標準的
なんでしょうか?
0725名無しさん@お腹いっぱい。2009/06/11(木) 10:50:00
LinuxでNFS4はいつまでexperimentalなんだよ〜
0726名無しさん@お腹いっぱい。2009/06/14(日) 12:31:27
NFS4ってステートレス、Kerberos認証があるとかは分かるんだが、
この他にNFS3と比較してパフォーマンス面などで有利な点はあったりする?

今自宅のLinuxマシンのファイルサーバをNFS3で運用しているんだが、
小規模な構成でもNFS4を使う意味があるなら移行しようと思っているので。
0727名無しさん@お腹いっぱい。2009/06/14(日) 12:50:05
>>726
こんなん?
http://www.linux.com/archive/feature/138453
http://sourceforge.jp/magazine/08/07/02/0114246/3
0728名無しさん@お腹いっぱい。2009/06/14(日) 13:21:18
>>727
トンクス。
やっぱり今の段階ではあまり移行する意味は無いんだな。
exportするディレクトリを一々bindマウントするのも面倒だから
あと数年はNFSv3で頑張ることにするわ。
0729名無しさん@お腹いっぱい。2009/06/14(日) 14:17:46
>>726
> NFS4ってステートレス、Kerberos認証があるとかは分かるんだが、

v3に追加されたのはステートフルの方です。
NFSは昔からステートレス。
Kerberos認証も昔からありました。(v2でも運用経験あり)

ステートフル以外にもcompound operationがあるので、
v4は速度的に有利ですが、
Linuxその他PC-UNIXなら速度以上に枯れたNFSスタックを使うことが優先では?
NASサーバ+Solarisクライアントならv4の方が速いですが。

結局Linuxにしても*BSDにしても、
パフォーマンス改善やるほど人手がない感じですね。
Linux使った商用NASサーバあたりは自前のNFSスタックです。
07307292009/06/14(日) 14:18:26
< v4に追加されたのはステートフルの方です。

の間違い
0731名無しさん@お腹いっぱい。2009/06/14(日) 14:40:39
>>729
ステートフルと書いたつもりだったのにtypoでした。

色々と参考になる情報ありがとうございます。
やっぱり今でもNFSはお膝元のSolarisが一番なんですね。
自宅で夫婦2人で2TB程度のLinuxファイルサーバにアクセスする程度なんで
そこまで枯れてなくても良いんですが、パフォーマンスが出ないようなので。
NFSのユーザが少なくなってきたからなのか、寂しい限りです。
0732名無しさん@お腹いっぱい。2009/06/14(日) 18:53:05
>>夫婦2人で
ステートフルよりハートフル
0733名無しさん@お腹いっぱい。2009/06/14(日) 19:24:18
俺は今年もハートレス
0734名無しさん@お腹いっぱい。2009/06/15(月) 14:36:49
>>731
でかいファイルのコピーに限れば、
sambaの方が速いケースもあります。
0735名無しさん@お腹いっぱい。2009/06/23(火) 05:17:58
ポートの制御がしやすいからNFSv4のほうが好きだな。
男らしく / ごと export してるぜ。
0736名無しさん@お腹いっぱい。2009/06/23(火) 08:06:16
男らしくっつーかNFSv4のダメなところをしかたなくそれで対処してるじゃん
0737名無しさん@お腹いっぱい。2009/06/23(火) 19:02:33
ファイル転送ならば無理にmountしなくても
ftpかsftp でいいんじゃないかと思うのですが...スレチごめん
0738名無しさん@お腹いっぱい。2009/06/24(水) 21:21:38
任意のタイミングで意図的にgetattrさせたいのですが良い仕組みはないでしょうか?
できればシェルスクリプトとかPerlで出来ると嬉しいのですが・・・・・
0739名無しさん@お腹いっぱい。2009/06/24(水) 23:07:43
つ stat(2)
0740名無しさん@お腹いっぱい。2009/07/10(金) 10:22:18
NFS サーバ側からのコマンドか何かで、どれだけの NFS クライアントが現在
マウント中かを見ることってできますか?サーバは Linux です。
0741名無しさん@お腹いっぱい。2009/07/10(金) 10:58:15
showmount
■ このスレッドは過去ログ倉庫に格納されています