この章では、NFS サービスの設定、共有する新規ファイルシステムの追加、ファイルシステムのマウントなど、NFS の管理作業の実行方法について説明します。また、Secure NFS システムおよび WebNFS の機能の使用方法についても説明します。章の最後では障害追跡の手順を説明し、NFS のいくつかのエラーメッセージとその意味を示します。
NFS 管理者の責任は、サイトの要求やネットワーク上に存在するコンピュータの役割によって変わります。管理者がローカルネットワークのコンピュータすべてに責任を持つこともありえます。そのような場合は、以下の設定事項について判断する必要があります。
サーバー専用のコンピュータを置く場合、そのコンピュータの決定
サーバーとクライアントの両方として動作するコンピュータの決定
クライアントとしてのみ動作するコンピュータの決定
設定が完了したサーバーの保守には、以下の作業が必要です。
ファイルシステムの共有開始と共有解除
管理ファイルを修正し、コンピュータが共有したり、自動的にマウントしたファイルシステムのリストを更新したりすること
ネットワークの状態のチェック
NFS に関連した問題の診断と解決
autofs のマップの設定
コンピュータは、サーバーとクライアントのどちらにもなれることに注意してください。ローカルファイルシステムをリモートコンピュータと共有したり、リモートファイルシステムをマウントしたりできます。
NFS 環境でファイルシステムを共有することにより、サーバーのファイルシステムにアクセスできるようになります。共有するファイルシステムは、share コマンドや /etc/dfs/dfstab ファイルに指定します。
/etc/dfs/dfstab ファイルの項目は、NFS サーバーオペレーションを起動したときに自動的に共有されます。同じファイルシステムを定期的に共有する必要がある場合は、自動共有を設定しなければなりません。たとえばサーバーがホームディレクトリをサポートしている場合、ホームディレクトリを常に使用できるようにしておく必要があります。ファイルシステムの共有はほとんどが自動的に行われます。共有を手動で実行するのは、テストまたは障害追跡の場合だけです。
dfstab ファイルには、サーバーがクライアントと共有しているすべてのファイルシステムがリストされています。このファイルを使用して、ファイルシステムをマウントできるクライアントを制御します。dfstab ファイルを変更して、ファイルシステムを追加または削除したり、共有方法を変更したりできます。その場合は、vi などのサポートされているテキストエディタを使って dfstab ファイルを編集します。コンピュータが次に実行レベル 3 に入ったときに、システムが更新された dfstab を読み、ファイルシステムの共有方法が自動的に判断されます。
dfstab ファイルの各行は、share コマンドで構成されています。その share コマンドは、コマンド行プロンプトに入力してファイルシステムを共有するのと同じコマンドです。share コマンドは、/usr/sbin に保存されています。
表 15-1 ファイルシステムの共有 (作業マップ)
作業 |
説明 |
参照先 |
---|---|---|
自動ファイルシステムの共有を確立する | サーバーのリブート時、ファイルシステムが自動的に共有されるようにサーバーを設定する手順 | 「ファイルシステム自動共有を設定する方法」 |
WebNFS を有効にする | ユーザーが WebNFS でファイルにアクセスできるようにサーバーを設定する手順 | 「WebNFS アクセスを有効にする方法」 |
NFS サーバーログを有効にする | NFS ログが選択したファイルシステム上で動作するようにサーバーを設定する手順 | 「NFS サーバーログを有効にする方法」 |
スーパーユーザー、またはそれと同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
共有する対象の各ファイルシステムに関してエントリを追加します。
/etc/dfs/dfstab を編集し、自動的に共有する各ファイルシステムのファイルにエントリを 1 つ追加します。各エントリは、ファイル中に 1 行で記述する必要があり、次のような構文を使用します。
share [-F nfs] [-o specific-options] [-d description] pathname |
/etc/dfs/dfstab ファイルについては、dfstab(4) のマニュアルページを、全オプションのリストについては、share_nfs(1M) のマニュアルページを参照してください。
NFS サービスがサーバー上で動作していることを確認します。
share コマンドまたは share コマンドセットをはじめて実行する場合、NFS サービスが動作していないことがあります。次のコマンドを使用して、NFS デーモンのどれかが動作していることをチェックします。
# pgrep nfsd 318 |
この例では、318 は nfsd のプロセス ID です。 ID が表示されない場合は、サービスが動作していないことを意味します。 次に、mountd が動作していることをチェックします。
(省略可能) NFS サービスを起動します。
前の手順を実行しても nfsd のプロセス ID が表示されない場合は、次のコマンドを使用して、NFS サービスを起動します。
# /etc/init.d/nfs.server start |
このコマンドを実行すると、NFS サービスがサーバーで実行されます。リブート時にサーバーが実行レベル 3 であるときには、NFS サービスが自動的に再起動されます。
(省略可能) ファイルシステムを共有します。
エントリを /etc/dfs/dfstab に追加したあと、システムをリブートするか、shareall コマンドを使用して、ファイルシステムを共有可能にできます。NFS サービスを起動したすぐ後は、このコマンドはスクリプトにより実行されているため、実行する必要はありません。
# shareall |
情報が正しいことを確認します。
share コマンドを実行し、適切なオプションが表示されていることを確認します。
# share - /export/share/man ro "" - /usr/src rw=eng "" - /export/ftp ro,public "" |
次の手順は、サーバー上で共有化したファイルシステムにクライアントがアクセスできるよう autofs マップを設定する手順です。「autofs 管理作業の概要」 を参照してください。
Solaris 2.6 から、デフォルトでは、NFS のマウントが利用可能なファイルシステムはすべて、WebNFS アクセスも自動的に利用できます。この手順を使用する必要があるのは、次のいずれかの場合だけです。
サーバー上での NFS マウントを許可しても、WebNFS アクセスが許可されない場合
public オプションを使用して、公共ファイルハンドルをリセットし NFS URL を短くする場合
index オプションを使用して、特定の html ファイルを強制的に読み込む場合
WebNFS サービスを起動する際の注意事項については、「WebNFS アクセスの計画」 を参照してください。
スーパーユーザー、またはそれと同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
WebNFS サービスを使用して、共有する各ファイルシステムのエントリを追加します。
/etc/dfs/dfstab を編集して、各ファイルシステムのファイルにエントリを 1 つ追加します。次の例の public タグおよび index タグは省略できます。
share -F nfs -o ro,public,index=index.html /export/ftp |
/etc/dfs/dfstab ファイルについては、dfstab(4) のマニュアルページを、全オプションのリストについては、share_nfs(1M) のマニュアルページを参照してください。
NFS サービスがサーバー上で動作していることを確認します。
share コマンドまたは share コマンドセットをはじめて実行する場合、NFS デーモンが動作していないことがあります。次のコマンドを使用して、いずれかの NFS デーモンが動作していることをチェックします。
# pgrep nfsd 318 |
この例では、318 は nfsd のプロセス ID です。 ID が表示されない場合は、サービスが動作していないことを意味します。 次に、mountd が動作していることをチェックします。
(省略可能) NFS サービスを起動します。
前の手順を実行しても nfsd のプロセス ID が表示されない場合は、次のコマンドを使用して、NFS サービスを起動します。
# /etc/init.d/nfs.server start |
このコマンドを実行すると、NFS サービスがサーバーで実行されます。ブート時にサーバーが実行レベル 3 になったときには、NFS サービスが自動的に再起動されます。
(省略可能) ファイルシステムを共有します。
エントリを /etc/dfs/dfstab に追加したあと、システムをリブートするか、shareall コマンドを使用して、ファイルシステムを共有可能にできます。NFS サービスを起動したすぐ後は、このコマンドはスクリプトにより実行されているため、実行する必要はありません。
# shareall |
情報が正しいことを確認します。
share コマンドを実行し、適切なオプションが表示されていることを確認します。
# share - /export/share/man ro "" - /usr/src rw=eng "" - /export/ftp ro,public,index=index.html "" |
スーパーユーザー、またはそれと同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
(省略可能) ファイルシステム構成の設定を変更します。
/etc/nfs/nfslog.conf で、global タグに関連するデータを変更してすべてのファイルシステムについてデフォルトの設定を編集するか、このファイルシステムに新しいタグを追加することができます。これらの変更が必要でない場合には、このファイルを変更する必要はありません。/etc/nfs/nfslog.conf の書式については、nfslog.conf(4) を参照してください。
NFS サーバーログを使用して、共有する各ファイルシステムについてエントリを追加します。
/etc/dfs/dfstab を編集し、NFS サーバー記録を有効にするファイルシステムについてエントリを 1 つ追加します。log=tag オプションとともに使用するタグは、/etc/nfs/nfslog.conf にも記述する必要があります。次の例では、global タグ内のデフォルト設定を使用しています。
share -F nfs -o ro,log=global /export/ftp |
/etc/dfs/dfstab ファイルについては、dfstab(4) のマニュアルページを、全オプションのリストについては、share_nfs(1M) のマニュアルページを参照してください。
NFS サービスがサーバー上で動作していることを確認します。
share コマンドまたは share コマンドセットをはじめて実行する場合、NFS デーモンが動作していないことがあります。次のコマンドを使用して、NFS デーモンのどれかが動作していることをチェックします。
# pgrep nfsd 318 |
この例では、318 は nfsd のプロセス ID です。 ID が表示されない場合は、サービスが動作していないことを意味します。 次に、mountd が動作していることをチェックします。
(省略可能) NFS サービスを起動します。
前の手順を実行しても nfsd のプロセス ID が表示されない場合は、次のコマンドを使用して、NFS サービスを起動します。
# /etc/init.d/nfs.server start |
このコマンドを実行すると、NFS サービスがサーバーで実行されます。ブート時にサーバーが実行レベル 3 になったときには、NFS サービスが自動的に再起動されます。
(省略可能) ファイルシステムを共有します。
エントリを /etc/dfs/dfstab に追加したあと、システムをリブートするか、shareall コマンドを使用して、ファイルシステムを共有可能にできます。NFS サービスを起動したすぐ後は、このコマンドはスクリプトにより実行されているため、実行する必要はありません。
# shareall |
情報が正しいことを確認します。
share コマンドを実行し、適切なオプションが表示されていることを確認します。
# share - /export/share/man ro "" - /usr/src rw=eng "" - /export/ftp ro,log=global "" |
(省略可能) NFS ログデーモン nfslogd がすでに実行されていなければ、起動します。
nfs.server スクリプトを使用して NFS デーモンの再起動をすると、nfslog.conf ファイルが存在している場合、デーモンが起動されます。それ以外の場合は、サーバーのリブート時にコマンドが自動的に再起動されるように、一度手動でコマンドを実行してファイルを作成する必要があります。
# /usr/lib/nfs/nfslogd |
ファイルシステムをマウントするには、いくつかの方法があります。システムを起動するときに自動的にマウントされるようにするか、コマンド行から必要に応じてマウントするか、オートマウンタを使用します。オートマウンタには、ブート時のマウントやコマンド行からのマウントに比較していくつもの利点がありますが、状況によってこの 3 つの方法を組み合わせる必要があります。このような 3 つのファイルシステムのマウント方法に加え、ファイルシステムのマウント時に使用するオプションに応じて、プロセスを有効または無効にする方法がいくつかあります。ファイルシステムのマウントに関するすべての作業のリストについては、次の表を参照してください。
表 15-2 ファイルシステムのマウント (作業マップ)
作業 |
説明 |
参照先 |
---|---|---|
ブート時にファイルシステムをマウントする | システムがリブートされるときに必ずファイルシステムがマウントされるようにする手順 | 「ブート時のファイルシステムのマウント方法」 |
コマンドを使用してファイルシステムをマウントする | システムの動作時にファイルシステムをマウントする手順。この手順はテストに有効 | 「コマンド行からファイルシステムをマウントする方法」 |
オートマウンタによりマウントする | コマンド行を使用せずに、要求に応じてファイルシステムにアクセスする手順 | 「オートマウンタによるマウント」 |
大規模ファイルを避ける | ファイルシステム上に大規模ファイルが作成されないようにする手順 | 「NFS サーバー上で大規模ファイルを無効にする方法」 |
クライアント側フェイルオーバーを開始する | サーバーの不良時、動作中のファイルシステムへの自動切り換えを有効にする手順 | 「クライアント側フェイルオーバーを使用する方法」 |
クライアントに対するマウントアクセスを無効にする | 任意のクライアントがリモートシステムにアクセスする機能を無効にする手順 | 「1 つのクライアントに対するマウントのアクセスを無効にする方法」 |
ファイアウォールを越えてファイルシステムへのアクセスを提供する | WebNFS プロトコルを使用してファイアウォールを越えてファイルシステムへのアクセスを許可する手順 | 「ファイアウォールを越えて NFS ファイルシステムをマウントする方法」 |
NFS URL を使用してファイルシステムをマウントする | NFS URL を使用してファイルシステムへのアクセスを許可する手順。このプロセスによって、MOUNT プロトコルを使用しないでファイルシステムへのアクセスが可能になる | 「NFS URL を使用して NFS ファイルシステムをマウントする方法」 |
autofs マップを使用するのではなく、ブート時にファイルシステムをマウントするには、次の手順に従います。この手順は、すべてのローカルファイルシステムで実行しなければなりません。すべてのクライアントに実行されるため、この手順をリモートファイルシステムで使用しないでください。
スーパーユーザー、またはそれと同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
ファイルシステムに関するエントリを /etc/vfstab に追加します。
/etc/vfstab ファイルのエントリ構文は、次のとおりです。
special fsckdev mountp fstype fsckpass mount-at-boot mntopts
詳細は、vfstab(4) のマニュアルページを参照してください。
NFS サーバーに NFS vfstab ファイルのエントリを作成するとデッドロックが発生する可能性があるため、作成しないでください。/etc/vfstab のエントリが確認されたのち、NFS サービスが起動します。その結果、互いにファイルシステムをマウントしている 2 つのサーバーが同時に停止した場合、それらのシステムはリブート時にハングアップすることがあります。
wasp サーバーの /var/mail ディレクトリをクライアントに /var/mail としてマウントするとします。それには、クライアント側で、ファイルシステムを /var/mail としてマウントし、読み出しと書き込みの両方ができるようにします。この場合は、以下の項目をクライアントの vfstab ファイルに追加します。
wasp:/var/mail - /var/mail nfs - yes rw |
新規マウントポイントをテストするために、コマンド行からファイルシステムをマウントすることがあります。このようにしてマウントすると、オートマウンタでアクセスできないファイルシステムに、一時的にアクセスすることができます。
スーパーユーザー、またはそれと同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
ファイルシステムをマウントします。
# mount -F nfs -o ro bee:/export/share/local /mnt |
上の例では、bee サーバーの /export/share/local ファイルシステムが、ローカルシステムの /mnt に読み取り専用でマウントされます。コマンド行からこのようにマウントすることにより、ファイルシステムを一時的に表示することができます。umount を実行するかローカルホストをリブートすると、このマウントは解除されます。
Solaris 2.6 およびそれ以降に出たパッチに置き換えられた mount コマンドでは、無効なオプションを指定しても警告されません。解釈できないオプションがあると無視されるだけです。予想外の結果が生じるのを避けるために、使用するオプションはすべて確認してください。
「autofs 管理作業の概要」では、オートマウンタによるマウントの確立とサポートについて詳細に説明します。通常のシステムに変更を加えることなく、リモートファイルシステムが /net マウントポイントでアクセスできるようになります。前の例のように /export/share/local ファイルシステムをマウントする場合、次の内容を入力するだけです。
% cd /net/bee/export/share/local |
オートマウンタでは、すべてのユーザーがファイルシステムをマウントできるので、root としてアクセスする必要はありません。またファイルシステムのマウントを自動的に解除できるので、作業の終了後、ファイルシステムのマウントを解除する必要はありません。
2G バイトを超えるファイルを処理できないクライアントをサポートしているサーバーについては、大規模ファイルを作成する機能を無効にしておく必要があります。
Solaris 2.6 より前の動作環境では、大規模ファイルは使用できません。クライアントが大規模ファイルにアクセスする必要がある場合には、NFS サーバーのクライアントが Solaris 2.6 以降のリリースで動作していることを確認してください。
スーパーユーザー、またはそれと同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
ファイルシステム上に大規模ファイルが存在していないことを確認してください。
次の例は、大規模ファイルを検索するためのコマンドです。
# cd /export/home1 # find . -xdev -size +2000000 -exec ls -l {} \; |
システム上に大規模ファイルが存在する場合には、削除するか、他のファイルシステムに移動する必要があります。
ファイルシステムをアンマウントします。
# umount /export/home1 |
ファイルシステムがマウントされている場合は、largefiles を使ってファイルシステムをリセットします。
fsck は、ファイルシステム上に大規模ファイルが存在しない場合に、ファイルシステムの状態をリセットします。
# fsck /export/home1 |
nolargefiles を使用して、ファイルシステムをマウントします。
# mount -F ufs -o nolargefiles /export/home1 |
コマンド行からマウントすることができますが、オプションをさらに固定的にするには、/etc/vfstab に次のようなエントリを追加してください。
/dev/dsk/c0t3d0s1 /dev/rdsk/c0t3d0s1 /export/home1 ufs 2 yes nolargefiles |
スーパーユーザー、またはそれと同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
NFS クライアント上で、ro オプションを使用してファイルシステムをマウントします。
コマンド行からも、オートマウンタを使用しても、または /etc/vfstab ファイルに次のようなエントリを追加することによってもマウントできます。
bee,wasp:/export/share/local - /usr/local nfs - no -o ro |
この構文は古いバージョンのオートマウンタでも受け入れられていましたが、ファイルシステムはマウントされてもフェイルオーバー機能は使用できなかったため、サーバーが選択されるだけでした。
異なるバージョンの NFS プロトコルを実行しているサーバーを、コマンド行や vfstab のエントリに混在させないでください。NFS バージョン 2 プロトコルとバージョン 3 プロトコルをサポートしているサーバーを混在して使用できるのは、autofs を使用する場合だけです。autofs では、バージョン 2 またはバージョン 3 のサーバーの最適なサブセットが使用されます。
スーパーユーザー、またはそれと同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
/etc/dfs/dfstab にエントリを追加します。
最初の例では、rose という名称のホストを除き、eng ネットグループ内のすべてのクライアントへのマウントアクセスを許可しています。2 つ目の例では、rose を除き、eng.sun.com DNS ドメイン内にあるすべてのクライアントへのマウントアクセスを許可しています。
share -F nfs -o ro=-rose:eng /export/share/man share -F nfs -o ro=-rose:.eng.example.com /export/share/man |
アクセスリストに関する補足的な情報については、「share コマンドを使ってアクセスリストを設定する」を参照してください。/etc/dfs/dfstab については、dfstab(4) のマニュアルページを参照してください。
ファイルシステムを共有します。
/etc/dfs/dfstab への変更は、このファイルシステムがもう 1 度共有されるかサーバーがリブートされるまでは NFS サーバーに反映されません。
# shareall |
スーパーユーザー、またはそれと同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
次のコマンドを使用して、ファイルシステムを手動でマウントします。
# mount -F nfs -o public bee:/export/share/local /mnt |
この例では、/export/share/local というファイルシステムは、公共ファイルハンドルを使ってローカルクライアントにマウントしています。標準のパス名の代わりに、NFS URL を使用することができます。ただし bee サーバーで公共ファイルハンドルがサポートされていないと、マウント操作は失敗します。
この手順では、NFS サーバーのファイルシステムを public オプションで共有する必要があります。また、クライアントとサーバー間のファイアウォールでは、ポート 2049 で TCP 接続できるようにする必要があります。Solaris 2.6 から、共有しているすべてのファイルシステムに、公共ファイルハンドルでアクセスできます。そのため、デフォルトでは、public オプションが適用されています。
スーパーユーザー、またはそれと同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
次のコマンドを使用して、ファイルシステムを手動でマウントします。
# mount -F nfs nfs://bee:3000/export/share/local /mnt |
この例では、bee というサーバーの /export/share/local というファイルシステムが、NFS ポート番号 3000 を使ってマウントされます。ポート番号は指定しなくてもかまいません。その場合、デフォルトの NFS ポート番号である 2049 が使用されます。NFS URL に、public オプションを含めるかどうかを選択できます。public オプションを指定しない場合、サーバーが公共ファイルハンドルをサポートしていなければ、MOUNT プロトコルが使用されます。public オプションを指定すると、必ず公共ファイルハンドルを使用するように指定され、公共ファイルハンドルがサポートされていないとマウントは失敗します。
この節では、NFS サービスの初期化や使用に必要な作業をいくつか説明します。
表 15-3 NFS サービス (作業マップ)
作業 |
説明 |
参照先 |
---|---|---|
NFS サーバーを起動する | NFS サービスが自動的に起動されていない場合に、NFS サービスを起動する手順 | 「NFS サービスの起動方法」 |
NFS サーバーを停止する | NFS サービスを停止する手順。通常は、サービスを停止する必要はない | 「NFS サービスの停止方法」 |
オートマウンタを起動する | オートマウンタを起動する手順。オートマウンタマップが変更された場合、この手順が必要 | 「オートマウンタの起動方法」 |
オートマウンタを停止する | オートマウンタを停止する手順。オートマウンタマップが変更された場合、この手順が必要 | 「オートマウンタの停止方法」 |
スーパーユーザー、またはそれと同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
NFS サービスデーモンを有効にします。
# /etc/init.d/nfs.server start |
/etc/dfs/dfstab にエントリがあると、このコマンドはデーモンを起動します。
スーパーユーザー、またはそれと同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
NFS サービスデーモンを無効にします。
# /etc/init.d/nfs.server stop |
スーパーユーザー、またはそれと同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
autofs デーモンを有効にします。
# /etc/init.d/autofs start |
スーパーユーザー、またはそれと同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
autofs デーモンを無効にします。
# /etc/init.d/autofs stop |
Secure NFS システムを使用するには、自分が責任を持つすべてのコンピュータにドメイン名が必要です。「ドメイン」とは管理上のエンティティであり、通常、大きなネットワークに参加する複数のコンピュータから構成されます。ネームサービスを実行している場合、そのドメインに対してネームサービスを設定しなければなりません。『Solaris のシステム管理 (ネーミングとディレクトリサービス : FNS、NIS+ 編)』 を参照してください。
Diffie-Hellman 認証を使用するように、Secure NFS 環境を設定できます。この認証サービスについては、『Solaris のシステム管理 (セキュリティサービス)』の「認証サービスの使用 (手順)」で説明しています。
NFS サービスでは、Kerberos バージョン 5 認証もサポートされています。Kerberos サービスについては、『Solaris のシステム管理 (セキュリティサービス)』の「SEAM について」で説明しています。
ドメインにドメイン名を割り当て、そのドメイン名をドメイン内の各コンピュータに知らせます。
NIS+ をネームサービスとして使用している場合は、『Solaris のシステム管理 (ネーミングとディレクトリサービス : FNS、NIS+ 編)』を参照してください。
newkey コマンドまたは nisaddcred コマンドを使用して、クライアントのユーザーの公開鍵と秘密鍵を設定します。chkey コマンドを使用して、各ユーザーに独自の Secure RPC パスワードを設定してもらいます。
これらのコマンドについての詳細は、newkey(1M)、nisaddcred(1M)、および chkey(1) のマニュアルページを参照してください。
ネームサービスが応答していることを確認します。NIS+ を実行している場合は、以下を入力してください。
# nisping -u Last updates for directory eng.acme.com. : Master server is eng-master.acme.com. Last update occurred at Mon Jun 5 11:16:10 1995 Replica server is eng1-replica-replica-58.acme.com. Last Update seen was Mon Jun 5 11:16:10 1995 |
NIS を実行している場合は、ypbind デーモンが動作していることを確認してください。
keyserv デーモン (キーサーバー) を確認します。
次のコマンドを入力します。
# ps -ef | grep keyserv root 100 1 16 Apr 11 ? 0:00 /usr/sbin/keyserv root 2215 2211 5 09:57:28 pts/0 0:00 grep keyserv |
keyserv デーモンが動作していない場合は、次の内容を入力してキーサーバーを起動します。
# /usr/sbin/keyserv |
通常、ログインパスワードはネットワークパスワードと同じです。この場合、keylogin は不要です。ログインパスワードとネットワークパスワードが異なる場合、ユーザーはログインしてから keylogin を実行しなければなりません。また、keylogin -r を root として実行し、復号化した秘密鍵を /etc/.rootkey に保存しなければなりません。
keylogin -r は、root の秘密鍵が変更されたか、/etc/.rootkey が損失した場合に、実行する必要があります。
ファイルシステムに対するマウントオプションを更新します。
/etc/dfs/dfstab ファイルを編集し、任意のエントリ (Diffie-Hellman 認証) に sec=dh オプションを追加します。
share -F nfs -o sec=dh /export/home |
/etc/dfs/dfstab については、dfstab(4) のマニュアルページを参照してください。
ファイルシステムに対するオートマウンタマップを更新します。
auto_master
データを編集し、任意のエントリ (Diffie-Hellman 認証) 内にマウントオプションとして sec=dh を含めます。
/home auto_home -nosuid,sec=dh |
Solaris 2.5 以前のリリースでは、その機能が制限されています。クライアントが、共有されているファイルシステムと同程度のセキュリティモードでマウントしない場合、ユーザーは、そのユーザー自身ではなく、nobody ユーザーとしてのアクセス権を持つことになります。Solaris 2.5 以降の NFS バージョン 2 では、セキュリティモードが一致しないと、share コマンド行に -sec=none が指定されていないかぎり、NFS サーバーによってアクセスが拒否されます。NFS のバージョン 3 では、セキュリティ保護されていることを示すモードが NFS サーバーから引き継がれるので、クライアントが sec=dh を指定する必要はありません。ユーザーは、そのユーザー自身としてファイルにアクセスできます。
コンピュータを設置し直したり、移設したり、アップグレードしたりするときに、新しい鍵を設定せず、root 用の鍵も変更しない場合は、必ず /etc/.rootkey を保存してください。 /etc/.rootkey を削除するには、通常、次のコマンドを入力します。
# keylogin -r |
この節では、WebNFS システムを管理する方法について説明します。次に示すのは、関連する作業の一覧です。
表 15-4 WebNFS 管理 (作業マップ)
作業 |
説明 |
参照先 |
---|---|---|
WebNFS に関する計画を作成する | WebNFS サービスを有効にする前に考慮する項目 | 「WebNFS アクセスの計画」 |
WebNFS を有効にする | WebNFS プロトコルを使用して NFS ファイルシステムのマウントを有効にする手順 | 「WebNFS アクセスを有効にする方法」 |
ファイアウォール経由で WebNFS を有効にする | WebNFS プロトコルを使用して、ファイアウォール経由でファイルへのアクセスを許可する手順 | 「ファイアウォール経由で WebNFS アクセスを有効にする方法」 |
NFS URL を使ってブラウズする | Web ブラウザ内での NFS URL の使用についての説明 | 「NFS URL を使ってブラウズする方法」 |
autofs で公共ファイルハンドルを使用する | オートマウンタでファイルシステムをマウントする場合に、公共ファイルハンドルの使用を強制するための手順 | 「autofs で公共ファイルハンドルを使用する方法」 |
autofs で NFS URL を使用する | オートマウンタマップに NFS URL を追加するための手順 | 「autofs で NFS URL を使用する方法」 |
ファイアウォールを越えてファイルシステムにアクセスを提供する | WebNFS プロトコルでファイアウォールを越えてファイルシステムへのアクセスを許可する手順 | 「ファイアウォールを越えて NFS ファイルシステムをマウントする方法」 |
NFS URL を使ってファイルシステムをマウントする | NFS URL を使ってファイルシステムへのアクセスを許可する手順。このプロセスによって、MOUNT プロトコルを使用しないファイルシステムへのアクセスが可能になる | 「NFS URL を使用して NFS ファイルシステムをマウントする方法」 |
WebNFS の機能を使用するには、まずアプリケーションを実行して NFS URL (nfs://server/path など) を読み込む必要があります。次に、WebNFS アクセスのためにエクスポートするファイルシステムを選択します。アプリケーションが Web ブラウザの場合は、Web サーバーの文書のルートがよく使用されます。WebNFS アクセスのためにエクスポートするファイルシステムを選択するときは、次の事項を検討する必要があります。
各サーバーには公共ファイルハンドルが 1 つずつあり、このハンドルはデフォルトではサーバーのルートファイルシステムに結び付けられています。NFS URL に示されたパスは、この公共ファイルハンドルが結び付けられているディレクトリからの相対パスとして評価されます。その結果としてパスが示す先のファイルまたはディレクトリが、エクスポートされたファイルシステムの中にあると、サーバーによってアクセスが実現されます。share コマンドの public オプションを使用すると、エクスポートされる特定のディレクトリにこの公開ファイルハンドルを結び付けることができます。このオプションを使用すると、URL はサーバーのルートファイルシステムではなく公共ファイルシステムからの相対パスになります。ルートファイルシステムを共有しないと、ルートファイルシステムへの Web アクセスはできません。
WebNFS 環境では、すでにマウント権限を持っているユーザーはファイルシステムが public オプションを使ってエクスポートされているかどうかに関係なく、ブラウザからファイルにアクセスできます。ユーザーは NFS の設定によってファイルへのアクセス権を持っているため、ブラウザからのアクセスを許すことによって新たにセキュリティが損なわれる恐れはありません。ファイルシステムをマウントできないユーザーは、public オプションを使ってファイルシステムを共有するだけで、WebNFS アクセスを使用できるようになります。
すでに公開されているファイルシステムは、public オプションを使用するのに適しています。たとえば、ftp アーカイブの最上位のディレクトリや Web サイトのメイン URL ディレクトリなどです。
share コマンドで index オプションを使用すると、NFS URL がアクセスされたときにディレクトリがリストされるのではなく HTML ファイルが読み込まれます。
ファイルシステムを選択したらファイルを確認し、必要に応じてファイルやディレクトリの表示を制限するようにアクセス権を設定します。アクセス権は、共有される NFS ファイルシステムに合わせて設定します。多くのサイトでは、ディレクトリに対しては 755、ファイルに対しては 644 が適切なアクセスレベルです。
また、NFS と HTTP URL の両方を使用して 1 つの Web サイトにアクセスする場合は、その他の事項も検討する必要があります。これについては、「Web ブラウザの使用と比較した場合の WebNFS の制約」で説明します。
ブラウザが WebNFS サービスをサポートしている場合は、次のような NFS URL にアクセスできます。
nfs://server<:port>/path |
server |
ファイルサーバー名 |
port |
使用するポート番号 (デフォルト値は 2049) |
path |
公共ファイルハンドラまたはルートファイルシステムに関連するファイルへのパス |
ほとんどのブラウザでは、前のトランザクションで使用した URL サービスのタイプ (NFS や HTTP など) を次のトランザクションでも使用します。例外は、異なるタイプのサービスを含む URL を読み込んだ場合は、前のトランザクションで使用した URL サービスのタイプが使われることがあります。NFS URL を使用した後に、HTTP URL に対する参照が読み込まれることがあります。その場合、次のページは、NFS プロトコルではなく HTTP プロトコルを使って読み込まれます。
ローカルのサブネットに属していないクライアントに対して WebNFS アクセスを有効にするには、ポート 2049 での TCP 接続を許可するようにファイアウォールを設定します。httpd に対してアクセスを許可するだけでは、NFS URL が使えるようにはなりません。
この節では、ユーザー自身の環境で遭遇する可能性のあるもっとも一般的な作業について説明します。各シナリオについて、ユーザーのクライアントで必要とする条件に最も適合するように autofs を設定するために推奨される手順も示します。
この節で説明する作業を実行するには、『Solaris のシステム管理 (ネーミングとディレクトリサービス : FNS、NIS+ 編)』を参照してください。
次の表に、autofs に関連する作業についての説明と参照箇所を示します。
表 15-5 autofs 管理 (作業マップ)
作業 |
説明 |
参照先 |
---|---|---|
autofs を起動する | システムをリブートすることなくオートマウントサービスを起動する | 「オートマウンタの起動方法」 |
autofs を停止する | 他のネットワークサービスを使用不可にすることなくオートマウントサービスを停止する | 「オートマウンタの停止方法」 |
autofs でファイルシステムにアクセスする | オートマウントサービスを使ってファイルシステムにアクセスする | 「オートマウンタによるマウント」 |
autofs マップを修正する | 他のマップをリストするために使用されるマスターマップの修正を行う手順 | 「マスターマップの修正方法」 |
| ほとんどのマップに対して使用される間接マップの修正を行う手順 | 「間接マップの修正方法」 |
| クライアント上のマウントポイントとサーバー間の直接の関係が必要な場合に使用される直接マップの修正を行う手順 | 「直接マップの修正方法」 |
非 NFS ファイルシステムにアクセスするために autofs マップを修正する | CD-ROM アプリケーション用のエントリで autofs マップを設定する手順 | 「autofs で CD-ROM アプリケーションにアクセスする」 |
| PC-DOS フロッピーディスク用のエントリで autofs マップの設定を行う手順 | 「autofs で PC-DOS データフロッピーディスクにアクセスする方法」 |
| autofs を使用して CasheFS ファイルシステムにアクセスする手順 | 「CasheFS を使用して NFS ファイルシステムにアクセスする方法」 |
/home を使用する | 共通の /home マップの設定方法の例 | 「/home の共通表示の設定」 |
| 複数のファイルシステムを参照する /home マップを設定する手順 | 「複数のホームディレクトリファイルシステムで /home を設定する方法」 |
新しい autofs マウントポイントを使用する | プロジェクト関連の autofs マップを設定する手順 | 「/ws 下のプロジェクト関連ファイルを統合する方法」 |
| 異なるクライアントアーキテクチャをサポートする autofs マップを設定する手順 | 「共有名前空間にアクセスするために異なるアーキテクチャを設定する方法」 |
| 異なるオペレーティングシステムをサポートする autofs マップを設定する手順 | 「非互換のクライアントオペレーティングシステムのバージョンをサポートする方法」 |
autofs でファイルシステムを複製する | フェイルオーバーしたファイルシステムへのアクセスを提供する | 「複数のサーバーを通じて共用ファイルを複製する方法」 |
autofs でセキュリティ制限を使用する | ファイルへのリモート root アクセスを制限する一方でファイルシステムへのアクセスを提供する | 「autofs セキュリティ制限を適用する方法」 |
autofs で公共ファイルハンドルを使用する | ファイルシステムのマウント時に公共ファイルハンドルの使用を強制する | 「autofs で公共ファイルハンドルを使用する方法」 |
autofs で NFS URL を使用する | オートマウンタが使用できるように、NFS URL を追加する | 「autofs で NFS URL を使用する方法」 |
autofs のブラウズ機能を無効にする | autofs マウントポイントが 1 つのクライアント上で自動的に生成されないように、ブラウズ機能を無効にする手順 | 「1 つの NFS クライアントの autofs ブラウズ機能を完全に無効にする方法」 |
| autofs マウントポイントがすべてのクライアント上で自動的に生成されないように、ブラウズ機能を無効にする手順 | 「すべてのクライアントの autofs ブラウズ機能を無効にする方法」 |
| 特定の autofs マウントポイントがある 1 つのクライアント上で自動的に生成されないように、ブラウズ機能を無効にする手順 | 「選択したファイルシステムの autofs ブラウズ機能を無効にする方法」 |
表 15-6 は、autofs マップの管理時に認識しておく必要のある事項について示したものです。選択したマップのタイプおよびネームサービスにより、autofs マップへの変更を行うために使用する必要があるメカニズムが異なります。
表 15-6 に、マップのタイプとその使用方法を示します。
表 15-6 autofs マップのタイプとその使用方法
マップのタイプ |
使用方法 |
---|---|
ディレクトリをマップに関連付ける |
|
autofs を特定のファイルシステム向けにする |
|
autofs をリファレンス指向のファイルシステム向けにする |
表 15-7 は、ネームサービスに基づいて autofs 環境に変更を加える方法を示したものです。
表 15-7 マップの保守
ネームサービス |
メソッド |
---|---|
ローカルファイル | |
NIS | |
NIS+ |
表 15-8 に、マップのタイプについて行なった修正に応じた automount コマンドを実行する場合を示します。たとえば、直接マップに対する追加または削除を行なった場合、ローカルシステム上で automount コマンドを実行し、変更が反映されるようにする必要があります。しかし、既存のエントリを修正した場合は、変更を反映するために、automount コマンドを実行する必要はありません。
表 15-8 automount コマンドを実行する場合
マップのタイプ |
automount を再実行するか否か |
|
---|---|---|
|
追加または削除 |
修正 |
Y |
Y |
|
Y |
N |
|
N |
N |
次の手順では、NIS+ をネームサービスとして使用している必要があります。
マップを変更する権限を持つユーザーとしてログインします。
nistbladm コマンドを使用して、マスターマップへの変更を行います。
『Solaris のシステム管理 (ネーミングとディレクトリサービス : FNS、NIS+ 編)』を参照してください。
各クライアントで、スーパーユーザーになるか、それと同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
マップを変更したことを他のユーザーに通知します。
他のユーザーがコンピュータ上でスーパーユーザーとして automount コマンドを実行できるように、通知が必要になります。
automount コマンドは、実行時にマスターマップから情報を収集します。
マップを変更する権限を持つユーザーとしてログインします。
nistbladm コマンドを使用して、間接マップへの変更を行います。
『Solaris のシステム管理 (ネーミングとディレクトリサービス : FNS、NIS+ 編)』を参照してください。
変更は、マップを次に使用する時、つまり次回のマウント実行時に反映されます。
マップを変更する権限を持つユーザーとしてログインします。
nistbladm コマンドを使用して、直接マップに対する変更点の追加または削除を行います。
『Solaris のシステム管理 (ネーミングとディレクトリサービス : FNS、NIS+ 編)』を参照してください。
マップを変更したことを他のユーザーに通知します。
他のユーザーがコンピュータ上でスーパーユーザーとして automount コマンドを実行できるように、通知が必要になります。
既存の直接マップエントリの内容の変更だけを行なった場合は、automount コマンドを実行する必要はありません。
たとえば、異なるサーバーから /usr/src ディレクトリがマウントされるように auto_direct マップを修正するとします。/usr/src がその時点でマウントされていない場合、/usr/src にアクセスするとすぐにその新しいエントリが反映されます。/usr/src がその時点でマウントされている場合、オートアンマウントが実行されるまで待ちます。その後、アクセスが可能になります。
直接マップを修正するには上記のような手順が必要であり、間接マップは直接マップよりもマウントテーブル内のスペースを必要としないので、可能であれば間接マップを使用してください。間接マップは構築が容易であり、コンピュータのファイルシステムへの要求が少なくて済みます。
/src 上にマウントされたローカルなディスクパーティションがあり、他のソースディレクトリのマウントにもその autofs サービスを使用する場合、問題が発生する可能性があります。マウントポイント /src を指定する場合、ユーザーがアクセスするたびに、NFS サービスが対象のローカルパーティションを隠すことになります。
たとえば /export/src などの他の場所に、パーティションをマウントする必要があります。その後、次のようなエントリを /etc/vfstab に含める必要があります。
/dev/dsk/d0t3d0s5 /dev/rdsk/c0t3d0s5 /export/src ufs 3 yes - |
このエントリは、auto_src にも必要です。
terra terra:/export/src |
terra はコンピュータ名です。
autofs は NFS ファイル以外のファイルもマウントすることができます。autofs は、フロッピーディスクや CD-ROM など、削除可能な媒体上のファイルをマウントします。通常は、ボリュームマネージャを使って削除可能な媒体上のファイルをマウントすることになります。次の例では、autofs を利用してこのマウントがどのように行われるかを示します。ボリュームマネージャと autofs は同時に動作することができないため、まずボリュームマネージャを終了してから次に示すエントリを使用する必要があります。
サーバーからファイルシステムのマウントを行う代わりに、ドライブに媒体を配置してマップから参照します。autofs を使用し非 NFS ファイルシステムにアクセスを行う場合は、次の手順を参照してください。
ボリュームマネージャを使用していない場合に、この手順を行なってください。
スーパーユーザー、またはそれと同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
autofs マップを更新します。
次のような CD-ROM のファイルシステム用のエントリを追加します。
hsfs -fstype=hsfs,ro :/dev/sr0 |
ボリュームマネージャを使用していない場合に、この手順を行なってください。
スーパーユーザー、またはそれと同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
autofs マップを更新します。
次のようなフロッピーディスクのファイルシステム用のエントリを追加します。
pcfs -fstype=pcfs :/dev/diskette |
キャッシュファイルシステム (CacheFS) は、汎用不揮発性キャッシュメカニズムで、小型で高速ローカルディスクを利用して、特定のファイルシステムのパフォーマンスを向上させます。
CacheFS を使ってローカルディスク上に NFS ファイルシステムからデータをキャッシュすることにより、NFS 環境のパフォーマンスを改善できます。
スーパーユーザー、またはそれと同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
cfsadmin コマンドを実行して、ローカルディスク上にキャッシュディレクトリを作成します。
# cfsadmin -c /var/cache |
任意のオートマウンタマップに cachefs エントリを追加します。
たとえば、次に示すエントリをマスターマップに追加して、すべてのディレクトリがキャッシュされます。
/home auto_home -fstype=cachefs,cachedir=/var/cache,backfstype=nfs |
以下のエントリを auto_home マップに追加すると、rich という名称のユーザーのホームディレクトリのキャッシュだけが行われます。
rich -fstype=cachefs,cachedir=/var/cache,backfstype=nfs dragon:/export/home1/rich |
後から検索されるマップ内のオプションは、先に検索されたマップ内のオプションを無効にします。そのため、最後に検出されたオプションが使用されます。前述の例では、マスターマップにリストされたオプションの中に変更の必要がある場合は、auto_home マップに追加された特定のエントリがそのマスターマップのオプションを含む必要だけがあります。
オートマウンタマップの設定方法はいくつかあります。次に、オートマウンタマップをカスタマイズして簡単に使用できるディレクトリ構造を実現する方法について詳細に説明します。
ネットワークユーザーすべてにとって理想的なのは、自分自身のホームディレクトリ、または他の人のホームディレクトリを /home の下に配置できるようにすることです。この表示方法は通常、クライアントでもサーバーでも、すべてのコンピュータを通じて共通です。
Solaris をインストールすると、常にマスターマップ /etc/auto_master もインストールされます。
# Master map for autofs # +auto_master /net -hosts -nosuid,nobrowse /home auto_home -nobrowse /xfn -xfn |
auto_home 用のマップも、/etc の下にインストールされます。
# Home directory map for autofs # +auto_home |
外部 auto_home マップに対する参照を除き、このマップは空になります。/home 下のディレクトリをすべてのコンピュータに対して共通にする場合、この /etc/auto_home マップは修正しないでください。すべてのホームディレクトリのエントリは、NIS または NIS+ のネームサービスファイルで表示されなくてはなりません。
ユーザーは、各ホームディレクトリから setuid 実行可能ファイルを実行することが許可されていません。この制限がないと、すべてのユーザーがすべてのコンピュータ上でスーパーユーザーの権限を持つことになります。
スーパーユーザー、またはそれと同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
/export/home の下にホームディレクトリパーティションをインストールします。
システムに複数のパーティションがある場合は、/export/home1、/export/home2 のように、別のディレクトリにそれぞれインストールを行います。
auto_home マップを作成して維持します。
新しいユーザーアカウントを作成する場合は、そのユーザーのホームディレクトリの場所を auto_home マップに入力します。マップのエントリは、次のように単純な形式にすることができます。
rusty dragon:/export/home1/& gwenda dragon:/export/home1/& charles sundog:/export/home2/& rich dragon:/export/home3/& |
マップキーを置換する & (アンパサンド) の使い方に注意してください。このアンパサンドは、次の例の 2 つ目の rusty の使用を省略した形式です。
rusty dragon:/export/home1/rusty |
auto_home マップを配置すると、ユーザーは、/home/user というパスを使用して、ユーザー自身のホームディレクトリを含むあらゆるホームディレクトリを参照できます。user はログイン名で、マップ内でのキーになります。すべてのホームディレクトリを共通に表示するしくみは、他のユーザーのコンピュータにログインする場合に便利です。autofs は、ユーザー自身のホームディレクトリをマウントします。同様に、他のコンピュータ上でリモートのウィンドウシステムクライアントを実行するとウィンドウシステムクライアントと同じ /home ディレクトリが表示されます。
この共通表示は、サーバーにも拡張されています。前の例を使用すれば、rusty がサーバー dragon にログインする場合、autofs は、/export/home1/rusty を /home/rusty にループバックマウントすることにより、ローカルディスクへの直接アクセスを提供します。
ユーザーは、各ホームディレクトリの実際の位置を意識する必要はありません。rusty がさらにディスクスペースを必要とし、rusty 自身のホームディレクトリを他のサーバーに再配置する必要がある場合には、auto_home マップ内の rusty のエントリを新しい場所を反映するように変更することだけが必要になります。他のユーザーは、/home/rusty パスを継続して使用することができます。
大きなソフトウェアの開発プロジェクトの管理者を想定してください。そこで、プロジェクト関連のファイルをすべて /ws というディレクトリの下で利用できるようにすると仮定します。このようなディレクトリは、そのサイトのすべてのワークステーションで共通である必要があります。
/ws ディレクトリに対するエントリを、サイトの NIS または NIS+ の auto_master マップに追加します。
/ws auto_ws -nosuid |
auto_ws マップが、/ws ディレクトリの内容を決定します。
-nosuid オプションを用心のために追加しておきます。
このオプションは、すべての作業空間に存在する可能性のある setuid プログラムをユーザーが実行できないようにします。
auto_ws マップにエントリを追加します。
auto_ws マップは、各エントリがサブプロジェクトを記述するように構成されています。最初の操作により、マップが次のようになります。
compiler alpha:/export/ws/& windows alpha:/export/ws/& files bravo:/export/ws/& drivers alpha:/export/ws/& man bravo:/export/ws/& tools delta:/export/ws/& |
各エントリの最後のアンパサンド (&) は、エントリキーを省略したものです。たとえば、最初のエントリは次のエントリと同じ意味です。
compiler alpha:/export/ws/compiler |
この最初の操作により、マップはシンプルなものになりますが、このマップでは不十分です。プロジェクトの調整者が、man エントリ内のドキュメントを各サブプロジェクトの下のサブディレクトリとして提供しようとしているとします。さらに、各サブプロジェクトは、ソフトウェアの複数のバージョンを記述するために、複数のサブディレクトリを必要とします。この場合、サーバー上のディスクパーティション全体に対して、これらのサブディレクトリをそれぞれ割り当てる必要があります。
次のように、マップ内のエントリを修正してください。
compiler \ /vers1.0 alpha:/export/ws/&/vers1.0 \ /vers2.0 bravo:/export/ws/&/vers2.0 \ /man bravo:/export/ws/&/man windows \ /vers1.0 alpha:/export/ws/&/vers1.0 \ /man bravo:/export/ws/&/man files \ /vers1.0 alpha:/export/ws/&/vers1.0 \ /vers2.0 bravo:/export/ws/&/vers2.0 \ /vers3.0 bravo:/export/ws/&/vers3.0 \ /man bravo:/export/ws/&/man drivers \ /vers1.0 alpha:/export/ws/&/vers1.0 \ /man bravo:/export/ws/&/man tools \ / delta:/export/ws/& |
現在のマップはかなり長くなっていますが、まだ 5 つのエントリを含んでいるだけです。各エントリは、複数のマウントがあるために長くなっています。たとえば、/ws/compiler に対する参照は、vers1.0、vers2.0、および man ディレクトリ用に 3 つのマウントを必要とします。各行の最後のバックスラッシュは、エントリが次の行まで続いていることを autofs に伝えるものです。実際、エントリは 1 つの長い行となっていますが、行ブレークやインデントのいくつかはエントリを読みやすくする目的で使用されています。tools ディレクトリには、すべてのサブプロジェクトに対するソフトウェア開発ツールが含まれているため、同じサブディレクトリ構造の対象とはなっていません。tools ディレクトリは単一のマウントのままです。
この配置は、システムの管理者に大きな柔軟性を提供します。ソフトウェアプロジェクトでは、非常に大きなディスクスペースを消費します。プロジェクトのすべての過程を通じて、さまざまなディスクパーティションを再配置し、拡張することになる可能性もあります。このような変更が auto_ws マップに反映される場合は、/ws 下のディレクトリ階層構造が変更されることもなく、ユーザーに対する通知の必要はありません。
サーバー alpha と bravo が同一の autofs マップを参照するため、それらのコンピュータにログインするすべてのユーザーは期待通りに /ws 名前空間を発見できます。このようなユーザーには、NFS マウントではなく、ループバックマウントを通じてのローカルファイルへの直接アクセスが提供されます。
表計算アプリケーションやワードプロセッサパッケージのようなローカルの実行可能ファイルやアプリケーションについて、共有名前空間を作成する必要があります。この名前空間のクライアントは、異なる実行可能フォーマットを必要とする複数の異なるワークステーションアーキテクチャを使用します。また、ワークステーションには、異なるリリースのオペレーシングシステムを使用するものもあります。
nistabladm コマンドで auto_local マップを作成します。
『Solaris のシステム管理 (ネーミングとディレクトリサービス : FNS、NIS+ 編)』を参照してください。
その名前空間に属するファイルとディレクトリを簡単に識別できるように、共有名前空間について、サイト固有の名称を 1 つ選択します。
たとえば、その名称として /usr/local を選択した場合、/usr/local/bin パスは明らかにこの名前空間の一部です。
ユーザーのコミュニティ識別を簡単にするため、autofs 間接マップを作成し、/usr/local にマウントします。NIS (または NIS+) の auto_master マップ内で、次のエントリを設定します。
/usr/local auto_local -ro |
なお、-ro マウントオプションは、クライアントがファイルやディレクトリのすべてに対して書き込みができないことを示します。
サーバー上の任意のディレクトリをエクスポートします。
auto_local マップ内に bin エントリを 1 つ含めます。
ディレクトリ構造は、次のようになります。
bin aa:/export/local/bin |
(省略可能) 異なるアーキテクチャのクライアントを処理するため、autofs CPU 変数を加えて、エントリの変更を行います。
bin aa:/export/local/bin/$CPU |
SPARC クライアント - 実行可能ファイルを /export/local/bin/sparc に配置する
IA クライアント - 実行可能ファイルを /export/local/bin/i386 に配置する
クライアントのオペレーティングシステムのタイプを決定する変数と、アーキテクチャタイプを結合します。
autofs OSREL 変数と CPU 変数を結合して、CPU タイプと OS リリースの両方を示す名前を作成することができます。
次のようなマップエントリを作成します。
bin aa:/export/local/bin/$CPU$OSREL |
バージョン 5.6 のオペレーティングシステムを動作させているクライアントについて、次のファイルシステムをエクスポートします。
SPARC クライアント - /export/local/bin/sparc5.6 をエクスポートする
IA クライアント - 実行可能ファイルを /export/local/bin/i3865.6 に配置する
読み取り専用の複製されたファイルシステムを共有する最良の方法は、フェイルオーバーの利用です。フェイルオーバーについての説明は、「クライアント側フェイルオーバー機能」を参照してください。
スーパーユーザー、またはそれと同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
autofs マップ内のエントリを修正します。
すべての複製サーバーのリストを、コンマ区切りのリストとして、次のように作成します。
bin aa,bb,cc,dd:/export/local/bin/$CPU |
autofs は、最も近いサーバーを選択します。サーバーが複数のネットワークインタフェースを持っている場合は、各インタフェースのリストを作成してください。autofs はクライアントに最も近接したインタフェースを選択し、NFS トラフィックの不必要なルーティングを避けるようにしています。
スーパーユーザー、またはそれと同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
NIS または NIS+ のネームサービス auto_master ファイル内に次のようなエントリを作成します。
/home auto_home -nosuid |
nosuid オプションは、setuid または setgid ビットを設定したファイルをユーザーが作成できないようにします。
このエントリは、汎用ローカルファイル /etc/auto_master 内の /home のエントリを無効にします (前の例を参照)。これは、+auto_master が、ファイル内の /home エントリより先に、外部のネームサービスマップを参照するためです。auto_home マップ内のエントリにマウントオプションがある場合、nosuid オプションは無効になります。そのため、auto_home マップ内でオプションを使用しないようにするか、nosuid オプションを各エントリに含める必要があります。
サーバー上の /home またはその下に、ホームディレクトリのディスクパーティションをマウントしないでください。
スーパーユーザー、またはそれと同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
/usr/local -ro,public bee:/export/share/local |
public オプションは、公共ハンドルの使用を強制します。NFS サーバーが公共ファイルハンドルをサポートしない場合、マウントは失敗します。
スーパーユーザー、またはそれと同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
/usr/local -ro nfs://bee/export/share/local |
サービスは、NFS サーバー上で公共ファイルハンドルの使用を試みますが、そのサーバーが公共ファイルハンドルをサポートしない場合、MOUNT プロトコルが使用されます。
Solaris 2.6 から、インストールされる /etc/auto_master のデフォルトバージョンには、/home と /net 用のエントリに追加された -nobrowse オプションが含まれます。さらに、アップグレード手順により、/home と /net のエントリが修正されていない場合は、-nobrowse オプションがそれらのエントリに追加されます。ただし、このような変更を手動で加えるか、あるいはインストール後にサイト固有の autofs マウントポイントに対するブラウズ機能をオフにすることが必要な場合もあります。
ブラウズ機能をオフにする方法はいくつかあります。automountd デーモンに対してコマンド行オプションを使用してブラウズ機能を無効にすると、そのクライアントに対する autofs ブラウズ機能は完全に無効になります。あるいは、NIS 名前空間または NIS+ 名前空間の autofs マップを使用して、すべてのクライアントにおける各マップエントリのブラウズ機能を無効にします。また、ネットワーク規模の名前空間を使用していない場合は、ローカルな autofs を使用して、各クライアントにおける各マップエントリのブラウズ機能を無効にすることができます。
NFS クライアント上で、スーパーユーザー、またはそれと同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
-n オプションを起動スクリプトに追加します。
root として、/etc/init.d/autofs スクリプトを編集して、autmountd デーモンを開始する行に -n オプションを次のように追加します。
/usr/lib/autofs/automountd -n \ < /dev/null> /dev/console 2>&1 # start daemon |
autofs サービスを再起動します。
# /etc/init.d/autofs stop # /etc/init.d/autofs start |
すべてのクライアントに対するブラウズ機能を無効にするには、NIS または NIS+ のようなネームサービスを使用する必要があります。それ以外の場合には、各クライアント上でオートマウンタマップを手動で編集する必要があります。この例では、/home ディレクトリのブラウズ機能が無効にされています。無効にする必要がある各間接 autofs ノードに対して、この手順を実行してください。
ネームサービス auto_master ファイル内の /home エントリに -nobrowse オプションを追加します。
/home auto_home -nobrowse |
すべてのクライアント上で、automount コマンドを実行します。
新規の動作は、クライアントシステム上で automount コマンドを実行した後、またはリブートした後に反映されます。
# /usr/sbin/automount |
この例では、/net ディレクトリのブラウズ機能を無効にします。/home または他の autofs マウントポイントにも、同じ手順を使用できます。
automount エントリが /etc/nsswitch.conf にあることを確認します。
優先するローカルファイルエントリについては、ネームサービススイッチファイル内のエントリがネームサービスの前に files をリストする必要があります。たとえば :
automount: files nisplus |
これは、標準的な Solaris にインストールされるデフォルトの構成です。
/etc/auto_master 内の +auto_master エントリの位置を確認します。
名前空間内のエントリに優先するローカルファイルへの追加については、+auto_master エントリが /net の下に移動されている必要があります。
# Master map for automounter # /net -hosts -nosuid /home auto_home /xfn -xfn +auto_master |
標準的な構成では、+auto_master エントリがファイルの先頭に配置されます。このように配置することにより、ローカルな変更が使用されなくなります。
/etc/auto_master ファイル内の /net エントリに -nobrowse オプションを追加します。
/net -hosts -nosuid,nobrowse |
すべてのクライアント上で、automount コマンドを実行します。
新規の動作は、クライアントシステム上で automount コマンドを実行した後、またはリブートした後に反映されます。
# /usr/sbin/automount |
NFS の問題を追跡するには、問題が発生する可能性があるのは主に、サーバー、クライアント、およびネットワークであることを覚えておいてください。 この節で説明するのは、個々の構成要素を切り離して、正常に動作しない部分を見つけ出そうというものです。リモートマウントを正常に実行するには、サーバー上で mountd と nfsd が動作している必要があります。
/etc/dfs/dfstab ファイルに NFS 共有エントリがある場合、mountd と nfsd はブート時に自動的に起動します。そのため、はじめて共有を設定する場合は、mountd および nfsd を手動で起動する必要があります。
デフォルトでは、すべてのマウントに -intr オプションが設定されます。プログラムが「server not responding」(サーバーが応答しません) というメッセージを出してハングした場合、これはキーボード割り込み (Ctrl-C) で終了できます。
ネットワークまたはサーバーに問題がある場合、ハードマウントされたリモートファイルにアクセスするプログラムの障害と、ソフトマウントされたリモートファイルにアクセスするプログラムの障害とは異なります。ハードマウントされたリモートファイルシステムの場合、クライアントのカーネルは、サーバーがふたたび応答するまで要求を再試行します。ソフトマウントされたリモートファイルシステムの場合、クライアントのシステムコールは、しばらく試行した後にエラーを返します。このエラーによって予想外のアプリケーションエラーやデータ破壊が発生する恐れがあるため、ソフトマウントは行わないでください。
ファイルシステムがハードマウントされていると、サーバーが応答に失敗した場合は、これにアクセスしようとするプログラムはハングします。この場合、NFS は次のメッセージをコンソールに表示します。
NFS server hostname not responding still trying |
サーバーが少し後に応答すると、次のメッセージがコンソールに表示されます。
NFS server hostname ok |
サーバーが応答しないような、ソフトマウントされたファイルシステムにアクセスしているプログラムは、次のメッセージを表示します。
NFS operation failed for server hostname: error # (error_message) |
読み取りと書き込みをするデータを持つファイルシステム、または実行可能ファイルを持つファイルシステムは、ソフトマウントしないでください。エラーが発生する可能性があります。アプリケーションがそのようなソフトエラーを無視すれば、書き込み可能なデータが破壊される恐れがあります。またマウントされた実行可能ファイルが正常にロードされず、動作も正常に行われない可能性があります。
NFS サービスがエラーになった場所を判断するには、いくつかの手順を踏まなければなりません。次の項目をチェックしてください。
クライアントがサーバーに到達できるかどうか
クライアントがサーバー上の NFS サービスを受けられるかどうか
NFS サービスがサーバー上で動作しているかどうか
上記の項目をチェックする過程で、ネームサービスやネットワークのハードウェアなど、ネットワークの他の部分が機能していないことが判明する場合があります。複数のネームサービスでのデバッグ手順については、『Solaris のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)』 で説明しています。また、上記の項目をチェックする過程で、クライアント側には問題がないことが判明することもあります。たとえば、作業領域のすべてのサブネットから、少なくとも 1 つの障害が発生したことが通知された場合などです。このような場合は、問題がサーバーかサーバー周辺のネットワークハードウェアで発生しているとみなし、クライアントではなく、サーバーでデバッグを開始することをお勧めします。
クライアントから NFS サーバーに到達できることを確認します。クライアントで次のコマンドを入力します。
% /usr/sbin/ping bee bee is alive |
コマンドを入力した結果、サーバーが動作していることがわかったら、NFS サーバーをリモートで確認します。「NFS サーバーをリモートで確認する方法」 を参照してください。
クライアントからサーバーに到達できない場合は、ローカルネームサービスが動作していることを確認します。
NIS+ クライアントで次のコマンドを入力します。
% /usr/lib/nis/nisping -u Last updates for directory eng.acme.com. : Master server is eng-master.acme.com. Last update occurred at Mon Jun 5 11:16:10 1995 Replica server is eng1-replica-58.acme.com. Last Update seen was Mon Jun 5 11:16:10 1995 |
ネームサービスが実行されている場合は、クライアントが正しいホスト情報を受け取るために次のように入力します。
% /usr/bin/getent hosts bee 129.144.83.117 bee.eng.acme.com |
ホスト情報に誤りがなく、クライアントからサーバーに接続できない場合は、別のクライアントから ping コマンドを実行します。
ping コマンドが失敗したら、「サーバーで NFS サービスを確認する方法」 を参照してください。
別のクライアントからサーバーに到達できる場合は、ping コマンドを使って元のクライアントとローカルネット上の他のシステムとの接続性を確認します。
エラーになる場合は、そのクライアントのネットワークソフトウェアの構成を確認します (/etc/netmasks、/etc/nsswitch.conf など)。
ソフトウェアに問題がない場合は、ネットワークハードウェアを確認します。
クライアントをネットワークの別の場所へ移動して確認します。
NFS サーバーで NFS サービスが実行されていることを、次のコマンドを入力して確認します。
% rpcinfo -s bee|egrep 'nfs|mountd' 100003 3,2 tcp,udp,tcp6,upd6 nfs superuser 100005 3,2,1 ticots,ticotsord,tcp,tcp6,ticlts,udp,upd6 mountd superuser |
デーモンが起動していない場合、「NFS サービスを再起動する方法」 を参照してください。
サーバーで nfsd プロセスが応答することを確認します。
クライアント上で、次のコマンドを入力し、サーバーからの UDP NFS 接続をテストします。
% /usr/bin/rpcinfo -u bee nfs program 100003 version 2 ready and waiting program 100003 version 3 ready and waiting |
サーバーが動作している場合、プログラムとバージョン番号が表示されます。-t オプションを使用すると、TCP 接続を検査できます。上記コマンドでエラーになる場合は、「サーバーで NFS サービスを確認する方法」 に進んでください。
サーバーで mountd が応答することを確認します。次のコマンドを入力します。
% /usr/bin/rpcinfo -u bee mountd program 100005 version 1 ready and waiting program 100005 version 2 ready and waiting program 100005 version 3 ready and waiting |
サーバーが動作している場合は、UDP プロトコルに関連しているプログラムとそのバージョン番号が出力されます。 -t オプションを使用すると、TCP 接続を検査できます。エラーになる場合は、「サーバーで NFS サービスを確認する方法」 に進んでください。
ローカル autofs サービスを使用していた場合は、そのサービスを確認します。
% cd /net/wasp |
/net か /home マウントポイントのうち、適切に動作する方を確認します。エラーになる場合は、次のコマンドを root としてクライアントから入力し、autofs サービスを再起動します。
# /etc/init.d/autofs stop # /etc/init.d/autofs start |
サーバーのファイルシステムの共有が正常に行えることを確認します。
% /usr/sbin/showmount -e bee /usr/src eng /export/share/man (everyone) |
サーバーの項目とローカルマウントエントリにエラーがないことをチェックします。名前空間も確認します。この例で最初のクライアントが eng ネットグループの中にない場合、/usr/src ファイルシステムはマウントできません。
すべてのローカルファイルを調べて、マウント情報を含むエントリをすべて検査します。リストには、/etc/vfstab とすべての /etc/auto_* ファイルが含まれています。
スーパーユーザー、またはそれと同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
サーバーがクライアントに到達できることを確認します。
# ping lilac lilac is alive |
サーバーからクライアントに到達できない場合は、ローカルネームサービスが動作していることを確認します。NIS+ クライアントで次のコマンドを入力します。
% /usr/lib/nis/nisping -u Last updates for directory eng.acme.com. : Master server is eng-master.acme.com. Last update occurred at Mon Jun 5 11:16:10 1995 Replica server is eng1-replica-58.acme.com. Last Update seen was Mon Jun 5 11:16:10 1995 |
ネームサービスが動作している場合は、サーバーにあるネットワークソフトウェアの構成を確認します (/etc/netmasks、 /etc/nsswitch.conf など)。
次のコマンドを入力し、nfsd デーモンが動作していることを確認します。
# rpcinfo -u localhost nfs program 100003 version 2 ready and waiting program 100003 version 3 ready and waiting # ps -ef | grep nfsd root 232 1 0 Apr 07 ? 0:01 /usr/lib/nfs/nfsd -a 16 root 3127 2462 1 09:32:57 pts/3 0:00 grep nfsd |
サーバーが動作している場合は、UDP プロトコルに関連しているプログラムとそのバージョン番号が出力されます。 rpcinfo に -t オプションを指定し、TCP 接続も確認します。これらのコマンドを使用するとエラーになる場合は、NFS サービスを再起動します。 「NFS サービスを再起動する方法」 を参照してください。
次のコマンドを入力し、mountd デーモンが動作していることを確認します。
# /usr/bin/rpcinfo -u localhost mountd program 100005 version 1 ready and waiting program 100005 version 2 ready and waiting program 100005 version 3 ready and waiting # ps -ef | grep mountd root 145 1 0 Apr 07 ? 21:57 /usr/lib/autofs/automountd root 234 1 0 Apr 07 ? 0:04 /usr/lib/nfs/mountd root 3084 2462 1 09:30:20 pts/3 0:00 grep mountd |
サーバーが動作している場合は、UDP プロトコルに関連しているプログラムとそのバージョン番号が出力されます。 rpcinfo に -t オプションを指定し、TCP 接続も確認します。これらのコマンドを使用するとエラーになる場合は、NFS サービスを再起動します。 「NFS サービスを再起動する方法」 を参照してください。
次のコマンドを入力し、rpcbind デーモンが動作していることを確認します。
# /usr/bin/rpcinfo -u localhost rpcbind program 100000 version 1 ready and waiting program 100000 version 2 ready and waiting program 100000 version 3 ready and waiting |
サーバーが動作している場合は、UDP プロトコルに関連しているプログラムとそのバージョン番号が出力されます。 rpcbind がハングしている場合は、サーバーをリブートするか、「rpcbind をウォームスタートする方法」 に示す作業を行なってください。
スーパーユーザー、またはそれと同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
# /etc/init.d/nfs.server stop # /etc/init.d/nfs.server start |
/etc/dfs/dfstab に項目がある場合、デーモンは停止してから再起動します。
実行中の処理があるために NFS サーバーをリブートできなかった場合に、RPC を使用するすべてのサービスを再起動することなく rpcbind を再実行できます。この手順に従ってウォームスタートを完了します。
スーパーユーザー、またはそれと同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
rpcbind の PID を確認します。
ps を実行すると、PID の値が第 2 カラムに表示されます。
# ps -ef |grep rpcbind root 115 1 0 May 31 ? 0:14 /usr/sbin/rpcbind root 13000 6944 0 11:11:15 pts/3 0:00 grep rpcbind |
SIGTERM シグナルを rpcbind プロセスに送ります。
以下の例では、送信するシグナルは term で、プログラムの PID は 115 です (kill(1) のマニュアルページを参照)。このコマンドより、rpcbind は /tmp/portmap.file と /tmp/rpcbind.file に現在登録されているサービスのリストを作成します。
# kill -s term 115 |
-s term オプションを使用して rpcbind プロセスを終了させないと、rpcbind のウォームスタートを完了できません。その場合は、サーバーをリブートすることによってサービスを再開する必要があります。
rpcbind を再起動します。
rpcbind コマンドを再度ウォームスタートして、kill コマンドにより作成されたファイルが参照され、すべての RPC サービスを再起動することなくプロセスが再開されます。rpcbind(1M) のマニュアルページを参照してください。
# /usr/sbin/rpcbind -w |
-m オプションを指定して nfsstat コマンドを実行し、最新の NFS 情報を取得します。現在のサーバー名は、「currserver=」の後に表示されます。
% nfsstat -m /usr/local from bee,wasp:/export/share/local Flags: vers=3,proto=tcp,sec=sys,hard,intr,llock,link,synlink, acl,rsize=32768,wsize=32678,retrans=5 Failover: noresponse=0, failover=0, remap=0, currserver=bee |
Solaris 2.6 およびそれ以降に出たパッチに置き換えられた mount コマンドでは、無効なオプションを指定しても警告されません。コマンド行に入力したオプション、または /etc/vfstab から指定したオプションが有効であるかどうかを判断するには、次の手順に従います。
たとえば、次のコマンドが実行されたとします。
# mount -F nfs -o ro,vers=2 bee:/export/share/local /mnt |
次のコマンドを実行し、オプションを確認します。
% nfsstat -m /mnt from bee:/export/share/local Flags: vers=2,proto=tcp,sec=sys,hard,intr,dynamic,acl,rsize=8192,wsize=8192, retrans=5 |
bee からマウントされたファイルシステムは、プロトコルのバージョンが 2 に設定されています。nfsstat コマンドを使用しても、一部のオプションの情報は表示されませんが、オプションを確認するにはこれがもっとも正確な方法です。
/etc/mnttab でエントリを確認します。
mount コマンドは、無効なオプションをマウントテーブルに追加することができません。そのため、mnttab ファイルに記述されているオプションとコマンド行のオプションが一致していることを特定してください。このようにすると、nfsstat コマンドにより報告されなかったオプションを特定することができます。
# grep bee /etc/mnttab bee:/export/share/local /mnt nfs ro,vers=2,dev=2b0005e 859934818 |
autofs の使用時、問題に遭遇することがあります。この節では、問題解決プロセスについてわかりやすく説明します。この節は、2 つのパートに分かれています。
この節では、autofs が生成するエラーメッセージのリストを示します。このリストは、2 つのパートに分かれています。
automount の詳細形式 (-v) オプションにより生成されるエラーメッセージ
通常表示されるエラーメッセージ
各エラーメッセージの後には、そのメッセージの説明と考えられる原因が続きます。
障害追跡時には、詳細形式 (-v) オプションで autofs プログラムを開始します。そうしないと、理由がわからないまま問題に遭遇することになります。
次の節は、autofs のエラー時に表示されがちなエラーメッセージと、生じうる問題についての説明です。
直接マップのスキャン中、autofs が接頭辞 / のないエントリーキーを発見しました。直接マップ内のキーは、完全パス名でなくてはなりません。
間接マップのスキャン中、autofs が / を含むエントリキーを発見しました。間接マップのキーは、パス名ではなく、単なる名称でなくてはなりません。
サーバー上のマウントデーモンが、server:pathname により (1 つまたは複数) 指定されます。サーバー上のエクスポートテーブルを確認してください。
autofs は、マウントに必要なマウントポイントを作成することができませんでした。この問題は、すべてのサーバーのエクスポートされたファイルシステムを階層的にマウントしようとする場合に頻繁に生じます。必要なマウントポイントは、マウントできないファイルシステム内にだけ存在するため、エクスポートできません。エクスポートされる親ファイルシステムは、読み取り専用でエクスポートされるため、マウントポイントを作成できません。
autofs はオートマウントマップ内に先頭にスペースを含むエントリを発見しました。この問題は、通常、マップエントリが不当である場合に発生します。次のような例があります。
fake /blat frobz:/usr/frotz |
この例では、autofs が 2 つ目の行に遭遇した場合に警告が生成されます。これは、最初の行がバックスラッシュ (\) で終端されていないためです。
必要とされるマップが配置されていません。このメッセージは、-v オプションが使用されている場合にだけ生成されます。マップ名のスペルとパス名を確認してください。
remount server:pathname on mountpoint: server not responding
autofs が、アンマウントしたファイルシステムの再マウントに失敗しました。
autofs が、既存のマウントポイント上にマウントしようとしました。このメッセージは、autofs 内で内部エラー (異常) が生じたことを意味しています。
オートマウンタのマウントポイントは、完全パス名で指定しなくてはなりません。マウントポイントのスペルとパス名を確認してください。
autofs は、マウントポイントが階層的な関係を持つことを許可しません。autofs マウントポイントは、他のオートマウントされたファイルシステムに含まれていてはなりません。
autofs が、server で示されるサーバーにコンタクトしようとしましたが、応答がありません。
hostname: exports: rpc_err
このエラーは、hostname からエクスポートリストを取得する場合に発生します。このメッセージは、サーバーまたはネットワークに問題があることを示します。
マップエントリが不適切な形式であり、autofs が処理できません。そのエントリを再確認してください。そのエントリにエスケープする必要のある文字が含まれている可能性があります。
mapname: nis_err
このエラーは、NIS マップのエントリを参照する場合に発生します。このメッセージは、NIS に問題がある可能性があることを示しています。
autofs がマウントに失敗しました。サーバーまたはネットワークに問題のある可能性があります。
autofs は、ディレクトリではない mountpoint に示される場所に自分自身をマウントすることができません。マウントポイントのスペルとパス名を確認してください。
autofs が、複製されたファイルシステムの場所を示すリスト内にあるサーバーへの照会パケットを送信できません。
autofs が、複製されたファイルシステムの場所を示すリスト内にあるいずれのサーバーからも応答を受けられません。
このようなエラーメッセージはすべて、複製されたファイルシステムのサーバーに対して ping を実行した際に問題が発生したことを示します。このメッセージは、ネットワークに問題がある可能性があることを示しています。
autofs が、パス名に関する pathconf 情報の取得に失敗しました。 (fpathconf(2) のマニュアルページを参照。)
autofs が、pathconf(2) に情報を提供する server に示されるサーバー上のマウントデーモンにコンタクトできませんでした。
/etc/auto* ファイルが実行ビットセットを持っている場合、オートマウンタは次のようなメッセージを生成するマップの実行を試みます。
/etc/auto_home: +auto_home: not found
この場合、auto_home ファイルは不適切な権限をもつことになります。このファイル内の各エントリは、よく似たエラーメッセージを生成します。ファイルへのこのような権限は、次のコマンドを入力することにより取り消す必要があります。
# chmod 644 /etc/auto_home |
この節では、エラーメッセージとそのエラーを発生させる原因となった状態について説明し、1 つ以上の解決策を提供しています。
Bad argument specified with index option - must be a file
Cannot establish NFS service over /dev/tcp: transport setup problem
このメッセージは、名前空間の中のサービス情報が更新されなかったときによく発生します。またこのメッセージは、UDP の状態を示すことがあります。この問題を解決するには、名前空間の中のサービスデータを更新します。NIS+ の場合、エントリは以下のとおりです。
nfsd nfsd tcp 2049 NFS server daemon nfsd nfsd udp 2049 NFS server daemon |
NIS と /etc/services の場合、エントリは以下のとおりです。
nfsd 2049/tcp nfs # NFS server daemon nfsd 2049/udp nfs # NFS server daemon |
Cannot use index option without public option
share コマンドの index オプションに public オプションを指定してください。index オプションを使用するには、公開ファイルハンドルを定義する必要があります。
Solaris 2.6 より前の Solaris では、share コマンドを使って公共ファイルハンドルを設定する必要があります。Solaris 2.6 以降では、公共ファイルハンドルはデフォルトで / に設定されるため、このエラーメッセージは出力されません。
Could not start daemon : error
このメッセージは、デーモンが異常終了するか、システムコールにエラーが発生した場合に表示されます。error の文字列によって、問題が特定されます。
Could not use public filehandle in request to server
このメッセージは、public オプションが指定されているにもかかわらず NFS サーバーが公共ファイルハンドルをサポートしていない場合に表示されます。この場合、マウントが失敗します。この問題を解決するには、公共ファイルハンドルを使用しないでマウント要求を行うか、NFS サーバーが公共ファイルハンドルをサポートするように設定し直します。
daemon running already with pid pid
error locking lock file
error checking lock file : error
NOTICE: NFS3: failing over from host1 to host2
filename: File too large
mount: ... server not responding:RPC_PMAP_FAILURE - RPC_TIMED_OUT
実行レベルの誤りか、rpcbind の停止かハングのため、マウント先のファイルシステムを共有しているサーバーがダウンしているかまたは到達できないことを示すメッセージです。
mount: ... server not responding: RPC_PROG_NOT_REGISTERED
マウント要求が rpcbind によって登録されているにもかかわらず、NFS マウントデーモン (mountd) が登録されていないことを示すメッセージです。
リモートディレクトリまたはローカルディレクトリが存在しないことを示すメッセージです。ディレクトリ名のスペルをチェックするか、リモートディレクトリとローカルディレクトリの両方で ls コマンドを実行してください。
mount: ...: Permission denied
コンピュータ名が、クライアントのリストに載っていないか、マウントするファイルシステムにアクセスできるネットグループに含まれていないことを示すメッセージです。showmount -e を実行し、アクセスリストを確認してください。
nfs mount: ignoring invalid option "-option"
-option フラグが無効です。正しい構文を mount_nfs(1M) のマニュアルページで確認してください。
このエラーメッセージは、Solaris 2.6 以降、またはSolaris 2.6 より前のバージョンにパッチを適用した状態で mount コマンドを実行したときには表示されません。
nfs mount: NFS can't support "nolargefiles"
NFS クライアントが、-nolargefiles オプションを使用して NFS サーバーからファイルシステムをマウントしようとしました。このオプションは、NFS ファイルシステムに対してはサポートされていません。
nfs mount: NFS V2 can't support "largefiles"
NFS バージョン 2 プロトコルでは、大規模ファイルを処理できません。大規模ファイルを扱う必要がある場合は、バージョン 3 を使用してください。
NFS server hostname not responding still trying
ファイル関連の作業中にプログラムがハングすると、NFS サーバーは停止します。このメッセージは、NFS サーバー (hostname) がダウンしているか、サーバーかネットワークに問題があることを示すものです。フェイルオーバー機能を使用している場合、hostname はサーバー名のリストになります。「NFS クライアントの接続性を確認する方法」を参照してください。
NFS fsstat failed for server hostname: RPC: Authentication error
さまざまな状況で発生するエラーです。もっともデバッグが困難なのは、ユーザーの属しているグループが多すぎる場合です。現在、ユーザーは最大 16 個のグループに属すことができますが、NFS マウントでファイルにアクセスしている場合は、それ以下になります。ただし、ユーザーが 17 個以上のグループに所属する方法もあります。NFS サーバーおよび NFS クライアントで Solaris 2.5 リリース以降が動作している場合は、アクセス制御リストを使用して、必要なアクセス特権を与えることができます。
port number in nfs URL not the same as port number in port option
NFS URL のポート番号は、マウントの -port オプションのポート番号と一致していなければなりません。一致していないと、マウントは失敗します。同じポート番号にしてコマンドを再実行するか、ポート番号の指定を省略してください。原則として、NFS URL と -port オプションの両方にポート番号を指定しても意味がありません。
replicas must have the same version
NFS フェイルオーバー機能が正しく機能するためには、複製の NFS サーバーが同じバージョンの NFS プロトコルをサポートしていなければなりません。バージョン 2 とバージョン 3 のサーバーが混在することは許されません。
replicated mounts must be read-only
NFS フェイルオーバー機能は、読み書き可能としてマウントされたファイルシステムでは動作しません。ファイルシステムを読み書き可能としてマウントすると、ファイルが変更される可能性が高くなるためです。NFS のフェイルオーバー機能は、ファイルシステムがまったく同じであることが前提です。
replicated mounts must not be soft
複製されるマウントの場合、フェイルオーバーが発生するまでタイムアウトを待つ必要があります。soft オプションを指定すると、タイムアウトが開始してすぐにマウントが失敗するため、複製されるマウントには -soft オプションは指定できません。
share_nfs: Cannot share more than one filesystem with 'public' option
/etc/dfs/dfstab ファイルを調べて、-public オプションによって共有するファイルシステムを複数選択していないか確認してください。公開ファイルハンドルは、サーバーあたり 1 つしか設定できません。したがって、-public オプションで共有できるファイルシステムは 1 つだけです。
WARNING: No network locking on hostname:path: contact admin to install server change
NFS クライアントが、NFS サーバー上のネットワークロックマネージャと接続を確立できませんでした。この警告は、マウントできなかったことを知らせるためではなく、ロックが機能しないことを警告するために出力されます。