この章の内容は次のとおりです
この節では、ファイルシステムの新機能について説明します。
新しい TMPFS マウントのファイルシステム /var/run は、一時的な (つまり、システムをリブートした場合に残る必要がない) ファイルシステム用のリポジトリです。今回のリリースから Solaris で採用されています。従来の /tmp ディレクトリもシステムファイル以外の一時的なファイル用のリポジトリとして存続します。
/var/run は、ディスクベースのファイルシステムではなく、メモリーベースのファイルシステムとしてマウントされます。このディレクトリが更新されても不必要なディスクトラフィックが発生しないため、システムは干渉されずに電源管理ソフトウェアを実行し続けることができます。
/var/run ディレクトリは管理が不要です。umount -a コマンドや umountall コマンドでもマウントは解除されません。
セキュリティ上の理由から、/var/run の所有者は root です。
以前の Solaris リリースでは、/etc/mnttab はテキストベースのファイルであり、マウントされているファイルシステムについての情報を格納していました。このようにテキストファイルにすると、マウントされているファイルシステムの実際の状態が反映されないという欠点がありました。
今回のリリースの Solairs では、/etc/mnttab は MNTFS ファイルシステムであり、マウントされているファイルシステムについての (読み取り専用の) 情報をカーネルからローカルシステムに直接提供します。
次に、mnttab の動作の変更点を示します。
/etc/mnttab に書き込もうとするプログラムまたはスクリプトは失敗します。
mnttab エントリに似せている mount -m オプションは機能しません。
/etc/mnttab マウントテーブルは管理が不要です。
詳細は、mnttab(4) のマニュアルページを参照してください。
今回のリリースの Solaris には、DVD (Digital Versatile Disc または Digital Video Disc) 光学式媒体に情報を格納するための業界標準形式である UDF ファイルシステムが含まれています。
UDF ファイルシステムは、SPARC と IA の両方のプラットフォームにおいて、動的に読み込み可能な 32 ビットと 64 ビットのモジュールとして提供されます。また、ファイルシステムを作成、マウント、および検査するシステム管理ユーティリティも同時に提供されます。Solaris の UDF ファイルシステムは、サポートされている ATAPI と SCSI の DVD ドライブ、CD-ROM デバイス、ハードディスク、およびフロッピーディスクドライブで機能します。さらに、Solaris の UDF ファイルシステムは UDF 1.50 仕様に完全に準拠しています。
UDF ファイルシステムのサポートは、次の新しいパッケージで提供されます。
SUNWudfr - 32 ビットのカーネル構成要素
SUNWudfrx - 64 ビットのカーネル構成要素
SUNWudf - /usr の構成要素
今回のリリースの Solaris では、UDF ファイルシステムには次のような特徴があります。
UDF ファイルシステムが入っている業界標準の CD-ROM や DVD-ROM の媒体にアクセスできます。
プラットフォームやオペレーティングシステムを超えて情報を交換できます。
UDF 形式に基づく DVD ビデオ仕様を使用することで、相互対話性が豊富な放送品質並みの映像や高品質のサウンドを持つ新しいアプリケーションを実装できます。
次の特徴は、今回のリリースの UDF ファイルシステムには含まれていません。
CD-RW (何度でも書き換えが可能な CD 媒体) と DVD-RAM は順次ディスク同時記録方式と増分記録方式の両方ともサポートされません。
ディスク割り当て、ACL、トランザクションのロギング、ファイルシステムのロック、およびファイルシステムのスレッドなどの UFS 構成要素は UDF 1.50 仕様の一部ではないため、サポートされません。
次に、UDF ファイルシステムの要件を示します。
Solaris 7 11/99 または Solaris 8 リリース
サポートされている SPARC または Intel のプラットフォーム
サポートされている CD-ROM または DVD-ROM のドライブ
この リリースの Solaris で初めて実装された UDF ファイルシステムには、次のような互換性があります。
業界標準の読み書き UDF バージョン 1.50 のサポート
完全に国際化されたファイルシステムのユーティリティ
スーパーユーザーになります。
/reconfigure ファイルを作成します。
# touch /reconfigure |
システムをシャットダウンして、電源を切ります。
# init 0 |
DVD-ROM デバイスを接続します。
システムの電源を入れます。
DVD-ROM デバイスが自動的にマウントされていることを確認します。
$ ls /cdrom |
CD-ROM と DVD-ROM の両方のデバイスがシステムに接続されている場合、CD-ROM の名前が /cdrom/cdrom0 となり、DVD-ROM の名前が /cdrom/cdrom1 となります。DVD-ROM だけがシステムに接続されている場合は、/cdrom/cdrom0 を使用してください。
ls コマンドで DVD-ROM の内容を表示します。
$ ls /cdrom/cdrom1 Copyright filea fileb |
現在のところ、CDE ファイルマネージャによる自動表示は実装されていません。CDE ファイルマネージャのその他の機能 (ドラッグ&ドロップによるコピーや imagetool の機能など) はすべて利用できます。
UDF ファイルシステムのパラメータを表示するには、mkfs コマンドを使用します。
UDF ファイルシステムを作成するには、mkfs コマンドを使用します。
スーパーユーザーになります。
UDF ファイルシステムを作成します。
# mkfs -F udfs /dev/rdsk/device-name |
UDF ファイルシステムをマウントして、UDF ファイルシステムが作成されていることを確認します。詳細は、「UDF ファイルシステムをマウントする方法」を参照してください。
詳細は、mkfs_udfs(1M) のマニュアルページを参照してください。
UDF ファイルシステムのタイプを識別するには、fstyp コマンドを使用します。
UDF ファイルシステムの完全性を検査するには、fsck コマンドを使用します。
詳細は、fsck_udfs(1M) のマニュアルページを参照してください。
UDF ファイルシステムをマウントするには、次のようにします。
スーパーユーザーになります。
UDF ファイルシステムをマウントします。
# mount -F udfs /dev/dsk/device-name /mount-point |
UDF ファイルシステムがマウントされていることを確認します。
# ls /mount-point |
詳細は、mount_udfs(1M) のマニュアルページを参照してください。
UDF ファイルシステムのマウントを解除するには、次のようにします。
UDF ファイルシステム用のファイルシステム名 (ラベル) とボリューム名を作成するには、次のようにします。
スーパーユーザーになります。
UDF ファイルシステム用のファイルシステム名とボリューム名を作成します。
# labelit -F UDFS /dev/rdsk/device-name fsname volume |
詳細は、labelit_udfs(1M) のマニュアルページを参照してください。
ファイルシステムは、ファイルを編成して格納するためのディレクトリ構造です。「ファイルシステム」という用語には、さまざまな使用方法があります。
ディスクベース、ネットワークベース、または仮想ファイルシステムなど、特定のタイプのファイルシステムを指す場合
ルートディレクトリから下位へのファイルツリー全体を指す場合
ディスクスライスや他の記憶媒体デバイスのデータ構造を指す場合
ファイルツリー構造のうち、アクセスできるように主なファイルツリー上のマウントポイントに接続されている部分を指す場合
通常、その意味は状況に応じて判断できます。
Solaris オペレーティング環境は、各種ファイルシステムへの標準インタフェースを提供する「仮想ファイルシステム」 (VFS) アーキテクチャを使用します。VFS アーキテクチャによって、カーネルはファイルの読み取り、書き込み、一覧表示などの基本操作を処理できます。 また、新しいファイルシステムの追加が容易になります。
ファイルシステムの管理は、最も重要なシステム管理作業の 1 つです。この章を読んで概念と計画方法について理解してください。次の作業については、下記の該当箇所を参照してください。
作業内容 |
参照 |
---|---|
新しい UFS と仮想ファイルシステムを設定する | |
ローカルファイルとリモートファイルをユーザーが利用できるようにする | |
新しい記憶デバイスを接続して構成する | |
バックアップスケジュールを計画して導入し、必要に応じてファイルとファイルシステムを復元する | |
ファイルシステムの損傷をチェックして訂正する |
Solaris システムソフトウェアでは、次の 3 種類のファイルシステムがサポートされます。
ディスクベースのファイルシステム
ネットワークベースのファイルシステム
仮想ファイルシステム
ファイルシステムのタイプを確認するには、「ファイルシステムのタイプを調べる」を参照してください。
ディスクベースのファイルシステムは、ハードディスク、CD-ROM、フロッピーディスクなどの物理媒体に格納されます。ディスクベースのファイルシステムは、さまざまな形式で作成できます。利用できる形式は次のとおりです。
ディスクベースのファイルシステム |
説明 |
---|---|
UFS |
UNIX ファイルシステム (4.3 Tahoe リリースに組み込まれていた BSD Fast File システム)。UFS は、Solaris オペレーティング環境のデフォルトのディスクベースファイルシステムです。 UFS ファイルシステムをディスク上に作成する前に、そのディスクをフォーマットし、スライスに分割しなければなりません。ディスクのフォーマットとディスクのスライスへの分割についての詳細は、第 28 章「ディスクの管理 (概要)」を参照してください。 |
HSFS |
High Sierra と ISO 9660 のファイルシステム。High Sierra は、初めての CD-ROM ファイルシステムです。ISO 9660 は、High Sierra ファイルシステムの公式の標準バージョンです。HSFS ファイルシステムは CD-ROM 上で使用される読み取り専用ファイルシステムです。Solaris HSFS では、ISO 9660 への Rock Ridge 拡張がサポートされるので、CD-ROM 上でも、すべての UFS ファイルシステムのセマンティクスとファイルタイプを提供します。ただし、書き込み可能ではなく、ハードリンクも提供しません。 |
PCFS |
PC ファイルシステム。DOS ベースのパーソナルコンピュータ用に作成された DOS フォーマットのディスク上のデータとプログラムに読み取り/書き込みのアクセスができます。 |
UDF |
UDF ファイルシステム。DVD (Digital Versatile Disc または Digital Video Disc) と呼ばれる光学式媒体テクノロジに情報を格納するための業界標準形式。 |
ディスクベースの各種ファイルシステムは、次のように特定の媒体のタイプに対応しています。
UFS とハードディスク
HSFS と CD-ROM
PCFS とフロッピーディスク
UDF と DVD
ただし、上記以外の組み合わせも可能です。たとえば、CD-ROM やフロッピーディスクにも、UFS ファイルシステムを格納できます。
ネットワークベースのファイルシステムは、ネットワーク上でアクセスされるファイルシステムです。一般に、ネットワークベースのファイルシステムは 1 つのシステム上 (通常はサーバー上) にあり、他のシステムからネットワーク経由でアクセスされます。NFS は、ネットワークベースまたは分散コンピューティングで利用できる唯一のファイルシステムです。
NFS で分散資源 (ファイルやディレクトリ) を管理するには、サーバーから分散資源をエクスポートして個々のクライアントシステムでそれらをマウントします。詳細は、「NFS 環境」を参照してください。
仮想ファイルシステムは、特殊なカーネル情報と機能へのアクセスを提供するメモリーベースのファイルシステムです。ほとんどの仮想ファイルシステムは、ディスク領域を使用しません。ただし、キャッシュファイルシステム (CacheFS) は、ディスク上のファイルシステムを使用してキャッシュを保持します。また、一時ファイルシステム (TMPFS) などの一部の仮想ファイルシステムは、ディスク上のスワップ空間を使用します。
キャッシュファイルシステム (CacheFS) を使用すると、リモートファイルシステムや、CD-ROM ドライブのような低速デバイスのパフォーマンスを改善できます。ファイルシステムをキャッシュすると、リモートファイルシステムや CD-ROM から読み込まれたデータは、ローカルシステム上のキャッシュに格納されます。CacheFS ファイルシステムの設定と管理については、第 37 章「キャッシュファイルシステム (手順)」を参照してください。
一時ファイルシステム (TMPFS) は、ファイルシステムの読み取りと書き込みにローカルメモリーを使用します。一般に、一時ファイルシステムは、UFS ファイルシステムに比べてアクセス速度が高速です。TMPFS を使用すると、ローカルディスク上で、あるいはネットワーク経由で一時ファイルの読み書きを行う際のオーバヘッドを軽減でき、システムパフォーマンスを改善できます。たとえば、プログラムをコンパイルすると一時ファイルが作成されます。オペレーティングシステムは、これらのファイルを処理する間に大量のディスク処理やネットワーク処理を行います。TMPFS を使用してこれらの一時ファイルを格納すると、その作成、処理、または削除が大幅に高速になります。
ファイルシステムのマウントが解除されるときと、システムがシャットダウンまたはリブートされるときに、一時ファイルシステム上のファイルは削除されます。
TMPFS は、Solaris オペレーティング環境内の /tmp ディレクトリのデフォルトのファイルシステムです。UFS /tmp ファイルシステムの場合と同様に、/tmp ディレクトリとの間でファイルをコピーまたは移動できます。
TMPFS ファイルシステムは、一時的な退避場所としてスワップ空間を使用します。TMPFS ファイルシステムがマウントされたシステムのスワップ空間が足りないと、次の 2 つの問題が発生する可能性があります。
TMPFS ファイルシステムは、通常のファイルシステムがいっぱいになるのと同様に容量不足になる可能性がある。
TMPFS はスワップ空間を割り当ててファイルのデータを保存するので (必要な場合)、一部のプログラムがスワップ空間不足のために実行できなくなる。
TMPFS ファイルシステムの作成方法については、第 35 章「ファイルシステムの作成 (手順)」を参照してください。スワップ空間を拡張する方法については、第 38 章「追加スワップ空間の構成 (手順)」を参照してください。
ループバックファイルシステム (LOFS) を使用すると、代替パス名を使用してファイルにアクセスできるように、新しい仮想ファイルシステムを作成できます。たとえば、ルート (/) のループバックマウントを /tmp/newroot 上で作成できます。ファイルシステム階層全体が、NFS サーバーからマウントされるファイルシステムを含め、/tmp/newroot 上に複写されたように見えます。どのファイルにも、ルート (/) で始まるパス名または /tmp/newroot で始まるパス名を使用してアクセスできます。
LOFS ファイルシステムの作成方法については、第 35 章「ファイルシステムの作成 (手順)」を参照してください。
プロセスファイルシステム (PROCFS) はメモリー内にあります。PROCFS の /proc ディレクトリには、有効なプロセスのプロセス番号別リストが入っています。/proc ディレクトリ内の内容は、ps などのコマンドに使用されます。デバッガや他の開発ツールも、ファイルシステムコールを使用して、プロセスのアドレス空間にアクセスできます。
/proc ディレクトリ内のファイルは削除しないでください。/proc ディレクトリからプロセスを削除しても、そのプロセスは強制終了されません。/proc ファイルはディスク容量を消費しないため、このディレクトリからファイルを削除してもあまり意味がありません。
/proc ディレクトリは、システム管理が不要です。
次のタイプの仮想ファイルシステムは、参考のために掲載してあります。管理は不要です。
仮想ファイルシステム |
説明 |
---|---|
FIFOFS (先入れ先出し) | |
FDFS (ファイル記述子) | |
NAMEFS | |
SPECFS (特殊) | |
SWAPFS |
ほとんどのファイルシステム管理コマンドには、汎用コマンドとファイルシステムに固有のコマンドの 2 種類があります。可能な場合には、常に汎用コマンドを使用してください。汎用コマンドは、ファイルシステム固有のコマンドを呼び出します。表 34-1 に、汎用ファイルシステム管理コマンドを示します。これらのコマンドは、/usr/sbin ディレクトリに入っています。
表 34-1 汎用ファイルシステム管理コマンド
コマンド |
機能 |
---|---|
i ノードをクリアする。 |
|
空きディスクブロック数とファイル数を出力する。 |
|
ファイルシステムのファイル名と統計情報を表示する。 |
|
ファイルシステムの完全性をチェックし、検出された損傷を修復する。 |
|
ファイルシステムをデバッグする。 |
|
ファイルシステムのタイプを調べる。 |
|
テープにコピーするときに、ファイルシステムのラベルを表示または作成する (volcopy コマンド専用)。 |
|
新しいファイルシステムを作成する。 |
|
ローカルおよびリモートのファイルシステムをマウントする。 |
|
仮想ファイルシステムテーブルに指定されているすべてのファイルシステムをマウントする。 (/tec/vfstab) |
|
パス名とその i 番号のリストを生成する。 |
|
ローカルおよびリモートのファイルシステムをマウント解除する。 |
|
仮想ファイルシステムテーブルに指定されているすべてのファイルシステムをマウント解除する。(/etc/vfstab) |
|
ファイルシステムのイメージコピーを作成する。 |
汎用ファイルシステムコマンドは、次の順序でファイルシステムのタイプを判断します。
-F オプションで指定されているファイルシステムのタイプ
特殊デバイスを /etc/vfstab 内のエントリと突き合わせて判断します (special が指定されている場合)。たとえば fsck は、まず fsck device フィールドと突き合わせて一致するエントリを検索します。一致するエントリが見つからなければ、特殊デバイスフィールドと突き合わせてチェックします。
ローカルファイルシステムの場合は /etc/default/fs 内で指定されたデフォルトを使用し、リモートファイルシステムの場合は /etc/dfs/fstypes 内で指定されたデフォルトを使用して判断します。
汎用コマンドと専用コマンドについては、『man Pages(1M): System Administration Commands』を参照してください。専用コマンドのマニュアルページは、汎用コマンドのマニュアルページに続いて入っています。特定のマニュアルページを見つけるには、汎用コマンド名の末尾にアンダースコアとファイルシステムタイプの略称を追加してください。たとえば、UFS ファイルシステムのマウントについてのマニュアルページを参照するには、man mount_ufs(1M) と入力します。
Solaris ファイルシステムは階層構造になっており、ルートディレクトリ (/) から始まり、下位に多数のディレクトリが形成されています。Solaris のインストールプロセスは、デフォルトのディレクトリセットをインストールし、一連の規則を適用して類似するタイプのファイルをグループ化します。表 34-2 に、デフォルトの Solaris ファイルシステムの概要と、各ファイルシステムのタイプを示します。
システムを動作させるには、ルート (/) と /usr のファイルシステムが必要です。/usr ファイルシステムに置かれている最も基本的なコマンドの一部 (mount など) は、システムのブート時や、システムがシングルユーザーモードで実行しており、/usr ファイルシステムがマウントされていない場合でも使用できるように、ルート (/) ファイルシステムにも置かれています。デフォルトディレクトリのリストについては、第 40 章「UFS ファイルシステム (参照情報)」を参照してください。
表 34-2 デフォルトの Solaris ファイルシステム
ファイルシステムまたはディレクトリ |
ファイルシステムのタイプ |
説明 |
---|---|---|
UFS |
階層ファイルツリーの最上位。ルートディレクトリには、カーネル、デバイスドライバ、システムのブートに使用されるプログラムなど、システム処理に欠かせないディレクトリとファイルが入っている。また、ローカルとリモートのファイルシステムをファイルツリーに接続できるマウントポイントディレクトリも入っている。 |
|
UFS |
他のユーザーと共有できるシステムファイルとディレクトリ。特定のタイプのシステム上でのみ実行できるファイルは、/usr ディレクトリに入っている (SPARC 実行可能ファイルなど)。どのタイプのシステム上でも使用できるファイル (マニュアルページなど) は、/usr/share に入っている。 |
|
NFS、UFS |
ユーザーのホームディレクトリのマウントポイント。ホームディレクトリには、そのユーザーの作業ファイルが格納される。デフォルトでは、/home は自動マウントされるファイルシステムである。スタンドアロンシステム上では、/home はローカルディスクスライス上の UFS ファイルシステムの場合がある。 |
|
UFS |
ローカルシステムの使用中に変化または拡大する可能性のあるシステムファイルとディレクトリ。これには、システムログ、vi と ex のバックアップファイル、および uucp ファイルが含まれる。 |
|
NFS、UFS |
オプションの Sun 以外のソフトウェア製品のマウントポイント。システムによっては、/opt がローカルディスクスライス上の UFS ファイルシステムの場合がある。 |
|
TMPFS |
システムがブートされるたびにまたは /tmp ファイルシステムがマウント解除されるたびに消去される一時ファイル |
|
PROCFS |
アクティブなプロセスの番号別リスト |
Solaris オペレーティング環境は、一部のディスクスライスをファイルシステムではなく一時記憶域として使用します。これらのスライスを「スワップスライス」または「スワップ空間」と呼びます。スワップスライスは、現在のプロセスを処理するだけの十分な物理メモリーがシステムにない場合に、仮想メモリー記憶域として使用されます。
多くのアプリケーションは十分なスワップ空間が使用できることを前提に作成されているため、スワップ空間を割り当て、その使われ方を監視して、必要に応じてスワップ空間を追加する方法を知っておくことは大切です。スワップ空間の概要とスワップ空間を追加する手順については、第 38 章「追加スワップ空間の構成 (手順)」を参照してください。
UFS は、Solaris オペレーティング環境内のデフォルトのディスクベースファイルシステムです。ほとんどの場合、ディスクベースのファイルシステムを管理するときには、UFS を管理していることになります。UFS ファイルシステムの機能は次の通りです。
UFS ファイルシステムの詳細は、第 40 章「UFS ファイルシステム (参照情報)」を参照してください。
UFS ファイルシステムを作成すると、ディスクスライスは、1 つまたは複数の連続するディスクシリンダから構成されるシリンダグループに分割されます。シリンダグループはさらに、アドレス指定可能なブロックに分割され、このブロックによって、シリンダグループ内のファイルの構造が制御され、編成されます。各種のブロックは、ファイルシステム内で特定の機能を持っています。
newfs コマンドまたは mkfs コマンドの引数を使用してファイルシステムをカスタマイズするには、これらのパラメータの変更方法について第 40 章「UFS ファイルシステム (参照情報)」を参照してください。
UFS ロギングは、トランザクション (完全な UFS 操作を構成する変更) をログに保存してから、そのトランザクションを UFS ファイルシステムに適用するプロセスです。保存されたトランザクションは、後でファイルシステムに適用できます。
システムはリブート時に、不完全なトランザクションを廃棄しますが、完結している操作のトランザクションは適用します。完結しているトランザクションだけが適用されるために、ファイルシステムの整合性が保たれます。通常であればシステムコールの実行が中断され、UFS ファイルシステムの整合性が確保できないシステムクラッシュ時にも、ファイルシステムの整合性が保たれます。
UFS ロギングには 2 つの長所があります。まず、ファイルシステムの整合性が保持されるため、fsck(1M) を実行する必要がなくなります。また、fsck を省略できるため、システムがクラッシュしたり、異常停止 (クリーンではない停止) した場合でもシステムをリブートするのに要する時間を短縮できます。クリーンではない停止についての詳細は、「fsck でチェックして修復される内容」を参照してください。UFS ロギングを使用すれば、特に、通常であれば fsck による読み込みと確認に時間がかかる大規模ファイルシステムを持つシステムのブート時間をかなり短縮できます。
UFS ロギングが作成するログは、いっぱいになるとフラッシュされます。また、ファイルシステムがマウント解除されたとき、あるいは lockfs -f コマンドを実行したときにも、ログはすべてフラッシュされます。
デフォルトでは、UFS ロギングは無効です。UFS ロギングを有効にするには、ファイルシステムをマウントするときか /etc/vfstab ファイル内で -o logging オプションを指定して mount(1M) コマンドを実行しなければなりません。ログはファイルシステムの空きブロックから割り当てられ、1G バイトのファイルシステムごとに約 1M バイトのサイズ (合計で 64M バイトまで) が割り当てられます。ログは、ルート (/) ファイルシステムを含む、任意の UFS で有効にできます。また、fsdb コマンドには、UFS ロギングをサポートするための新しいデバッグオプションが追加されています。
ファイルシステムの配置を決めるときには、要求が競合する可能性があることを考えなければなりません。推奨事項は次の通りです。
作業負荷を異なる入出力システムやディスクドライブ間でできるだけ均等に分散します。/export/home を分散させたり、ディレクトリを入れ替えたりして、異なるディスクに負荷を均等に割り当てます。
プロジェクトの個々の部分やグループのメンバーを同じファイルシステム内に入れます。
1 ディスク当たりのファイルシステム数をできるだけ少なくします。通常、システム (またはブート) ディスク上には、/、/usr、スワップ空間の 3 つのファイルシステムがあります。他のディスク上では、1 つまたは多くても 2 つのファイルシステム (1 つはなるべく追加スワップ空間) を作成します。多数の小型ファイルシステムに分割しすぎるよりもファイルシステム数を少なくして余地を設ける方が、ファイルがフラグメントに分割される可能性が小さくなります。容量の大きいテープドライブを使用し、ufsdump で複数のボリュームを処理できるようにしておけば、大型ファイルシステムでも簡単にバックアップをとることができます。
絶えずきわめて小さいファイルを作成するユーザーがいる場合は、i ノード数を増やして別のファイルシステムを作成することを検討します。ただし、ほとんどのサイトでは、類似するタイプのファイルを同じファイルシステム内で保管するようにする必要はありません。
デフォルトのファイルシステムパラメータや、新しいファイルシステムを作成するときの前提条件と手順については、第 35 章「ファイルシステムの作成 (手順)」を参照してください。
ファイルシステム上のファイルにアクセスするには、ファイルシステムをマウントする必要があります。ファイルシステムのマウントとは、ファイルシステムをディレクトリ (マウントポイント) に接続し、システムで使用可能にすることです。ルート (/) ファイルシステムは、常にマウントされています。他のファイルシステムは、ルート (/) ファイルシステムに接続したり切り離したりすることができます。
ファイルシステムをマウントすると、そのファイルシステムがマウントされている間は、マウントポイントのディレクトリ内に実際に存在しているファイルやディレクトリは使用できなくなります。これらのファイルはマウント処理の影響を永続的に受けるわけではなく、ファイルシステムをマウント解除すると再び使用できるようになります。通常は存在はするがアクセスできないファイルは混乱の原因になるので、マウントディレクトリを空にしておきます。
次の例では、ルート (/) ファイルシステムの下に、サブディレクトリ sbin、etc、および opt を持つローカルのファイルシステムを示します。
ここでは、標準添付されていない製品セットが含まれている /opt ファイルシステムからローカルファイルシステムにアクセスするものとします。
まず、ファイルシステムをマウントするためのマウントポイントとして使用するディレクトリを作成しなければなりません (たとえば、/opt/unbundled)。マウントポイントを作成すると、mount コマンドでファイルシステムをマウントでき、/opt/unbundled 内のすべてのファイルとディレクトリにアクセスできるようになります (図 34-2 を参照)。これらの作業を実行するための詳細な手順については、第 36 章「ファイルシステムのマウントとマウント解除 (手順)」を参照してください。
ファイルシステムをマウントまたはマウント解除すると、現在マウントされているファイルシステムのリストを使用して、/etc/mnttab (マウントテーブルファイル) が変更されます。このファイルの内容は cat または more コマンドを使用して表示できますが、/etc/vfstab ファイルのように編集することはできません。次にマウントテーブルファイル /etc/mnttab の例を示します。
$ more /etc/mnttab /dev/dsk/c0t0d0s0 / ufs rw,intr,largefiles,onerror=panic,suid,dev=2200000 938557523 /proc /proc proc dev=3180000 938557522 fd /dev/fd fd rw,suid,dev=3240000 938557524 mnttab /etc/mnttab mntfs dev=3340000 938557526 swap /var/run tmpfs dev=1 938557526 swap /tmp tmpfs dev=2 938557529 /dev/dsk/c0t0d0s7 /export/home ufs rw,intr,largefiles,onerror=panic,suid,dev=2200007 938557529 $ |
アクセスするたびにファイルシステムを手動でマウントするのは、時間がかり、またまちがいが起こりやすい作業です。この問題を解決するために、仮想ファイルシステムテーブル (/etc/vfstab ファイル) が作成されました。このファイルに、マウントするファイルシステムとそのマウント方法が指定されます。/etc/vfstab ファイルは、2 つの重要な機能を持っています。1 つは、システムブート時に自動的にマウントするファイルシステムを指定できることです。もう 1 つは、マウントポイント名だけでファイルシステムをマウントできることです。これは、/etc/vfstab ファイルにマウントポイントと実際のデバイススライス名とのマッピングを指定することより可能になります。
デフォルトの /etc/vfstab ファイルは、システムをインストールするときに作成され、その内容はシステムソフトウェアをインストールするときに行なった選択によって異なります。ただし、システムの /etc/vfstab ファイルはいつでも編集できます。エントリを追加するときに指定する必要がある主な情報は、ファイルシステムが置かれているデバイス、マウントポイントの名前、ファイルシステムのタイプ、システムブート時に自動的にマウントするかどうか (mountall(1M) コマンドを使用する)、およびマウントオプションです。
次の例は、/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 /dev/dsk/c0t0d0s0 /dev/rdsk/c0t0d0s0 / ufs 1 no - /proc - /proc proc - no - /dev/dsk/c0t0d0s1 - - swap - no - swap - /tmp tmpfs - yes - /dev/dsk/c0t0d0s6 /dev/rdsk/c0t0d0s6 /usr ufs 2 no - /dev/dsk/c0t3d0s7 /dev/rdsk/c0t3d0s7 /test ufs 2 yes - $ |
上の例の最後のエントリは、システムブート時に /dev/dsk/c0t3d0s7 スライス上の UFS ファイルシステムを自動的にマウントポイント /test にマウントすることを指定しています。ルート (/) と /usr では、「mount at boot」フィールドの値が no に指定されていることに注意してください。これはこの 2 つのファイルシステムが、mountall コマンドを実行する前にブートシーケンスの一部としてカーネルによってマウントされるからです。
/etc/vfstab の各フィールド、このファイルの編集方法、使用方法については、第 36 章「ファイルシステムのマウントとマウント解除 (手順)」を参照してください。
NFS は、1 つのシステム (通常はサーバー) の資源 (ファイルやディレクトリ) をネットワーク経由で他のシステムと共有するための分散型ファイルシステムです。たとえば、サードパーティ (Sun 以外) のアプリケーションやソースファイルを他のシステム上のユーザーと共有できます。
NFS は、資源の実際の物理的な位置をユーザーが意識しなくてすむようにします。共通に使用されるファイルのコピーをシステムごとに配置しなくても、あるシステムのディスク上にコピーを 1 つ配置することによって NFS は、他のすべてのシステムがそのコピーにネットワーク経由でアクセスできるようにします。NFS の環境では、リモートファイルシステムは、実際にはローカルシステムと区別がつきません。
システムは、ネットワークに対して共有するファイルシステを持っているときに、NFS サーバーになります。サーバーは、現在共有されている資源とアクセス制限 (読み取り/書き込み、読み取り専用など) のリストを管理します。
資源を共有する場合は、リモートシステムにマウントできるように、その資源を使用可能な状態にします。
資源を共有するには、次の方法があります。
/etc/dfs/dfstab (分散ファイルシステムテーブル) ファイルにエントリを追加し、システムをリブートする。
資源を共有する方法については、第 36 章「ファイルシステムのマウントとマウント解除 (手順)」を参照してください。NFS についての詳細は、『Solaris のシステム管理 (第 3 巻)』を参照してください。
NFS ファイルシステム資源をマウントするには、自動マウント (または AutoFS) というクライアント側のサービスを使用します。このサービスによってシステムは、ユーザーがアクセスしたときに自動的に NFS 資源をマウントまたはマウント解除できます。ユーザーがファイルシステム内のファイルを使用している間、ファイルシステム資源はマウントされたままになります。資源が一定の時間アクセスされなかった場合、資源は自動的にマウント解除されます。
次に、AutoFS の特徴を示します。
システムブート時に NFS 資源をマウントする必要がないために、ブート時間が短くなります。
NFS 資源をマウントまたはマウント解除するために、スーパーユーザーのパスワードを知っている必要はありません。
NFS 資源は使用されるときにだけマウントされるために、ネットワークトラフィックが軽減されます。
AutoFS サービスは automount(1M) によって初期化され、automount はシステムのブート時に自動的に実行されます。自動マウントデーモン automountd(1M) は永続的に動作し、必要に応じて NFS ファイルシステムをマウントまたはマウント解除します。デフォルトでは、Solaris オペレーティング環境は /home を自動マウントします。
AutoFS は、ネームサービスに指定されたファイルシステムに対して動作します。この情報は、NIS、NIS+、またはローカルの /etc 内のファイルで管理されます。AutoFS を使用すると、同じファイルシステムを提供するサーバーを指定できます。このような方法では、1 つのサーバーがダウンしても、AutoFS が他のマシンからファイルシステムをマウントすることができます。各サーバーに優先度を示す数値を割り当てることによって、マップ内の各資源ごとにサーバーの優先順位を指定できます。
AutoFS の設定と管理方法については、『Solaris のシステム管理 (第 3 巻)』を参照してください。
NFS または CD-ROM ファイルシステムのパフォーマンスとスケーラビリティを向上させるには、キャッシュファイルシステム (CacheFS) を使用します。CacheFS は、サーバーとネットワークの負荷を軽減することによって、NFS サーバーのパフォーマンスとスケーラビリティを向上させる汎用ファイルシステムキャッシュ機構です。
CacheFS は、階層化ファイルシステムとして設計されており、あるファイルシステムを別のファイルシステムのキャッシュに書き込む機能を持っています。NFS 環境では、CacheFS はサーバーあたりのクライアント比率を高め、サーバーとネットワークの負荷を軽減し、ポイントツーポイントプロトコル (PPP) などの低速リンク上のクライアントのパフォーマンスを向上させます。また、CacheFS と AutoFS サービスを併用すると、さらにパフォーマンスとスケーラビリティを向上することができます。
CacheFS についての詳細は、第 37 章「キャッシュファイルシステム (手順)」を参照してください。
表 34-3 に、ファイルシステムの用途に応じてファイルシステムをマウントするためのガイドラインを示します。
表 34-3 ファイルシステムのマウント方法の決定
ファイルシステムを含む CD-ROM は、単にドライブに挿入するだけでマウントできます (ボリューム管理が自動的にマウントします)。ファイルシステムを含むフロッピーディスクは、ドライブに挿入して volcheck コマンドを実行することによってマウントできます。詳細は、第 14 章「CD とフロッピーディスクの使用方法 (概要)」を参照してください。
ファイルシステムのタイプは、次のいずれかを使用して判断できます。
この手順は、ファイルシステムがマウントされているかどうかに関わらず使用できます。
grep コマンドを使用して、ファイルシステムのタイプを調べます。
$ grep mount-point fs-table |
mount-point |
タイプを調べるファイルシステムのマウントポイント名を指定する。たとえば、/var ディレクトリ |
fs-table |
ファイルシステムのタイプを調べるファイルシステムテーブルへの絶対パスを指定する。ファイルシステムがマウントされている場合、 fs-table は /etc/mnttab。マウントされていない場合、fs-table は /etc/vfstab。 |
マウントポイントの情報が表示されます。
ディスクスライスの raw デバイス名がわかる場合、fstyp(1M) コマンドで、ファイルシステムのタイプを調べることができます (そのディスクスライスにファイルシステムが含まれている場合)。
次の例は、/etc/vfstab を使用して、/export ファイルシステムのタイプを調べます。
$ grep /export /etc/vfstab /dev/dsk/c0t3d0s6 /dev/rdsk/c0t3d0s6 /export ufs 2 yes - $ |
次の例は、/etc/mnttab ファイルを使用して、現在マウントしている (ボリューム管理でマウントした) フロッピーディスクのファイルシステムのタイプを調べます。
$ grep /floppy /etc/mnttab /vol/dev/diskette0/unnamed_floppy /floppy/unnamed_floppy pcfs rw,nohidden, nofoldcase,dev=16c0009 89103376 $ |