Solaris のシステム管理 (第 1 巻)

第 34 章 ファイルシステムの管理 (概要)

この章の内容は次のとおりです

ファイルシステムにおける新機能

この節では、ファイルシステムの新機能について説明します。

/var/run ファイルシステム

新しい TMPFS マウントのファイルシステム /var/run は、一時的な (つまり、システムをリブートした場合に残る必要がない) ファイルシステム用のリポジトリです。今回のリリースから Solaris で採用されています。従来の /tmp ディレクトリもシステムファイル以外の一時的なファイル用のリポジトリとして存続します。

/var/run は、ディスクベースのファイルシステムではなく、メモリーベースのファイルシステムとしてマウントされます。このディレクトリが更新されても不必要なディスクトラフィックが発生しないため、システムは干渉されずに電源管理ソフトウェアを実行し続けることができます。

/var/run ディレクトリは管理が不要です。umount -a コマンドや umountall コマンドでもマウントは解除されません。

セキュリティ上の理由から、/var/run の所有者は root です。

マウントテーブル (/etc/mnttab) の変更

以前の Solaris リリースでは、/etc/mnttab はテキストベースのファイルであり、マウントされているファイルシステムについての情報を格納していました。このようにテキストファイルにすると、マウントされているファイルシステムの実際の状態が反映されないという欠点がありました。

今回のリリースの Solairs では、/etc/mnttab は MNTFS ファイルシステムであり、マウントされているファイルシステムについての (読み取り専用の) 情報をカーネルからローカルシステムに直接提供します。

次に、mnttab の動作の変更点を示します。

/etc/mnttab マウントテーブルは管理が不要です。

詳細は、mnttab(4) のマニュアルページを参照してください。

UDF (Universal Disk Format) ファイルシステムの使用

今回のリリースの 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 ファイルシステムのサポートは、次の新しいパッケージで提供されます。

UDF の特徴と利点

今回のリリースの Solaris では、UDF ファイルシステムには次のような特徴があります。

次の特徴は、今回のリリースの UDF ファイルシステムには含まれていません。

ハードウェアとソフトウェアの要件

次に、UDF ファイルシステムの要件を示します。

UDF の互換性について

この リリースの Solaris で初めて実装された UDF ファイルシステムには、次のような互換性があります。

DVD-ROM デバイスを接続する方法

  1. スーパーユーザーになります。

  2. /reconfigure ファイルを作成します。


    # touch /reconfigure
    
  3. システムをシャットダウンして、電源を切ります。


    # init 0
    
  4. DVD-ROM デバイスを接続します。

  5. システムの電源を入れます。

DVD-ROM デバイス上のファイルにアクセスする方法

  1. DVD-ROM デバイスが自動的にマウントされていることを確認します。


    $ ls /cdrom
    

    注 -

    CD-ROM と DVD-ROM の両方のデバイスがシステムに接続されている場合、CD-ROM の名前が /cdrom/cdrom0 となり、DVD-ROM の名前が /cdrom/cdrom1 となります。DVD-ROM だけがシステムに接続されている場合は、/cdrom/cdrom0 を使用してください。


  2. ls コマンドで DVD-ROM の内容を表示します。


    $ ls /cdrom/cdrom1
    Copyright 	filea		fileb

    現在のところ、CDE ファイルマネージャによる自動表示は実装されていません。CDE ファイルマネージャのその他の機能 (ドラッグ&ドロップによるコピーや imagetool の機能など) はすべて利用できます。

UDF ファイルシステムのパラメータを表示する方法

UDF ファイルシステムのパラメータを表示するには、mkfs コマンドを使用します。

  1. スーパーユーザーになります。

  2. UDF ファイルシステムのパラメータを表示します。


    # mkfs -F udfs -m /dev/rdsk/device-name
    

UDF ファイルシステムを作成する方法

UDF ファイルシステムを作成するには、mkfs コマンドを使用します。

  1. スーパーユーザーになります。

  2. UDF ファイルシステムを作成します。


    # mkfs -F udfs /dev/rdsk/device-name
    
  3. UDF ファイルシステムをマウントして、UDF ファイルシステムが作成されていることを確認します。詳細は、「UDF ファイルシステムをマウントする方法」を参照してください。

詳細は、mkfs_udfs(1M) のマニュアルページを参照してください。

UDF ファイルシステムのタイプを識別する方法

UDF ファイルシステムのタイプを識別するには、fstyp コマンドを使用します。

  1. スーパーユーザーになります。

  2. ファイルシステムが UDF ファイルシステムであるかどうかを確認します。


    # fstyp -v /rdev/dsk/device-name
    

UDF ファイルシステムを検査する方法

UDF ファイルシステムの完全性を検査するには、fsck コマンドを使用します。

  1. スーパーユーザーになります。

  2. UDF ファイルシステムを検査します。


    # fsck -F udfs /dev/rdsk/device-name
    

詳細は、fsck_udfs(1M) のマニュアルページを参照してください。

UDF ファイルシステムをマウントする方法

UDF ファイルシステムをマウントするには、次のようにします。

  1. スーパーユーザーになります。

  2. UDF ファイルシステムをマウントします。


    # mount -F udfs /dev/dsk/device-name /mount-point
    
  3. UDF ファイルシステムがマウントされていることを確認します。


    # ls /mount-point
    

詳細は、mount_udfs(1M) のマニュアルページを参照してください。

UDF ファイルシステムのマウントを解除する方法

UDF ファイルシステムのマウントを解除するには、次のようにします。

  1. スーパーユーザーになります。

  2. UDF ファイルシステムのマウントを解除します。


    # umount /dev/dsk/device-name 
    

UDF ファイルシステムのデバイスにラベルとボリューム名を作成する方法

UDF ファイルシステム用のファイルシステム名 (ラベル) とボリューム名を作成するには、次のようにします。

  1. スーパーユーザーになります。

  2. UDF ファイルシステム用のファイルシステム名とボリューム名を作成します。


    # labelit -F UDFS /dev/rdsk/device-name fsname volume
    

詳細は、labelit_udfs(1M) のマニュアルページを参照してください。

ファイルシステムの概要

ファイルシステムは、ファイルを編成して格納するためのディレクトリ構造です。「ファイルシステム」という用語には、さまざまな使用方法があります。

通常、その意味は状況に応じて判断できます。

Solaris オペレーティング環境は、各種ファイルシステムへの標準インタフェースを提供する「仮想ファイルシステム」 (VFS) アーキテクチャを使用します。VFS アーキテクチャによって、カーネルはファイルの読み取り、書き込み、一覧表示などの基本操作を処理できます。 また、新しいファイルシステムの追加が容易になります。

ファイルシステムの管理は、最も重要なシステム管理作業の 1 つです。この章を読んで概念と計画方法について理解してください。次の作業については、下記の該当箇所を参照してください。

作業内容 

参照 

新しい UFS と仮想ファイルシステムを設定する 

第 35 章「ファイルシステムの作成 (手順)」第 37 章「キャッシュファイルシステム (手順)」

ローカルファイルとリモートファイルをユーザーが利用できるようにする 

第 36 章「ファイルシステムのマウントとマウント解除 (手順)」

新しい記憶デバイスを接続して構成する 

第 28 章「ディスクの管理 (概要)」

バックアップスケジュールを計画して導入し、必要に応じてファイルとファイルシステムを復元する 

第 42 章「ファイルシステムのバックアップと復元 (概要)」

ファイルシステムの損傷をチェックして訂正する 

第 39 章「ファイルシステムの整合性チェック」

ファイルシステムのタイプ

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) と呼ばれる光学式媒体テクノロジに情報を格納するための業界標準形式。 

ディスクベースの各種ファイルシステムは、次のように特定の媒体のタイプに対応しています。

ただし、上記以外の組み合わせも可能です。たとえば、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 ファイルシステムの作成方法については、第 35 章「ファイルシステムの作成 (手順)」を参照してください。スワップ空間を拡張する方法については、第 38 章「追加スワップ空間の構成 (手順)」を参照してください。

ループバックファイルシステム

ループバックファイルシステム (LOFS) を使用すると、代替パス名を使用してファイルにアクセスできるように、新しい仮想ファイルシステムを作成できます。たとえば、ルート (/) のループバックマウントを /tmp/newroot 上で作成できます。ファイルシステム階層全体が、NFS サーバーからマウントされるファイルシステムを含め、/tmp/newroot 上に複写されたように見えます。どのファイルにも、ルート (/) で始まるパス名または /tmp/newroot で始まるパス名を使用してアクセスできます。

LOFS ファイルシステムの作成方法については、第 35 章「ファイルシステムの作成 (手順)」を参照してください。

プロセスファイルシステム

プロセスファイルシステム (PROCFS) はメモリー内にあります。PROCFS の /proc ディレクトリには、有効なプロセスのプロセス番号別リストが入っています。/proc ディレクトリ内の内容は、ps などのコマンドに使用されます。デバッガや他の開発ツールも、ファイルシステムコールを使用して、プロセスのアドレス空間にアクセスできます。


注意 - 注意 -

/proc ディレクトリ内のファイルは削除しないでください。/proc ディレクトリからプロセスを削除しても、そのプロセスは強制終了されません。/proc ファイルはディスク容量を消費しないため、このディレクトリからファイルを削除してもあまり意味がありません。


/proc ディレクトリは、システム管理が不要です。

その他の仮想ファイルシステム

次のタイプの仮想ファイルシステムは、参考のために掲載してあります。管理は不要です。

仮想ファイルシステム 

説明 

FIFOFS (先入れ先出し) 

プロセスにデータへの共通アクセス権を与える名前付きパイプのファイル

FDFS (ファイル記述子) 

開いているファイルに、記述子を使用して名前を明示的に与える

NAMEFS 

ほとんどの場合、ファイル記述子をファイルの先頭に動的にマウントするために STREAMS に使用される

SPECFS (特殊) 

キャラクタ型特殊デバイスとブロック型特殊デバイスへのアクセスを提供する

SWAPFS 

カーネルがスワッピングに使用するファイルシステム

ファイルシステム管理コマンド

ほとんどのファイルシステム管理コマンドには、汎用コマンドとファイルシステムに固有のコマンドの 2 種類があります。可能な場合には、常に汎用コマンドを使用してください。汎用コマンドは、ファイルシステム固有のコマンドを呼び出します。表 34-1 に、汎用ファイルシステム管理コマンドを示します。これらのコマンドは、/usr/sbin ディレクトリに入っています。

表 34-1 汎用ファイルシステム管理コマンド

コマンド 

機能 

clri(1M)

i ノードをクリアする。 

df(1M)

空きディスクブロック数とファイル数を出力する。 

ff(1M)

ファイルシステムのファイル名と統計情報を表示する。 

fsck(1M)

ファイルシステムの完全性をチェックし、検出された損傷を修復する。 

fsdb(1M)

ファイルシステムをデバッグする。 

fstyp(1M)

ファイルシステムのタイプを調べる。 

labelit(1M)

テープにコピーするときに、ファイルシステムのラベルを表示または作成する (volcopy コマンド専用)。

mkfs(1M)

新しいファイルシステムを作成する。 

mount(1M)

ローカルおよびリモートのファイルシステムをマウントする。 

mountall(1M)

仮想ファイルシステムテーブルに指定されているすべてのファイルシステムをマウントする。 (/tec/vfstab)

ncheck(1M)

パス名とその i 番号のリストを生成する。 

umount(1M)

ローカルおよびリモートのファイルシステムをマウント解除する。 

umountall(1M)

仮想ファイルシステムテーブルに指定されているすべてのファイルシステムをマウント解除する。(/etc/vfstab)

volcopy(1M)

ファイルシステムのイメージコピーを作成する。 

ファイルシステムコマンドによるファイルシステムタイプの判断

汎用ファイルシステムコマンドは、次の順序でファイルシステムのタイプを判断します。

  1. -F オプションで指定されているファイルシステムのタイプ

  2. 特殊デバイスを /etc/vfstab 内のエントリと突き合わせて判断します (special が指定されている場合)。たとえば fsck は、まず fsck device フィールドと突き合わせて一致するエントリを検索します。一致するエントリが見つからなければ、特殊デバイスフィールドと突き合わせてチェックします。

  3. ローカルファイルシステムの場合は /etc/default/fs 内で指定されたデフォルトを使用し、リモートファイルシステムの場合は /etc/dfs/fstypes 内で指定されたデフォルトを使用して判断します。

汎用コマンドと専用コマンドのマニュアルページ

汎用コマンドと専用コマンドについては、『man Pages(1M): System Administration Commands』を参照してください。専用コマンドのマニュアルページは、汎用コマンドのマニュアルページに続いて入っています。特定のマニュアルページを見つけるには、汎用コマンド名の末尾にアンダースコアとファイルシステムタイプの略称を追加してください。たとえば、UFS ファイルシステムのマウントについてのマニュアルページを参照するには、man mount_ufs(1M) と入力します。

デフォルトの Solaris ファイルシステム

Solaris ファイルシステムは階層構造になっており、ルートディレクトリ (/) から始まり、下位に多数のディレクトリが形成されています。Solaris のインストールプロセスは、デフォルトのディレクトリセットをインストールし、一連の規則を適用して類似するタイプのファイルをグループ化します。表 34-2 に、デフォルトの Solaris ファイルシステムの概要と、各ファイルシステムのタイプを示します。

システムを動作させるには、ルート (/) と /usr のファイルシステムが必要です。/usr ファイルシステムに置かれている最も基本的なコマンドの一部 (mount など) は、システムのブート時や、システムがシングルユーザーモードで実行しており、/usr ファイルシステムがマウントされていない場合でも使用できるように、ルート (/) ファイルシステムにも置かれています。デフォルトディレクトリのリストについては、第 40 章「UFS ファイルシステム (参照情報)」を参照してください。

表 34-2 デフォルトの Solaris ファイルシステム

ファイルシステムまたはディレクトリ 

ファイルシステムのタイプ 

説明 

ルート (/)

UFS 

階層ファイルツリーの最上位。ルートディレクトリには、カーネル、デバイスドライバ、システムのブートに使用されるプログラムなど、システム処理に欠かせないディレクトリとファイルが入っている。また、ローカルとリモートのファイルシステムをファイルツリーに接続できるマウントポイントディレクトリも入っている。 

/usr

UFS 

他のユーザーと共有できるシステムファイルとディレクトリ。特定のタイプのシステム上でのみ実行できるファイルは、/usr ディレクトリに入っている (SPARC 実行可能ファイルなど)。どのタイプのシステム上でも使用できるファイル (マニュアルページなど) は、/usr/share に入っている。

/export/home または /home

NFS、UFS 

ユーザーのホームディレクトリのマウントポイント。ホームディレクトリには、そのユーザーの作業ファイルが格納される。デフォルトでは、/home は自動マウントされるファイルシステムである。スタンドアロンシステム上では、/home はローカルディスクスライス上の UFS ファイルシステムの場合がある。

/var

UFS 

ローカルシステムの使用中に変化または拡大する可能性のあるシステムファイルとディレクトリ。これには、システムログ、viex のバックアップファイル、および uucp ファイルが含まれる。

/opt

NFS、UFS 

オプションの Sun 以外のソフトウェア製品のマウントポイント。システムによっては、/opt がローカルディスクスライス上の UFS ファイルシステムの場合がある。

/tmp

TMPFS 

システムがブートされるたびにまたは /tmp ファイルシステムがマウント解除されるたびに消去される一時ファイル

/proc

PROCFS 

アクティブなプロセスの番号別リスト 

スワップ空間

Solaris オペレーティング環境は、一部のディスクスライスをファイルシステムではなく一時記憶域として使用します。これらのスライスを「スワップスライス」または「スワップ空間」と呼びます。スワップスライスは、現在のプロセスを処理するだけの十分な物理メモリーがシステムにない場合に、仮想メモリー記憶域として使用されます。

多くのアプリケーションは十分なスワップ空間が使用できることを前提に作成されているため、スワップ空間を割り当て、その使われ方を監視して、必要に応じてスワップ空間を追加する方法を知っておくことは大切です。スワップ空間の概要とスワップ空間を追加する手順については、第 38 章「追加スワップ空間の構成 (手順)」を参照してください。

UFS ファイルシステム

UFS は、Solaris オペレーティング環境内のデフォルトのディスクベースファイルシステムです。ほとんどの場合、ディスクベースのファイルシステムを管理するときには、UFS を管理していることになります。UFS ファイルシステムの機能は次の通りです。

UFS の機能 

説明 

状態フラグ 

ファイルシステムの状態を、クリーン、安定、使用中、ロギング処理、または不明として示します。これらのフラグによって、必要のないチェックをファイルシステム上で行わなくて済みます。ファイルシステムが「クリーン」状態、「安定」状態、または「ロギング処理」状態になっていると、ファイルシステムのチェックは実行されません。

拡張基礎タイプ (EFT) 

32 ビットのユーザー ID (UID)、グループ ID (GID)、およびデバイス番号

大規模ファイルシステム 

UFS ファイルシステムの最大サイズは 1T バイト (テラバイト) です。Solaris オペレーティング環境では、論理スライスの大きさを 1T バイトのファイルシステムに対応させるストライプ機能はサポートされていませんが、Sun 提供の Solstice DiskSuiteTM ソフトウェアには、この機能が含まれています。

大規模ファイル 

デフォルトでは、UFS ファイルシステムは 2G バイト (ギガバイト) を超える通常ファイルを持つことができます。2G バイトの最大ファイルサイズ制限を有効にするには、nolargefiles マウントオプションを明示的に使用しなければなりません。この制限は Solaris 2.6 リリースでなくなりました。

UFS ファイルシステムの詳細は、第 40 章「UFS ファイルシステム (参照情報)」を参照してください。

UFS ファイルシステムの構成

UFS ファイルシステムを作成すると、ディスクスライスは、1 つまたは複数の連続するディスクシリンダから構成されるシリンダグループに分割されます。シリンダグループはさらに、アドレス指定可能なブロックに分割され、このブロックによって、シリンダグループ内のファイルの構造が制御され、編成されます。各種のブロックは、ファイルシステム内で特定の機能を持っています。

newfs コマンドまたは mkfs コマンドの引数を使用してファイルシステムをカスタマイズするには、これらのパラメータの変更方法について第 40 章「UFS ファイルシステム (参照情報)」を参照してください。

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 ロギングをサポートするための新しいデバッグオプションが追加されています。

UFS ファイルシステムの計画

ファイルシステムの配置を決めるときには、要求が競合する可能性があることを考えなければなりません。推奨事項は次の通りです。

デフォルトのファイルシステムパラメータや、新しいファイルシステムを作成するときの前提条件と手順については、第 35 章「ファイルシステムの作成 (手順)」を参照してください。

ファイルシステムのマウントとマウント解除

ファイルシステム上のファイルにアクセスするには、ファイルシステムをマウントする必要があります。ファイルシステムのマウントとは、ファイルシステムをディレクトリ (マウントポイント) に接続し、システムで使用可能にすることです。ルート (/) ファイルシステムは、常にマウントされています。他のファイルシステムは、ルート (/) ファイルシステムに接続したり切り離したりすることができます。

ファイルシステムをマウントすると、そのファイルシステムがマウントされている間は、マウントポイントのディレクトリ内に実際に存在しているファイルやディレクトリは使用できなくなります。これらのファイルはマウント処理の影響を永続的に受けるわけではなく、ファイルシステムをマウント解除すると再び使用できるようになります。通常は存在はするがアクセスできないファイルは混乱の原因になるので、マウントディレクトリを空にしておきます。

次の例では、ルート (/) ファイルシステムの下に、サブディレクトリ sbinetc、および opt を持つローカルのファイルシステムを示します。

図 34-1 ルート (/) ファイルシステムの例

Graphic

ここでは、標準添付されていない製品セットが含まれている /opt ファイルシステムからローカルファイルシステムにアクセスするものとします。

まず、ファイルシステムをマウントするためのマウントポイントとして使用するディレクトリを作成しなければなりません (たとえば、/opt/unbundled)。マウントポイントを作成すると、mount コマンドでファイルシステムをマウントでき、/opt/unbundled 内のすべてのファイルとディレクトリにアクセスできるようになります (図 34-2 を参照)。これらの作業を実行するための詳細な手順については、第 36 章「ファイルシステムのマウントとマウント解除 (手順)」を参照してください。

図 34-2 ファイルシステムのマウント

Graphic

マウントされたファイルシステムテーブル

ファイルシステムをマウントまたはマウント解除すると、現在マウントされているファイルシステムのリストを使用して、/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 つのディスク (c0t0d0c0t3d0) を持つシステムの /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 環境

NFS は、1 つのシステム (通常はサーバー) の資源 (ファイルやディレクトリ) をネットワーク経由で他のシステムと共有するための分散型ファイルシステムです。たとえば、サードパーティ (Sun 以外) のアプリケーションやソースファイルを他のシステム上のユーザーと共有できます。

NFS は、資源の実際の物理的な位置をユーザーが意識しなくてすむようにします。共通に使用されるファイルのコピーをシステムごとに配置しなくても、あるシステムのディスク上にコピーを 1 つ配置することによって NFS は、他のすべてのシステムがそのコピーにネットワーク経由でアクセスできるようにします。NFS の環境では、リモートファイルシステムは、実際にはローカルシステムと区別がつきません。

システムは、ネットワークに対して共有するファイルシステを持っているときに、NFS サーバーになります。サーバーは、現在共有されている資源とアクセス制限 (読み取り/書き込み、読み取り専用など) のリストを管理します。

資源を共有する場合は、リモートシステムにマウントできるように、その資源を使用可能な状態にします。

資源を共有するには、次の方法があります。

資源を共有する方法については、第 36 章「ファイルシステムのマウントとマウント解除 (手順)」を参照してください。NFS についての詳細は、『Solaris のシステム管理 (第 3 巻)』を参照してください。

自動マウント (AutoFS)

NFS ファイルシステム資源をマウントするには、自動マウント (または AutoFS) というクライアント側のサービスを使用します。このサービスによってシステムは、ユーザーがアクセスしたときに自動的に NFS 資源をマウントまたはマウント解除できます。ユーザーがファイルシステム内のファイルを使用している間、ファイルシステム資源はマウントされたままになります。資源が一定の時間アクセスされなかった場合、資源は自動的にマウント解除されます。

次に、AutoFS の特徴を示します。

AutoFS サービスは automount(1M) によって初期化され、automount はシステムのブート時に自動的に実行されます。自動マウントデーモン automountd(1M) は永続的に動作し、必要に応じて NFS ファイルシステムをマウントまたはマウント解除します。デフォルトでは、Solaris オペレーティング環境は /home を自動マウントします。

AutoFS は、ネームサービスに指定されたファイルシステムに対して動作します。この情報は、NIS、NIS+、またはローカルの /etc 内のファイルで管理されます。AutoFS を使用すると、同じファイルシステムを提供するサーバーを指定できます。このような方法では、1 つのサーバーがダウンしても、AutoFS が他のマシンからファイルシステムをマウントすることができます。各サーバーに優先度を示す数値を割り当てることによって、マップ内の各資源ごとにサーバーの優先順位を指定できます。

AutoFS の設定と管理方法については、『Solaris のシステム管理 (第 3 巻)』を参照してください。

キャッシュファイルシステム (CacheFS)

NFS または CD-ROM ファイルシステムのパフォーマンスとスケーラビリティを向上させるには、キャッシュファイルシステム (CacheFS) を使用します。CacheFS は、サーバーとネットワークの負荷を軽減することによって、NFS サーバーのパフォーマンスとスケーラビリティを向上させる汎用ファイルシステムキャッシュ機構です。

CacheFS は、階層化ファイルシステムとして設計されており、あるファイルシステムを別のファイルシステムのキャッシュに書き込む機能を持っています。NFS 環境では、CacheFS はサーバーあたりのクライアント比率を高め、サーバーとネットワークの負荷を軽減し、ポイントツーポイントプロトコル (PPP) などの低速リンク上のクライアントのパフォーマンスを向上させます。また、CacheFS と AutoFS サービスを併用すると、さらにパフォーマンスとスケーラビリティを向上することができます。

CacheFS についての詳細は、第 37 章「キャッシュファイルシステム (手順)」を参照してください。

マウント方法の決定

表 34-3 に、ファイルシステムの用途に応じてファイルシステムをマウントするためのガイドラインを示します。

表 34-3 ファイルシステムのマウント方法の決定

マウントするファイルシステムとマウントの頻度 

方法 

ローカルまたはリモートのファイルシステムをときどきマウントする 

コマンド行から手動で mount コマンドを入力する。

ローカルのファイルシステムを頻繁にマウントする 

/etc/vfstab ファイルを使用して、システムがマルチユーザー状態でブートされたときに自動的にファイルシステムをマウントする。

リモートのファイルシステムを頻繁にマウントする (ホームディレクトリなど) 

  • /etc/vfstab ファイルを使用して、システムがマルチユーザー状態でブートされたときに自動的にファイルシステムをマウントする。

  • AutoFS により、ユーザーがディレクトリに移動したとき (マウント) あるいはディレクトリから移動したとき (マウント解除) に、自動的にファイルシステムをマウントまたはマウント解除する。

パフォーマンスを向上させるには、CacheFS を使用してリモートのファイルシステムをキャッシュすることもできる。 

ファイルシステムを含む 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
$