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

【NFS】Network File System

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2006/03/28(火) 11:42:41
nfsに関する話題を扱うスレ
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
0742名無しさん@お腹いっぱい。2009/07/10(金) 11:02:45
クライアントが落ちたりしてもそのままだし当てにならんよ
0743名無しさん@お腹いっぱい。2009/07/10(金) 11:05:16
>>741
「現在」マウント中かを見ること

showmountでは、「過去」のmountまですべて表示される。質問欲嫁。
0744名無しさん@お腹いっぱい。2009/07/14(火) 22:23:36
>>743
> すべて表示
「すべて」は表示されんよ。mountしてからちゃんとumountしてみ。
0745名無しさん@お腹いっぱい。2009/07/14(火) 22:29:04
>>744
umountしても shoumountには表示される。当然何度も試した。常識。

それがステートレスというもの。サーバー側にはmount中かどうかは原理的にわからない。
0746名無しさん@お腹いっぱい。2009/07/14(火) 22:35:24
俺も試してから言ってるんよ
0747名無しさん@お腹いっぱい。2009/07/14(火) 22:43:34
ちなみに、RFC 1094 の A. あたりに、
mount/umountに関連したプロトコルは定義されてるから、
それをちゃんと実装してあれば、不確実かもしれないけどマウント状態は把握可能。
0748名無しさん@お腹いっぱい。2009/07/14(火) 22:45:14
umount の時点で UMNT procedure を発行する OS を見たことがない。
もし存在するなら、その OS を教えて欲しい。
0749名無しさん@お腹いっぱい。2009/07/14(火) 23:11:52
あぁ、FreeBSDはてっきりnfsレベルでやってるのかと思ってた。
調べたらumountが直接RPCMNT_UMOUNTを送ってて、
mountdがmounttabから消してるわ。

ともかく、umountすればshowmountから消える実装はあるってことで。
0750名無しさん@お腹いっぱい。2009/07/15(水) 00:05:26
>>745
> umountしても shoumountには表示される。当然何度も試した。常識。
> それがステートレスというもの。サーバー側にはmount中かどうかは原理的にわからない。

どれだけ理解が出鱈目なんだよ、お前は。
0751名無しさん@お腹いっぱい。2009/07/15(水) 14:00:56
>>749
umountシステムコールのレベルじゃやってないよね。
0752名無しさん@お腹いっぱい。2009/07/15(水) 14:59:08
スレのレベルに恐れおののきながらNFSを初めて使った者が質問します。

サーバ側 Mac XServe、クライアント側 Linuxなのですが、
サーバ(XServe)を再起動などして接続が一旦切れてしまった後、
クライアントが自動的に再度正常にマウントしてくれず↓のような状態になります。

# df /XServe
ファイルシステム サイズ 使用 残り 使用% マウント位置
192.168.11.3:/Volumes/export
- - - - /XServe

もちろん正常な場合にはサイズ、使用容量などの数字が表示されるのですが。
この状態のとき
○ ls するとマウントポイントも見えなくなっている
○ 手動で umount → mount をやると正常に使えるようになる
○ コンソールや/var/log 以下にエラーメッセージは一切出ていない
という状況です。
マウントオプションは rw,hard,intr が指定されており、
もちろんfstabの指定でクライアント側の起動時にも正常にマウント & 読み書きできています。

サーバ復帰後、自動的に再度マウントさせるにはどうすればよいのでしょう?
0753名無しさん@お腹いっぱい。2009/07/15(水) 15:01:00
あ、dfの表示が崩れてしまった。

要するに全項目「-」の表示になっていて
マウントポイントは /XServe です。

失礼しました。
0754名無しさん@お腹いっぱい。2009/07/15(水) 22:48:43
>>752
とりあえずOSのバージョン位は書こうや
0755名無しさん@お腹いっぱい。2009/07/15(水) 22:51:34
>>754
バージョン書いてもキミには答えられない
0756名無しさん@お腹いっぱい。2009/07/15(水) 23:06:12
>>752
autofs使えば?
0757名無しさん@お腹いっぱい。2009/07/16(木) 01:49:32
>>752
少なくともサーバ/クライアントの片側くらいは、
まともな実装にした方がいいと思われ
0758名無しさん@お腹いっぱい。2009/09/12(土) 12:44:52
FreeBSDでは、touch -h コマンドなどで symlink自体のタイムスタンプを
任意の時刻に変更できますが、SolarisやLinuxでは出来ません。

ところが、SolarisまたはLinuxをNFSサーバーとして、
それをFreeBSD(NFS client)に mountして、
FreeBSD上で touch -h を実行すると、
Solaris(またはLinux)のファイルシステム上の symlinkのタイムスタンプを
変更できるのです。

これはどういうことでしょうか?
OSの仕様上、Solaris(またはLinux)ではsymlinkのタイムスタンプを
変更する手段がないのかと思ったらそうではなく、
NFSを通せば変更できるとは。

ちなみに、Solaris(またはLinux)には lutimes()がないので、
システムコールではsymlinkのタイムスタンプを変更できません。
システムコールになくても、NFSを通すと可能になるって、
一体どういう仕組みでしょうか?

あと、Solaris(またはLinux)上で直接symlinkのタイムスタンプを変更するような
NFSの命令(?)を発行するにはどうすればいいですか?
0759名無しさん@お腹いっぱい。2009/09/12(土) 15:05:37
>これはどういうことでしょうか?
そういうことです。
0760名無しさん@お腹いっぱい。2009/09/12(土) 15:10:44
すみませんが詳しい方のみ回答をお願いします
0761名無しさん@お腹いっぱい。2009/09/12(土) 15:11:24
futimes(2)はないの?
新しいLinuxならlutimes(3)はある。
0762名無しさん@お腹いっぱい。2009/09/12(土) 15:14:47
>>761
futimes()はあるけど、これはシンボリックリンク自体を変更できないよ。
(lutimes()がないOSでもNFS経由でシンボリックリンクの時刻変更ができてしまう)

たぶん、システムコールは使ってなくて、
NFSサーバー専用の何らかのコールが存在してると踏んでいるんだけど。
0763名無しさん@お腹いっぱい。2009/09/12(土) 15:16:44
>>761
futimes()はあるけど、シンボリックリンクそのもののファイルディスクリプタを
取得できないから、futimes()ではタイムスタンプ更新できない。

(symlinkをopen()すると、リンク先のファイルが開く)
0764名無しさん@お腹いっぱい。2009/09/12(土) 15:19:52
>>762
utimensat(2) つかってんじゃねーの。
AT_SYMLINK_NOFOLLOWを指定して。
*at(2)系の必要性についてはPOSIXの解説でも読んで。
0765名無しさん@お腹いっぱい。2009/09/12(土) 15:26:19
>>764
それも考えたけど、
(f)utimensat(2) を使っても symlinkのタイムスタンプは変更できないんだよ。

*at(2)系の必要性は(知ってるけど)今の問題には関係ないので置いといて。
0766名無しさん@お腹いっぱい。2009/09/12(土) 15:35:36
AT_SYMLINK_NOFOLLOW
If pathname specifies a symbolic link, then update the times-
tamps of the link, rather than the file to which it refers.
だけど?
0767名無しさん@お腹いっぱい。2009/09/12(土) 15:59:21
>>766
AT_SYMLINK_NOFOLLOW に対応していないOSでも NFS経由でタイムスタンプ更新できる。

AT_SYMLINK_NOFOLLOWは、fcntl.hの中で定義はされてるけど、
実際には機能しない。そのOSでも NFS経由でタイムスタンプ更新できる。
0768名無しさん@お腹いっぱい。2009/09/12(土) 16:09:59
>>767
File systemごとに動作が違うだけでしょ。
0769名無しさん@お腹いっぱい。2009/09/12(土) 16:13:04
>>768
そういう問題じゃないんだよ。ちょっと黙っててくれるかな。
0770名無しさん@お腹いっぱい。2009/09/12(土) 17:04:43
ユーザにAPI提供してなくてもカーネルがNFSリクエスト見てやればできる。
0771名無しさん@お腹いっぱい。2009/09/12(土) 17:07:53
>>770
ですよね。

で、そのNFSリクエストを具体的に知りたいんですが。
symlinkのタイムスタンプを変更するNFSリクエストを。
0772名無しさん@お腹いっぱい。2009/09/12(土) 17:16:34
symlinkに対してSETATTR発行するだけですが。
0773名無しさん@お腹いっぱい。2009/09/12(土) 17:26:59
>>772
ありがとうございます。
で、SETATTRを要求されたNFSサーバー側の rpc.nfsdは、
どうやってそれをカーネルに伝えていますか?
バックドアみたいなのがあるのでしょうか?
0774名無しさん@お腹いっぱい。2009/09/12(土) 18:51:08
rpc.nfsdはプロセスコンテキストを提供するだけのスタブ。
環境を整えたらnfssvc(2)を呼ぶだけ。nfssvcは永久にリターンしない。
nfssvcは以降、カーネル内で全ての処理を行う。カーネル内なのでシステムコール
より粒度が小さいAPIを使用できる。
0775名無しさん@お腹いっぱい。2009/09/12(土) 19:01:09
>>774
すると、NFSを使わずに、普通のユーザープログラムから
nfssvc(2)を呼び出せば、symlinkのタイムスタンプが変更できるのでしょうか。

symlinkのタイムスタンプ変更の際に、
nfssvc()に渡す具体的な引数ってわかりますか?

あと、nfssvcはLinuxの場合ですが、Solarisだとどうですか?
0776名無しさん@お腹いっぱい。2009/09/12(土) 19:15:55
>>775
いや、nfssvcはFreeBSDの場合だ。
0777名無しさん@お腹いっぱい。2009/09/12(土) 19:30:14
>>775
nfssvcはカーネル内でクライアントからのSETATTRを受け取りタイムスタンプをセットして
結果を返す。
普通のプログラムから(正しい手順で)呼び出してもrpc.nfsd相当のプロセスが産まれるだけ。

>>776
現在は知らないけど、linuxも何年か前はnfssvcだったよ。
0778名無しさん@お腹いっぱい。2009/09/12(土) 19:40:37
nfssvcを呼び出すのではなく、
ユーザープログラムから直接SETATTRを発行するのが良いと思ってきました。
つまり、NFSマウントせずに、直接NFSファイルハンドルを取得して、
直接SETATTRを発行するようなユーザープログラムを作って、
symlinkのタイムスタンプを更新するのです。
これが可能なら、lutimes()がないOSでも、NFS exportしているファイルに限っては
自力でsymlinkのタイムスタンプを更新出来るようになると思いますが、
この理解で合ってますか?

また、そのようなプログラムって、どこかにすでに存在してたりしませんか?
つまり、NFSマウントせずに、ftpクライアントまたはsmbclientみたいなコマンド方式で
SETATTRとかを直接、インタラクティブに実行できるのが理想です。
0779名無しさん@お腹いっぱい。2009/09/12(土) 19:46:52
>>778
前半、正しい。
後半、知らない。
0780名無しさん@お腹いっぱい。2009/09/13(日) 13:16:34
>>777
> 現在は知らないけど、linuxも何年か前はnfssvcだったよ。
少なくとも2.6以降は基本的に/proc/fs/nfsd/*を使う。
システムコールならnfsservctl(2)。
0781名無しさん@お腹いっぱい。2009/09/29(火) 05:03:57
外部ネットワークに公開しているWEBサーバA(多数)があります。
NFSサーバBをAとLAN接続し、
Aで /usr をBからリードオンリー、root_squash で
マウントし、仮に Aがクラックを受けても、
/usr 内を改ざんされないようにできないかなと考えているのですが、
こういった方法は可能でしょうか?
また、効果自体見込める方法でしょうか?

この方法に限らず、
/usr 内のデータとその他随時変更を行うようなデータを分断し、
運用管理面、セキュリティ面、
両方でメリットのあるような設定事例ってないでしょうか?

ご助言お願いします。
0782名無しさん@お腹いっぱい。2009/09/29(火) 06:39:19
>>781
/usrをroot_squashでmountすると、
/usr/binなどにある set-UID rootのプログラムが正常動作しなくなるから、
その方法は不可。

/usrをリードオンリーでmountするのはOK。よくある一般的な方法。
0783名無しさん@お腹いっぱい。2009/10/04(日) 10:43:30
Coda に乗り換えようと思うのだが。
0784名無しさん@お腹いっぱい。2009/10/12(月) 03:28:38
>>783
なぜ?
0785名無しさん@お腹いっぱい。2009/10/15(木) 13:41:18
あんなろくにメインテナンスもされてない実装に?
0786名無しさん@お腹いっぱい。2009/10/30(金) 09:57:13
NFS サーバー : NetBSD 5.0
NFS クライアント: Debian lenny

このような環境で、NFSを運用したいのですが、asyncにすることは
できますか?
クライアント側で、 mount -t nfs -o async ... と書いても、
書かないときとパフォーマンスに変化が見られません。
サーバー側に設定が必要かとも思いましたが、どのように書くのか
見つけられませんでした。

よろしくおねがいします。
0787名無しさん@お腹いっぱい。2009/10/30(金) 14:35:23
サーバで、async するように設定しないとだめぽ。
BSDの書式なら、/etc/exports に

/exports/dir -network 127.0.0.1 -async

みたいに書けばいいんじゃまいか?
0788名無しさん@お腹いっぱい。2009/10/30(金) 21:50:44
786です
exports(5) を読んでも書いてなく、787さんのように書いてみたらmountdに怒られました。
vfs.nfs.iothreads=4 を試してみたのですが、変わらなかったです。残念。
0789名無しさん@お腹いっぱい。2009/10/30(金) 23:41:12
/etc/exports を晒か、エラーメッセージくらい書けよ。
0790名無しさん@お腹いっぱい。2009/10/30(金) 23:48:47
そうじゃなくて、NFS鯖の /etc/fstabに asyncオプションを付けるべきじゃないのか?

/etc/exportsとか言ってる回答者は無視が吉。
0791名無しさん@お腹いっぱい。2009/10/31(土) 00:10:14
そもそも論なんだが、
asyncはやめておけ。
0792名無しさん@お腹いっぱい。2009/10/31(土) 08:28:43
そもそも論だけど NFS で async もへったくれもあるかい…

って思うのは俺だけ?
0793名無しさん@お腹いっぱい。2009/10/31(土) 08:29:08
>>791
>>786みると遊びっぽい環境だからどうでもいいんじゃね?
0794名無しさん@お腹いっぱい。2009/10/31(土) 09:26:56
786です。
遊び環境ですね。古いPCにNetBSDをいれて遊んでます。

fstabで、softdepをはずしてasyncにしてみたらどえりゃー速くなりました・・
どうもありがとうございます。

ファイルシステムのasyncとNFSのasyncって同じなんでしょうか?
ぜんぜん違う階層だと思ってました。
そか・・・NFSもファイルシステムか・・・
0795名無しさん@お腹いっぱい。2009/10/31(土) 09:40:08
>>794
違う階層だよ。違う階層だからこそ、1番ネックになってる下の階層でasyncしないと
効果が見えないと言う話。
■ このスレッドは過去ログ倉庫に格納されています