ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
![]() |
Oracle Solaris のシステム管理 (ネットワークサービス) Oracle Solaris 11 Information Library (日本語) |
パート II ネットワークファイルシステムへのアクセス (トピック)
6. ネットワークファイルシステムへのアクセス (リファレンス)
NFS version 4 におけるファイルシステムの共有解除と再共有
NFS version 4 におけるファイルシステムの名前空間
NFS version 4 における OPEN 共有サポート
NFS version 4 での ACL と nfsmapid
マウント時の -public オプションと NFS URL の意味
NFS version 4 におけるクライアント側フェイルオーバー機能
Web ブラウザの使用と比較した場合の WebNFS の制約
autofs のナビゲーションプロセス開始法 (マスターマップ)
autofs がクライアント用のもっとも近い読み取り専用ファイルを選択する方法 (複数ロケーション)
autofs のネットワークナビゲート法の変更 (マップの変更)
次のコマンドは、root として実行しないと、十分な効果が得られません。ただし、情報の要求は、すべてのユーザーが行うことができます。
このコマンドは autofs マウントポイントをインストールし、オートマスターファイル内の情報を各マウントポイントに関連付けます。このコマンドの構文は次のとおりです。
automount [ -t duration ] [ -v ]
-t duration はファイルシステムがマウントされた状態でいる時間 (秒) を設定し、-v は冗長モードを選択します。冗長モードでこのコマンドを実行するとトラブルシューティングが容易になります。
継続時間の値は、特に設定しないと 5 分に設定されます。通常はこの値が適切です。しかし、自動マウントされたファイルシステムの多いシステムでは、この値を増やす必要がある場合もあります。特に、サーバーを多くのユーザーが使用中の場合は、自動マウントされたファイルシステムを 5 分ごとにチェックするのは能率的でない場合があります。autofs ファイルシステムは 1800 秒 (30 分) ごとにチェックする方が適しています。5 分おきにファイルシステムマウントを解除しないと、/etc/mnttab が大きくなることがあります。df が /etc/mnttab にある各エントリをチェックしたときの出力を減らすには、-F オプション (df(1M) のマニュアルページを参照)または egrep を使用して、df の出力にフィルタをかけます。
この継続時間を調節すると、オートマウンタマップへの変更が反映される速さを変更できるということも考慮すべきです。変更はファイルシステムがアンマウントされるまでは見ることができません。オートマウンタマップの変更方法については、「マップの修正」を参照してください。
コマンド行で行うのと同じ指定を、sharectl コマンドを使用して行うことができます。ただし、コマンド行オプションとは異なり、サービスの再起動、システムのリブート、およびシステムのアップグレードを行なったときも SMF リポジトリは指定を保持します。automount コマンドに設定できるパラメータは次のとおりです。
ファイルシステムがアンマウントされるまでアイドル状態を持続する時間を設定します。このキーワードは、automount の -t 引数と同等です。デフォルト値は 600 です。
マウント、アンマウント、およびその他の重要でないイベントを通知します。このキーワードは、-automount の v 引数と同等です。デフォルトの値は FALSE です。
このコマンドを使用すると、ある NFS クライアントのファイル、レコード、または共有のロックをすべて削除できます。このコマンドを実行するには、スーパーユーザーでなければなりません。NFS サーバーから、特定のクライアントに対するロックを解除できます。また、NFS クライアントから、特定のサーバーにおけるそのクライアントに対するロックを解除できます。次の例では、現在のシステム上の tulip という NFS クライアントに対するロックが解除されます。
# clear_locks tulip
-s オプションを指定すると、どの NFS ホストからロックを解除するかを指定できます。このオプションは、ロックを作成した NFS クライアントで実行する必要があります。次の場合、クライアントによるロックが bee という名前の NFS サーバーから解除されます。
# clear_locks -s bee
![]() | 注意 - このコマンドは、クライアントがクラッシュしてロックを解除できないとき以外には使用しないでください。データが破壊されるのを避けるため、使用中のクライアントに関するロックは解除しないでください。 |
fsstat ユーティリティーを使用して、ファイルシステムの種類およびマウントポイントごとに、ファイルシステムオペレーションを監視できます。出力のカスタマイズを可能にするオプションが多数用意されています。次に例を示します。
次の例では、NFS version 3、version 4、およびルートマウントポイントに対する出力を表示しています。
% fsstat nfs3 nfs4 / new name name attr attr lookup rddir read read write write file remov chng get set ops ops ops bytes ops bytes 3.81K 90 3.65K 5.89M 11.9K 35.5M 26.6K 109K 118M 35.0K 8.16G nfs3 759 503 457 93.6K 1.44K 454K 8.82K 65.4K 827M 292 223K nfs4 25.2K 18.1K 1.12K 54.7M 1017 259M 1.76M 22.4M 20.1G 1.43M 3.77G /
次の例では、-i オプションを使って NFS version 3、version 4、およびルートマウントポイントの入出力操作に関する統計を提供しています。
% fsstat -i nfs3 nfs4 / read read write write rddir rddir rwlock rwulock ops bytes ops bytes ops bytes ops ops 109K 118M 35.0K 8.16G 26.6K 4.45M 170K 170K nfs3 65.4K 827M 292 223K 8.82K 2.62M 74.1K 74.1K nfs4 22.4M 20.1G 1.43M 3.77G 1.76M 3.29G 25.5M 25.5M /
次の例では、-n オプションを使って NFS version 3、version 4、およびルートマウントポイントの命名操作に関する統計を提供しています。
% fsstat -n nfs3 nfs4 / lookup creat remov link renam mkdir rmdir rddir symlnk rdlnk 35.5M 3.79K 90 2 3.64K 5 0 26.6K 11 136K nfs3 454K 403 503 0 101 0 0 8.82K 356 1.20K nfs4 259M 25.2K 18.1K 114 1017 10 2 1.76M 12 8.23M /
詳細は、fsstat(1M) のマニュアルページを参照してください。
このコマンドを使用すると、指定したファイルシステムをローカルまたはリモートで、指定したマウントポイントにマウントできます。詳細は、mount(1M) のマニュアルページを参照してください。引数を指定しないで mount を使用すると、現在コンピュータにマウントされているファイルシステムのリストが表示されます。
Oracle Solaris の標準インストールには、さまざまな種類のファイルシステムが含まれています。ファイルシステムの種類ごとにマニュアルページがあり、その種類に対して mount を実行するときに使用可能なオプションのリストが示されています。NFS ファイルシステムについては、mount_nfs(1M) のマニュアルページを参照してください。UFS ファイルシステムについては、mount_ufs(1M) のマニュアルページを参照してください。
Solaris 7 で、server:/pathname という標準の構文の代わりに NFS URL を使用して NFS サーバー上のマウントするパス名を指定することが可能になりました。詳細は、「NFS URL を使用して NFS ファイルシステムをマウントする方法」を参照してください。
![]() | 注意 - このバージョンの mount コマンドでは、無効なオプションに関する警告メッセージは表示されません。解釈できないオプションがあると無視されるだけです。予想外の結果が生じるのを避けるために、使用するオプションはすべて確認してください。 |
NFS ファイルシステムのマウント時に -o フラグのあとに指定できるオプションの一部を、次に示します。オプションの完全な一覧については、mount_nfs(1M) のマニュアルページを参照してください。
これらのオプションは、マウントが失敗したときの再試行の方法を選択するオプションです。bg オプションの場合はバックグラウンドで、fg オプションの場合はフォアグラウンドでマウントが試みられます。デフォルトは fg です。常に使用可能にしておく必要のあるファイルシステムに対しては fg が適しています。fg オプションを指定すると、マウントが完了するまで、次の処理は行われません。bg は、マウント要求が完了しなくてもクライアントはほかの処理を実行できるため、クリティカルでないファイルシステムの処理に適しています。
このオプションは、大規模の連続したデータ転送のパフォーマンスを向上させます。データは直接ユーザーバッファーにコピーされます。クライアント上のカーネル内ではキャッシュへの書き込みは行われません。この機能はデフォルトではオフです。
これまで、書き込み要求はすべて、NFS クライアントと NFS サーバーの両方で直列化されていました。今回の NFS クライアントの変更により、単一ファイルに対する並行書き込み、並行読み取り/書き込みを、アプリケーションから実行できるようになりました。この機能をクライアント上で有効にするには、mount コマンドオプション forcedirectio を使用します。このオプションを使用した場合、マウントされたファイルシステム内のすべてのファイルに対して、この機能が有効になります。この機能をクライアントの単一のファイルに対してのみ有効にするには、 directio() インタフェースを使用します。この機能を有効にしないかぎり、ファイルへの書き込みは直列化されます。また、並行書き込みや並行読み取り/書き込みが実行されると、そのファイルに関しては、POSIX のセマンティクスはサポートされなくなります。
このオプションの使用例については、「mount コマンドの使用」を参照してください。
このオプションを使用すれば、2G バイトより大きいファイルにアクセスできます。大規模ファイルにアクセスできるかどうかは、サーバーでしか制御できません。したがって、このオプションは NFS version 3 のマウントでは無視されます。デフォルトでは、UFS ファイルシステムはすべて largefiles オプション付きでマウントされます。NFS version 2 プロトコルを使用したマウントで largefiles オプションを指定すると、エラーが発生してマウントできません。
この UFS マウント用のオプションを指定すると、ファイルシステム上に大規模ファイルが存在できないことが保証されます。mount_ufs(1M) のマニュアルページを参照してください。大規模ファイルの存在は NFS サーバー上でのみ制御できるため、NFS マウントを使用している場合は、nolargefiles オプションを指定できません。このオプションを指定してファイルシステムを NFS マウントしようとすると、エラーが発生して拒否されます。
nosuid オプションは、nodevices オプションを nosetuid オプションとともに指定することと同等です。nodevices オプションが指定されている場合、マウントされたファイルシステム上のデバイス特殊ファイルを開くことができません。nosetuid オプションが指定されている場合、ファイルシステム上に置かれたバイナリファイルの setuid ビットと setgid ビットは無視されます。プロセスは、バイナリファイルを実行するユーザーの特権で実行します。
suid オプションは、devices オプションを setuid オプションと同時に指定することと同等です。devices オプションが指定されている場合、マウントされたファイルシステムのデバイス特殊ファイルを開くことができます。setuid オプションが指定されている場合、ファイルシステムに置かれたバイナリファイルの setuid ビットと setgid ビットは、カーネルが引き受けます。
いずれのオプションも指定されていない場合、デフォルトのオプションは suid になります。これにより、devices オプションを setuid オプションと同時に指定するデフォルトの動作になります。
次の表は、nosuid または suid を devices または nodevices、および setuid または nosetuid と組み合わせることによる結果を示しています。オプションの各組み合わせでは、もっとも制限の高いオプションが動作を決定します。
|
nosuid オプションを指定すると、信頼できないサーバーにアクセスする可能性のある NFS クライアントのセキュリティーを向上できます。このオプションを使用してリモートファイルシステムのマウントを行うと、信頼できないデバイスのインポートまたは信頼できない setuid バイナリファイルのインポートによって特権が拡大する可能性を減らすことができます。これらのオプションはすべて、Oracle Solaris ファイルシステム全体で使用可能です。
このオプションを指定すると、NFS サーバーにアクセスするときに必ず公開ファイルハンドルを使用するようになります。NFS サーバーが公開ファイルハンドルをサポートしていれば、MOUNT プロトコルが使用されないため、マウント操作は短時間で行われます。また、MOUNT プロトコルを使用しないため、ファイアウォールを越えたマウントが可能です。
-rw オプションと -ro オプションは、ファイルシステムが読み書き可能と読み取り専用のどちらでマウントされるかを示します。デフォルトは読み書き可能で、これはリモートホームディレクトリやメールスプールディレクトリなどの、ユーザーによる変更が必要なファイルシステムに適しています。読み取り専用オプションは、ユーザーが変更してはいけないディレクトリに適しています。具体的には、マニュアルページの共有コピーなどです。
このオプションは、マウント時に使用される認証メカニズムを指定します。mode の値は、次のいずれかです。
Kerberos version 5 認証サービス用の krb5 を使用する。
整合性を指定する Kerberos version 5 用の krb5i を使用する。
機密性を指定する Kerberos version 5 用の krb5p を使用する。
認証なしの none を使用する。
Diffie-Hellman (DH) 認証用の dh を使用する。
UNIX 標準認証用の sys を使用する。
モードは、/etc/nfssec.conf ファイルにも定義されます。
soft オプションを指定してマウントされた NFS ファイルシステムは、サーバーが応答しなくなるとエラーを返します。hard オプションが指定されていると、サーバーが応答するまで続けて再試行が行われます。デフォルトは hard です。ほとんどのファイルシステムには hard を使用します。ソフトマウントされたファイルシステムからの値を検査しないアプリケーションが多いので、アプリケーションでエラーが発生してファイルが破壊される恐れがあるためです。アプリケーションが戻り値を確認する場合は、soft が使用されているとルーティングの問題などによってアプリケーションが正しく判断できず、ファイルが破壊されることがあります。原則として、soft は使用しないでください。hard オプションを指定した場合にファイルシステムが使用できなくなると、そのファイルシステムを使用するアプリケーションはファイルシステムが復旧するまでハングアップする可能性があります。
次の例を参照してください。
NFS version 2 または version 3 では、次のコマンドはどちらもサーバー bee から NFS ファイルシステムを読み取り専用としてマウントします。
# mount -F nfs -r bee:/export/share/man /usr/man
# mount -F nfs -o ro bee:/export/share/man /usr/man
NFS version 4 では、次のコマンド行で同じマウントを行えます。
# mount -F nfs -o vers=4 -r bee:/export/share/man /usr/man
NFS version 2 または version 3 では、次のコマンドは -O オプションを使用しているため、すでに /usr/man がマウントされている場合でも、強制的にマニュアルページをサーバー bee からローカルシステムにマウントします。次を参照してください。
# mount -F nfs -O bee:/export/share/man /usr/man
NFS version 4 では、次のコマンド行で同じマウントを行えます。
# mount -F nfs -o vers=4 -O bee:/export/share/man /usr/man
NFS version 2 または version 3 では、次のコマンドはクライアント側フェイルオーバー機能を使用します。
# mount -F nfs -r bee,wasp:/export/share/man /usr/man
NFS version 4 では、次のコマンド行はクライアント側フェイルオーバー機能を使用します。
# mount -F nfs -o vers=4 -r bee,wasp:/export/share/man /usr/man
注 - コマンド行から使用する場合、リスト内のサーバーがサポートしている NFS プロトコルは同じバージョンでなければなりません。コマンド行から mount を実行するときは、version 2 と version 3 のサーバーを同時に使用しないでください。autofs を実行するときは、両サーバーを同時に使用することができます。autofs により、version 2 または version 3 のサーバーの最適な組み合わせが自動的に選択されます。
次に、NFS version 2 または version 3 において、mount コマンドに NFS URL を使用する例を示します。
# mount -F nfs nfs://bee//export/share/man /usr/man
次に、NFS version 4 において、mount コマンドに NFS URL を使用する例を示します。
# mount -F nfs -o vers=4 nfs://bee//export/share/man /usr/man
forcedirectio マウントオプションを使用すると、ファイルに対してクライアントが、並行書き込みと並行読み取り/書き込みを行えるようになります。次に例を示します。
# mount -F nfs -o forcedirectio bee:/home/somebody /mnt
この例では、サーバー bee からの NFS ファイルシステムがマウントされ、ディレクトリ /mnt にあるファイルごとに並行読み取り/書き込みが有効になります。並行読み取り/書き込みのサポートを有効にすると、次のことが発生します。
クライアントは、ファイルへの並列した書き込みをアプリケーションに許可します。
クライアントでのキャッシュが無効になります。その結果、読み取りと書き込みのデータはサーバー上に保持されます。つまり、クライアントは読み取られたデータまたは書き込まれたデータをキャッシュに書き込まないため、アプリケーションがキャッシュに書き込んでいないデータはサーバーから読み取られます。クライアントのオペレーティングシステムは、このデータのコピーを持ちません。通常、NFS クライアントは、アプリケーションが使用するカーネルにデータをキャッシュします。
クライアント側でキャッシュが無効になっているため、先読みと後書きプロセスが無効になります。先読みプロセスは、アプリケーションが次に要求する可能性のあるデータをカーネルが予測したときに、発生します。次に、カーネルはあらかじめデータを収集するプロセスを開始します。カーネルの目標は、アプリケーションがデータを要求する前にそのデータを準備しておくことです。
クライアントは、書き込みのスループットを向上する後書きプロセスを使用します。アプリケーションがデータをファイルに書き込むたびに、入出力操作をただちに開始する代わりに、データはメモリー内にキャッシュされます。のちに、データはディスクに書き込まれます。
後書きプロセスにより、データがより大きな領域に書き込まれたり、アプリケーションから非同期で書き込まれたりする可能性があります。通常、より大きな領域を使用するとスループットが向上します。非同期の書き込みにより、アプリケーション処理と入出力処理間でオーバーラップができるようになります。また、ストレージサブシステムが、より優れた入出力処理を行うことで入出力を最適化できるようにもなります。同期の書き込みは、最適化されていないストレージサブシステムでの入出力を強制的に処理します。
アプリケーションでキャッシュされていないデータのセマンティクスを処理する準備ができていない場合、著しくパフォーマンスが低下する可能性があります。マルチスレッド化されたアプリケーションは、この問題を回避します。
注 - 並行書き込みのサポートが有効にされていない場合、すべての書き込み要求は直列化されます。要求が直列化されると、次のことが発生します。ある書き込み要求が進行中のとき、2 番目の書き込み要求は、最初の処理が完了するのを待ってから処理を続行する必要があります。
mount コマンドに引数を指定しないと、クライアントにマウントされたファイルシステムが表示されます。次を参照してください。
% mount / on /dev/dsk/c0t3d0s0 read/write/setuid on Wed Apr 7 13:20:47 2004 /usr on /dev/dsk/c0t3d0s6 read/write/setuid on Wed Apr 7 13:20:47 20041995 /proc on /proc read/write/setuid on Wed Apr 7 13:20:47 2004 /dev/fd on fd read/write/setuid on Wed Apr 7 13:20:47 2004 /tmp on swap read/write on Wed Apr 7 13:20:51 2004 /opt on /dev/dsk/c0t3d0s5 setuid/read/write on Wed Apr 7 13:20:51 20041995 /home/kathys on bee:/export/home/bee7/kathys intr/noquota/nosuid/remote on Wed Apr 24 13:22:13 2004
このコマンドにより、現在マウントされているリモートファイルシステムが解除されます。umount コマンドは、テストのために -V オプションをサポートしています。また、-a オプションを使用することによって 1 度に複数のファイルシステムをアンマウントできます。-a オプションに mount-points を指定すると、そのファイルシステムがアンマウントされます。マウントポイントを指定しないと、/etc/mnttab のリストにあるファイルシステムのうち必須でないものすべてのアンマウントが試みられます。必須のファイルシステムとは、/、/usr、/var、/proc、/dev/fd、/tmp などです。 ファイルシステムがすでにマウントされていて、/etc/mnttab に項目が指定されている場合、ファイルシステムのタイプのフラグを指定する必要はありません。
-f オプションを指定すると、使用中のファイルシステムが強制的にアンマウントされます。このオプションを使用して、マウントできないファイルシステムのマウントを試みた最中にハングアップしたクライアントを復帰させることが可能です。
![]() | 注意 - ファイルシステムを強制的にアンマウントすると、ファイルへの書き込み中だった場合には、データを損失することがあります。 |
次に例を示します。
例 6-1 ファイルシステムをアンマウントする
次の例は、/usr/man にマウントしたファイルシステムをアンマウントします。
# umount /usr/man
例 6-2 umount でオプションを使用する
次の例では、umount -a -V の実行結果が表示されます。
# umount -a -V umount /home/kathys umount /opt umount /home umount /net
このコマンドでは、ファイルシステムのアンマウント自体は実行されないことに注意してください。
このコマンドを使用すると、ファイルシステムテーブルに一覧表示されたすべてのファイルシステム、または特定グループのファイルシステムをマウントできます。このコマンドを実行すると、次の操作を実行することができます。
-F FSType オプションを使用して、ファイルシステムのタイプを選択する
-r オプションを使用して、ファイルシステムテーブル中に一覧表示されたリモートファイルシステムをすべて選択する
NFS ファイルシステムタイプと指定されているファイルシステムはすべてリモートファイルシステムなので、これらのオプションは余分な指定になることがあります。詳細は、mountall(1M) のマニュアルページを参照してください。
次の 2 つのユーザー入力例では、同じ結果が得られます。
# mountall -F nfs
# mountall -F nfs -r
このコマンドを使用すると、ファイルシステムのグループをアンマウントできます。-k オプションは、mount-point に関連付けられているプロセスを終了させるために fuser -k mount-point コマンドを実行します。-s オプションは、アンマウントを並行処理しないことを示します。-l は、ローカルファイルシステムだけを使用することを、-r はリモートファイルシステムだけを使用することを示します。-h host オプションは、指定されたホストのファイルシステムをすべてアンマウントすることを指定します。-h オプションは、-l または -r と同時に指定できません。
次の例では、リモートホストからマウントしたすべてのファイルシステムがアンマウントされます。
# umountall -r
次の例では、bee サーバーからマウントしたすべてのファイルシステムがアンマウントされます。
# umountall -h bee
このリリースには sharectl ユーティリティーが含まれています。これは、NFS などのファイル共有プロトコルの構成と管理を行うことができる管理ツールです。このコマンドを使用して次のことを実行できます。
クライアントとサーバーの動作プロパティーを設定する
特定のプロトコルのプロパティー値を表示する
プロトコルの状態を取得する
sharectl ユーティリティーは次の構文を使用します。
# sharectl subcommand [option] [protocol]
sharectl ユーティリティーは次のサブコマンドをサポートしています。
表 6-2 sharectl ユーティリティーのサブコマンド
|
sharectl ユーティリティーの詳細については、次を参照してください。
sharectl(1M) のマニュアルページ
ファイル共有プロトコルのプロパティーを定義する set サブコマンドは、次のオプションをサポートしています。
オンラインヘルプの説明を提供します。
プロトコルのプロパティーを定義します。
set サブコマンドは次の構文を使用します。
# sharectl set [-h] [-p property=value] protocol
注 - 次のとおり。
set サブコマンドを使用するには root の特権が必要です。
このコマンド行構文を追加のプロパティー値ごとに繰り返す必要はありません。同じコマンド行で -p オプションを複数回使用して、複数のプロパティーを定義できます。
次の例は、クライアントの NFS プロトコルの最小バージョンを 3 に設定します。
# sharectl set -p nfs_client_versmin=3 nfs
指定されたプロトコルのプロパティーとプロパティー値を表示する get サブコマンドは、次のオプションをサポートしています。
オンラインヘルプの説明を提供します。
指定されたプロパティーのプロパティー値を特定します。-p オプションが使用されていない場合は、すべてのプロパティー値が表示されます。
get サブコマンドは次の構文を使用します。
# sharectl get [-h] [-p property] protocol
注 - get サブコマンドを使用するには root の特権が必要です。
次の例は servers を使用します。これは、同時に処理できる NFS 要求の最大数を指定できるプロパティーです。
# sharectl get -p servers nfs servers=1024
次の例では、-p オプションが使用されていないため、すべてのプロパティー値が表示されます。
# sharectl get nfs servers=1024 listen_backlog=32 protocol=ALL servers=32 lockd_listen_backlog=32 lockd_servers=20 lockd_retransmit_timeout=5 grace_period=90 nfsmapid_domain=company.com server_versmin=2 server_versmax=4 client_versmin=2 client_versmax=4 server_delegation=on max_connections=-1 device=
指定されたプロトコルが有効か無効かを表示する status サブコマンドは、次のオプションをサポートしています。
オンラインヘルプの説明を提供します。
status サブコマンドは次の構文を使用します。
# sharectl status [-h] [protocol]
次の例は、NFS プロトコルの状態を表示します。
# sharectl status nfs nfs enabled
このコマンドを使用すると、NFS サーバーのローカルファイルシステムをマウントできるようになります。また、システム上のファイルシステムのうち、現在共有しているもののリストを表示します。NFS サーバーが動作していないと、share コマンドは使用できません。
すべてのディレクトリツリーは共有できるオブジェクトです。ただし、各ファイルシステムの階層構造は、そのファイルシステムが位置するディスクスライスやパーティションで制限されます。
すでに共有している大規模なファイルシステムの一部であるファイルシステムを共有することはできません。たとえば、/usr および /usr/local が同じディスクスライスにある場合は、/usr または /usr/local を共有できます。ただし、異なる共有オプションを指定してこれら両方のディレクトリを共有するには、/usr/local を別のディスクスライスに移動する必要があります。
読み取り専用で共有しているファイルシステムに、読み取りと書き込みが可能な状態で共有しているファイルシステムのファイルハンドルでアクセスすることができます。ただし、両方のファイルシステムが同じディスクスライスにある必要があります。より安全にこれらのファイルシステムを使用するには、読み取りと書き込みが設定されているファイルシステムを、読み取り専用で共有しているファイルシステムとは別のパーティションまたはディスクスライスに配置します。
注 - ファイルシステムの共有を解除してから再度共有するとき、NFS version 4 がどのように動作するかについては、「NFS version 4 におけるファイルシステムの共有解除と再共有」を参照してください。
pathname に指定したファイルシステムを、すべてのクライアントに対して読み取りと書き込みの両方が可能な状態で共有するか、読み取り専用で共有するかを指定します。
指定されたクライアントに対してのみ、ファイルシステムが読み取り/書き込みモードで共有されます。それ以外の要求は拒否されます。accesslist に定義されるクライアントのリストは、Solaris 2.6 から拡張されました。詳細については、「share コマンドを使ってアクセスリストを設定する」を参照してください。このオプションは -ro オプションよりも優先されます。
NFS ファイルシステムで指定できるオプションは、次のとおりです。
このオプションを指定すると、NFS version 2 プロトコルをサポートしている NFS サーバーが NFS version 2 クライアントのアクセス制御を行うように設定できます。このオプションを指定しないと、すべてのクライアントは最小限のアクセスしかできません。指定すると、最大限のアクセスができるようになります。たとえば -aclok オプションを指定して共有したファイルシステムでは、1 人のユーザーが読み取り権を持っていれば全員が読み取りを許可されます。このオプションを指定しないと、アクセス権を持つべきクライアントからのアクセスが拒否される可能性があります。ユーザーに与えるアクセス権は、既存のセキュリティーシステムによって決定します。アクセス制御リスト (ACL) についての詳細は、『Oracle Solaris の管理: セキュリティーサービス』の「アクセス制御リストによる UFS ファイルの保護」 を参照してください。
注 - アクセス制御リスト (ACL) を使用するには、クライアントとサーバーが、NFS version 3 プロトコルおよび NFS_ACL プロトコルをサポートしているソフトウェアを実行している必要があります。NFS version 3 プロトコルしかサポートしていないソフトウェアの場合、クライアントは正しいアクセス権を取得できますが、ACL を操作することはできません。NFS_ACL プロトコルをサポートしていれば、正しいアクセス権を取得した上で ACL の操作も可能です。
uid は、認証されていないユーザーのユーザー ID を選択するために使用します。uid を -1 に設定すると、認証されていないユーザーからのアクセスは拒否されます。anon=0 とするとルートアクセス権を与えることができますが、これのオプションを指定すると、認証されていないユーザーにルートアクセス権を与えることになるため、代わりに root オプションを使用してください。
-index= filename オプションを使用すると、ユーザーが NFS URL にアクセスすると、ディレクトリのリストが表示されるのではなく、HTML (HyperText Markup Language) ファイルが強制的に読み込まれます。これは、HTTP URL がアクセスしているディレクトリに index.html ファイルが見つかるとブラウザのような動作をするというものです。このオプションを設定することは、httpd に対して DirectoryIndex オプションを指定するのと同じ意味です。たとえば、dfstab ファイルに、次のようなエントリがあるとします。
share -F nfs -o ro,public,index=index.html /export/web
このとき、次の URL によって表示される情報はすべて同じです。
nfs://<server>/<dir> nfs://<server>/<dir>/index.html nfs://<server>//export/web/<dir> nfs://<server>//export/web/<dir>/index.html http://<server>/<dir> http://<server>/<dir>/index.html
このオプションは、ファイルシステム用の NFS サーバーログ構成情報の入った /etc/nfs/nfslog.conf 内のタグを指定します。NFS サーバーログ機能を使用可能にするにはこのオプションを選択する必要があります。
このオプションを使用すると、setuid モードまたは setgid モードを有効にしようとしても無視されます。NFS クライアントは、setuid か setgid のビットがオンの状態ではファイルを作成できません。
-public オプションは、WebNFS ブラウズのために追加されました。このオプションで共有できるのは、1 台のサーバーにつき 1 つのファイルシステムだけです。
サーバーが、リスト上のホストに対してルートアクセス権を与えます。デフォルトでは、サーバーはどのリモートホストにもルートアクセス権は与えません。選択されているセキュリティーモードが -sec=sys 以外だと、accesslist に指定できるのはクライアントホスト名だけです。accesslist に定義されたクライアントのリストは、Solaris 2.6 で拡張されました。詳細については、「share コマンドを使ってアクセスリストを設定する」を参照してください。
client-name の値は、AUTH_SYS 認証で、exportfs(1B) で取得されたアドレスのリストにクライアントの IP アドレスが含まれているかどうかを検査するために使用します。一致が見つかった場合、クライアントに共有ファイルシステムへのルートアクセス権が与えられます。
AUTH_SYS または RPCSEC_GSS などのセキュリティー保護された NFS モードの場合、サーバーは、アクセスリストから派生したホストベースの主体名のリストに、クライアントの主体名が含まれているかどうかを検査します。クライアント主体名の汎用構文は root@hostname です。Kerberos V の場合、構文は root/hostname.fully.qualified@REALM です。host-name の値を使用する場合、アクセスリスト上のクライアントには主体名の資格が必要になります。Kerberos V の場合、クライアントには root/hostname.fully.qualified@REALM の主体名の有効な keytab エントリが必要です。詳細は、『Oracle Solaris の管理: セキュリティーサービス』の「Kerberos クライアントの構成」 を参照してください。
mode は、ファイルシステムへのアクセス権を取得するために必要なセキュリティーモードです。デフォルトのセキュリティーモードは、UNIX の認証です。モードは複数指定できますが、コマンド行に指定するときは 1 行につき 1 つのセキュリティーモードだけにしてください。各 -mode オプションはほかの -mode が検出されるまで、後続のすべての -rw、-ro、-rw=、- ro=、-root=、および -window= オプションに適用されます。-sec=none とすると、すべてのユーザーがユーザー nobody にマップされます。
value は、NFS サーバーで資格が有効な時間の上限です。デフォルトは 30000 秒 (8.3 時間) です。
accesslist には、ドメイン名、サブネット番号、およびアクセス権を拒否するエントリのほか、標準の -ro=、-rw=、または -root= オプションを含めることができます。この拡張により、名前空間を変更したり多数のクライアントを定義したリストを使用することなく、ファイルアクセス制御を単一のサーバーで簡単に管理できます。
次のコマンドは、ほとんどのシステムに読み取り専用アクセスを提供しますが、rose と lilac には読み取りと書き込みのアクセスを許可します。
# share -F nfs -o ro,rw=rose:lilac /usr/src
次の例では、eng ネットグループのすべてのホストで読み取りだけができるようになります。rose クライアントでは、読み取りと書き込みの両方ができます。
# share -F nfs -o ro=eng,rw=rose /usr/src
注 - 引数なしで rw と ro の両方を指定できません。読み書き可能オプションを指定しないと、デフォルトによってすべてのクライアントが読み書き可能になります。
複数のクライアントが 1 つのファイルシステムを共有するには、同じ行にすべてのオプションを入力する必要があります。同じオブジェクトに対して share コマンドを何度も実行しても、最後に実行されたコマンドだけが有効になります。次のコマンドでは、3 つのクライアントシステムで読み取りと書き込みができますが、rose と tulip では、ファイルシステムに root でアクセスできます。
# share -F nfs -o rw=rose:lilac:tulip,root=rose:tulip /usr/src
複数の認証メカニズムを使用するファイルシステムを共有する場合は、正しいセキュリティーモードの後に -ro、-ro=、-rw、-rw=、-root、および -window オプションを必ず含めるようにしてください。この例では、eng というネットグループ内のすべてのホストに対して UNIX 認証が選択されています。これらのホストは、ファイルシステムを読み取り専用モードでしかマウントできません。ホスト tulip と lilac は、Diffie-Hellman (DH) 認証を使用すれば読み書き可能でファイルシステムをマウントできます。これらのオプションを指定すると、tulip および lilac は、DH 認証を使用していない場合でも、ファイルシステムを読み取り専用でマウントすることができます。ただし、ホスト名が eng ネットグループに含まれている必要があります。
# share -F nfs -o sec=dh,rw=tulip:lilac,sec=sys,ro=eng /usr/src
デフォルトのセキュリティーモードは UNIX 認証ですが、-sec オプションを使用している場合、この UNIX 認証は含まれなくなります。そのため、UNIX 認証をほかの認証メカニズムとともに使用する場合は、-sec=sys オプションを指定する必要があります。
実際のドメイン名の前にドットを付けると、アクセスリスト中で DNS ドメイン名を使用できます。ドットの後の文字列はドメイン名です。完全指定のホスト名ではありません。次のエントリは、マウントから eng.example.com ドメイン内のすべてのホストへのアクセスを許可するためのものです。
# share -F nfs -o ro=.:.eng.example.com /export/share/man
この例で、「.」は NIS 名前空間を通じて一致するすべてのホストに対応します。ネームサービスから返される結果にはドメイン名は含まれません。「.eng.example.com」というエントリは、名前空間の解決に DNS を使用するすべてのホストに一致します。DNS が返すホスト名は必ず完全指定の名前になるので、DNS と他の名前空間を組み合わせると長いエントリが必要です。
実際のネットワーク番号かネットワーク名の前に「@」を指定すると、アクセスリストの中でサブネット番号を使用できます。この文字は、ネットワーク名をネットグループ名や完全指定のホスト名と区別するためです。サブネットは、/etc/networks 内か NIS 名前空間内で識別する必要があります。次のエントリは、サブネット 192.168 が eng ネットワークと識別されている場合、すべて同じ意味を持ちます。
# share -F nfs -o ro=@eng /export/share/man # share -F nfs -o ro=@192.168 /export/share/man # share -F nfs -o ro=@192.168.0.0 /export/share/man
2 番目と 3 番目のエントリは、ネットワークアドレス全体を指定する必要がないことを表しています。
ネットワークアドレスの先頭部分がバイトによる区切りでなく、CIDR (Classless Inter-Domain Routing) のようになっている場合には、マスクの長さをコマンド行で具体的に指定できます。この長さは、ネットワーク名かネットワーク番号の後ろにスラッシュで区切ってアドレスの接頭辞に有効ビット数として指定します。例:
# share -f nfs -o ro=@eng/17 /export/share/man # share -F nfs -o ro=@192.168.0/17 /export/share/man
この例で、「/17」はアドレスの先頭から 17 ビットがマスクとして使用されることを表します。CIDR の詳細は、RFC 1519 を参照してください。
また、エントリの前に「-」を指定することでアクセスの拒否を示すこともできます。エントリは左から右に読み込まれるため、アクセス拒否のエントリは次のようにそのエントリを適用するエントリの前に置く必要があることに注意してください。
# share -F nfs -o ro=-rose:.eng.example.com /export/share/man
この例では、eng.example.com ドメイン内のホストのうち、rose を除いたすべてに対してアクセスが許可されます。
このコマンドを使用すると、それまでクライアントでのマウントに使用できたファイルシステムが使用できなくなります。NFS ファイルシステムの共有を解除している場合、クライアントから既存マウントへのアクセスは禁止されます。クライアントにはファイルシステムがまだマウントされている可能性がありますが、ファイルにはアクセスできません。-t オプションを使用してファイルシステムの共有を一時的に解除する場合を除き、unshare コマンドは共有を恒久的に削除します。
注 - ファイルシステムの共有を解除してから再度共有するとき、NFS version 4 がどのように動作するかについては、「NFS version 4 におけるファイルシステムの共有解除と再共有」を参照してください。
次の例では、指定したファイルシステムの共有が解除されます。
# unshare /usr/src
このコマンドを使用すると、複数のファイルシステムを共有することができます。オプションなしで使用すると、/etc/dfs/dfstab 内のすべてのエントリが共有されます。share コマンドを並べたファイルの名前を指定することができます。ファイル名を指定しないと、/etc/dfs/dfstab の内容が検査されます。「-」を使ってファイル名を置き換えれば、標準入力から share コマンドを入力できます。
次の例では、ローカルファイルに一覧表示されているすべてのファイルシステムが共有されます。
# shareall /etc/dfs/special_dfstab
このコマンドを使用すると、現在共有されているリソースがすべて使用できなくなります。-F FSType オプションによって、/etc/dfs/fstypes に定義されているファイルシステムタイプのリストを選択します。このフラグによって、特定のタイプのファイルシステムだけを共有解除できます。デフォルトのファイルシステムタイプは、/etc/dfs/fstypes に定義されています。特定のファイルシステムを選択するには、unshare コマンドを使います。
次の例では、NFS タイプのファイルシステムの共有がすべて解除されます。
# unshareall -F nfs
このコマンドは、次のいずれかを表示します。
NFS サーバーから共有している、リモートマウントされたファイルシステムを持つすべてのクライアント
クライアントによってマウントされたファイルシステムのみ
共有されたファイルシステムおよびクライアントのアクセス情報
注 - showmount コマンドを使用すると、NFS version 2 と version 3 のエクスポートだけが表示され、NFS version 4 のエクスポートは表示されません。
showmount [ -ade ] [ hostname ]
すべてのリモートマウントのリストを出力します。各エントリには、クライアント名とディレクトリが含まれます。
クライアントがリモートマウントしたディレクトリのリストを表示します。
共有されているファイル、またはエクスポートされたファイルのリストを表示します。
表示する情報の取得元 NFS サーバーを指定します。
hostname を指定しない場合、ローカルホストの情報が表示されます。
次のコマンドでは、すべてのクライアント、およびマウントしたローカルディレクトリが表示されます。
# showmount -a bee lilac:/export/share/man lilac:/usr/src rose:/usr/src tulip:/export/share/man
次のコマンドでは、マウントしたディレクトリが表示されます。
# showmount -d bee /export/share/man /usr/src
次のコマンドでは、共有しているファイルシステムが表示されます。
# showmount -e bee /usr/src (everyone) /export/share/man eng
このコマンドを使用すると、/etc/mnttab テーブルが作成されます。このテーブルは、mount コマンドと umount コマンドで参照されます。通常、このコマンドは、システムのブート時に自動的に実行されるため、手動で実行する必要はありません。
nfsref コマンドは、NFSv4 リフェラルの追加、削除、または一覧表示に使用します。このコマンドの構文は次のとおりです。
nfsref add path location [ location … ]
nfsref remove path
nfsref lookup path
再解析ポイントの名前を選択します。
再解析ポイントに関連付ける 1 つ以上の NFS または SMB 共有ファイルシステムを識別します。