# 管理解説書

## afsd

目的

キャッシュ・マネージャーの初期化および関連デーモンを開始します。

構文

    afsd [-blocks <1024 byte blocks in cache>]
         [-files <files in cache>]
         [-rootvol <name of AFS root volume>]
         [-stat <number of stat entries>]
         [-memcache]  [-cachedir <cache directory>]
         [-mountdir <mount location>]
         [-daemons <number of daemons to use>]
         [-nosettime]  [-verbose]  [-rmtsys]  [-debug]
         [-chunksize <log(2) of chunk size>]
         [-dcache <number of dcache entries>]
         [-volumes <number of volume entries>]
         [-biods <number of bkg I/O daemons (aix vm)>]
         [-prealloc <number of 'small' preallocated blocks>]
         [-confdir <configuration directory>]
         [-logfile <Place to keep the CM log>]
         [-waitclose]  [-shutdown]  [-enable_peer_stats]
         [-enable_process_stats]  [-help]

このコマンドは、AFS コマンド・セットの構文規則に準拠していません。コマンド名およびすべてのオプション名は省略せずにすべて指定してください。

構文

afsd コマンドは、AFS に関連する構成情報をカーネル・メモリーに転送し、いくつかのデーモンを開始して、AFS クライアント上のキャッシュ・マネージャーを初期化します。具体的には、afsd コマンドは、次の操作を行います。

- マシンのセル・メンバーシップを定義するフィールドをカーネル・メモリーに設定します。キャッシュ・マネージャーの内部操作およびシステム・コールは、このフィールドを参照して、実行中のセルを判別します。 (AFS コマンド・インタープリターは、 /usr/vice/etc/ThisCell ファイルを参照します。) この情報は、 /usr/vice/etc/ThisCell ファイルからカーネルに転送され、 afsd プログラムを再実行するまで変更できません。
- ローカル・セルおよび外部セル (オプション) にあるデータベース・サーバー・マシンの名前および IP アドレスをカーネル・メモリーに配置します。セルのデータベース・サーバー・マシンがこのリストに入ると、キャッシュ・マネージャーは、このリストを参照して、セル内のファイルにアクセスすることができます。このリストからセルが削除されたり、そのデータベース・サーバー・マシンについて誤った情報があると、キャッシュ・マネージャーは、そのセルのファイルにアクセスできなくなります。

  データベース・サーバー・マシンのリストは、 /usr/vice/etc/CellServDB ファイルからカーネルに転送されます。初期化後 fs newcell コマンドを使用して、リブートせずにカーネルに常駐するリストを変更します。

- /usr/vice/etc/cacheinfo ファイル (デフォルト) の最初のフィールド、または n コマンドの -mountdir 引き数に従って、マシンのローカル・ディスクのディレクトリーに AFS ファイル・スペースのルートをマウントしてください。通常この値は、/afs です。
- AFS ファイル・ツリーのルートに取り付けるボリュームを決定します。デフォルトは、ボリューム root.afs です。これを上書きする場合には、-rootvol 引き数を使用してください。ボリューム名の基本 (読み取り / 書き込み) 形式は適正値ですが、キャッシュ・マネージャーには、使用可能であれば、ボリュームの読み取り専用バージョン (規則では、 root.afs.readonly) にアクセスするためのバイアスがあります。
- -memcache 引き数が指定されている場合は、ディスク (デフォルトです) または、マシン・メモリーにキャッシュを構成します。後者の場合、afsd プログラムは、キャッシュ用にマシン・メモリーにスペースを割り振り、キャッシュ・マネージャーは、マシンにディスクが取り付けられていても、ディスクをキャッシュに使用しません。
- -memcache 引き数が指定されていなければ、キャッシュ専用のローカル・ディスク・ディレクトリー名を定義します。必要ならば、the afsd プログラムは、ディレクトリー (この親ディレクトリーは、作成済みでなければなりません) を作成します。これが存在する場合、以前にこの機能を使用していたディレクトリーは削除されません。

  /usr/vice/etc/cacheinfo ファイルの 2 番目のフィールドはこの名前の元になっています。標準値は /usr/vice/cache ディレクトリーです。 cacheinfo ファイルの値を上書きする場合には、 -cachedir 引き数を使用してください。

- キャッシュのサイズを設定します。キャッシュ・サイズの値は、デフォルトでは /usr/vice/etc/cacheinfo ファイルの 3 番目のフィールドを元にします。キロバイト単位で指定します。

  メモリー・キャッシュの場合、afsd コマンドの引き数のうち、次のいずれかの引き数で、 cacheinfo ファイルの値を上書きします。

  - 異なる KB ブロック数を指定する場合には、 -blocks 引き数を使用してください。
  - dcache 項目の数とチャンク・サイズの両方を設定する場合は、 -dcache および -chunksize 引き数を両方とも指定してください (これらのパラメーターの定義については、以下を参照してください)。この場合、afsd プログラムは、この 2 つの値を掛けて、キャッシュ・サイズを算出します。計算を実行する前にキャッシュ ・サイズの結果を調べる必要がある場合には、この組み合わせの引き数は使用しないでください。
  - -dcache 引き数だけを使用します。この場合、afsd プログラムは、デフォルトのメモリー・キャッシュ・チャンク・サイズである 8 KB を -dcache 引き数で指定された値に掛けて、キャッシュ・サイズを算出します。計算を実行する前にキャッシュ ・サイズの結果を調べる必要がある場合には、この引き数は使用しないでください。

  満足のいくメモリー・キャッシュ性能を得るには、他のプロセスおよびコマンドがマシン上で実行できるように十分なメモリー・スペースを残しておく必要があります。この値が使用可能なメモリーのサイズを超えると、 afsd プログラムは、キャッシュ・マネージャーを初期化せずに終了し、標準出力ストリームに次のメッセージを出力します。

         afsd: number KB での memCache の割り振りに失敗しました。

  ここで、number は、障害発生直前に割り振られていたバイト数を示します。

  ディスク・キャッシュの場合、 afsd コマンドの -blocks 引き数で、 cacheinfo ファイルの値を上書きします。いずれかの方法で指定された値が、キャッシュ・サイズの絶対上限値を設定します。他の引き数 (たとえば、 -dcache、 -chunksize など) に指定された値は、これより大きなキャッシュになることはありません。 afsd プログラムでは、区画サイズの 95 % よりも大きな値を設定することはできません。その場合には、このプログラムは、標準出力ストリームにエラー・メッセージを出力し、終了します。これは、キャッシュ実装自身には、小さなサイズのディスク・スペースしか必要としないからで、この区画があふれると、クライアント・マシンは暴走します。

  初期化後再起動せずにディスク・キャッシュのサイズを変更する場合には、 fs setcachesize コマンドを使用してください。設定値は、afsd コマンドが次に実行されるか、 fs setcachesize コマンドが再発行されるまで有効です。 fs setcachesize コマンドは、メモリー・キャッシュに対しては実行できません。

- 各キャッシュ・チャンクのサイズを設定します。これは暗黙でキャッシュ・マネージャーがファイル・サーバーから一度に要求するデータ量を設定したことになります (AFS は、部分的なファイル転送を使用するので、RPC の 1 回あたりのフェッチ・サイズになります)。

  ディスク・キャッシュの場合、チャンクは V n ファイルになります。このパラメーターは、各ファイルが拡張可能な最大サイズに設定します。デフォルト値は 64 KB です。メモリー・キャッシュの場合、各チャンクは連続したメモリー・ブロックの集合です。デフォルト・サイズは 8 KB です。

  いずれかのタイプのチャンク・サイズのデフォルト値を上書きするには、 -chunksize 引き数を使用し、2 のべき乗の整数で指定します。詳細は、[オプション] セクションを参照してください。メモリー・キャッシュの場合、キャッシュ・サイズの合計をチャンク・サイズで割り算して余りが生じると、 afsd プログラムは、dcache 項目数を切り捨てます。これによりわずかですがキャッシュ・サイズが小さくなります。

- キャッシュ内のチャンク数を設定します。メモリー・キャッシュの場合、チャンク数はキャッシュ・サイズをチャンク・サイズで割ったものと等しくなります。ディスク・キャッシュの場合、チャンク数 (V n ファイル) は次の値のうち最大になる値に設定されます。ただし、-files 引き数を使ってこの値を明示的に指定した場合は除きます。
  - 100
  - キャッシュ・サイズをチャンク・サイズで割った結果の 1.5 倍 (cachesize/chunksize * 1.5)
  - キャッシュ・サイズを 10 KB で割った結果 (cachesize/10240)
- マシン・メモリーに割り振られる dcache 項目 の数を設定し、キャッシュ内のチャンクに関する情報を保管します。

  ディスク・キャッシュの場合、/usr/vice/cache/CacheItems ファイルに、各 V n ファイルの項目が記述されます。デフォルトでは、アクセスを高速にするために、これらの項目の半分 (2000 以下) が dcache 項目としてマシン・メモリーにコピーされます。

  メモリー・キャッシュの場合、 CacheItems ファイルがないので、キャッシュ・チャンクに関するすべての情報が dcache 項目としてメモリー内になければなりません。このため、メモリー・キャッシュにはデフォルトの dcache 項目数はありません。その代わり、afsd プログラムがキャッシュ・サイズをチャンク・サイズで割り dcache 項目数を算出します。

  dcache 項目数を設定するには、 -dcache 引き数を使用します。この場合、デフォルトで設けられている制限 2,000 を超える値を指定できます。この引き数は、いずれのタイプのキャッシュに対しても、使用することをお勧めしません。ディスク・キャッシュの dcache 項目数を増やすと、パフォーマンスが改善することもありますが (より多くの項目が、ディスクではなくメモリーから取得されるため)、それにも限界があります。メモリー・キャッシュに対してこの引き数を使用する場合には、発行者がチャンク・サイズにこの値を掛けてキャッシュ・サイズを計算しなければなりません。

- マシン・メモリーで使用可能な stat 項目の数を設定します。この項目には、キャッシュされた AFS ファイルに関する状況情報がキャッシュされます。デフォルト値は 300 です。デフォルト値を変更する場合には、 -stat 引き数を使用してください。
- 正確な時間のソースとして、ローカル・セルにあるファイル・サーバー・マシンをランダムに選択します。必要であれば、ファイル・サーバー・マシンのクロックに合わせて、ローカル・クロックが 5 分ごとに調整されます。

  afsd コマンドが時間標準を選択しないようにするには、 -nosettime フラグを使用してください。これは、クライアントとしても機能するファイル・サーバー・マシンにのみお勧めします。ファイル・サーバー・マシンは、ネットワーク時刻プロトコル・デーモンを使用して、正確な時刻を維持します。

キャッシュ構成パラメーターを設定する以外に、 afsd プログラムは、次のデーモンを開始します。 (多くのシステム・タイプでは、これらのデーモンは、 UNIX の ps コマンドの出力で、名前のない項目として表示されます。)

- 1 つのコールバック デーモン。これはコールバックを処理します。これは、クライアント・マシンの作動状態を検査するために、ファイル・サーバーが定期的に送信するプローブにも応答します。
- 1 つの保守 デーモン。これは次のタスクを実行します。
  - カーネル・メモリーから、不要なデータ (有効期限が切れたトークンなど) のガーベッジ回収を行う
  - ファイルを同期する
  - 読み取り専用ボリュームからの情報を、1 時間に 1 回リフレッシュする
  - マシンが NFS/AFS 変換プログラムを実行している場合に、 NFS クライアントに対する遅延書き込みを行う
- 1 つのキャッシュ切り捨て デーモン。これは、空きスペースが必要になると、キャッシュ・データと状況情報をファイル・サーバーに書き込むことにより、キャッシュをフラッシュします。
- 1 つのサーバー接続 デーモン。これは、数分ごとにファイル・サーバーを調べ、アクセス可能化検査します。またこのデーモンは、-nosettime フラグが使用されていなければ、マシンのクロックと、ランダムに選んだファイル・サーバー・マシンのクロックとの間の同期を取ります。常に 1 つのサーバー接続デーモンが存在しています。
- 複数のバックグラウンド・デーモン。このデーモンは、ファイルを事前に取り出し、 AFS に保管データをバックグラウンドで (遅延) 書き込みを行うことにより、パフォーマンスを改善します。

  バックグラウンド・デーモンのデフォルト数は 2 ですが、 1 つのマシンで同時に少なくても 5 つまでのユーザーを処理することができます。この数値を大きくするには、-daemons 引き数を使用します。 6 よりも大きな値に設定する必要は、通常ありません。

- 1 つの Rx listener デーモン (システムによって異なります)。これは、着信 RPC を listen します。
- 1 つのRx イベント・デーモン (システムによって異なります)。これは、RX システムにおけるタスクの待ち行列を検討し、必要に応じて実行します。待ち行列のほとんどの項目は、障害の発生したパケットの再送信によるものです。
- 仮想メモリー (VM) を組み込んだ AIX を実行しているマシンでは、 1 つ以上の VM デーモン (入出力 デーモンと呼ばれることもあります)。これは、ディスク・メモリーとマシン・メモリーの間でデータ転送を行います。このデーモンの数は、 -biods および -daemons 引き数によって異なります。
  - -biods 引き数が使用されている場合は、 VM デーモンの数を設定します。
  - -daemons 引き数だけが指定されている場合は、 VM デーモンの数は、バックグラウンド・デーモンの 2 倍になります。
  - どちらの引き数も指定されていない場合は、VM デーモンの数は 5 です。

注意

-shutdown パラメーターは使用しないでください。このパラメーターを使ってキャッシュ・マネージャーを終了しても、あまり効果はありません。その代わりに、UNIX の標準の umount コマンドを使用して、 AFS ルート・ディレクトリー (標準では、/afs) をアンマウントし、キャッシュ・マネージャーを停止してください。その後マシンをリブートして、キャッシュ・マネージャーを再度初期化する必要があります。

オプション

-blocks
  マシンのキャッシュ・ディレクトリー (ディスク・キャッシュの場合) またはメモリー (メモリー・キャッシュの場合)で使用可能な KB ブロックの数を指定します。これにより、/usr/vice/etc/cacheinfo ファイルの 3 番目のフィールドにあるデフォルト定義は上書きされます。ディスク・キャッシュの場合、この値は、キャッシュ区画で使用可能なスペースの 95% を超えることはできません。メモリー・キャッシュを使用する場合は、この引き数と -dcache 引き数とを一緒に使用しないでください。一緒に使用すると、チャンク・サイズが 2 のべき乗にならなくなることもあります。

-files
  ディスク・キャッシュをキャッシュ・ディレクトリーに作成するために、 V n ファイルの数を指定して、 記述セクションの説明にしたがって計算されたデフォルト値を上書きします。各 V n は、データのチャンクを格納し、デフォルトの最大サイズの 64 KB まで大きくなることがあります。この引き数は、-memcache 引き数と一緒に使用してはなりません。

-rootvol
  AFS ファイル・ツリーのルート・ディレクトリー (通常、 /afs ディレクトリー) に対応する読み取り / 書き込みボリュームに名前を付けます。この値は、root.afs ボリュームのデフォルト値を上書きします。

-stat
  マシンのメモリーに割り振る、キャッシュにある AFS ファイルに関する状況情報を記録するための項目の数を指定します。この値は、デフォルト (300) を上書きします。

-memcache
  ディスク・キャッシュではなく、メモリー・キャッシュを初期化します。このフラグは、-files 引き数と一緒に使用してはなりません。

-cachedir
  キャッシュとして使用されるローカル・ディスク・ディレクトリーを指定します。この値は、/usr/vice/etc/cacheinfo ファイルの 2 番目のフィールドで定義されているデフォルト値を上書きします。

-mountdir
  AFS ファイル・スペースのルートにマウントするローカル・ディスク・ディレクトリーを指定します。この値は、/usr/vice/etc/cacheinfo ファイルの最初のフィールドで定義されているデフォルト値を上書きします。 /afs ディレクトリーが使用されていないと、マシンは、その値を使用するセルのファイル・スペースにアクセスできません。

-daemons
  マシンで実行するバックグラウンド・デーモンの数を指定します。これらデーモンは、保管データの事前取り出しおよびバックグラウンド書き込みを行うことにより、パフォーマンスを向上させます。この値はデフォルトの 2 を上書きします。デフォルトは、 1 つのマシンを 5 ユーザーが使用している場合に適切な値です。 6 よりも大きな値を指定しても、通常は 6 の場合よりもパフォーマンスがあがることはありません。

  注: 仮想メモリー (VM) を組み込んだ AIX マシンでは、 VM デーモンの数は、この引き数が指定され、-biods 引き数が指定されていない場合には、この引き数の 2 倍に設定されます。どちらの引き数も指定されていない場合は、VM デーモンの数は 5 です。

-nosettime
  5 分ごとにサーバー・マシン上でクロックをチェックし、キャッシュ・マネージャーのクロックと、ランダムに選択されたサーバー・マシンのクロックが、キャッシュ・マネージャーによって同期しないようにします。すでに他の時間同期プロトコルが使用されているマシン上でのみ、このフラグを使用します (たとえば、runntp 処理が実行されるサーバー・マシン)。

-verbose
  標準出力ストリーム上に afsd プログラムのアクションの詳細なトレースを生成します。

-rmtsys
  NFS クライアント・マシンに代わって AFS で指定されるシステム・コールを実行する追加デーモンを初期化します。このフラグは、マシンが AFS コマンドを実行する NFS クライアント・マシンのユーザーに NFS/AFS 変換プログラム・ユーザーを提供している場合にのみ使用します。

-debug
  標準出力ストリーム上に afsd プログラムのアクションの非常に詳細なトレースを生成します。この情報は、大部分はデバッグ目的のために役立ちます。

-chunksize
  各キャッシュ・チャンクのサイズを設定します。設定された整数は、 0 〜 30 までの範囲内になければならず、 2 のべき乗で使用されます。この値は、ディスク・キャッシュの場合は、デフォルト値 16 (216 は 64 KB になります) を上書きし、メモリー・キャッシュの場合は 13 (213 は 8 KB になります) を上書きします。値が 0 以下または 30 より大きい場合、適切なデフォルト値をチャンク・サイズに設定します。 10 未満の値 (10 の場合のチャンク・サイズは 1 KB になります) は、お勧めしません。発行者がキャッシュ・サイズを計算しなければならないので、この引き数と -dcache 引き数を一緒に使用することはお勧めできません。

-dcache
  メモリー内の dcache 項目の数を設定します。この値は、キャッシュ・チャンクに関する情報を保管するために使用されます。ディスク・キャッシュの場合、これによってデフォルト値が上書きされます。このデフォルト値は V n ファイルの数の半分です (キャッシュ・チャンク)。メモリー・キャッシュの場合、この引き数はキャッシュのチャンク数を効率よく設定します。ただし、それには発行者が最終的なキャッシュ・サイズ (これはチャンク・サイズとこの値を掛けた結果になります) を計算しなければならないので、この引き数を使用することはお勧めできません。この引き数と -blocks 引き数は、一緒に使用しないでください。一緒に使用すると、チャンク・サイズが 2 のべき乗にならなくなることがあります。

-volumes
  ボリュームの場所情報を保管するために割り当てられる、メモリー構造の数を指定します。デフォルト値は 50 です。

-biods
  仮想メモリー (VM) を搭載した AIX バージョンが稼働しているマシンの入出力操作専用の VM デーモンの数を指定します。この引き数と-daemons 引き数がどちらも指定されていない場合は、デフォルト値 5 が想定されます。この引き数が指定されていなくて、 -daemons 引き数が指定されている場合は、 VM デーモンの数は、-daemons 引き数の値の 2 倍に設定されます。

  注: | この引き数は、VM を搭載した AIX が稼働しているマシンで使用してください。

-prealloc
  キャッシュ・マネージャーが内部で使用するために事前に割り振られるメモリー数を指定します。デフォルトの初期値は 400 です。ただし、キャッシュ・マネージャーは、必要に応じて、動的にメモリー割り振りを増やします。

-confdir
  cacheinfo、 ThisCell、および CellServDB 構成ファイルの取得先の /usr/vice/etc ディレクトリー以外のディレクトリーを指定します。

-logfile
  廃止されています。指定しても何も起こりません。キャッシュ・マネージャーが生成しなくなったトレースのタイプを記録するための代替えファイルを指定します。デフォルト値は、/usr/vice/etc/AFSLog です。

-waitclose
  キャッシュ・マネージャーのオペレーション結果を保持しません。キャッシュ・マネージャーの以前のバージョンではこれによってファイル・サーバーへの同期書き込み動作が影響を受けていましたが、現バージョンではデフォルトの動作になっています。非同期書き込みを行う場合には、 fs storebehind コマンドを使用します。

-shutdown
  キャッシュ・マネージャーを停止します。ただし、効果的な方法とはいえません。このフラグは使用しないでください。

-enable_peer_stats
  Rx 統計集合を活動化し、それらを保管するためのメモリーを割り振ります。別のマシンの特定の UDP ポートとの接続ごとに、送信または受信された RPC の各タイプ (FetchFile、 GetStatus など) のレコードが別々に保持されています。レコードを表示したり、ほかの方法でレコードにアクセスするには、 Rx Monitoring API を使用します。

-enable_process_stats
  Rx 統計集合を活動化し、それらを保管するためのメモリーを割り振ります。送信または受信された RPC の各タイプ (FetchFile、GetStatus など) ごとに、レコードが別々に保持され、別のマシンへのすべての接続が集計されます。レコードを表示したり、ほかの方法でレコードにアクセスするには、 Rx Monitoring API を使用します。

-help
  このコマンドのオンライン・ヘルプを出力します。これ以外の有効なオプションはすべて無視されます。

例

afsd コマンドは通常、コマンド・シェル・プロンプトで入力されるのではなく、マシンの AFS 初期化ファイルに組み込まれます。最大ディスク・キャッシュのための適切な形式です。

       /usr/vice/etc/afsd

以下のコマンドは、5 ユーザー以上に応対する NFS/AFS 変換プログラム・マシンのように振る舞うマシンが使用可能な時に適切です。

       /usr/vice/etc/afsd -daemons 4 -rmtsys

以下のコマンドは、メモリー・キャッシュを初期化し、チャンクのサイズに 16 KB (214) を設定します。

       /usr/vice/etc/afsd -memcache -chunksize 14

必要となる特権

コマンドの発行者は、ローカル・スーパーユーザー root としてログインする必要があります。

関連情報

CacheItems

CellServDB (クライアント・バージョン)

ThisCell (クライアント・バージョン)

Vn

cacheinfo

[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]

(C) IBM Corporation 2000. All Rights Reserved