[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[plamo:20791] Re: device is busy, after disconnection fromNFSclient



鴨澤です。

> $ fuser -v /mnt/cdrom
>                      USER        PID ACCESS COMMAND
> /mnt/cdrom/          root     kernel mount  /mnt/cdrom

特にファイルをオープンしてるプロセスがあるわけではないんですね。

・・・まで書いて途方にくれたまま寝て起きてみたら、松本さんのグーな投稿が。

罪ほろぼしに、exportfs(8) の訳を・・・jman から拾ってきて転載(ばき
http://www.linux.or.jp/JM/html/nfs-utils/man8/exportfs.8.html
です。
-----------------------------------------------
exportfs
Section: Maintenance Commands (8)
Updated: 7 Sep 1999
Index JM Home Page roff page  


名前
exportfs - NFS エクスポートするファイルシステムのリストを管理する  


書式
/usr/sbin/exportfs [-avi] [-o options,..] [client:/path ..]
/usr/sbin/exportfs -r [-v]
/usr/sbin/exportfs [-av] -u [client:/path ..]
/usr/sbin/exportfs [-v]
 

説明
exportfs コマンドは、現在 NFS でエクスポートしているファイルシステムのテーブルを管理するために使うコマンドである。このリストは /var/lib/nfs/xtab という名前のファイルに保存される。このファイルはリモートホストからファイルツリーをマウントするアクセス要求があった時に mountd から参照される。また、このリストのうちアクティブになっているものがカーネルのエクスポートテーブルに保存される。 通常この xtab ファイルは、 exportfs -a を実行することにより、 /etc/exports に書かれた全てのファイルシステムのリストで初期化される。 しかし管理者は、 /etc/exports を修正することなく、 exportfs を使って選択的に個々のファイルシステムを追加・削除できる。 (サブネットやネットグループなどではなく) 特定のホストを指定したエクスポート要求は、カーネルのエクスポートテーブルに直接書き込まれるとともに、 /var/lib/nfs/xtab にも書き込まれる。さらに、ホストを特定しないエクスポート要求が /var/lib/nfs/rmtab にリストされているマウントポ
 イントにマッチすると、このファイルに書かれているホストに向けたエクスポートエントリが、カーネルのエクスポートテーブルに入れられる。  


オプション

-a
    全てのディレクトリをエクスポート・アンエクスポートする。 
-o options,...
    exports(5) と同じ形式でエクスポートオプションのリストを指定する。 
-i
    /etc/exports ファイルを無視する。デフォルトのオプションとコマンドラインで指定されたオプションのみが使われる。 
-r
    全てのディレクトリを再エクスポートする。 /var/lib/nfs/xtab を /etc/exports と同期させる。 /etc/exports から削除されたエントリを /var/lib/nfs/xtab からも削除し、既に無効になったエントリをカーネルのエクスポートテーブルから削除する。 
-u
    1 つ以上のディレクトリをアンエクスポートする。 
-v
    詳細に表示する。エクスポートまたはアンエクスポートするときに状況を表示する。現在のエクスポートリストを表示するとともに、エクスポートオプションも表示する。 


議論
 
ディレクトリのエクスポート
1 番目の書式は、新しいエントリをエクスポートテーブルに追加するためのコマンドの呼び出し方である。 exportfs -a を使うと、 exports(5) にある全てのディレクトリが xtab に追加され、結果として得られるリストがカーネルに入れられる。 host:/path 引き数は、エクスポートするディレクトリとホストを指定する。 exports(5) に記述されている全てのフォーマットがサポートされている。全てのホストに対してディレクトリをエクスポートするには、単純に :/path と指定すればよい。 特定のホスト/ディレクトリのペアに対するエクスポートオプションは、いろいろな方法で指定できる。デフォルトのオプションがいくつか存在するが、これらは (-i オプションが指定されない限り) /etc/exports のエントリで変更できる。さらに、管理者はこれらの方法で指定されたオプションを -o 引き数を使って変更できる。 -o オプションの後には、 exports(5) で指定するのと同じ形式で、コンマで区切ったオプションのリストを置く。このようにして、 exportfs は既にエクスポートされて
 いるディレクトリのオプションを変更することもできる。 nfsd(8) が使うカーネルのエクスポートテーブルを修正すると、コマンドラインが解析された後すぐに反映され、 xtab ファイルが更新される。 デフォルトのエクスポートオプションは sync,ro,root_squash,no_delay である。  

ディレクトリのアンエクスポート
3 番目の書式は、現在エクスポートされているディレクトリをアンエクスポートする方法である。 exportfs -ua を使うと、 xtab にリストされているエントリがカーネルのエクスポートテーブルから削除され、このファイルはクリアされる。これにより全ての NFS の動作を効率的にシャットダウンすることができる。 個々のエクスポートエントリを削除するためには、 host:/path ペアを指定すればよい。 (このペアがもし存在すれば) 指定されたエントリが xtab から削除され、対応するカーネルエントリも削除される。  

エクスポートテーブルのダンプ
exportfs を引き数なしで起動すると、現在エクスポートされているファイルシステムのリストを表示する。 -v オプションを指定すると、各エクスポートエントリに付属しているフラグのリストも表示する。  


例
次のコマンドは、 /etc/exports にリストされた全てのディレクトリを /var/lib/nfs/xtab に追加し、結果として得られるエクスポートエントリをカーネルにプッシュする:

# exportfs -a

/usr/tmp ディレクトリをホスト djando にエクスポートし、非同期書き込みを許可する場合は、次のようにすればよい。

# exportfs -o async django:/usr/tmp


依存性
IP ネットワークや DNS ドメイン、NIS ドメインへエクスポートしたときは、これらのグループに属するクライアントは即座には NFS にアクセスできない。どちらかというと、このようなエクスポートは mountd(8) がこれらのクライアントからのマウント要求を許可するかどうかに対するヒントなのである。既存のマウントポイントはリブートしても rmtab に保存されるので、これは通常は大した問題にはならない。 ネットワークエントリやドメインエントリをアンエクスポートする場合、このグループのメンバに現在エクスポートされているエントリについて、エクスポートが有効になっているかがチェックされ、すでに有効でない場合は削除される。  


関連項目
exports(5), mountd(8)  


著者
Olaf Kirch, <okir@monad.swb.de>
Neil Brown, <neilb@cse.unsw.edu.au>
-----------------------------------------------

なるほど。rpc.mountd あたりを殺しても、カーネルのエクスポートテーブルが
更新されてなかったんでしょうね。

/var/lib/nfs/xtab を修正してから kill -HUP したら手動でも行けるのかなあ・・・

鴨澤眞夫

Follow-Ups
[plamo:20795] Re: device is busy, after disconnectionfromNFSclient, HIGUCHI Chihiro
[plamo:20796] Re: device is busy, after disconnectionfromNFSclient, Shun-ichi TAHARA (田原 俊一)
[plamo:20802] Re: device is busy, after disconnection fromNFSclient, KAMOSAWA Masao
References
[plamo:20787] Re: device is busy, after disconnection fromNFSclient, KIDO Hideyuki

[検索ページ] [メール一覧]
Plamo ML 公開システム