ファイルシステム上のファイルにアクセスするには、ファイルシステムをマウントする必要があります。ファイルシステムのマウントとは、ファイルシステムを特定のディレクトリ (マウントポイント) に接続し、システムで使用可能にすることです。ルート (/) ファイルシステムは、常にマウントされています。ほかのファイルシステムは、ルート (/) ファイルシステムに接続したり切り離したりできます。
ファイルシステムをマウントすると、そのファイルシステムがマウントされている間は、マウントポイントのディレクトリ内に実際に存在しているファイルやディレクトリは使用できなくなります。これらのファイルは、永続的にマウントプロセスの影響を受け続けるわけではありません。ファイルシステムのマウントが解除されると、再び使用可能な状態になります。ただし、通常は存在するがアクセスできないファイルは混乱の原因となるので、通常マウントディレクトリは空になっています。
たとえば、次の図は、ルート (/) ファイルシステムと、その下の sbin、etc、opt の各サブディレクトリから始まるローカルファイルシステムを示しています。
別パッケージの製品が含まれている /opt ファイルシステムからローカルファイルシステムにアクセスするには、次の作業を行います。
まず、ファイルシステムをマウントするためのマウントポイントとして使用するディレクトリを作成します (例: /opt/unbundled)。
マウントポイントを作成したら、mount コマンドを使ってファイルシステムをマウントします。このコマンドを実行すると、/opt/unbundled 内のすべてのファイルおよびディレクトリが使用可能になります (次の図を参照)。
ファイルシステムのマウント手順については、第 18 章ファイルシステムのマウントとマウント解除 (手順)を参照してください。
ファイルシステムをマウントまたはマウント解除すると、現在マウントされているファイルシステムのリストを使用して、/etc/mnttab (マウントテーブル) ファイルが変更されます。このファイルの内容を表示するには、cat または more コマンドを使用します。ただし、このファイルを編集することはできません。次にマウントテーブルファイル /etc/mnttab の例を示します。
$ more /etc/mnttab rpool/ROOT/zfs509BE / zfs dev=4010002 0 /devices /devices devfs dev=5000000 1235087509 ctfs /system/contract ctfs dev=5040001 1235087509 proc /proc proc dev=5080000 1235087509 mnttab /etc/mnttab mntfs dev=50c0001 1235087509 swap /etc/svc/volatile tmpfs xattr,dev=5100001 1235087510 objfs /system/object objfs dev=5140001 1235087510 sharefs /etc/dfs/sharetab sharefs dev=5180001 1235087510 fd /dev/fd fd rw,dev=52c0001 1235087527 swap /tmp tmpfs xattr,dev=5100002 1235087543 swap /var/run tmpfs xattr,dev=5100003 1235087543 rpool/export /export zfs rw,devices,setuid,nonbmand,exec,xattr,... rpool/export/home /export/home zfs rw,devices,setuid,nonbmand,exec,... rpool /rpool zfs rw,devices,setuid,nonbmand,exec,xattr,atime,dev=4010005 1235087656 |
必要に応じて毎回ファイルシステムを手動でマウントしていては、非常に効率が悪く、エラーも発生しやすくなります。これらの問題を解決するために、virtual file system table (/etc/vfstab ファイル) にファイルシステムのリストとそのマウント方法を指定できます。
/etc/vfstab ファイルは、2 つの重要な機能を持っています。
システムブート時に自動的にマウントするファイルシステムを指定できます。ZFS ファイルシステムは、ブート時に SMF サービスにより自動的にマウントされます。vfstab ファイル内のエントリは使用されません。
マウントポイント名だけを使って、ファイルシステムをマウントできます。/etc/vfstab ファイルには、マウントポイントと実際のデバイススライス名のマッピング情報が含まれています。
システムをインストールすると、インストール時の選択内容に基づいて、デフォルトの /etc/vfstab ファイルが作成されます。ただし、システムの /etc/vfstab ファイルはいつでも編集できます。エントリを追加するには、次のような情報を指定する必要があります。
ファイルシステムが配置されるデバイス
ファイルシステムのマウントポイント
ファイルシステムのタイプ
システムのブート時に、mountall コマンドを使ってファイルシステムを自動的にマウントするかどうか
マウントオプション
次に、UFS ルートファイルシステムが動作するシステムの /etc/vfstab ファイルの例を示します。コメント行は # で始まります。この例は、2 つのディスク (c0t0d0 と c0t3d0) を持つシステムの /etc/vfstab ファイルを示しています。
$ more /etc/vfstab #device device mount FS fsck mount mount #to mount to fsck point type pass at boot options # fd - /dev/fd fd - no - /proc - /proc proc - no - /dev/dsk/c0t0d0s1 - - swap - no - /dev/dsk/c0t0d0s0 /dev/rdsk/c0t0d0s0 / ufs 1 no - /dev/dsk/c0t0d0s6 /dev/rdsk/c0t0d0s6 /usr ufs 1 no - /dev/dsk/c0t0d0s7 /dev/rdsk/c0t0d0s7 /export/home ufs 2 yes - /dev/dsk/c0t0d0s5 /dev/rdsk/c0t0d0s5 /opt ufs 2 yes - /devices - /devices devfs - no - sharefs - /etc/dfs/sharetabsharefs - no - ctfs - /system/contract ctfs - no - objfs - /system/object objfs - no - swap - /tmp tmpfs - yes - |
この例では、ルート (/) や /usr の場合、mount at boot フィールドの値は no になります。これらのファイルシステムは、ブートシーケンスの一環として、mountall コマンドの実行前にカーネルによってマウントされます。
次に、ZFS ルートファイルシステムが動作するシステムの vfstab の例を示します。
# cat /etc/vfstab #device device mount FS fsck mount mount #to mount to fsck point type pass at boot options # fd - /dev/fd fd - no - /proc - /proc proc - no - /dev/zvol/dsk/rpool/swap - - swap - no - /devices - /devices devfs - no - sharefs - /etc/dfs/sharetabsharefs - no - ctfs - /system/contract ctfs - no - objfs - /system/object objfs - no - swap - /tmp tmpfs - yes - |
ZFS ファイルシステムは、ブート時に SMF サービスにより自動的にマウントされます。レガシーのマウント機能を使用し、vfstab に従って ZFS ファイルシステムをマウントできます。詳細については、『Oracle Solaris ZFS 管理ガイド』を参照してください。
/etc/vfstab の各フィールドの説明、およびこのファイルの編集方法と使用方法については、第 18 章ファイルシステムのマウントとマウント解除 (手順)を参照してください。
NFS は、1 つのシステム (通常はサーバー) のリソース (ファイルやディレクトリ) をネットワーク上のほかのシステムと共有するための分散型ファイルシステムサービスです。たとえば、他社製のアプリケーションやソースファイルをほかのシステム上のユーザーと共有できます。
NFS は、リソースの実際の物理的な位置をユーザーが意識しなくてすむようにします。よく使用されるファイルのコピーをシステムごとに配置しなくても、あるシステムのディスク上にコピーを 1 つ配置することによって NFS は、ほかのすべてのシステムがそのコピーにネットワークからアクセスできるようにします。NFS の環境では、リモートファイルはローカルファイルと区別がつきません。
詳細については、『Solaris のシステム管理 (ネットワークサービス)』の第 4 章「ネットワークファイルシステムの管理 (概要)」を参照してください。
システムは、ネットワーク上で共有するリソースがあるときに、NFS サーバーになります。サーバーは、現在共有されているリソースとそのアクセス制限 (読み取り / 書き込み、読み取り専用アクセスなど) のリストを管理します。
リソースを共有する場合は、リモートシステムにマウントできるように、そのリソースを使用可能な状態にします。
リソースを共有するには、次の方法があります。
リソースを共有する手順については、第 18 章ファイルシステムのマウントとマウント解除 (手順)を参照してください。NFS の詳細については、『Solaris のシステム管理 (ネットワークサービス)』の第 4 章「ネットワークファイルシステムの管理 (概要)」を参照してください。
Solaris リリースには、Sun の実装の NFS version 4 分散ファイルアクセスプロトコルが含まれています。
NFS version 4 では、ファイルアクセス、ファイルロック、およびマウントプロトコルが 1 つのプロトコルに統合されるので、ファイアウォールの通過が容易になり、セキュリティーが向上します。Solaris の NFS version 4 実装は、SEAM としても知られている Kerberos V5 と完全に統合されていますので、認証、整合性、およびプライバシの機能を備えています。NFS version 4 を使用して、クライアントとサーバーとの間で使用するセキュリティーの種類の交渉を行うこともできます。NFS version 4 を実装しているサーバーは、さまざまなセキュリティー種類とファイルシステムに対応できます。
NFS Version 4 の機能については、『Solaris のシステム管理 (ネットワークサービス)』の「NFS サービスの新機能」を参照してください。
NFS ファイルシステムリソースをマウントするには、「自動マウント」(autofs) というクライアント側のサービスを使用します。autofs サービスにより、システムから NFS リソースにアクセスするたびに、これらのリソースを自動的にマウントしたりマウント解除したりできます。ユーザーがこのディレクトリ内で、このディレクトリに格納されているファイルを使用している間、ファイルシステムリソースはマウントされたままになります。リソースが一定の時間アクセスされなかった場合、リソースは自動的にマウント解除されます。
autofs サービスには、次の機能があります。
システムブート時に NFS リソースをマウントする必要がないために、ブート時間が短くなります。
NFS リソースをマウントまたはマウント解除するために、スーパーユーザーのパスワードを知っている必要はありません。
NFS リソースは使用されるときにだけマウントされるために、ネットワークトラフィックが軽減されます。
autofs サービスは automount ユーティリティーによって初期化されます。このコマンドは、システムのブート時に自動的に実行されます。automountd デーモンは永続的に動作し、必要に応じて NFS ファイルシステムをマウントまたはマウント解除します。デフォルトでは、/home ファイルシステムは automount デーモンによってマウントされます。
autofs では、同じファイルシステムを提供するサーバーを複数指定できます。このような方法では、1 つのサーバーがダウンしても、autofs がその他のマシンからファイルシステムのマウントを試みることができます。
autofs の設定および管理方法については、『Solaris のシステム管理 (IP サービス)』を参照してください。