# 管理の手引き

# 付録 A. NFS/AFS 変換プログラムの管理

NFS(R)/AFS(R) 変換プログラムを使用すると、 NFS クライアント・マシンで作業するユーザーが、 AFS に保管されるファイルへのアクセス、ファイルの作成および除去を行うことができます。この章では、 NFS と AFS の両方に精通していることを想定しています。

## 説明の要約

本章では、指示されたコマンドを使用した以下のタスクの実行方法を説明します。

ディレクトリーを変換プログラム・マシンに取り付ける | mount
@sys の値を検査する | fs sysname
AFS の再エクスポートを使用可 / 使用不可、その他のパラメーターを設定 | fs exportafs
NFS クライアント・マシンのユーザーに AFS トークンを割り当てる | knfs

## 概説

NFS/AFS 変換プログラムを使用すると、NFS クライアント・マシン上のユーザーは、 AFS クライアント・マシンで作業しているかのように AFS のファイル・スペースにアクセスすることができ、他の AFS ユーザーとの協力が容易になります。

NFS/AFS 変換プログラム・マシン (または単に 変換プログラム・マシン) は、 AFS クライアントと NFS サーバーの両方として構成されたマシンです。

- AFS クライアント機能によって、マシンは AFS のファイル・スペースにアクセスすることができます。キャッシュ・マネージャーは、AFS ファイル・サーバー・マシンからファイルを要求してキャッシュし、ユーザーが AFS を使用して認証を行えるよう構成を変更した場合は、NFS ユーザーのトークンを保守します。
- その NFS サーバーの機能性によって、変換プログラム・マシンが AFS ファイル・スペースを NFS クライアント・マシンにエクスポートすることができます。NFS クライアント・マシンのユーザーが、変換プログラム・マシンの /afs ディレクトリーを取り付けるとき (またはその機能が使用できる場合は、サブディレクトリーの 1 つ)、 AFS へのアクセスは即時に透過的に行われます。NFS クライアント・マシンは、AFS ソフトウェアをどれも実行する必要もありません。

### 非認証または認証済みの AFS アクセスを使用可能にする

変換環境を適切に構成することにより、 NFS クライアント・マシンから AFS への非認証または認証済みアクセスを許可することができます。変換マシン、NFS クライアント・マシン、および AFS ユーザー・アカウントの構成に関するこの章のこの機能グループでは、変換環境の適切な構成方法について説明します。

- 非認証アクセスのための環境を構成する場合、AFS ファイル・サーバーでは、 NFS ユーザーを anonymous ユーザーとみなします。 anonymous ユーザーは、アクセス制御リスト (ACL) が system:anyuser グループに対して必要な許可を拡大した AFS ファイルとディレクトリーだけにアクセスすることができます。 anonymous ユーザーは、特権を必要としない AFS コマンドだけを発行できます。しかも発行できるのは NFS クライアント・マシンで AFS バイナリーが使用可能であり system:anyuser グループによるアクセスが可能な場合だけです。このようなユーザーには、AFS アカウントはありません。
- 認証済みアクセスのための環境を構成する場合は、 NFS ユーザーに AFS 認証および保護データベースの項目を作成する必要があります。使用する認証の手順は、 NFS クライアント・マシンが、サポートされるシステム・タイプ (AFS バイナリーが使用可能なシステム・タイプ) であるかどうかによって異なります。
  - NFS クライアント・マシンで AFS バイナリーが使用可能な場合、 NFS ユーザーは、NFS クライアント・マシンで klog コマンドを発行できます。ユーザーは、ファイル・スペースにアクセスし、 AFS クライアント・マシンで作業する認証済みユーザーと同じエクステントに AFS コマンドを発行することができます。
  - AFS バイナリーを NFS クライアント・マシンに対して使用できない場合、 NFS ユーザーは、変換プログラム・マシンとの接続を確立し (たとえば、telnet ユーティリティーを使って)、その後、変換プログラムで klog コマンドと knfs コマンドを発行して、 NFS クライアントで作業する間は、そのキャッシュ・マネージャーに正しいトークンを使用させます。ユーザーは認証済みユーザーとして AFS ファイル・スペースにアクセスできますが、 AFS コマンドを発行することはできません。説明については、非サポート NFS クライアント・マシンでの認証を参照してください。

### AFSSERVER および AFSCONF 環境変数の設定

NFS ユーザーを使用可能にして AFS コマンドを発行するには、そのコマンド・シェルで AFSSERVER および AFSCONF 環境変数を定義する必要があります。このセクションでは、変数の機能について説明し、その各種設定方法の概要を示します。

AFS コマンドを発行するには、NFS クライアント・マシンが、サポートされるシステム・タイプ (AFS バイナリーが使用可能なシステム・タイプ) である必要もあります。サポートされないシステム・タイプの NFS クライアント・マシン上で作業をするユーザーは、認証ユーザーとして AFS にアクセスできますが、AFS コマンドを発行することはできません。このようなユーザーには、 AFSSERVER および AFSCONF 変数を定義する必要はありません。 knfs コマンドを使用して、非サポートのシステム・タイプへの認証アクセスを取得する方法については、 非サポート NFS クライアント・マシンでの認証 を参照してください。

#### AFSSERVER 変数

AFSSERVER 変数は、 NFS クライアントの 2 つの機能を実行する AFS クライアント・マシンを指定します。

- NFS クライアントに代わって AFS 固有のシステム呼び出しを実行することにより リモート実行プログラム として機能します (klog および tokens コマンド、および多くの AFS 組コマンドにより呼び出されるシステム呼び出しなど)。
- NFS ユーザーが AFS で認証を行う際に取得するトークンを保管します。これには、ユーザーが AFS への認証アクセスを必要とする場合、リモート実行プログラム・マシンと変換プログラム・マシンが同じマシンにあることが暗黙指定されます。

リモート実行プログラムの選択は、キャッシュ・マネージャーの構成を表示または変更するコマンド (fs getcacheparms、 fs getcellstatus、および fs setcell コマンドなど) に最も直接に影響します。 NFS クライアントでこれらのコマンドが発行されると、指定されたリモート実行プログラム・マシンにあるキャッシュ・マネージャーに影響を及ぼします。(ただし、このようなコマンドでは、発行者は、リモート実行プログラムのローカル・ファイルにローカル・スーパーユーザー root としてログインする必要のあるものがあります。 NFS クライアント・ユーザーの、root としてログインする機能は、 NFS/AFS 変換プログラムではなく、NFS が制御します。したがって、リモート実行プログラムを適切に構成するだけでは、 NFS クライアント・ユーザーはこのようなコマンドを発行することはできません。)

リモート実行プログラムの選択はまた、キャッシュ・マネージャー構成に関係のない AFS コマンドにも関係しますが、いずれのマシンにも同様の結果をもたらします (ACL およびボリューム割り当て量を表示または設定する fs コマンドなど) これらのコマンドは、その引き数に AFS パスを取ります。リモート実行プログラム・マシン上のキャッシュ・マネージャーが、通常 AFS クライアントに行うように /afs ディレクトリーに AFS ファイル・スペースを取り付ける場合、 NFS クライアントに指定されたパス名を文字列 /afs で開始し、キャッシュ・マネージャーがこれを解釈できるようにする必要があります。これには、リモート実行プログラムが、 NFS クライアントの 1 次変換プログラム・マシン (その /afs ディレクトリーが NFS クライアントの /afs に取り付けられているマシン) であることが暗黙指定となります。

#### AFSCONF 変数

AFSCONF 環境変数は、 NFS クライアント・マシンで発行された AFS コマンドを実行する際に使用する ThisCell および CellServDB ファイルを格納するディレクトリーの名前を付けます。 AFS クライアントの場合のように、これらのファイルによって、コマンドを実行するためのデフォルトのセルが決められます。

予測しうるパフォーマンスを得るためには、 AFSCONF 環境変数により名前を付けたディレクトリーにあるファイルは、変換プログラム・マシンの /usr/vice/etc ディレクトリーにあるファイルと同じであることが最適です。 /usr/vice/etc ディレクトリーにあるファイルの中央更新ソースとしての機能を果たす AFS ディレクトリーがユーザーのセルにある場合には、 AFSCONF 変数を設定してこれを参照するのが最も簡単な方法です。標準構成では、このディレクトリーは /afs/cellname/common/etc と呼ばれます。

#### 変数の値の設定

AFSSERVER および AFSCONF 変数の値を識別するため、 AFS コマンド・インタープリターは、以下の 3 つのソースを順に参照します。

1. 現行のコマンド・シェルの環境変数定義
2. 発行もとのホーム・ディレクトリーにある .AFSSERVER または .AFSCONF ファイル
3. NFS クライアント・マシンのルート (root) (/) ディレクトリーにある /.AFSSERVER ファイルまたは /.AFSCONF ファイル・クライアント・マシンがディスクレスである場合は、そのルート・ディレクトリーは、NFS サーバー・マシン上に常駐できます。

(実際に、これらのソースを参照する前に、 NFS クライアントは自らの /usr/vice/etc ディレクトリーで CellServDB と ThisCell ファイルを探します。ディレクトリーが存在する場合、NFS クライアントは AFSCONF 変数の値を使用しません。ただし、/usr/vice/etc ディレクトリーは通常 AFS クライアントにのみ存在し、 NFS クライアントには存在しません。)

先の説明のとおり、適切なパフォーマンスを得るには、一般的にリモート実行プログラムが NFS クライアントの 1 次変換プログラム・マシン (その /afs ディレクトリーが NFS クライアントの /afs ディレクトリーに取り付けられているマシン) である必要があります。この要件は、NFS クライアントから AFS にアクセスするすべてのユーザーに適用されるため、通常は NFS クライアントのルート・ディレクトリーに .AFSSERVER ファイルを作成するのが最も簡単な方法です。ユーザーのホーム・ディレクトリーにファイルを作成する、または現行のコマンド・シェルに AFSSERVER 環境変数を設定する主な理由としては、ユーザーが、オリジナルの変換プログラム・マシンにアクセスできなくなった場合に、別のマシンに切り換える必要のある場合があります。

同じく、一般的に、.AFSCONF ファイルを NFS クライアントのルート・ディレクトリーに作成するのは意味のあることです。ファイルをユーザーのホーム・ディレクトリーに作成する、または現行コマンド・シェルに AFSCONF 環境変数を設定することは、たとえばテスト状況などで、セルに異なるセットのデータベース・サーバー・マシンを指定する場合に最も役に立ちます。

### NFS クライアント・マシンに保管されるファイルの遅延書き込み

AFS クライアント・マシンで実行されるアプリケーションがファイルに close または fsync システム呼び出しを行う場合、キャッシュ・マネージャーはデフォルトでファイル・サーバーへのデータの同期書き込みをします。 (詳細については、AFS がインプリメントするクローズ時の保管 および 非同期書き込みを使用可能にする を参照してください。)

変換プログラム・マシンで作業中のユーザーに対してパフォーマンスを低下させることのないよう、 AFS は 変換プログラム・マシンの NFS クライアント上で実行されているアプリケーションに対しては同期書き込みを行いません。代わりに、キャッシュ・マネージャー・デーモン (保守デーモン) が、 NFS クライアントに保管されたデータを含むキャッシュのチャンクを 60 秒ごとにチェックし、その内容をファイル・サーバーに書き込みます。これは、 NFS クライアントに保管されたデータが 60 秒以内にファイル・サーバーに書き込まれることを保証するものではなく、保守デーモンがチェックを行い、この間隔でデータの書き込みを開始するだけです。

さらに AFS は、NFS クライアントで発行された fsync システムを常に無視します。呼び出しは、ファイル・サーバーから即時に、おそらくは時間のかかる応答を要求し、これによりファイル・サーバーの他の AFS クライアントの遅延を生じさせる可能性があります。 NFS バージョン 3 は、 close 呼び出しの直後に自動的に fsync システム呼び出しを発行しますが、キャッシュ・マネージャーはこれを無視し、通常の close と同様に操作します。

遅延書き込み機構は、NFS アプリケーションがファイルに close または fsync システム呼び出しを発行する時間と、ファイル・サーバーに変更が記録される、つまり他の AFS クライアント・マシンで作業中のユーザーに対して (直接にまたは NFS クライアント上に) 表示される時間との間に、通常は遅延が生じることを意味します。遅延時間は、AFS クライアント・マシンで直接に作業をしているユーザーがファイルを保管する場合よりも、長くなります。

正確な遅延時間は、予測が困難です。NFS プロトコルそのものにおいては、保存したデータが NFS クライアントから NFS サーバー (変換プログラム・マシン) に転送される前に、標準的な遅延が可能です。変更されたデータは、保守デーモンが予定している次回のデータ・チェックまで変換プログラム・マシンの AFS クライアント・キャッシュにとどまり、データをファイル・サーバーに転送するには、余分な時間がかかります。保守デーモンは単一スレッドを使用するため、変更されたすべての NFS データの書き出し時間が 60 秒を超えると、追加して遅延が発生する場合があります。つまり、次回に予定されているチェック時に保守デーモンがデータの書き込みを行っている場合、その長時間の書き込み操作が完了した後の予定時刻までは、追加の変更データの通知はできません。

write システム呼び出しに対するキャッシュ・マネージャーの応答は、呼び出しが AFS クライアント・マシンで行われた場合でも、変換プログラム・マシンの NFS クライアントで行われた場合でも同じです。変更は、ローカルの AFS クライアント・キャッシュにのみ記録されます。

## NFS/AFS 変換プログラム・マシン

NFS/AFS 変換プログラム・マシンとして動作するためには、マシンに以下の構成が必要です。

- AFS クライアントである必要があります。 AFS クライアントとしてサポートされる多くのシステム・タイプは、変換プログラム・マシンとなることができます。AFS の特定のリリースに可能な制約事項について確認するには、 AFS Release Notes を参照してください。
- NFS サーバーである必要があります。NFS サーバー・デーモン (nfsd およびその他) の適切な数は、予想される NFS クライアントの負荷によって異なります。
- AFS ファイル・スペースが取り付けられるローカル・ディレクトリー (通常 /afs) をエクスポートする必要があります。

変換プログラム・マシンの NFS クライアント上のユーザーが AFS コマンドを発行する場合、変換プログラム・マシンは、AFS コマンドを受け入れるための変換プログラム・マシンの構成 にある要件も満たす必要があります。

### NFS および AFS カーネル拡張のロード

NFS/AFS 変換プログラム・マシンとして動作するシステム・タイプに配布される AFS には、 2 つのバージョンの AFS カーネル拡張ファイルが含まれます。 1 つはカーネルが NFS サーバー機能をサポートするマシン用で、もう 1 つは NFS を使用しないマシン用です (後者の AFS カーネル拡張ファイルの名前には通常、文字列 nonfs が含まれています)。変換プログラム・マシンは、 NFS 使用可能バージョンの AFS 拡張ファイルを使用しなくてはなりません。システム・タイプによっては、ファイルを特定の位置に移動して適当なものを選択したり、変数を設定して適当なファイルを自動的に選択する場合があります。各システム・タイプにおける AFS のカーネルへの組み込みについては、 AFS インストールの手引き の説明を参照してください。

多くのシステム・タイプでは、NFS はデフォルトでカーネルに組み込まれているため、明示的に NFS カーネル拡張をロードする必要はありません。 NFS カーネル拡張をロードする必要のあるシステム・タイプの場合、一般的に AFS カーネル拡張をロードする前に NFS カーネル拡張をロードする必要があります。 AFS インストールの手引き には、マシンの始動シーケンスに AFS 初期化スクリプトを組み込み、 NFS を処理するスクリプトを反映して正しい順序にするための方法が説明されています。

またカーネルへの AFS 拡張のロードは、afsd コマンドを実行する前に行う必要があります。 AFS の配布に含まれる AFS 初期化スクリプトには、ロードと afsd コマンドが正しく配列されています。

### AFS コマンドを受け入れるための変換プログラム・マシンの構成

変換プログラム・マシンの NFS クライアントで作業中のユーザーが AFS コマンドを発行するには、変換プログラム・マシンのキャッシュ・マネージャーを初期化する afsd コマンドに -rmtsys フラグを組み込む必要があります。フラグにより追加デーモン (リモート実行プログラム・デーモン) が開始し、 NFS に代わり AFS 固有のシステム呼び出しが実行されます。 NFS ユーザーが AFS コマンドを発行するための暗黙指定についての説明は、AFSSERVER および AFSCONF 環境変数の設定 を参照してください。

AFS インストールの手引き でのキャッシュ・マネージャーの構成では、 AFS 初期化スクリプトの afsd コマンドへの -rmtsys フラグなどのオプションの追加について説明しています。多くのシステム・タイプでは、スクリプト内の OPTIONS 変数の定義行にフラグをリストするのが最も簡単な方法です。リモート実行プログラム・デーモンは多くのリソースを消費しないので、マシンの NFS クライアントのすべてのユーザーが AFS コマンドを発行するのではない場合でも、各変換プログラム・マシンに afsd コマンドを追加するのが最も単純です。

### オプションの変換プログラム機能の制御

AFS クライアント・マシンを変換プログラム・マシンとして構成すると、これはデフォルトで AFS ファイル・スペースを NFS クライアントにエクスポートします。変換プログラム機能を使用不可または再度使用可能にするには、 fs exportafs コマンドの -start 引き数を使用します。コマンドのその他の引き数を使用すると、変換プログラムの他の動作を制御することができます。

- -convert 引き数は、 NFS にエクスポートされる AFS ファイルまたはディレクトリーの 2 番目および 3 番目 (グループおよびその他) のセットの UNIX モード・ビットが、最初の (所有者) モード・ビットに一致するかどうかを制御します。デフォルトでは、モード・ビットが一致するよう設定されています。

  AFS とは異なり、 NFS は、ユーザーがファイルの読み取り / 書き込みを行えるかを (AFS に保管されている場合でも) 判別する際、 3 セットのモード・ビットをすべて使用します。 AFS は、所有者ビットをファイル・ディレクトリーの ACL と組み合わせて使用するため、 AFS ファイルには、グループおよびその他のモード・ビットがオンにされていないものもあります。 所有者モード・ビットのみが設定されている場合、NFS はファイルの所有者にのみその書き込み/読み取りを許可します。 -convert 引き数の値を on にすることにより、他のユーザーが所有者として同様にファイルにアクセスできるようにします。値を off にすることにより、ファイルに設定されたモード・ビットを AFS に保管された状態と同じにします。

- -uidcheck 引き数は、NFS クライアント・マシン上でのローカル UID が、変換プログラム・マシン上のトークンに関連付けられたローカル UID とは異なる NFS ユーザーにトークンが割り当て可能かどうかを制御します。デフォルトでは、これは可能です。

  値を on に設定して UID チェックをオンにすると、ローカル UID がトークンを割り当てる変換プログラム・マシンのプロセスのローカル UID と同じである NFS ユーザーにのみ、トークンを割り当てることができます。この結果、 knfs コマンドに -id 引き数を組み込みことは意味がありません。受け入れ可能な値は、コマンドの発行者のローカル UID のみであり、これは -id 引き数が省略された場合に使用される値です。このようにして UID の一致を要求するのは、ユーザーが変換プログラム・マシンと NFS クライアント・マシンで同じローカル UID を持つ場合にのみ有効です。この場合、ユーザーがトークンを自らの NFS セッションにのみ割り当てるよう保証できます。説明については、非サポート NFS クライアント・マシンでの認証を参照してください。

  注:

  また、UID チェックをオンにすることにより、サポートされる NFS クライアントのユーザーが klog コマンドを使用して NFS クライアント上で直接認証することがないようにできます。ユーザーは代わりに、変換プログラム・マシン上で認証を行い knfs コマンドを使用しなくてはなりません。これは、klog コマンド・インタープリターが NFS クライアント上でトークンを取得した後、これをキャッシュ・マネージャーのリモート実行プログラム・デーモンに渡し、これにより変換プログラム・マシン上の資格認定構造にトークンを保管するシステム呼び出しを行うためです。リモート・実行プログラムは一般的にローカル・スーパーユーザー root として実行されるため、ほとんどの場合そのローカル UID (通常はゼロ) は、 NFS クライアント・マシンで klog コマンドを発行したユーザーのローカル UID とは一致しません。

  一方で、 klog コマンドの代わりに knfs コマンドを使用するのはユーザーにとって不便ですが、セキュリティーが公開されるのを防ぐことができます。 klog コマンド・インタープリターは、ネットワーク経由でリモート実行プログラム・デーモンにトークンを明示的なテキスト・モードで渡します。

  値 off を割り当てて UID チェックを使用不可にした場合、knfs コマンドの発行者は、 NFS クライアント・マシン上で異なるローカル UID (ローカル・スーパーユーザー root など) を持つユーザーにトークンを割り当てることができます。さらには、knfs コマンドの複数の発行者が、 NFS クライアント・マシン上の同一ユーザーにトークンを割り当てることができます。異なるユーザーが -id 引き数に同じ値を指定して knfs コマンドを発行するたびに、そのユーザーのトークンが既存のトークンを上書きします。これにより、NFS ユーザーに対して予期されないアクセスが発生する場合があります。

- -submounts 引き数は、 NFS クライアントのユーザーが、最上位の /afs ディレクトリー以外に AFS ディレクトリーを取り付けられるかを制御します。デフォルトでは、変換プログラムはこのようなサブマウントを許可しません。

  サブマウントは、いくつかの状況において役に立ちます。たとえば、 NFS ユーザーが自らの AFS ホーム・ディレクトリーにアクセスすればよいだけの場合、サブマウントを使用することにより、ユーザーは完全パスを知って入力する必要はなくなります。同様にして、ユーザーが AFS 階層内でサブマウントより上位のファイル・スペースのパーツにアクセスしないようにできます。

### NFS/AFS 変換プログラム・マシンを構成するには

以下の説明では、ユーザーが AFS コマンドを発行できるよう変換プログラムを構成する方法を示します。この機能を使用可能にしたくない場合には、 6 のステップを省略します。

1. まだの場合は、su コマンドを発行し、マシン上でローカル・スーパーユーザー root になります。

          % su root
          Password: root_password

2. NFS サーバーがまだない場合には、 NFS/AFS 変換プログラム・マシンを NFS サーバーとして構成します。ユーザーの NFS 提供者が出す指示に従います。 NFS サーバー・デーモン (nfsd など) の数は、潜在的な NFS クライアントの数により異なります。
3. AFS クライアントがまだない場合には、 NFS/AFS 変換プログラムを AFS クライアントとして構成します。予測しうる最上のパフォーマンスを得るため、変換プログラム・マシンにおける /usr/vice/etc/CellServDB および /usr/vice/etc/ThisCell ファイルのローカル・コピーは、セル内の他のクライアント・マシンと同じにする必要があります。
4. リモート NFS クライアントにより、マシンのディレクトリーの取り付けを制御するファイルを変更します。
   - /etc/exports ファイルを使用するシステムでは、 NFS クライアントに /afs ディレクトリーのエクスポートを許可する行を組み込みます。特定のユーザーにのみアクセスを与える場合は、特定の NFS クライアント・マシン名のリストを作成します。ファイル形式の説明については、 exports(5) の NFS 解説書のページを参照してください。

     以下の例を使用すると、 NFS クライアント・マシンは、/afs、/usr、および /usr2 ディレクトリーを取り付けることができます。

            /afs
            /usr
            /usr2

   - share コマンドを使用するシステムでは、 /etc/dfs/dfstab ファイルまたはこれと同等のファイルに、 /afs ディレクトリーのリモート取り付けを許可する share 命令を組み込みます。ほとんどの配布には、/usr/sbin/share のバイナリーが含まれています。以下の例のコマンドは、ルート区分 (/) のリモート取り付けと /afs ディレクトリーのリモート取り付けを許可しています。構文が正しいことを確認するには、解説書の share コマンドのページを参照してください。

            share -F nfs -o rw -d "root" /
            share -F nfs -o rw -d "afs gateway" /afs

5. マシンの AFS 初期設定ファイルを編集して、 afsd プログラムを実行した後に標準 UNIX exportfs コマンドを呼び出すようにします。システム・タイプによっては、 4 のステップで行った変更だけで /afs ディレクトリー経由で AFS ファイル・スペースをエクスポートすることができない場合があります。これは、マシンの初期設定の際、afsd プログラムが実行される前に構成の変更が行われるためです。 afsd プログラムが実行されて初めて /afs ディレクトリーが AFS ファイル・スペース全体のマウント・ポイントになります。実行する前は、他のディレクトリーと同様にローカル・ディレクトリーです。
6. AFS 初期設定ファイルの afsd コマンドを変更して、 -rmtsys フラグを組み込みます。

   IRIX 以外のシステム・タイプの場合、 AFS インストールの手引き のキャッシュ・マネージャーの構成に -rmtsys フラグの追加方法が説明されています。たとえば、スクリプト内の OPTIONS 変数の値の定義行にこれを追加するなどの方法があります。

   IRIX システムでは、afsxnfs 構成変数を活動化すると、 AFS 初期化スクリプトは自動的に -rmtsys フラグを追加します。 AFS インストールの手引き のカーネルへの AFS 拡張の組み込みについての説明を参照してください。変数が活動化されていなければ、以下のコマンドを発行します。

          # /etc/chkconfig  -f  afsxnfs  on

7. (オプション) このマシンに期待できる NFS クライアントの数によって、マシンの初期設定ファイルの afsd コマンドに、バックグラウンド・デーモン数を設定する -daemons 引き数などの他の引き数を追加してもかまいません。『クライアント・マシンとキャッシュ・マネージャーの管理』および『 AFS Administration Reference』の afsd 解説ページを参照してください。
8. マシンをリブートする。多くのシステム・タイプでは、適切なコマンドは shutdown です。ユーザーのオペレーティング・システム管理者の手引きを調べてください。

          # shutdown appropriate_options

### 変換プログラム機能を使用不可/使用可能にする、またはオプション機能を設定する

1. まだの場合は、su コマンドを発行し、マシン上でローカル・スーパーユーザー root になります。

          % su root
          Password: root_password

2. fs exportafs コマンドを発行します。

          # fs exportafs nfs [-start {on | off}} ]  [-convert {on | off}]
                             [-uidcheck {on | off}]   [-submounts {on | off}]

   -start
     off の場合変換プログラム機能を使用不可に、 on にすると再度使用可能にします。この引き数を省略すると、このコマンドにより設定されたすべてのパラメーターの現在の設定が表示されます。

   -convert
     NFS にクライアントにエクスポートされる AFS ファイルまたはディレクトリーの 2 番目と 3 番目 (グループとその他) のセットの UNIX モード・ビットの設定を制御します。 on の場合、所有者 モード・ビットに一致するよう設定されます。 off の場合、ビットは変更されません。この引き数が省略された場合、デフォルト値は on です。

   -uidcheck
     knfs コマンドの発行によって、 AFS UID に一致しない -id 引き数の値を指定できるかどうかを制御します。
     - on の場合、-id 引き数の値は発行者のローカル UID に一致する必要があります。
     - off の場合、knfs コマンドの発行者は -id 引き数を使用して、 NFS クライアント・マシン上で異なるローカル UID (ローカル・スーパーユーザー root など) を持つユーザーにトークンを割り当てることができます。

     この引き数が省略されると、デフォルト値は off です。

   -submounts
     変換プログラムが、最上位の /afs ディレクトリー以外に AFS ファイル・スペース内のディレクトリーの NFS マウントをサービスするかを制御します。 on の場合、サブマウントが許可されます。 off の場合、/afs ディレクトリーの取り付けのみが許可されます。この引き数が省略されると、デフォルト値は off です。

## NFS クライアント・マシンの構成

以下の要件を満たす NFS クライアント・マシンはいずれも NFS/AFS 変換プログラム経由で AFS 内のファイルにアクセスできます。これを AFS クライアント・マシンとして構成する必要はありません。

- 変換プログラム・マシンの /afs ディレクトリーを、ローカル・ディレクトリー (通常これも /afs とされる) に NFS マウントする必要があります。以下に、NFS クライアント・マシンの /etc/fstab ファイル (または同等のファイル) に mount コマンドを追加する方法を示します。

  NFS クライアントが変換プログラム・マシンの /afs ディレクトリーを取り付けるディレクトリーでは、 /afs 以外のものが呼び出されることがあります。たとえば、オリジナルのディレクトリーにアクセスできなくなった場合に他の変換プログラムへの切り替えが容易にできるよう、複数の変換プログラム・マシンの /afs ディレクトリーを取り付けることができます。通常使用する変換プログラムのマシンの取り付けに /afs と名前を付け、代替変換プログラム・マシン用にはそれぞれ異なる名前を付けます。

  /afs 以外ディレクトリーに AFS ファイル・スペースを取り付けるには、この他にも必要な要件がありますが、 AFS パス名の引き数をとるコマンドを発行する場合には、相対パス名ではなく、/afs に始まる完全パス名を指定する必要があります。たとえば、変換プログラム・マシンの AFS ファイル・スペースが NFS クライアント・マシンの /afs2 に取り付けられており、以下のコマンドを発行して現行の作業ディレクトリー (AFS) の ACL を表示するとします。

         % fs listacl .

  NFS クライアント側の fs コマンド・インタープリターは全パス名を構成してから、変換プログラム・マシンのキャッシュ・マネージャーに要求を渡す必要があります。 AFS ファイル・スペースは /afs2 取り付けられているため、全パス名はこの文字列で開始します。ただし、変換プログラム・マシンでは AFS ファイル・スペースが /afs 名で取り付けられているため、キャッシュ・マネージャーは /afs2 名のディレクトリーを見つけることができません。コマンドは失敗します。この障害を避けるため、ファイルには文字列 /afs で開始する全パス名を指定します。

- 適切な数の NFS クライアント biod デーモンを実行する必要があります。このデーモンは、事前読み取りと遅延書き込みを処理することによって、パフォーマンスを改善します。ほとんどの NFS ベンダーは、このような 4 つのデーモンの実行を推奨し、ほとんどの NFS 初期化スクリプトは、これらを自動的に開始します。ご使用の NFS 資料を調べてください。

ユーザーが AFS コマンドを発行できるようにするには、 NFS クライアント・マシンが、サポートされるシステム・タイプ (AFS バイナリーが使用可能なシステム・タイプ) であり、 AFS コマンド・バイナリーにアクセス可能であることが必要です。AFS Release Notes には、リリースごとのサポートされるシステム・タイプがリストされています。

また、AFSSERVER および AFSCONF 環境変数の設定 の説明に従い、 AFSSERVER および AFSCONF 環境変数も定義しなければなりません。

### NFS クライアント・マシンを構成して、AFS にアクセスするには

注: | 以下の指示に従い、NFS ユーザーが AFS コマンドを発行できるようにします。この機能を使用可能にしたくない場合には、 5 および 6 のステップを省略します。

1. まだの場合は、su コマンドを発行し、マシン上でローカル・スーパーユーザー root になります。

          % su root
          Password: root_password

2. NFS クライアント・マシンがまだない場合には、そのマシンを NFS クライアント・マシンとして構成する。 NFS ベンダーの提供する指示に従います。 NFS クライアント (biod) デーモンの数は、このマシンで予想される負荷に適していなければなりません。通常の推奨される数は 4 つです。
3. /afs というディレクトリーがまだない場合は、そのディレクトリーをマシンに作成し、変換プログラム・マシンの /afs ディレクトリーのマウント・ポイントとして使用します。別の名前を付けることもできますが、このセクションの概要で説明したように制限があります。

          # mkdir /afs

4. マシンのファイル・システム登録ファイル(/etc/fstab または同等のファイル) を変更して、変換プログラム・マシンの /afs ディレクトリーを取り付けるコマンドを組み込みます。mount コマンドの正しい構文を確認するには、オペレーティング・システムの mount(5) の解説ページを参照してください。以下の例には、多くのシステム・タイプで使用可能なオプションが組み込まれています。

          mount -o hard,intr,timeo=300  translator_machine:/afs /afs

   ここで、

   `hard`
     NFS サーバー (変換プログラム・マシン) が応答するまで、 NFS クライアントは NFS 要求を再試行しなければならないことを示します。変換プログラムを使用する場合、ファイル操作は AFS キャッシュ・マネージャーを経由するため、 NFS 単独より時間がかかります。soft 取り付けでは、変換プログラムからの遅延応答は、要求が打ち切られる原因になります。多くの NFS バージョンでは、デフォルトによって、堅固な取り付けが使用されます。ご使用のバージョンで使用していない場合は、このオプションを追加することをお勧めします。

   `intr`
     これによって、ユーザーはキーボード割り込みシグナル (<Ctrl-c> など) を使用し、変換プログラム・マシンが停止し、作業が不可能になったときに、取り付けを切断します。このオプションを組み込むのは、`hard` オプションを使用する場合だけです。なぜなら、変換プログラム・マシンが停止しても、接続は自動的に中断しないからです。

   `timeo`
     クライアントが要求がタイムアウトになったと判断するまで、変換プログラムが NFS クライアントの要求に応答するのに掛かる最大時間 (10 秒間隔) を設定します。堅固な取り付けでは、このオプションを 300 のような高い数字に設定すると、変換プログラムがただちに応答しないときに生成される、以下のようなエラー・メッセージの数が減少します。

            NFS server translator is not responding, still trying

     柔軟な取り付けでは、タイムアウトになった要求に戻される実際のエラーの数が減少します。

   translator_machine
     /afs ディレクトリーをクライアント・マシンの /afs ディレクトリーに取り付ける変換プログラム・マシンを指定します。

   注: | 変換プログラム・マシンの /afs ディレクトリーを /afs 以外の NFS クライアントのディレクトリーに取り付ける場合には、代替のディレクトリー名を用いて mount コマンドの 2 番目の `/afs` インスタンスを置き換えます。

5. (オプション) 必要があれば、 /.AFSSERVER ファイルを作成し、すべてのマシン・ユーザーについて AFSSERVER 環境変数を設定します。詳細は、 AFSSERVER および AFSCONF 環境変数の設定 を参照してください。リモート実行プログラムとして機能する変換プログラム・マシンの完全修飾ホスト名を指定する単一行をファイルに追加します。トークンを処理するコマンドをユーザーが発行できるようにするには、これは、 4 のステップの translator_machine 名のマシンとする必要があります。
6. (オプション) 必要があれば、 /.AFSCONF ファイルを作成して、すべてのマシン・ユーザーについて AFSCONF 環境変数を設定します。詳細は、 AFSSERVER および AFSCONF 環境変数の設定 を参照してください。 CellServDB および ThisCell ファイルが常駐するディレクトリーの名前を指定する単一行をファイルに追加します。これらのファイルの中央更新ソース (標準では /afs/cellname/common/etc) を使用する場合、ここで指定します。

## ユーザー・アカウントの構成

NFS ユーザーが非認証のユーザーとして AFS にアクセスするには、要件はありません。ただし、AFS 機能をさらに活用するには、次に示す要件を満たす必要があります。

- 認証ユーザーとして AFS にアクセスするには、 AFS で認証を行う必要があります。これには保護データベースと認証データベースに項目が必要です。
- ファイルを作成し保管するには、要求される ACL アクセス権が必要です。個人ファイルの保管にホーム・ディレクトリーを使用する場合、通常は専用ボリュームを作成し、これを AFS ファイル・スペースのユーザー・ホーム・ディレクトリー・ロケーションにマウントします。
- AFS コマンドを発行するには、いくつかの追加要件があります。
  - サポートされるシステム・タイプの NFS クライアント・マシンで、 AFS コマンド・バイナリーにアクセス可能なマシンで作業をする必要があります。
  - コマンド・シェルは、AFSSERVER および AFSCONF 環境変数の値を定義する必要があります (AFSSERVER および AFSCONF 環境変数の設定 を参照)。 NFS クライアント・マシンのルート・ディレクトリーに /.AFSSERVER および /.AFSCONF ファイルを作成して変数を定義するのが最も簡単である場合が多いですが、各ユーザーのシェル初期化ファイル (.cshrc または同等のファイル) に変数を設定するか、各ユーザーのホーム・ディレクトリーに .AFSSERVER および .AFSCONF 名のファイルを作成することもできます。
  - コマンドが AFS 特権を要求する場合に認証を行えるよう、 AFS 保護データベースと認証データベースに項目が必要です。その他のコマンドでは、変換プログラム・マシンにおけるローカル root 識別を前提とします。詳細については、AFSSERVER 変数 を参照してください。
  - PATH 環境変数には、適当な AFS バイナリーのパス名を組み込む必要があります。ユーザーが、異なるシステム・タイプの NFS クライアント・マシンで作業をする場合には、パス名に実際のシステム・タイプ名ではなく、@sys 変数を組み込みます。

### AFS コマンドを発行するためのユーザー・アカウントの構成

1. 保護データベースと認証データベースにユーザー用の項目を作成するか、完全な AFS アカウントを作成する。 uss コマンド組によるユーザー・アカウントの作成と削除 または ユーザー・アカウントの管理のアカウントの作成の説明を参照してください。
2. ユーザーの PATH 環境変数を変更して、 /afs/cellname/sysname/usr/afsws/bin などの AFS バイナリーのパス名を組み込む。ユーザーが、異なるシステム・タイプの NFS クライアント・マシンで作業をする場合には、特定の sysname を @sys 変数に置き換えるよう考慮します。一般的に、PATH 変数は、ログイン・ファイルまたはシェル初期設定ファイル (.login または .cshrc など) で定義されます。
3. (オプション) 必要であれば、AFSSERVER および AFSCONF 環境変数を定義します。これは、ユーザーが作業をする NFS クライアント・マシンに /.AFSSERVER および /.AFSCONF ファイルがない場合、またはユーザー固有の値でこれらの設定を上書きする場合に必要となります。

   ユーザーのログインまたはシェル初期設定ファイルに変数を定義するか、ユーザーのホーム・ディレクトリーに .AFSSERVER および .AFSCONF ファイルを作成します。

   AFSSERVER 変数の場合、リモート実行プログラムとして機能する変換プログラム・マシンの完全修飾ホスト名を指定します。 AFSCONF 変数には、 CellServDB および ThisCell ファイルが常駐するディレクトリーの名前を指定します。これらのファイルの中央更新ソース (標準では /afs/cellname/common/etc) を使用する場合、ここで指定します。

4. 2 のステップで定義したパス名に @sys 変数が組み込まれている場合には、システム名が正しく定義されていることを確認してから AFS コマンドを発行するようユーザーに指示します。ユーザーは以下のコマンドを発行します。

          % fs sysname

## 非サポート NFS クライアント・マシンでの認証

knfs コマンドを使用すると、ユーザーは、非サポートのシステム・タイプ (AFS バイナリーを使用できないタイプ) の NFS クライアントで作業をする際に、 AFS で認証を行うことができます。これで、このようなユーザーも、ほかの AFS ユーザーと同じ範囲まで、 AFS ファイル・ツリーにアクセスすることができます。ただし、AFS コマンドを発行することはできません。これらのコマンドは、サポートされるシステム・タイプの NFS クライアント・マシンでしか発行できません。

非サポート・システムで認証を行うには、変換プログラム・マシンへの接続を確立し (telnet などの機能を使用)、 klog コマンドを使用して、次の NFS セッションで接続するすべてのセルに対するトークンを取得します。続いて knfs コマンドを発行します。これにより、NFS セッションに関連した資格認定構造にトークンを保管します。キャッシュ・マネージャーは、 NFS セッションから発生した AFS アクセス要求を実行する際、トークンを使用します。

詳しく述べると、この資格認定構造は、特定の NFS クライアント・マシン上の特定のローカル UID に関連したプロセス認証グループ (PAG) 番号により識別されます。デフォルトでは、資格認定構造に記録された NFS UID は、変換プログラム・マシン上のローカル UID に同じです。 -id 引き数を組み込んで代替の NFS UID を指定することができます。ただし、変換プログラム・マシンの管理者が fs exportafs コマンドの -uidcheck 引き数を使用して UID チェックを使用可能にした場合は除きます。この場合、-id 引き数の値は、変換プログラム・マシン上のローカル UID と同じでなくてはなりません (このため、-id 引き数を指定する意味はありません)。UID を一致するよう強制することで、他ユーザーが偶然または故意に、資格認定構造内にそのトークンを置くことができないようにします。ただしこのことは、セル管理者が NFS クライアント上のユーザーのローカル UID を変換プログラム・マシン上でのローカル UID に一致するよう設定しなくてはならないことを意味します。また、klog コマンドを発行してサポート NFS クライアントで認証を行うことが不可能となり、すべての NFS ユーザーは knfs コマンドを使用しなくてはなりません。オプションの変換プログラム機能の制御を参照してください。

knfs コマンドを発行したら、 AFS への認証アクセスを行い NFS クライアント上で作業を開始できます。作業が終了したら、変換プログラム・マシン上で再度 knfs コマンドを発行して (この場合は -unlog フラグを使用)、トークンを破棄するのが適切な方法です。変換プログラム・マシンへの接続をオープンにしておく方が簡単ですが、元の接続をクローズすると、常に新規接続を開始することができます。

NFS クライアント・マシンが、サポートされるシステム・タイプで、そのマシンで AFS コマンドを発行するのであれば、 knfs コマンドに -sysname 引き数を組み込みます。変換プログラム・マシンのリモート実行プログラム・デーモンはこの値を使用して、ユーザーが NFS クライアント・マシンで発行した AFS コマンドを実行する際、パス名の @sys 変数を置き換えます。 PATH 環境変数が AFS バイナリーのディレクトリーのパス名に @sys 変数を使用する場合 (推奨方法)、この引き数を設定することにより、リモート実行プログラム・デーモンは、変換プログラム・マシンとはシステム・タイプが異なる場合でも、 NFS クライアント・マシンに適当な AFS バイナリーにアクセスすることができます。

knfs コマンド (または NFS クライアント・マシンがサポート・システム・タイプの場合、このマシン上で klog コマンド) を発行しないと、AFS で認証はされません。非認証のアクセスについての説明は、 非認証または認証済みの AFS アクセスを使用可能にする を参照してください。

### knfs コマンドを使用した認証

1. 関係のある変換プログラム・マシンにログオンします。コンソールを使用、または telnet などのプログラムをリモートで使用します。
2. NFS クライアントでの作業中にアクセスするすべてのセルのトークンを取得します。デフォルトでは、AFS 使用に変更されたログイン・ユーティリティーが、変換プログラム・マシンのローカル・セルのトークンを入手します。必要であれば、klog コマンドを使用して、他のセルのトークンを入手します。
3. knfs コマンドを発行し、前のステップで取得したトークンの保管用に、変換プログラム・マシンのカーネル・メモリーに資格認定構造を作成します。変換プログラム・マシン上のローカル UID とは異なる NFS クライアントの UID に構造を関連付けるには、 -id 引き数を組み込みます。これは、変換プログラム・マシンで管理者が UID チェックを使用可能にしていない場合に可能です。オプションの変換プログラム機能の制御 を参照してください。 NFS クライアント・マシンが、サポートされるシステム・タイプで、そのマシンで AFS コマンドを発行するのであれば、-sysname 引き数を組み込んでそのシステム・タイプを指定します。

          % knfs -host <host name>  [-id <user ID (decimal)>]
                       [-sysname  <host's '@sys' value>]

   ここで、

   -host
     作業を行う NFS クライアント・マシンの完全修飾ホスト名を指定します。

   -id
     トークンを関連付ける NFS クライアント・マシンのローカル UID 番号を指定します (変換プログラム・マシン上のローカル UID と異なる場合)。この引き数を省略した場合、トークンは、変換プログラム・マシン上のローカル UID に一致する NFS UID に関連付けられます。いずれの場合も NFS クライアント・ソフトウェアは、 AFS アクセス要求を変換プログラム・マシンのキャッシュ・マネージャーに転送する際、 NFS UID でマークを付けます。

   -sysname
     ローカル・マシンのリモート実行プログラム・デーモンが、 NFS クライアント・マシンで発行された AFS コマンドを実行する際にパス名の @sys 変数に置き換える値を指定します。クライアント・マシンはサポートされるシステム・タイプである必要があります。

   以下のエラー・メッセージは、変換プログラム・マシンの管理者が UID チェックを使用可能にしており、変換プログラム・マシン上のローカル　UID と異なる値をユーザーが指定していることを示します。

          knfs: Translator in 'passwd sync' mode; remote uid must be the same as local uid

4. 変換プログラム・マシンへの接続をクローズし (必要な場合)、 NFS クライアント・マシンで作業をします。

### knfs コマンドを使用したトークンの表示

1. 関係のある変換プログラム・マシンにログオンします。コンソールを使用、または telnet などのプログラムをリモートで使用します。
2. knfs コマンドに -tokens フラグを付けて発行し、変換プログラム・マシン上のローカル UID に一致する NFS UID、または -id 引き数で指定した NFS UID のいずれかに関連するトークンを表示します。

          % knfs -host <host name>  [-id <user ID (decimal)>] -tokens

   ここで、

   -host
     作業を行う NFS クライアント・マシンの完全修飾ホスト名を指定します。

   -id
     トークンの表示対象となる NFS クライアント・マシンのローカル UID を指定します (変換プログラム・マシン上のローカル UID と異なる場合)。この引き数を省略した場合、変換プログラム・マシン上のローカル UID に一致する NFS UID のトークンとなります。

   -tokens
     トークンを表示します。
3. 必要であれば、変換プログラム・マシンへの接続をクローズします。

### knfs コマンドによるトークンの破棄

1. knfs コマンドの発行後に変換プログラム・マシンへの接続をクローズした場合は、再度オープンします。
2. knfs コマンドに -unlog フラグを付けて発行します。

          % knfs -host  <host name>  [-id <user ID (decimal)>]  -unlog

   ここで、

   -host
     作業を行う NFS クライアント・マシンの完全修飾ホスト名を指定します。

   -id
     関連するトークンを破棄する NFS クライアント・マシンのローカル UID 番号を指定します (変換プログラム・マシン上のローカル UID とはことなる場合)。この引き数を省略した場合、変換プログラム・マシン上のローカル UID に一致する NFS UID に関連するトークンは破棄されます。

   -unlog
     トークンを破棄します。
3. 希望する場合には、変換プログラム・マシンへの接続をクローズする。

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

(C) IBM Corporation 2000. All Rights Reserved