Solaris のシステム管理 (デバイスとファイルシステム)

ファイルシステムの概要

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

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

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

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

Oracle Solaris OS では、次の 3 種類のファイルシステムがサポートされます。

ファイルシステムのタイプを確認するには、「ファイルシステムのタイプを調べる」を参照してください。

ディスクベースのファイルシステム

「ディスクベースのファイルシステム」は、ハードディスク、DVD、フロッピーディスクなどの物理メディアに格納されます。ディスクベースのファイルシステムは、さまざまな形式で作成できます。次の表で、作成できる形式について説明します。

ディスクベースのファイルシステム 

形式の説明 

UFS 

UNIX ファイルシステム (4.3 Tahoe リリースに組み込まれていた BSD Fat Fast ファイルシステム)。UFS は、Oracle Solaris OS のデフォルトのディスクベースファイルシステムです。

UFS ファイルシステムをディスク上に作成する前に、そのディスクをフォーマットし、スライスに分割しなければなりません。ディスクのフォーマットとスライスへの分割方法については、第 10 章ディスクの管理 (概要)を参照してください。

ZFS 

ZFS ファイルシステムは、Solaris 10 6/06 リリースで使用できます。詳細については、『Oracle Solaris ZFS 管理ガイド』を参照してください。

HSFS 

High Sierra、Rock Ridge、および 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 フォーマットディスク上のデータおよびプログラムに対して、読み取りアクセスと書き込みアクセスを行うことができます。

UDFS 

UDFS (Universal Disk Format) ファイルシステム。DVD (Digital Versatile Disc または Digital Video Disc) と呼ばれる光学式メディアテクノロジに情報を格納するための業界標準形式です。  

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

ただし、これらの対応関係は制限的なものではありません。たとえば、CD-ROM やフロッピーディスクにも、UFS ファイルシステムを格納できます。

UDFS (Universal Disk Format) ファイルシステム

リムーバブルメディア上で UDFS ファイルシステムを作成する方法については、「リムーバブルメディア上にファイルシステムを作成する方法」を参照してください。

UDF ファイルシステムは、「DVD」 (Digital Versatile Disc または Digital Video Disc) 光学式メディアに情報を格納するための業界標準形式です。

UDF ファイルシステムは、SPARC と x86 の両方のプラットフォームにおいて、動的に読み込み可能な 32 ビットと 64 ビットのモジュールとして提供されます。また、ファイルシステムを作成、マウント、および検査するシステム管理ユーティリティーも同時に提供されます。Solaris の UDF ファイルシステムは、サポートされている ATAPI と SCSI の DVD ドライブ、CD-ROM デバイス、ハードディスク、およびフロッピーディスクドライブで機能します。さらに、Solaris の UDF ファイルシステムは UDF 1.50 仕様に完全に準拠しています。

UDF ファイルシステムには次のような機能があります。

次の機能は、UDF ファイルシステムにはありません。

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

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

ネットワークベースのファイルシステム

「ネットワークベースのファイルシステム」は、ネットワークからアクセスされるファイルシステムです。ネットワークベースのファイルシステムは通常、1 つのシステム (通常はサーバー) 上にあり、ほかのシステムからネットワーク経由でアクセスされます。

NFS で分散された「リソース」 (ファイルやディレクトリ) を管理するには、サーバーからそれらのリソースをエクスポートして個々のクライアントシステムでマウントします。詳細は、「NFS 環境」を参照してください。

仮想ファイルシステム

「仮想ファイルシステム」は、特殊なカーネル情報と機能へのアクセスを提供するメモリーベースのファイルシステムです。ほとんどの仮想ファイルシステムは、ディスク領域を使用しません。ただし、CacheFS ファイルシステムは、ディスク上のファイルシステムを使用してキャッシュを保持します。また、一時ファイルシステム (TMPFS) などの一部の仮想化ファイルシステムは、ディスク上のスワップ空間を使用します。

CacheFS ファイルシステム

CacheFS ファイルシステムを使用すると、リモートファイルシステムや、CD-ROM ドライブのような低速デバイスのパフォーマンスを改善できます。ファイルシステムをキャッシュすると、リモートファイルシステムや CD-ROM から読み込まれたデータは、ローカルシステム上のキャッシュに格納されます。

NFS や CD-ROM ファイルシステムのパフォーマンスとスケーラビリティーを向上させるには、CacheFS ファイルシステムを使用してください。CacheFS ソフトウェアは、サーバーとネットワークの負荷を軽減して NFS サーバーのパフォーマンスとスケーラビリティーを改善する汎用ファイルシステムキャッシュメカニズムです。

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

CacheFS ファイルシステムの詳細は、第 19 章CacheFS ファイルシステムの使用 (手順)を参照してください。

NFS Version 4 と CacheFS の互換性の問題

CacheFS クライアントと CacheFS サーバーの両方で NFS version 4 が実行されている場合、ファイルはフロントファイルシステムにキャッシュされません。すべてのファイルアクセスは、バックファイルシステムから提供されます。また、ファイルはフロントファイルシステムにキャッシュされていないため、フロントファイルシステムに反映する CacheFS 固有のマウントオプションは無視されます。CacheFS 固有のマウントオプションはバックファイルシステムに適用しません。


注 –

初めてシステムを NFS version 4 に構成すると、キャッシュが動作しないことを示す警告がコンソールに表示されます。


以前の Solaris リリースのように CacheFS マウントを実装する場合は、CacheFS mount コマンドで NFS version 3 を指定してください。次に例を示します。


mount -F cachefs -o backfstype=nfs,cachedir=/local/mycache,vers=3 
starbug:/docs /docs

一時ファイルシステム

一時ファイルシステム (TMPFS) は、ファイルシステムの読み取りと書き込みにローカルメモリーを使用します。通常、ファイルシステムの読み取りと書き込みには、UFS ファイルシステムよりもメモリーを使用したほうが効率的です。TMPFS を使用すると、ローカルディスク上で、あるいはネットワーク経由で一時ファイルの読み書きを行う際のオーバヘッドを軽減でき、システムパフォーマンスを改善できます。一時ファイルは、たとえば、プログラムのコンパイル時に作成されます。OS は、一時ファイルを操作しているとき、多くのディスク処理またはネットワーク処理を行います。TMPFS を使ってこれらの一時ファイルを管理することで、それらの作成、操作、および削除の効率を大幅に向上できます。

TMPFS ファイルシステムのファイルは、永続的に保存されるわけではありません。これらのファイルは、ファイルシステムのマウントが解除されるときと、システムがシャットダウンまたはリブートされるときに削除されます。

TMPFS は、Oracle Solaris OS 内の /tmp ディレクトリのデフォルトのファイルシステムです。UFS ファイルシステムの場合と同様に、/tmp ディレクトリとの間でファイルをコピーまたは移動できます。

TMPFS ファイルシステムは、一時的な退避場所としてスワップ空間を使用します。TMPFS ファイルシステムがマウントされたシステムのスワップ空間が足りないと、次の 2 つの問題が発生する可能性があります。

TMPFS ファイルシステムの作成方法については、第 17 章ZFS、UFS、TMPFS、LOFS ファイルシステムの作成 (手順)を参照してください。スワップ空間を追加する方法については、第 20 章追加スワップ空間の構成 (手順)を参照してください。

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

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

LOFS ファイルシステムを作成する手順については、第 17 章ZFS、UFS、TMPFS、LOFS ファイルシステムの作成 (手順)を参照してください。

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

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


注意 – 注意 –

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


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

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

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

仮想ファイルシステム 

説明 

CTFS 

CTFS (契約ファイルシステム) は、契約の作成、制御、および監視のためのインタフェースです。契約は、豊富なエラー報告機能とリソースの削除を延期する手段 (オプション) を提供することにより、プロセスと、このプロセスが依存するシステムとの関係を拡張します。

サービス管理機能 (SMF) は、プロセス契約 (契約の一種) を使用して、サービスを構成するプロセス群を追跡します。このため、マルチプロセスサービスの一部分での障害をそのサービスの障害として識別できます。 

FIFOFS (先入れ先出し) 

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

FDFS (ファイル記述子) 

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

MNTFS 

ローカルシステムに、マウント済みファイルシステムのテーブルへの読み取り専用アクセスを提供します。 

NAMEFS 

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

OBJFS 

OBJFS (オブジェクト) ファイルシステムは、現在カーネルによってロードされているすべてのモジュールの状態を説明します。デバッガはこのファイルシステムにアクセスすることで、カーネルに直接アクセスしなくてもカーネルシンボルに関する情報を入手できます。

SHAREFS 

ローカルシステムの共有ファイルシステムのテーブルに対する読み取り専用アクセス権を提供します。

SPECFS (特殊) 

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

SWAPFS 

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

libc_hwcap

x86 システムでのマウント出力には、libc のハードウェア最適化の実装である、 libc_hwcap ライブラリのループバックマウントが含まれる場合があります。この libc の実装は、32 ビットアプリケーションのパフォーマンスを最適化するためのものです。

このループバックマウントは、管理の必要がなく、ディスク容量を消費しません。

拡張ファイル属性

UFS、NFS、および TMPFS ファイルシステムは、拡張ファイル属性を含むように機能拡張されました。アプリケーション開発者は、拡張ファイル属性を使って、ファイルに特定の属性を関連付けることができます。たとえば、ウィンドウシステムの管理アプリケーションの開発者は、表示アイコンとファイルを関連付けることができます。拡張ファイル属性は、論理的には、ターゲットファイルに関連付けられている隠しディレクトリ内のファイルとして表されます。

属性を追加し、拡張属性の名前空間内に入っているシェルコマンドを実行するには、runat コマンドを使用します。拡張属性の名前空間とは、特定のファイルに関連付けられた、非表示の属性ディレクトリです。

runat コマンドを使用して属性をファイルに追加するには、最初に属性ファイルを作成する必要があります。


$ runat filea cp /tmp/attrdata attr.1

次に、runat コマンドを使用して、ファイルの属性をリストに表示します。


$ runat filea ls -l

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

属性認識オプションの追加により、多くの Solaris ファイルシステムコマンドがファイルシステム属性をサポートするようになりました。属性認識オプションを使って、ファイル属性を照会したり、コピーしたり、検索したりできます。詳細は、各ファイルシステムコマンドのマニュアルページを参照してください。

スワップ空間

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

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