この章では、アプリケーション固有のコンテキストをどのように管理するかについて説明します。
ファイルコンテキストには、以下のようなものがあります。
fncreate_fs コマンドを使用して作成したもの (「fncreate_fs を使ってファイルコンテキストを作成する」を参照)
fnlist コマンド (「コンテキストの内容を表示する」を参照)、あるいは fnlookup コマンド (「バインドに関する情報を表示する」を参照) を使用して、検索されたもの
fnunbind コマンド (「複合名を削除する」を参照)、あるいは fndestroy コマンド (「コンテキストを削除する」を参照) を使用して、切り取られたものあるいは削除されたもの
fncreate_fs コマンドにより、組織やサイト用にファイルコンテキストが作成できます。fncreate コマンドによって作成されたホストやユーザーのためのデフォルトのファイルコンテキストを無効にするために使用されることもあります。
fncreate_fs コマンドの使用には、以下のような 2 つの方法があります。
「入力ファイル」
入力ファイルによって、ファイルコンテキストのバインディングが提供されます (「入力ファイルを使って、ファイルコンテキストを作成する」を参照)。
「コマンド行」
コマンド行によって、ファイルコンテキストのバインディングが作成されます (「コマンド行の入力によりファイルコンテキストを作成する」を参照)。
fncreate_fs の 2 つの方法には、以下のような構文があります。
fncreate_fs [-v] [-r] -f file composite_name fncreate_fs [-v] [-r] composite_name [options] [ location...] |
オプション |
説明 |
---|---|
composite_name |
ファイルコンテキストの複合名 |
-f file |
file という名前の入力ファイルを使用する |
options |
マウントのオプション |
location |
マウントする位置 |
-v |
詳細出力に設定。作成および修正されるコンテキストに関する情報を表示 |
-r |
composite_name で名前付きコンテキスト、およびそのサブコンテキストのすべてのバインディングを、入力で指定したものだけで置き換える。これは、コンテキスト (およびそのサブコンテキスト) を削除し、このオプションなしで、fncreate_fs を実行するのと同じ。-r オプションは、注意して使用する必要がある |
fncreate_fs コマンドは、FNS コンテキスト、および onc_fn_fs リファレンスタイプのバインディングを操作します。これは、onc_fn_fs_mount タイプのアドレスを使って、それぞれのリモートのマウント先を表わします。このタイプのアドレスに関連するデータは、XDR で符号化された 1 つの文字列で示した、対応するマウントのオプションやマウント先になっています。
入力ファイルには、composite_name のコンテキストでバインドされる名前や値が入っています。この形式は、間接自動マウントマップの形式に基づいてはいますが、全く同じではありません。入力ファイルには、以下のような形式のエントリが 1 つあるいは複数含まれています。
name [options] [location...] |
name には、リファレンス名が入ります。name フィールドは、単純な原子名のこともあれば、あるいはスラッシュで区切った階層構造を示す名前の場合もあります。さらに (.) といったようにドットを使って示すこともあり、この場合リファレンスは、composite_name に直接バインディングされます。
options には、マウントのオプションがあれば、それが入ります。options フィールドは、ハイフン (-) で始まります。この後に、マウントオプションのコンマで区切ったリスト (スペースなし) が続き、これはディレクトリをマウントするのに使用されます。またこれらのオプションは、composite_name/name サブコンテキストにも適用されます。なお、composite_name/name は、それ自身のマウントオプションは指定しません。
location には、マウントの位置が入ります。location フィールドでは、composite_name/name のファイルを提供する 1 つあるいは複数のホストを指定します。簡単な NFS マウントでは、location は、以下のような形式をとります。
host:path |
host には、ファイルシステムをマウントするサーバー名が入ります。path には、マウントするディレクトリのパス名が入ります。
各エントリについて、マウントの位置や対応するマウントのオプションのリファレンスは、composite_name/name に割り当てられます。
options と location の両方が省略されると、リファレンスは composite_name/name にバインドされません。既存のリファレンスもすべてバインドされません。
たとえば、kuanda のファイルシステムを図 22-4 に示すように、ホスト altair からディレクトリ /export/home/kuanda に NFS マウントするとしましょう。コマンドは以下のように実行されます。
% fncreate_fs -f infile user/kuanda/fs |
. altair:/export/home/kuanda |
図 22-5 に示されるような、複数のサーバーに分散された複雑なファイルシステムを設定する場合、以下のコマンドを実行します。
% fncreate_fs -f infile org/sales/fs |
ここでは、以下を含む infile を使用します。
tools/db altair:/export/db project altair:/export/proj project/lib altair:/export/lib project/src deneb:/export/src |
プロジェクトやそのサブコンテキストの src や lib の NFS マウントを、読み取り専用に変更する場合、infile を以下のように変更します。
tools/db svr1:/export/db project -ro svr1:/export/projproject/lib altair:/export/lib project/src svr2:/export/src |
-ro は、3 行目と 4 行目では必要ありません。なぜならば、src および lib は、project のサブコンテキストであり、これらは、上から -ro マウントオプションを継承するからです。
以下の入力ファイルは、org/sales/fs/project/src を除いて、すべてのマウントを読み取り専用にします。
. -ro tools/db svr1:/export/db project svr1:/export/proj project/lib altair:/export/lib project/src -rw svr2:/export/src |
fncreate_fs コマンドにより、以下のようにバインディングの説明をコマンド行で入れることもできます。
fncreate_fs composite_name [ mmount_options] [mount_location ...] |
これは、コマンドの入力ファイル書式を使用し、キーボードから個々のバインディングを入力するのと同じです。先の kuanda のファイルシステムを設定した例は、コマンド行からは、以下のように設定できます。
% fncreate_fs user/kuanda/fs altair:/export/home/kuanda |
同様に、図 22-5 に示した階層構造は、以下のような一連のコマンドを実行することによって、設定できます。
% fncreate_fs org/sales/fs/tools/db altair:/export/db % fncreate_fs org/sales/fs/project altair:/export/proj % fncreate_fs org/sales/fs/project/lib altair:/export/lib % fncreate_fs org/sales/fs/project/src deneb:/export/src |
これら 3 つすべてのマウントを読み取り専用にするには、以下のコマンドを実行します。
% fncreate_fs org/sales/fs -ro |
以下の 2 つの項で述べる内容は、入力ファイル、およびコマンド行入力の両方の形式に適用されます。
複数の location フィールドが、機能的には同じである複数の位置からエクスポートされた NFS ファイルシステムに対して指定できます。
% fncreate_fs org/sales/fs altair:/sales cygnus:/sales |
オートマウンタが、選択肢の中から最適のサーバーを選択します。リストの中のいくつかの位置が同じパス名を共有している場合、これらは以下のようにコンマで区切ったホスト名のリストを使用して、結合されます。
% fncreate_fs org/sales/fs altair,cygnus:/sales |
ホストは、丸括弧で囲った整数の形でホストに追加された重み係数により加重されることがあります。この場合、数字が小さければ小さいほど、望ましいサーバーであることを示します。デフォルトの重み係数は、ゼロ (もっとも望ましい) です。マイナスの数字は使用できません。
以下の例では、cygnus が望ましいサーバーになっていることを示す 1 つの方法を表わしています。
% fncreate_fs org/sales/fs altair(2),cygnus(1):/sales |
前に $ の付く変数名を、fncreate_fs の options や location のフィールドで使用できます。たとえば、マウントの位置は、以下のように指定できます。
altair:/export/$CPU |
対応するファイルシステムにマウントする際、オートマウンタにより、これらの変数がクライアントに固有の値に置き換えられます。上の例の場合、$CPU は、uname -p の出力結果、たとえば sparc で置き換えられます。
さらにオートマウントマップとの互換として、以下の入力ファイル書式も fncreate_fs で使用できます。
name [mount_options ] [mount_location ...] ¥ / offset1 [mount_options1] mount_location1 ... ¥ / offset2 [mount_options2] mount_location2 ... ¥ ... |
ここでは、各 offset フィールドは、スラッシュで区切った階層構造になっています。バックスラッシュ (¥) は、1 つの長い行の続きであることを示します。これは、以下を行うのと同じことです。
name [mount_options ] [mount_location ...] ¥ name/offset1 [mount_options1 ] mount_location1 ... ¥ name/offset2 [mount_options2 ] mount_location2 ...... |
最初の行は、mount_options と mount_location の両方が省略されている場合、省略します。この書式は、互換のためだけのものです。これ以外の機能はないので、あまり使用しないでください。