NFS の管理

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

次のような直接マップの例では、


/usr/local          -ro ¥
	   /bin                   ivy:/export/local/sun4¥
	   /share                 ivy:/export/local/share¥
	   /src                   ivy:/export/local/src
/usr/man            -ro   oak:/usr/man ¥
                          rose:/usr/man ¥
                          willow:/usr/man
/usr/games          -ro   peach:/usr/games
/usr/spool/news     -ro   pine:/usr/spool/news ¥
                          willow:/var/spool/news 

マウントポイント /usr/man/usr/spool/news には、複数のロケーション (/usr/man には 3 つ、/usr/spool/news には 2 つ) が記述されています。このような場合、複製された位置のどれからマウントしてもユーザは同じサービスを受けられます。ユーザの書き込みまたは変更が可能ならば、その変更をロケーション全体で管理しなければならなくなるので、この手順は、読み取り専用のファイルシステムをマウントするときにだけ意味があります。あるときに、あるサーバ上のファイルを変更し、またすぐに別のサーバ上で「同じ」ファイルを変更しなければならないとしたら、大変面倒な作業になります。この利点は、最も利用しやすいサーバが、そのユーザの手をまったく必要としないで自動的にマウントされるということです。

ファイルシステムを複製として設定してあると (「複製されたファイルシステムとは」 を参照してください)、クライアントは障害時回避機能を使用できます。最適なサーバが自動的に決定されるだけでなく、そのサーバが使用できなくなるとクライアントは自動的に 2 番めに適したサーバを使います。障害時回避機能は、Solaris 2.6 の新機能です。

複製として設定するのに適しているファイルシステムの例は、マニュアルページです。大規模なネットワークでは、複数のサーバがマニュアルページをエクスポートできます。どのサーバからマニュアルページをマウントしても、そのサーバが動作しており、しかもそのファイルシステムをエクスポートしている限り、問題ありません。上の例では、複数のマウント位置は、マップエントリ内のマウント位置のリストになっています。


/usr/man -ro oak:/usr/man rose:/usr/man willow:/usr/man 

これは、サーバをコンマで区切ったリストにし、その後にコロンとパス名を指定することによって入力することもできます (複製されるサーバすべてでパス名が同じ場合に限ります)。


/usr/man -ro oak,rose(1),willow(2):/usr/man

これで、サーバ oakrosewillow のどれからでもマニュアルページをマウントできます。どのサーバが最適であるかは、いくつかの要素によって決まります。具体的には、ある特定の NFS プロトコルレベルをサポートしているサーバの数、サーバのとの距離、重み付けです。

順位を決定するときには、NFS バージョン 2 と NFS バージョン 3 のプロトコルをサポートしているサーバの数が数えられます。サポートしているサーバの数が多いプロトコルがデフォルトになります。そのため、クライアントにとっては利用できるサーバの数が最大になります。

プロトコルのバージョンが同じサーバの組の中で数が最も多いものが分かると、サーバのリストが距離によってソートされます。ローカルサブネット上のサーバには、リモートサブネット上のサーバよりも高い優先順位が付けられます。最も近いサーバが優先されることにより、待ち時間が短縮されネットワークトラフィックは軽減されます。94 ページの 図 5-3 に、サーバとの距離を図示します。

図 5-3 サーバとの距離

Graphic

ローカルサブネット上に同じプロトコルをサポートしているサーバが複数あるときは、それぞれのサーバに接続する時間が計測され、速いものが使われます。優先順位には、重み付けも関係します (「autofs と重み付け」 を参照してください)。

バージョン 3 のサーバの方が多いと、優先順位の決定は複雑になります。通常、ローカルサブネット上のサーバはリモートサブネット上のサーバよりも優先されます。バージョン 2 のサーバがあり、それが最も近いバージョン 3 サーバよりも近いと状況が複雑になる可能性があります。ローカルサブネットにバージョン 2 サーバがあり、最も近いバージョン 3 サーバがリモートサブネット上にあると、バージョン 2 サーバが優先されます。このことは、バージョン 3 サーバの方がバージョン 2 サーバよりも多い場合にしかチェックされません。バージョン 2 サーバの方が多いと、バージョン 2 サーバしか選択されません。

障害時回避機能を指定していると、この優先順位はマウント時に 1 回、マウントするサーバを選択するときにチェックされ、その後は選択されたサーバが使用できなくなるたびにチェックされます。複数位置を指定しておくと、個々のサーバが一時的にファイルシステムをエクスポートできないときに便利です。

多くのサブネットを持つ大規模なネットワークでは、この機能は特に便利です。autofs は最も近いサーバを選択するため、NFS のネットワークトラフィックをローカルネットワークセグメントに制限します。複数のネットワークインタフェースを持つサーバの場合は、それぞれが別々のサーバであるとみなして、各ネットワークインタフェースに対応付けられているホスト名を指定します。autofs はそのクライアントに一番近いインタフェースを選択します。

autofs と重み付け

距離のレベルが同じサーバから 1 つを選択するために、autofs マップに重み付けの値を追加することができます。たとえば次のようにします。


/usr/man -ro oak,rose(1),willow(2):/usr/man

括弧内の数値が重み付けを表します。重み付けのないサーバの値はゼロです (選択される可能性が最高です)。重み付けの値が大きいほど、そのサーバが選択される可能性は低くなります。


注 -

重み付けは、サーバの選択に関係する要素の中で最も小さい影響力しかありません。ネットワーク上の距離が同じサーバの間で選択を行う場合に考慮されるだけです。