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

【NFS】Network File System

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2006/03/28(火) 11:42:41
nfsに関する話題を扱うスレ
0622名無しさん@お腹いっぱい。2008/11/28(金) 08:16:16
ベタな構成であればrsyncが無難かもね
最終同期にも時間がかかるようだったら
・クライアントを全部切り離し
・リードオンリーで再マウント ←この工程を追加
・最後のrsync実行
・IPアドレス等の設定変更
すれば読み込みの停止時間は最低限に抑えられるかも。

コピー先をDRBDかなんかでFSミラーリングしとけば次はもっと楽ちんに交換できるかもね
0623名無しさん@お腹いっぱい。2008/12/05(金) 20:44:42
ファイルの数やディレクトリの階層が深かったりするとrsyncが死ぬ。
事前にcp -a などでコピーしといて、移行時にcp -u で差分をコピーするよろし。
0624名無しさん@お腹いっぱい。2008/12/05(金) 20:46:19
いつの時代のrsync使ってんだよ。
0625名無しさん@お腹いっぱい。2008/12/05(金) 20:53:08
最新のrsync 2.5.4(2002年の3月13日)
http://www.infoscience.co.jp/technical/rsync/FAQ.html#5
これ治ってんの?
0626名無しさん@お腹いっぱい。2008/12/05(金) 21:42:03
cp -a も cp -u も GNU依存。
0627名無しさん@お腹いっぱい。2008/12/05(金) 22:19:17
rsyncもGNUだろがアホ。
0628名無しさん@お腹いっぱい。2008/12/05(金) 22:23:32
>>627
GNU版しかないものは問題ないんだよ。
元の質問者がLinuxとは言ってないのに、cp -a とか cp -u とか出てくるのは
いかがなものかと。
0629名無しさん@お腹いっぱい。2008/12/05(金) 22:35:37
BSD厨かマカーかSolaris野郎か、どうせ /usr/gnu 使ってるくせに。
tar で差分でもなんでも取ってコピーしてくださいな。
0630名無しさん@お腹いっぱい。2008/12/06(土) 00:25:08
>625
最新!?
0631名無しさん@お腹いっぱい。2008/12/06(土) 00:50:27
マクのcpに至ってはGNU依存なんて生易しいもんじゃない。
0632名無しさん@お腹いっぱい。2008/12/06(土) 17:30:40
じゃあ full dump + level 1 dump / restore とか zfs send /receive で。
dump 相当の管理コマンドのない FS なんて存在すら許されませんよねー。
0633名無しさん@お腹いっぱい。2008/12/10(水) 15:24:02
>>636
out of memoryの件については、私も気になっています。
http://samba.anu.edu.au/rsync/FAQ.html

を見ても直っていないようなんですが。
大量のファイルをrsyncするとmemory足りなくて落ちてしまう
仕様はそのままなのでしょうか?
0634名無しさん@お腹いっぱい。2008/12/10(水) 16:00:01
>>633
http://samba.anu.edu.au/ftp/rsync/rsync.html
の -r のとこにいろいろ書いてあるよ。
0635名無しさん@お腹いっぱい。2008/12/10(水) 16:44:47
-r, --recursive
This tells rsync to copy directories recursively. See also --dirs (-d).

Beginning with rsync 3.0.0, the recursive algorithm used is now an incremental
scan that uses much less memory than before and begins the transfer after
the scanning of the first few directories have been completed. This incremental
scan only affects our recursion algorithm, and does not change a non-recursive
transfer. It is also only possible when both ends of the transfer are at least version 3.0.0.
0636名無しさん@お腹いっぱい。2008/12/13(土) 13:04:38
>>635 -r使えばout of memoryにならないって事?
TeraByteクラスのファイルサーバで試した人いるかなぁ。
0637名無しさん@お腹いっぱい。2008/12/13(土) 15:17:06
3.0.0以降では-r使ったときのメモリ消費をアルゴリズムを見直すことで抑えたってことでしょ。
0638名無しさん@お腹いっぱい。2008/12/13(土) 17:48:07
再帰的にディレクトリとファイルを大量に作るスクリプト書いて、
rsync実行して試すしかないなw それが確実。
0639名無しさん@お腹いっぱい。2008/12/13(土) 17:59:18
そうか。良く考えてみるとサイズは関係ないんだもんね。
ファイル数が膨大になると、リストを処理するためのメモリが
いっぱいになってダウンしていたのだから。touchで大量の
ファイル作ればいいだけか。
それならプアーな検証環境でも数千万のファイル作れるな。
ZFS使えば、ファイル数も気にする必要ないし。
0640名無しさん@お腹いっぱい。2008/12/13(土) 18:13:14
シェルスクリプトで数千万ファイルって何時間コースだろう・・・・w
0641名無しさん@お腹いっぱい。2008/12/13(土) 20:19:26
放置しておけばいいだけだから。
ZFSなら、一定量ファイルが作られたところで
snapshot、cloneして増やして行く事もできるしな。
何とかなるだろ。
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よりいい方法ない?

ベンダー製品はタケーし
■ このスレッドは過去ログ倉庫に格納されています