JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Solaris のシステム管理 (ネットワークサービス)     Oracle Solaris 10 8/11 Information Library (日本語)
search filter icon
search icon

ドキュメントの情報

はじめに

パート I ネットワークサービス (トピック)

1.  ネットワークサービス (概要)

2.  Web キャッシュサーバーの管理

3.  システムの時刻関連サービス

パート II ネットワークファイルシステムへのアクセス (トピック)

4.  ネットワークファイルシステムの管理 (概要)

5.  ネットワークファイルシステムの管理 (手順)

6.  ネットワークファイルシステムへのアクセス (リファレンス)

NFS ファイル

/etc/default/autofs ファイル

/etc/default/nfs ファイルのキーワード

/etc/default/nfslogd ファイル

/etc/nfs/nfslog.conf ファイル

NFS デーモン

automountd デーモン

lockd デーモン

mountd デーモン

nfs4cbd デーモン

nfsd デーモン

nfslogd デーモン

nfsmapid デーモン

構成ファイルと nfsmapid

優先ルール

nfsmapid と DNS TXT レコード

NFS version 4 のドメインを確認する

NFS version 4 のデフォルトドメインを設定する

nfsmapid の追加情報

statd デーモン

NFS コマンド

automount コマンド

clear_locks コマンド

fsstat コマンド

mount コマンド

NFS ファイルシステム用の mount オプション

mount コマンドの使用

umount コマンド

mountall コマンド

umountall コマンド

share コマンド

非ファイルシステム用 share オプション

NFS 用 share オプション

share コマンドを使ってアクセスリストを設定する

unshare コマンド

shareall コマンド

unshareall コマンド

showmount コマンド

setmnt コマンド

NFS のトラブルシューティング用のコマンド

nfsstat コマンド

pstack コマンド

rpcinfo コマンド

snoop コマンド

truss コマンド

RDMA 経由の NFS

NFS サービスのしくみ

NFS におけるバージョンのネゴシエーション

NFS version 4 における機能

NFS version 4 におけるファイルシステムの共有解除と再共有

NFS version 4 におけるファイルシステムの名前空間

NFS version 4 における揮発性ファイルハンドル

NFS version 4 におけるクライアント回復

NFS version 4 における OPEN 共有サポート

NFS version 4 における委託

NFS version 4 での ACL と nfsmapid

UDP と TCP のネゴシエーション

ファイル転送サイズのネゴシエーション

ファイルシステムがどのようにマウントされるか

マウント時の -public オプションと NFS URL の意味

クライアント側フェイルオーバー機能

フェイルオーバー機能に関する用語

複製されたファイルシステムとは

フェイルオーバー機能と NFS ロック

NFS version 4 におけるクライアント側フェイルオーバー機能

大規模ファイル

NFS サーバーログ機能のしくみ

WebNFS サービスのしくみ

WebNFS セキュリティーネゴシエーション機能のしくみ

Web ブラウザの使用と比較した場合の WebNFS の制約

Secure NFS システム

Secure RPC

DH 認証

KERB 認証

NFS での Secure RPC の使用

autofs マップ

autofs マスターマップ

/home マウントポイント

/net マウントポイント

直接マップ

/- マウントポイント

間接マップ

autofs のしくみ

autofs のネットワークナビゲート (マップ)

autofs のナビゲーションプロセス開始法 (マスターマップ)

autofs マウントプロセス

単純な autofs マウント

階層型マウント

autofs アンマウント

autofs がクライアント用のもっとも近い読み取り専用ファイルを選択する方法 (複数ロケーション)

autofs と重み付け

マップエントリ内の変数

他のマップを参照するマップ

実行可能な autofs マップ

autofs のネットワークナビゲート法の変更 (マップの変更)

ネームサービスに対する autofs のデフォルトの動作

autofs リファレンス

autofs とメタキャラクタ

アンパサンド (&)

アスタリスク (*)

autofs と特殊文字

パート III SLP (トピック)

7.  SLP (概要)

8.  SLP の計画と有効化 (手順)

9.  SLP の管理 (手順)

10.  レガシーサービスの組み込み

11.  SLP (リファレンス)

パート IV メールサービス (トピック)

12.  メールサービス (概要)

13.  メールサービス (手順)

14.  メールサービス (リファレンス)

パート V シリアルネットワーキング (トピック)

15.  Solaris PPP 4.0 (概要)

16.  PPP リンクの計画 (手順)

17.  ダイアルアップ PPP リンクの設定 (手順)

18.  専用回線 PPP リンクの設定 (手順)

19.  PPP 認証の設定 (手順)

20.  PPPoE トンネルの設定 (手順)

21.  一般的な PPP 問題の解決 (手順)

22.  Solaris PPP 4.0 (リファレンス)

23.  非同期 Solaris PPP から Solaris PPP 4.0 への移行 (手順)

24.  UUCP (概要)

25.  UUCP の管理 (手順)

26.  UUCP (リファレンス)

パート VI リモートシステムの利用 (トピック)

27.  リモートシステムの利用 (概要)

28.  FTP サーバーの管理 (手順)

29.  リモートシステムへのアクセス (手順)

パート VII ネットワークサービスの監視 (トピック)

30.  ネットワークパフォーマンスの監視 (手順)

用語集

索引

NFS のトラブルシューティング用のコマンド

NFS のトラブルシューティングには次のコマンドを使用します。

nfsstat コマンド

このコマンドを使用すると、NFS と RPC 接続について統計情報を収集できます。このコマンドの構文は次のとおりです。

nfsstat [ -cmnrsz ]

-c

クライアント側の情報を表示します

-m

NFS マウントされた各ファイルシステムの統計を表示します

-n

クライアント側とサーバー側の両方で、NFS の情報が表示されるように指定します

-r

RPC 統計を表示します

-s

サーバー側の情報を表示します

-z

統計をゼロに設定するように指定します

コマンド行にオプションを指定しないと、-cnrs が使用されます。

新しいソフトウェアやハードウェアを処理環境に追加した場合、サーバー側の統計を収集することが、デバッグにたいへん役立ちます。このコマンドを週に最低 1 度は実行し、履歴を作成するようにしてください。統計を保存しておくと、以前のパフォーマンスの有効な記録となります。

次の例を参照してください。

# nfsstat -s

Server rpc:
Connection oriented:
calls      badcalls   nullrecv   badlen     xdrcall    dupchecks  dupreqs    
719949194  0          0          0          0          58478624   33         
Connectionless:
calls      badcalls   nullrecv   badlen     xdrcall    dupchecks  dupreqs    
73753609   0          0          0          0          987278     7254       

Server nfs:
calls                badcalls             
787783794            3516                 
Version 2: (746607 calls)
null       getattr    setattr    root       lookup     readlink   read       
883 0%     60 0%      45 0%      0 0%       177446 23% 1489 0%    537366 71% 
wrcache    write      create     remove     rename     link       symlink    
0 0%       1105 0%    47 0%      59 0%      28 0%      10 0%      9 0%       
mkdir      rmdir      readdir    statfs     
26 0%      0 0%       27926 3%   108 0%     
Version 3: (728863853 calls)
null          getattr       setattr       lookup        access        
1365467 0%    496667075 68% 8864191 1%    66510206 9%   19131659 2%   
readlink      read          write         create        mkdir         
414705 0%     80123469 10%  18740690 2%   4135195 0%    327059 0%     
symlink       mknod         remove        rmdir         rename        
101415 0%     9605 0%       6533288 0%    111810 0%     366267 0%     
link          readdir       readdirplus   fsstat        fsinfo        
2572965 0%    519346 0%     2726631 0%    13320640 1%   60161 0%      
pathconf      commit        
13181 0%      6248828 0%    
Version 4: (54871870 calls)
null                compound            
266963 0%           54604907 99%        
Version 4: (167573814 operations)
reserved            access              close               commit              
0 0%                2663957 1%          2692328 1%          1166001 0%          
create              delegpurge          delegreturn         getattr             
167423 0%           0 0%                1802019 1%          26405254 15%        
getfh               link                lock                lockt               
11534581 6%         113212 0%           207723 0%           265 0%              
locku               lookup              lookupp             nverify             
230430 0%           11059722 6%         423514 0%           21386866 12%        
open                openattr            open_confirm        open_downgrade      
2835459 1%          4138 0%             18959 0%            3106 0%             
putfh               putpubfh            putrootfh           read                
52606920 31%        0 0%                35776 0%            4325432 2%          
readdir             readlink            remove              rename              
606651 0%           38043 0%            560797 0%           248990 0%           
renew               restorefh           savefh              secinfo             
2330092 1%          8711358 5%          11639329 6%         19384 0%            
setattr             setclientid         setclientid_confirm verify              
453126 0%           16349 0%            16356 0%            2484 0%             
write               release_lockowner   illegal             
3247770 1%          0 0%                0 0%                

Server nfs_acl:
Version 2: (694979 calls)
null        getacl      setacl      getattr     access      getxattrdir 
0 0%        42358 6%    0 0%        584553 84%  68068 9%    0 0%        
Version 3: (2465011 calls)
null        getacl      setacl      getxattrdir 
0 0%        1293312 52% 1131 0%     1170568 47% 

このリストは、NFS サーバーの統計の例です。最初の 5 行は RPC に関するもので、残りの部分は NFS のアクティビティーのレポートです。どちらの統計でも、badcalls または calls の平均値、および各週の calls の数がわかるので、問題を特定するのに役立ちます。badcalls 値は、クライアントからの不良メッセージ数を示しています。この値は、ネットワークのハードウェアに問題が発生したことを示す場合があります。

いくつかの接続では、ディスクに対する書き込みアクティビティーが発生します。この数値の急激な上昇は障害の可能性を示すものなので、調査が必要です。NFS version 2 の統計で注意が必要なのは、setattrwritecreateremoverenamelinksymlinkmkdir、および rmdir です。NFS version 3 と version 4 では、commit の値に特に注意します。ある NFS サーバーの commit レベルが、それと同等のサーバーと比較して高い場合は、NFS クライアントに十分なメモリーがあるかどうかを確認してください。サーバーの commit オペレーションの数は、クライアントにリソースがない場合に上昇します。

pstack コマンド

このコマンドを使用すると、各プロセスのスタックトレースが表示されます。pstack コマンドは、必ずプロセスの所有者、または root として実行してください。pstack を使用して、プロセスがハングアップした場所を判断します。使用できるオプションは、確認するプロセスの PID だけです。proc(1) のマニュアルページを参照してください。

次の例では、実行中の nfsd プロセスを確認しています。

# /usr/bin/pgrep nfsd
243
# /usr/bin/pstack 243
243:    /usr/lib/nfs/nfsd -a 16
 ef675c04 poll     (24d50, 2, ffffffff)
 000115dc ???????? (24000, 132c4, 276d8, 1329c, 276d8, 0)
 00011390 main     (3, efffff14, 0, 0, ffffffff, 400) + 3c8
 00010fb0 _start   (0, 0, 0, 0, 0, 0) + 5c

この例では、プロセスが新規の接続要求を持っていることが示されています。これは正常な反応です。要求が行われた後でもプロセスがポーリングしていることがスタックからわかった場合、そのプロセスはハングアップしている可能性があります。「NFS サービスを再起動する方法」の指示に従って問題を解決してください。ハングアップしたプログラムによって問題が発生しているかどうかを確実に判断するには、「NFS のトラブルシューティングの手順」を参照してください。

rpcinfo コマンド

このコマンドは、システムで動作している RPC サービスに関する情報を生成します。RPC サービスの変更にも使用できます。このコマンドには、たくさんのオプションがあります。rpcinfo(1M) のマニュアルページを参照してください。次は、このコマンドで使用できるオプションの構文です。

rpcinfo [ -m | -s ] [ hostname ]

rpcinfo -T transport hostname [ progname ]

rpcinfo [ -t | -u ] [ hostname ] [ progname ]

-m

rpcbind 処理の統計テーブルを表示します

-s

登録されているすべての RPC プログラムを簡易リストで表示します

-T

特定のトランスポートまたはプロトコルを使用するサービスの情報を表示します

-t

TCP を使用する RPC プログラムを検索します

-u

UDP を使用する RPC プログラムを検索します

transport

サービスに使用するトランスポートまたはプロトコルを選択します

hostname

必要な情報の取得元のサーバーのホスト名を選択します

progname

情報の取得対象の RPC プログラムを選択します

hostname を指定しないと、ローカルホスト名が使用されます。progname の代わりに RPC プログラム番号が使用できますが、ユーザーが覚えやすいのは番号よりも名前です。NFS version 3 が実行されていないシステムでは、-s オプションの代わりに -p オプションを使用できます。

このコマンドを実行すると、次の項目を含むデータを生成することができます。

次の例では、サーバーで実行されている RPC サービスに関する情報を収集しています。生成されたテキストには sort コマンドのフィルタをかけ、より読みやすくしています。この例では、RPC サービスの数行を省略しています。

% rpcinfo -s bee |sort -n
   program version(s) netid(s)                         service     owner
    100000  2,3,4     udp6,tcp6,udp,tcp,ticlts,ticotsord,ticots rpcbind     superuser
    100001  4,3,2     ticlts,udp,udp6                  rstatd      superuser
    100002  3,2       ticots,ticotsord,tcp,tcp6,ticlts,udp,udp6 rusersd     superuser
    100003  3,2       tcp,udp,tcp6,udp6                nfs         superuser
    100005  3,2,1     ticots,ticotsord,tcp,tcp6,ticlts,udp,udp6 mountd      superuser
    100007  1,2,3     ticots,ticotsord,ticlts,tcp,udp,tcp6,udp6 ypbind      superuser
    100008  1         ticlts,udp,udp6                  walld       superuser
    100011  1         ticlts,udp,udp6                  rquotad     superuser
    100012  1         ticlts,udp,udp6                  sprayd      superuser
    100021  4,3,2,1   tcp,udp,tcp6,udp6                nlockmgr    superuser
    100024  1         ticots,ticotsord,ticlts,tcp,udp,tcp6,udp6 status      superuser
    100029  3,2,1     ticots,ticotsord,ticlts          keyserv     superuser
    100068  5         tcp,udp                          cmsd        superuser
    100083  1         tcp,tcp6                         ttdbserverd superuser
    100099  3         ticotsord                        autofs      superuser
    100133  1         ticots,ticotsord,ticlts,tcp,udp,tcp6,udp6 -           superuser
    100134  1         ticotsord                        tokenring   superuser
    100155  1         ticots,ticotsord,tcp,tcp6        smserverd   superuser
    100221  1         tcp,tcp6                         -           superuser
    100227  3,2       tcp,udp,tcp6,udp6                nfs_acl     superuser
    100229  1         tcp,tcp6                         metad       superuser
    100230  1         tcp,tcp6                         metamhd     superuser
    100231  1         ticots,ticotsord,ticlts          -           superuser
    100234  1         ticotsord                        gssd        superuser
    100235  1         tcp,tcp6                         -           superuser
    100242  1         tcp,tcp6                         metamedd    superuser
    100249  1         ticots,ticotsord,ticlts,tcp,udp,tcp6,udp6 -           superuser
    300326  4         tcp,tcp6                         -           superuser
    300598  1         ticots,ticotsord,ticlts,tcp,udp,tcp6,udp6 -           superuser
    390113  1         tcp                              -           unknown
 805306368  1         ticots,ticotsord,ticlts,tcp,udp,tcp6,udp6 -           superuser
1289637086  1,5       tcp                              -           26069

次の例では、サーバーの特定トランスポートを選択して、RPC サービスの情報を収集する方法について説明しています。最初の例では、TCP で実行されている mountd サービスをチェックしています。2 番目の例では、UDP で実行されている NFS サービスをチェックしています。

% rpcinfo -t bee mountd
program 100005 version 1 ready and waiting
program 100005 version 2 ready and waiting
program 100005 version 3 ready and waiting
% rpcinfo -u bee nfs
program 100003 version 2 ready and waiting
program 100003 version 3 ready and waiting

snoop コマンド

このコマンドは、ネットワーク上のパケットの監視によく使用されます。snoop コマンドは、root で実行する必要があります。このコマンドは、クライアントとサーバーの両方で、ネットワークハードウェアが機能しているかどうかを確認する方法としてよく使用されます。使用できるオプションは多数あります。snoop(1m) のマニュアルページを参照してください。次で、このコマンドの概要を説明します。

snoop [ -d device ] [ -o filename ] [ host hostname ]

-d device

ローカルネットワークのインタフェースを指定します

-o filename

受信したすべてのパケットを指定したファイルに保存します

hostname

特定のホストが送受信したパケットを表示します

-d device オプションは、複数のネットワークインタフェースがあるサーバーで特に有効です。ホストの設定以外にも、使用できる式が多数あります。コマンド正規表現を grep で組み合わせることでも、十分に使用できるデータを生成できます。

トラブルシューティングをする場合は、パケットの発信元と送信先のホストが正しいことを確認してください。また、エラーメッセージも調べてください。パケットをファイルに保存すると、データを簡単に参照することができます。

truss コマンド

このコマンドを使用すると、プロセスがハングアップしたかどうかを確認できます。truss コマンドは、必ずプロセスの所有者、または root として実行してください。このコマンドに指定できるオプションは多数あります。truss(1) のマニュアルページを参照してください。次で、このコマンドの構文を説明します。

truss [ -t syscall ] -p pid

-t syscall

追跡するシステムコールを選択します

-p pid

追跡するプロセスの PID を指定します

syscall には、追跡するシステムコールをコンマで区切って指定することもできます。また、syscall の指定を ! で始めると、そのシステムコールは追跡されなくなります。

次の例は、プロセスが新しいクライアントからの接続要求を待っていることを示しています。

# /usr/bin/truss -p 243
poll(0x00024D50, 2, -1)         (sleeping...)

これは正常な反応です。新規接続の要求が行われた後でも反応が変わらない場合、そのプロセスはハングアップしている可能性があります。「NFS サービスを再起動する方法」の指示に従ってハングアップの問題を解決してください。ハングアップしたプログラムによって問題が発生しているかどうかを確実に判断するには、「NFS のトラブルシューティングの手順」を参照してください。