【NFS】Network File System
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
2006/03/28(火) 11:42:410116NFSできない!
2007/08/12(日) 19:13:56次にクライアント側で
[/etc/rc.conf]
nfs_client_enable="YES"
とした後に
rpcinfo -p 192.168.1.1
program vers proto port service
100000 4 tcp 111 rpcbind
100000 3 tcp 111 rpcbind
100000 2 tcp 111 rpcbind
100000 4 udp 111 rpcbind
100000 3 udp 111 rpcbind
100000 2 udp 111 rpcbind
100000 4 local 111 rpcbind
100000 3 local 111 rpcbind
100000 2 local 111 rpcbind
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100005 1 udp 838 mountd
100005 3 udp 838 mountd
100005 1 tcp 741 mountd
100005 3 tcp 741 mountd
で確認をとり念の為クライアント側もリブートを行いました。
0117NFSできない!
2007/08/12(日) 19:14:30# mount_nfs nfs_server:/test /test
[udp] 59.106.93.70:/test: RPCPROG_MNT: RPC: Authentication error; why = Client credential too weak
となり、文献を調べてみてもクライアント側からrootで上記コマンドを実施していれば問題なさそうなのです。
サーバー側の/var/log/messagesには
Aug 12 19:10:46 ns5 mountd[754]: mount request from 192.168.1.1 from unprivileged port
となります。
ちなみに-Pオプションとかをつけてみても状況変わらずです。
2chのNFS識者の方、是非たすけてください。
0118NFSできない!
2007/08/12(日) 19:19:15めちゃくちゃ早いレスありがとうございます!
そんな事情があったんですか。うちのサーバー5.4なんで無理っていう事ですかね。。
0119名無しさん@お腹いっぱい。
2007/08/12(日) 19:21:27mountd_flags="-n"
してみろ。
0120NFSできない!
2007/08/12(日) 19:22:430121NFSできない!
2007/08/12(日) 19:28:03すげーーーーーーーーーーーーーーーーーーーー1
ありがとぅううう
0122名無しさん@お腹いっぱい。
2007/08/13(月) 12:33:45すげー
コード書き直してくれてるの?
超期待
0123名無しさん@お腹いっぱい。
2007/09/21(金) 12:08:45これ本当?
もう6.2Rくらいまで行ってるんだけど未だに改善されてないの?
0124名無しさん@お腹いっぱい。
2007/09/21(金) 12:37:430125名無しさん@お腹いっぱい。
2007/09/21(金) 14:44:280126名無しさん@お腹いっぱい。
2007/09/21(金) 14:55:040127名無しさん@お腹いっぱい。
2007/09/21(金) 15:08:15この流れを見るととても信用できないなあ
誰も検証してないんだろうか
0128名無しさん@お腹いっぱい。
2007/09/21(金) 15:20:12せっかく回答もらって「信用できない」かよ。
FreeBSD 6.2で NFS鯖運用してみろよ。ドツボにハマルから。
ひとごとだから別に止めないよ。
0129名無しさん@お腹いっぱい。
2007/09/21(金) 15:32:37Data ONTAPの7.x系
0130名無しさん@お腹いっぱい。
2007/09/21(金) 15:44:27多くの開発者が NFSと聞いただけで気分を害します。
分別ある大人なら、FreeBSDコミュニティにおいては
NFSの話はそれとなく避けるのがマナーと言うべきものでしょう。
0131名無しさん@お腹いっぱい。
2007/09/21(金) 15:53:440132名無しさん@お腹いっぱい。
2007/09/21(金) 16:59:31クラスタなど内部で利用されまくってたりする。
ここではNFSダメダメという書き込みがあるけど不具合の詳細
が全然ない。
0133名無しさん@お腹いっぱい。
2007/09/21(金) 17:01:29自分で検証すれ。
0134名無しさん@お腹いっぱい。
2007/09/21(金) 17:07:50FreeBSD同士のNFSだと問題が発覚しにくいんだよ。
異OS間のNFSでとたんに問題発覚する。
手元で試してみろよ。百聞は一見にしかず。
0135名無しさん@お腹いっぱい。
2007/09/21(金) 17:12:550136名無しさん@お腹いっぱい。
2007/09/21(金) 17:22:22>ここではNFSダメダメという書き込みがあるけど不具合の詳細
>が全然ない。
他スレに不具合の詳細あったよ。探して見れ。
0137名無しさん@お腹いっぱい。
2007/09/21(金) 17:31:23FUDに必死だな
0138名無しさん@お腹いっぱい。
2007/09/21(金) 21:10:14マウントされたファイルシステム内で(アプリケーションが)lockfしようとすると
ロックが壊れる。(再現率100%)
6.1以前では、ロックが壊れるのではなく、NFS自体が刺さっていた。
6.2ではNFSは刺さらず、ロックを壊してアプリケーションは続行動作するので、
それを見て「6.2以降ではNFSの問題が直った」と勘違いしている人がいるようだが、
実は問題は直っていない。
(もちろん、必要なlockd statd rpcbindは鯖/クライアント両側で起動してる)
0139名無しさん@お腹いっぱい。
2007/09/27(木) 22:42:48nohideなんてオプションがあるのはLinux(IRIX由来とmanに書いてあったか)だけ?
最近Solaris使い始めて使えるオプションが意外と少ないことに気付いた
0140名無しさん@お腹いっぱい。
2007/09/29(土) 00:40:41> マウントされたファイルシステム内で(アプリケーションが)lockfしようとすると
system call として advisory lock しか持っていない OS にそれを求められても...
つか, 今時, lockf とか flock なんて野蛮な排他制御を使ってんのかよ?
0141名無しさん@お腹いっぱい。
2007/10/18(木) 18:52:12FreeBSDに限らず、Solaris等含めて。
0142名無しさん@お腹いっぱい。
2007/10/18(木) 21:56:38SolarisではNFS上のlockfは全く平気。
すべてのファイルシステムがNFSであるディスクレスクライアントを実現するため、
lockfを含め、NFSもローカルディスクも全く同じように扱えるというのが
大前提としてあるわけだ。
0143名無しさん@お腹いっぱい。
2007/10/19(金) 10:59:032つのNFSクライアントから同時に mkdir(2)またはsymlink(2)した時、
両方のクライアントが成功(戻り値=0)になってしまう事はないのかな?
0144名無しさん@お腹いっぱい。
2007/10/21(日) 20:06:010145名無しさん@お腹いっぱい。
2007/10/22(月) 13:17:18FreeBSDではコケるのかも知れんが。
0146名無しさん@お腹いっぱい。
2007/10/22(月) 15:37:09RFC1813(RFC3530でもいいが)のCREATEの所を読んでみてくれ。
0147名無しさん@お腹いっぱい。
2007/10/22(月) 18:01:54明確にしないと議論できないな。
0148名無しさん@お腹いっぱい。
2007/10/23(火) 11:01:42シングルホストなら/varか/tmp以下でlockfすりゃいいじゃん。
マルチホストなら排他制御プロセスいっこ用意すれ。
0149名無しさん@お腹いっぱい。
2007/10/23(火) 11:35:04lockfが使えるならそれで良い。
>>141 が、NFSでlockfするのは運用が間違ってると言ってるから、
その反論として >>143 が、lockf以外のロック方法を言ってるんじゃないか?
で、シングルホストの話なんか最初から誰もしてない。
マルチホストだからこそ問題になる点の議論。
0150名無しさん@お腹いっぱい。
2007/10/25(木) 10:50:37NFSを使うことになる、なんて話もあるだろう。
そういうときにハマるかハマらないかの差は大きいと思うんだよなあ。
0151名無しさん@お腹いっぱい。
2007/10/29(月) 00:31:04(1)Solaris10
(2)FreeBSD 6.2(RELENG_6)
(3)NetBSD 3.1
(4)Linux(リリースが新しいもののうちどれか)
これらを混ぜたLANを作り順番にNFSサーバ役をやらせて、
いくつかのロック方法(lockf, flock, fcntl, あと他に何が?)を
使うCのコードを走らせて経過を観察する、でいいのかな?
誰かコード書いてくれないかな。
0152名無しさん@お腹いっぱい。
2007/10/29(月) 07:40:49flockはもともと単一ホストでしか使えないのでここでは関係なし。
fcntlの(F_SETLKWなど)は、lockfと同じ(というか、lockfがfcntlを呼び出してる)
ので、lockfのみテストすれば桶。
ほか、lockfを使わずに mkdirや symlink や link がロックとして機能するかどうかの
テストができればいいかな。
0153名無しさん@お腹いっぱい。
2007/10/29(月) 10:41:18それは実装によって違うだろ
0154名無しさん@お腹いっぱい。
2007/10/29(月) 13:52:29- 誰かがロック中にサーバが落ちた後のリカバリがまともかどうか
- ロックを獲得したままのクライアントが落ちた後のリカバリがまともかどうか
も必要じゃない?
実装が難しくなるのもそのあたりを考えなきゃいけないからだろうし。
0155名無しさん@お腹いっぱい。
2007/10/29(月) 15:02:09それはどういう振る舞いをもって「まとも」と見なせばいいんでしょうか。
前者はサーバの落ち具合一つとっても、単なる回線障害なのか、
サーバ側のファイルシステムに絡む問題なのかで話が変わるだろうし。
後者はロックのタイムアウト処理が適切?か、とかですか?
0156名無しさん@お腹いっぱい。
2007/10/29(月) 15:33:42> その反論として >>143 が、lockf以外のロック方法を言ってるんじゃないか?
symlinkだのmkdirだのは排他制御の方法としてlockf以上に「お話にならない」。
書類審査で落とされる。
0157名無しさん@お腹いっぱい。
2007/10/29(月) 15:42:43でも、(少なくとも)Solarisだと、symlinkもmkdirもしっかりロックとして
機能するんだよ。
0158名無しさん@お腹いっぱい。
2007/10/29(月) 15:56:52↓
NFSでlockfなんか使うのは運用が間違ってる(mkdirやsymlinkを使えば良い)(>>by 141)
↓
symlinkだのmkdirだのはお話にならない(by >>156)
↓
FreeBSDではNFSは使えない。
結局こういうことになるじゃんw
0159名無しさん@お腹いっぱい。
2007/10/29(月) 16:02:26メール関係のデーモンやツールをソースからコンパイルする時に
気づくことすら知らないわけで……
0160名無しさん@お腹いっぱい。
2007/10/29(月) 20:47:12ロックとして使えるもの、使われがちなもの、に対して、
各OSをサーバ、クライアントにしたときの動作相性表を書いてみろ、
ってことか? 横方向クライアントOS、縦方向サーバOSにして、
lockf, flock, fcntl, symlink, mkdir
で表が5枚出来る、と。
0161名無しさん@お腹いっぱい。
2007/10/30(火) 00:22:590162名無しさん@お腹いっぱい。
2007/10/30(火) 01:21:29http://pc11.2ch.net/test/read.cgi/unix/1012808941/643-652n
0163名無しさん@お腹いっぱい。
2007/10/30(火) 01:38:08snowhite.cis.uoguelph.ca/nfsv4/
0164名無しさん@お腹いっぱい。
2007/10/30(火) 12:39:49たまに下記のように .nfs〜 で始まるファイルが出来ている
事あるのだけど、これはどういうタイミングで出来るのでしょうか?
また、消してかまわないのでしょうか??
-rw-r--r-- 1 hogehoge admin 2253 10月 10 15:36 .nfs002d56600000001
0165名無しさん@お腹いっぱい。
2007/10/30(火) 13:09:57仕様上正しく動くことが保証されていないと、1億年と2000年前から動かしたときには
コケることになる。これは排他制御とはいえない。
NFS protocolのsymlinkは保証なんかしていない。
fcntlが使うlockd protocolは保証してるけど、こちらは伝統的にbuggyな実装が多かった。
>>158
なんでNFSで出来ない排他制御をやりたがるのか。問題に応じて解決法はいろいろある。
そもそも遅延とパケットロスのあるTCP/IP越しに排他制御やろうってのが性根が
腐ってるわけで、性能が問題にならないなら1台にまとめればいいし、
性能が重要ならcriticalな処理だけ切り出して1台にまとめ、残りを分散すればよい。
>>159
逆。そういったコードは、NFS越しのファイル操作で排他が保証されないことを
前提に、それでも衝突することがないように(排他できなくてもよいように)
工夫して書かれている。
0166名無しさん@お腹いっぱい。
2007/10/30(火) 13:16:18UNIXでは、プロセスが開いているファイルでも削除できる。
そのとき、ファイルはすでに削除され見えないのだが、
オープンしたプロセスだけはファイルにアクセスし続けられる。
同じことはNFS上でもできるのだが、NFSでは見えなくするわけにはいかないので、
.nfsXXXX にリネームしてお茶を濁している。
これはプロセスがファイルをクローズしたときに削除される。
クライアントが削除を怠ると(=クライアントのOSが落ちると)
.nfsはストレージ上に残されたまま放置される。
0167名無しさん@お腹いっぱい。
2007/10/30(火) 13:51:42だってNFSと銘打ってるのにそれが出来てる(ように見える)OSがあるんだもんよー。
FreeBSDで出来ないのは悔しくね? という話だと思っていた。
0169名無しさん@お腹いっぱい。
2007/10/31(水) 02:24:25本当に出来ているのかは定かではないw
0170名無しさん@お腹いっぱい。
2007/10/31(水) 12:47:49>逆。そういったコードは、NFS越しのファイル操作で排他が保証されないことを
>前提に、それでも衝突することがないように(排他できなくてもよいように)
>工夫して書かれている。
えー。
嘘書いちゃ、だめだよ。
0171170
2007/10/31(水) 12:53:50symlinkはロック機構じゃないんだから、symlinkの使い方を工夫しないで
実現できないのは当然じゃん。
0172名無しさん@お腹いっぱい。
2007/10/31(水) 15:00:03NFS環境下で安全にメッセージを配送するために、
ユニークなファイル名で衝突しないようにしている。
http://cr.yp.to/proto/maildir.html を見ると先頭に書いてあるのは、
> Two words: no locks.
0173名無しさん@お腹いっぱい。
2007/11/12(月) 14:19:39俺んち in 大阪にあるマシンから nfs でマウントするのは無謀?
セキュリティ面はおいといて( VPN 張るので)、
速度的にとか、ファイルの書き換えしてると不意に
ファイルがロストしちゃったりとか、そういうことってある?
0174名無しさん@お腹いっぱい。
2007/11/12(月) 14:53:170175名無しさん@お腹いっぱい。
2007/11/12(月) 15:07:04そんな無謀な・・・
そういう時って TCP ベースの nfs 使うの?
それとも VPN 張った上でいつもの UDP なやつ?
そもそも NFS で TCP って聞いたときには
うへぇ、と思ったものだが。
0176名無しさん@お腹いっぱい。
2007/11/12(月) 17:38:36何で?
0177名無しさん@お腹いっぱい。
2007/11/12(月) 19:10:29NFS側にリトライ処理が付いてるのに
TCPにする事でTCP側の再送制御が増えるからではないかと。
1000/100Mbps混在でイーサネットスイッチが
バッファ溢れしてデータをポロポロこぼすような環境だと
NFS over TCPはそれなりに有効。
というかウチの社では推奨してる。
エラーフリー環境で使うなら、
TCPよりUDPの方が速いベンチ結果にはなるね。
0178名無しさん@お腹いっぱい。
2007/11/13(火) 17:31:15> バッファ溢れしてデータをポロポロこぼすような環境だと
まてまてIEEE802.3xのフロー制御あるんだからいまどきそんな環境ありえんだろ。
そんなとこでNFS使ったら再送発生するたびにどれだけつっかえるんだよ。
先にまずネットワーク直せよ。
0179名無しさん@お腹いっぱい。
2007/11/13(火) 23:07:09>> バッファ溢れしてデータをポロポロこぼすような環境だと
>まてまてIEEE802.3xのフロー制御あるんだ>からいまどきそんな環境ありえんだろ。
普通そうだよな。
でも、そんなスイッチが半年前まで現行機種でな。
営業が安さにつられて構成勝手に変えて、
そのゴミスイッチ相手に格闘する羽目に orz
0180名無しさん@お腹いっぱい。
2007/11/14(水) 00:33:23足りなくなってOS内でパケット捨てることはあるかもしれない。
0181173
2007/11/15(木) 19:26:23PPTP で Linux - Linux で VPN 張ってたんですが,
PPP での MTU のネゴシエーションがうまくできてなかったみたいで
1500 になってたのが原因でした.
思い切って 1400 にしたら問題なくなりました.
うむむ,NTT西日本のフレッツとケイオプティコムの
eo光の間の VPN なんですが,結構ヘッダついてるんだなぁ.
最適値は 1408 のような気もするけど面倒なので 1400.
普通は自動的にネゴってくれますよねぇ?
0182名無しさん@お腹いっぱい。
2007/11/19(月) 13:13:210183名無しさん@お腹いっぱい。
2007/11/20(火) 11:13:29構成としては、クライアントとサーバを1つのスイッチに集約するのではなく、
24ポートを数台使ってツリー型の構成にし、ツリーの上流にサーバを置く
形を想定しています。ネストは2段くらいです。
そのものずばりのお勧めより、こういう用途のときにスイッチに必要な機能は
どういうものかを教えていただけると、品定めするときに参考になるのですが、
お知恵を拝借できますでしょうか?
0184名無しさん@お腹いっぱい。
2007/11/20(火) 11:39:490185名無しさん@お腹いっぱい。
2007/11/20(火) 11:56:43低レイテンシ
広帯域スイッチファブリック
0186名無しさん@お腹いっぱい。
2007/11/20(火) 12:54:06そこをもうちょっと安めでお願いできますか……
0187名無しさん@お腹いっぱい。
2007/11/20(火) 20:32:18あと、サーバに極端な負荷がかからないよう、アップリンクだけ1Gにして
クライアントは全て100Mにするのが吉。
0188名無しさん@お腹いっぱい。
2007/11/21(水) 08:56:03AMD Opteron なサーバと Intel の NIC の
相性が悪いとかないかな?
0190名無しさん@お腹いっぱい。
2007/11/22(木) 23:36:320191名無しさん@お腹いっぱい。
2007/11/23(金) 01:10:200192名無しさん@お腹いっぱい。
2007/11/23(金) 11:57:03ちょ、んなこといったら使うものないじゃん。
0193名無しさん@お腹いっぱい。
2007/11/23(金) 12:16:000194名無しさん@お腹いっぱい。
2007/11/23(金) 12:18:50Broadcomでいいじゃん
0195名無しさん@お腹いっぱい。
2007/11/23(金) 23:24:060196名無しさん@お腹いっぱい。
2007/11/24(土) 00:21:000197名無しさん@お腹いっぱい。
2007/11/24(土) 14:06:57int main() {
int fd; char buf[10];
int fd=open("poi", O_CREAT|O_TRUNC|O_WRONLY|O_EXCL, S_IRUSR|S_IRGRP|S_IROTH);
write(fd, buf, sizeof(buf)); /* creatを行ったfdは書き込みが可能 */
fclose(fd);
}
これをNFSv3マウントされたディレクトリ上で実行すると
CREAT, SETATTR, WRITEのprotocolが順に発行されます。
これをNFSサーバ側で問題なく扱おうとすると面倒があって
最後の読取専用へのWRITEを許可するかどうか、
WRITE要求のハンドルがCREATE時のものと一致するかで判断しないといけない。
このような判定の実装はNFSサーバにとって義務なのかな?
0198名無しさん@お腹いっぱい。
2007/11/24(土) 14:11:09当然義務。
読取専用かどうかは、creatまたはopenの際のみに有効な属性で、
一旦open(ハントル取得)してさえしまえば、
ファイル自体の読みとり専用かどうかに関係なく、
O_WRONLYとかでopenされたのなら書き込みができなければならない。
0199名無しさん@お腹いっぱい。
2007/11/24(土) 14:11:38プログラム中のfclose(fd)はclose(fd)の間違いです
0200名無しさん@お腹いっぱい。
2007/11/24(土) 14:17:29おー、こんなピンポイントで回答が来るなんて凄いです 流石unix板
ちなみにこれはCVSが実際にやってくれる操作です
0201名無しさん@お腹いっぱい。
2007/11/24(土) 14:19:25シェル上で同じことができる。
umask 777
echo hoge > file
とやれば、fileは読み込みも書き込みも不許可で作成されるが、
echo hogeの内容はちゃんとfileに書き込まれる。
fileがNFS上にあっても当然動作しなければならない。
0202名無しさん@お腹いっぱい。
2007/11/24(土) 14:21:350203名無しさん@お腹いっぱい。
2007/11/24(土) 17:34:17RFC1813, 4.4 Permission issues の第3段落に書いてありました
0204名無しさん@お腹いっぱい。
2007/11/25(日) 15:06:35NATルータ越しのNFSは_?
VPN 通すしかない?
0205名無しさん@お腹いっぱい。
2007/11/25(日) 17:00:41結局、NICのROMのアドレス1部変更で直った。
2.6カーネルでは解消された。
0206名無しさん@お腹いっぱい。
2007/12/06(木) 13:41:08実装によってはポート固定も無理ではないが、
ここで聞かないとわからないレベルならお薦めしない。
あと、WebNFSという選択肢もある。
0207名無しさん@お腹いっぱい。
2007/12/19(水) 02:30:55NFSサーバに10GBのファイルがあって、それをNFSクライアントで読み込むときに
10GB全部をクライアントでリード・ライトしなきゃいけないとかそういうことなんでしょうか?
0208名無しさん@お腹いっぱい。
2007/12/19(水) 09:08:58> NFSとiSCSIでよくファイル単位と、ブロック単位という比較を聞くんですが、
どこであるいは誰に聞いた?
0209名無しさん@お腹いっぱい。
2007/12/19(水) 09:21:46google: NFS iSCSI ファイル ブロック
http://itpro.nikkeibp.co.jp/article/COLUMN/20060407/234778/
>データ転送の単位は,NASにアクセスするときはファイル単位となる。つまり,NASへのデータ・アクセスでは,ファイル名や共有名などファイルを特定する呼び名で管理している。
>これに対し,SANの場合はブロック単位の処理になる(通常1つのファイルは1つまたは複数のブロックで構成される)。SANでは,リモートにあるディスク装置内のディスクが,あたかもローカル・ディスク(RAWデバイス*4)であるかのように振る舞う。
(略)
>IP-SANには,「FCIP(Fibre Channel over IP)」「iFCP(Internet Fibre Channel Protocol)」「iSCSI(Internet SCSI)」という規格がある。この中で最も期待されているのがiSCSIである。
ってことじゃねーの?
0210名無しさん@お腹いっぱい。
2007/12/19(水) 09:58:180211名無しさん@お腹いっぱい。
2007/12/19(水) 11:14:580212名無しさん@お腹いっぱい。
2007/12/20(木) 16:46:400213名無しさん@お腹いっぱい。
2007/12/20(木) 16:58:190214名無しさん@お腹いっぱい。
2007/12/27(木) 14:42:36ファイル操作システムコール(API)
VFS
個々のファイルシステム(ext3,xfs,reiserfs,fat16,iso9660)
ドライバ
ハードウェア
NFSってのはファイル操作システムコールに相当、ファイル単位でも扱えるし、
バイト単位で読んだりもできる。VFSから下は考えなくてよい。
iSCSIってのはドライバに相当、ファイル単位では考えないで、
ハードウェアとのやりとりの最小単位(ブロック単位)で考えなければならない。
システムとして利用するには、ファイルシステム、VFS、システムコールも備えていなければならない。
0215名無しさん@お腹いっぱい。
2007/12/27(木) 14:48:10以って?
■ このスレッドは過去ログ倉庫に格納されています