この章では,Tru64 UNIX オペレーティング・システムで利用できるさまざまなファイル・システムについて説明しています。 最初に概要を説明した後 (4.1 節),次のファイル・システムについて説明します。
仮想ファイル・システム (4.2 節)
Advanced File System (4.3 節)
UNIX ファイル・システム (4.4 節)
クラスタ・ファイル・システム (4.5 節)
ネットワーク・ファイル・システム (NFS) (4.6 節)
CD-ROM ファイル・システム (4.7 節)
DVD ファイル・システム (4.8 節)
メモリ・ファイル・システム (4.9 節)
/proc
ファイル・システム (4.10 節)
File-on-File マウント・ファイル・システム (4.11 節)
ファイル記述子ファイル・システム (4.12 節)
Tru64 UNIX で利用できるファイル・システムは,すべて仮想ファイル・システム (VFS) 層を通じてアクセスされ,仮想メモリ UBC (Unified Buffer Cache) に統合されます。
ファイル・システムは,ローカルのファイル・システムまたはネットワークに接続されたファイル・システムと対話する,仮想ファイル・システム層によって処理されます。
Tru64 UNIX の標準のファイル・システムは Advanced File System (AdvFS) ですが,従来の UNIX ファイル・システムも利用できます。
ネットワークに接続されたファイル・システムあるいはローカルのファイル・システムは,LSM と結び付き,さらにデバイス・ドライバおよび実際のストレージ・デバイスに作用します。
図 4-1
にファイル・システム,LSM,およびストレージ・デバイスの相互関係を示します。
図 4-1: ファイル・システム
クラスタ環境でサポートされるファイル・システムについては,『クラスタ概要』を参照してください。
4.2 仮想ファイル・システム
VFS (Virtual File System) は,Berkeley 4.3 Reno 仮想ファイル・システムをベースにしています。 VFS は,ファイル・システム層から抽象化された一貫したインタフェースを,ユーザおよびアプリケーションに対して提供することにより,属しているファイル・システムに関係なく各ファイルに対して共通にアクセスすることを可能にしています。 この結果,異なるファイル・システムにまたがるファイルに対して,透過的なアクセスが可能になります。
vnode
と呼ばれる構造体には,マウントされているファイル・システムの各ファイルについての情報が含まれています。
vnode
は inode に似た機能を持っており,ファイル・システム固有のノードを包含しています。
たとえば,ファイルに対する読み取り要求あるいは書き込み要求が行われた場合,vnode
はそのファイル・システムに適したシステム・コールをポイントします。
読み取り要求が AdvFS 上のファイルに対して行われた場合は,advfs_read
がポイントされ,要求が UFS 上のファイルに対して行われた場合は,ufs_read
がポイントされ,要求が NFS マウントされたファイル・システム上のファイルに対して行われた場合は,nfs_read
がポイントされます。
Tru64 UNIX の VFS の実装は,拡張ファイル属性 (XFA) をサポートし,任意のアプリケーションがファイルに対して XFA を割り当てることができるようになっています。
AdvFS と UFS の両方で XFA をサポートします。
XFA
についての詳細は,
setproplist
(2)4.3 Advanced File System
Advanced File System (AdvFS) は,柔軟性,互換性,データ可用性,高性能,単純化されたシステム管理機能などを提供する,Tru64 UNIX の標準のルート・ファイル・システムです。 このログ・ベース・ファイル・システムは,16 テラバイトに達する長さのファイルとファイルセットを処理します。
AdvFS の構成は,従来の UNIX ファイル・システムとは異なります。 AdvFS では,ディレクトリ層とは独立して物理ストレージ層が管理されます。 システム管理者は,ファイル・システムのアンマウントやオペレーティング・システムの停止を行わずにストレージの追加,および削除を実行することができます。 このため,構成の計画は,より簡単かつ柔軟になります。
ユーザ側から見た場合,AdvFS は他の UNIX ファイル・システムと同じように動作します。
エンド・ユーザは,mkdir
コマンドを使用して新しいディレクトリを作成し,cd
コマンドを使用してディレクトリを移動し,ls
コマンドを使用してディレクトリの内容を一覧表示することができます。
AdvFS の論理構造,クォータ制御,バックアップ機能は,伝統的なファイル・システムの設計をベースにしています。
AdvFS には,mkfdmn
,mkfset
などのファイル作成コマンド,vdump
,vrestore
などのファイルセットのバックアップ/リストア・コマンドなど,いくつかの独自のシステム管理ユーティリティが用意されています。
AdvFS のコマンドおよびユーティリティについては,『AdvFS 管理ガイド』を参照してください。
システム管理者は,システムをオフライン状態にしなくても,バックアップ,ファイル・システムの再構成,ファイル・システムの調整を行うことができます。 エンド・ユーザは,システム管理者の助けを受けなくても,不用意に削除してしまったファイルをあらかじめ定義されたゴミ箱ディレクトリやクローン・ファイルセットから取り出すことができます。
オペレーティング・システムとは別のライセンスが必要な AdvFS Utilities により,その他のファイル管理機能と Web ベースの GUI が使用可能になり,システム管理を単純化できます。 共通デスクトップ環境 (CDE) で実行されるこの GUI によって,メニュー,グラフィカル表示,およびオンライン・ヘルプが使用できるようになり,AdvFS の操作が容易になります。 さらにこの GUI によって,システムの状態情報の表示が可能になります。
AdvFS Utilities は,マルチボリューム・ファイル・システムをサポートしています。
マルチボリューム・ファイル・システムを使用すると,ファイル・レベルのストライピング (データを複数のボリュームに分散させること) が可能で,入出力を多用するアプリケーションのファイル転送速度が改善されます。
ボリューム・レベルのストライピングが可能な Logical Storage Manager (LSM) を,AdvFS 構成の中に組み込むこともできます。
4.4 UNIX ファイル・システム
UNIX File System (UFS) はローカル・ファイル・システムです。 以前は UFS が標準のファイル・システムとして位置付けられていましたが,AdvFS が標準のファイル・システムとなった現在でも,AdvFS の代替ファイル・システムとして提供されています。 システム・ディスクにおいて,あるいは AdvFS の先進の機能を必要としない場合には,UFS に慣れ親しんだ多くの管理者は UFS の方を選択します。
UNIX ファイル・システム (UFS) は,Berkeley 4.3 Tahoe リリースと互換性があります。 UFS では,パス名の構成要素に 255 バイト,絶対パス名に最大 1023 バイトが使用できます。 Tru64 UNIX で提供している UFS では,2 GB を超えるファイル・サイズをサポートします。
UFS は,大規模ストレージ・デバイスで raw デバイスと同じスピードのシーケンシャルな読み取り/書き込みアクセスを可能にする,ファイル・ブロック・クラスタリングをサポートします。
UFS は,STREAMS に対するファイル・オン・ファイル・マウントをサポートします (4.11 節
を参照)。
4.5 クラスタ・ファイル・システム
TruCluster Server クラスタでは,仮想ファイル・システムとしてクラスタ・ファイル・システム (CFS) が物理ファイル・システムの上に存在しており,これにより,クラスタ単位でマウント済みのファイル・システムへのアクセスを可能としています。
CFS により,すべてのファイルがすべてのクラスタ・メンバから見えるようになり,各メンバからそれらのファイルにアクセスできるようになります。 ファイルが格納されているデバイスがすべてのクラスタ・メンバに接続されているデバイス上であるか,あるいは 1 つのメンバ専用のデバイス上かに関わらず,各メンバ・システムからは同じようにファイルが見えます。 CFS は,クラスタ・メンバ間でキャッシュの一貫性を保つことにより,クラスタ内にマウントされているファイル・システムがすべてのメンバから常に同じように見えることを保証しています。
CFS から見ると,各ファイル・システムまたは AdvFS ドメインは,1 つのクラスタ・メンバによりクラスタ全体にサービスされているように見えます。 どのクラスタ・メンバも,クラスタ内の任意のデバイス上のファイル・システムのサービスを行うことができます。 クラスタのブート時にマウントされたファイル・システムは,最初にそのファイル・システムにアクセスしたクラスタ・メンバがサービスを行います。 したがって,あるクラスタ・メンバ専用のバスに接続されたデバイス上のファイル・システムは,そのメンバがサービスを行うことになります。
クラスタ・ファイル・システムについての情報は,『クラスタ概要』を参照してください。
4.6 NFS
ネットワーク・ファイル・システム (NFS) は,異種のプロセッサ,オペレーティング・システム,あるいはネットワークの混在する環境でファイルを共有するための機能です。 NFS を使用すると,リモートのファイル・システムあるいはディレクトリをローカル・システムにマウントし,それらのファイルに対して,ローカル・ファイルと同じように読み取り/書き込みすることができます。
Tru64 UNIX は,NFS Version 3 および NFS Version 2 をサポートします。 NFS Version 2 のコードは,Sun Microsystems 社からラインスを受けている ONC Version 4.2 をベースにしています。 NFS Version 3 は Sun Microsystems 社のプロトタイプ・コードをベースにしています。
Tru64 UNIX は NFS Version 3 および Version 2 の両方をサポートするため,NFS クライアントおよびサーバの両方でサポートしている高い方のバージョンの NFS を使用してファイル・システムがマウントされます。 たとえば,NFS Version 3 をサポートする NFS サーバによってファイルがサービスされている場合,Tru64 UNIX クライアントは NFS Version 3 を使用します。 しかし,NFS Version 2 をサポートする NFS サーバによってファイルがサービスされている場合,NFS クライアントは NFS Version 2 を使用します。 NFS Version 3 の詳細については,『NFS Version 3: Design and Implementation』(USENIX, 1994) を参照してください。
NFS の基本サービスに加えて,Tru64 UNIX は以下の拡張機能をサポートします。
NFS over TCP
一括書き込み (Write-gathering)
NFS ロッキング
オートマウント機能
PC-NFS
WebNFS
NFS Version 3 は,NFS Version 2 で提供するすべての機能に加えて,次の機能をサポートします。
性能の向上
NFS Version 2 での書き込み性能を改善し,信頼性の高い非同時書き込みをサポートします。 その結果,クライアントのレスポンス,サーバ I/O ローディングの性能が向上します。
READDIRPLUS
プロシージャをサポートします。
これにより,ディレクトリ名とともにファイル・ハンドルおよびファイル属性を返してディレクイトリ探索時の
LOOKUP
呼び出しを省略できます。
後続の
GETATTR
プロシージャの呼び出し数を低減するために,すべての操作でサーバがメタデータを返します。
クライアントがより効果的にキャッシュを管理できるように,キャッシュ・データの一貫性を弱める機能を提供します。
セキュリティの改善
スーパユーザ許可モードの割り当てに関する NFS Version 2 での問題を解決した
ACCESS
プロシージャが提供されてます。
これにより,ファイル・オープン時のアクセス・チェックが可能になり,より優れたアクセス制御リスト (ACL) サポートが可能になりました。
可変長文字列のファイル名およびパス名をサポートします。
フィルタ名およびパス名の最大長は,PATHCONF
プロシージャによってクライアントとサーバの交渉の結果により決定されます。
排他的ファイル作成の保証
NFS Version 3 の機能に加えて,Tru64 UNIX は次の NFS 機能を拡張しています。
NFS over TCP
従来の NFS は,UDP プロトコル上で実行されます。
Tru64 UNIX では,TCP プロトコル上で NFS がサポートされます。
詳細については
mount
(8)
一括書き込み (Write-gathering)
この機能により,NFS サーバで同一ファイルに対する複数の同時書き込み要求がまとめられ,実際に書き込みを行う回数をできるだけ少なくします。 連続する書き込み処理のデータ部分はキャッシュに保管され,単一のメタデータ更新が実行され,それがすべての書き込みに適用されます。 一括書き込みが NFS のクラッシュ・リカバリ・デザインに違反しないように,すべてのデータおよび関連するメタデータがディスクに書き込まれるまで,応答はクライアントへ送られません。
この結果,一括書き込みは書き込みスループットを 100% 増加させ,書き込みに関するCPU の負荷を大幅に低減させることが可能で,サーバの処理能力を向上させることができます。
NFS ロック機能
ファイル領域ヘのアクセスを制御する
fcntl
システム・コールを使用すると,NFS ロック機能により,NFS 経由でファイル・レコードをロックすることができます。
この機能により,NFS で提供するデータベースの共用セグメントを保護することができます。
状態デーモン
rpc.statd
は NFS サーバをモニタし,サーバがダウンした場合の NFS ロックを管理します。
このため,NFS サーバが回復した時に,アクセスを取り戻したプロセスがロックを再設定することが可能になります。
オートマウント機能
NFS クライアントでは,/etc/fstab
ファイルを使用してリモートのファイル・システムをマウントする代わりに,automount
デーモンと
autofsd
デーモンを使用して,ファイル・システムを必要に応じてマウントすることができます。
上記のいずれかのデーモンが実行されているシステムのユーザが,リモート・マウントされたファイルやディレクトリにアクセスするコマンドを呼び出した場合,デーモンは該当するファイル・システムまたはディレクトリをマウントし,ユーザが必要とする間,マウントされた状態を維持します。 ファイル・システムまたはディレクトリへのアクセスがないまま一定期間 (省略時の設定は 5 分) が経過すると,デーモンはそれらをアンマウントします。
マウントするファイル・システムは,ユーザの環境に合わせてカスタマイズ可能なマップ・ファイルで指定します。 マップ・ファイルの管理は,ローカルで,または NIS 経由で行うことができ,この 2 つの方法を組み合わせて行うこともできます。
オートマウントによる NFS マウント・ファイル・システムは,静的なマウントと比べて次のような利点があります。
NIS マップを使用している場合にファイル・システムを他のサーバへ移動しても,ユーザはそのファイルにアクセスするために特別な操作を行う必要はありません。 ファイル・システムをマウントする必要性があるたびに,デーモンが正しい位置のファイル・システムをマウントします。
ファイルが読み取り専用で,複数の NFS サーバが所定のファイル・システムをサービスしている場合,デーモンは応答の最も速いサーバにユーザを接続します。 また,いずれか 1 つのサーバが有効であれば,マウントがハングすることはありません。
一定期間 (省略時の設定では 5 分) 以上アクセスのない NFS マウント・ファイル・システムはデーモンによってアンマウントされ,システム・リソース,特にメモリを節約します。
autofsd
デーモンには,automount
デーモンより有利な点があります。
前者は,カーネル・デーモンとユーザ空間デーモン間の通信が少なくて済み,可用性が高いため,後者より効率が高くなっています。
マウントやアンマウントを行うためには
autofsd
が実行されている必要がありますが,autofsd
が 強制終了されたり利用できなくなった場合でも,オートマウントされている既存の NFS ファイル・システムは引き続き利用できます。
automount
デーモンと
autofsd
デーモンについての詳細は,『ネットワーク管理ガイド:サービス編』,および
automount
(8)autofsd
(8)autofsmount
(8)
HP が提供する PC-NFS サーバ・デーモン
pcnfsd
により,PC-NFS で PC クライアントを構成し,次のことを行うことができます。
pcnfsd
プロトコル V1.0 および V2.0 に準拠した PC-NFS
pcnfsd
デーモンは,PC クライアントが NFS と通信できるように UID および GID を PC クライアントに割り当てます。
pcnfsd
デーモンは,UNIX ヘのログイン時に行うのと同じような パスワードとユーザ名の確認を,サーバ上で PC クライアントに対して行います。
認証が成功すると,pcnfsd
デーモンは,そのユーザ名に対して与えられているのと同じ許可コードを PC クライアントに与えます。
mountd
デーモンと通信し,サーバ上の
/etc/exports
ファイルでその NFS ファイル・システムが PC クライアントに対してエクスポートされていれば,PC クライアントは NFS ファイル・システムをマウントすることができます。
DOS にはファイル許可コードのチェックのためのメカニズムが用意されていないため,PC クライアントは認証サーバを呼び出し,そのユーザのファイル属性に関する信任データをチェックします。 この処理は,ファイルのオープンのような,許可コードの確認が必要なファイル・アクセスを PC クライアントが要求した場合に行われます。
ネットワーク・プリンタヘのアクセス
pcnfsd
デーモンは PC クライアントの認証を行い,クライアントに代わってファイルのスプールおよび出力を行います。
WebNFS
WebNFS は,ローカル・ファイルにアクセスするのと同じ方法で,インターネット経由でクライアントがファイルにアクセスすることを可能にする NFS プロトコルです。
WebNFS は,ファイアウォールを越えて機能することができるパブリック・ファイル・ハンドルを使用します。
パブリック・ファイル・ハンドルは,接続の初期化に要する時間の低減にも効果があります。
パブリック・ファイル・ハンドルは,WebNFS サーバ上の単一のディレクトリに対応しています。
詳細については,
exports
(4)exportfs
(2)nfs_intro
(4)
CD-ROM ファイル・システム (CDFS) はローカル・ファイル・システムです。 初期の CD-ROM フォーマットと互換性のある High Sierra Group 標準 あるいは Rock Ridge Interchange Protocol (RRIP) バージョン 1.0 リビジョン 1.09 を 使用した CD-ROM フォーマットなど,複数のベンタ間のデータ交換ができるように,Tru64 UNIX は ISO-9660 CDFS 標準をサポートします。
RRIP は,ISO-9660 によって定義されているシステム使用領域を使用して,複数セッション,ファイル名における大文字/小文字の区別,長いファイル名の使用,シンボリック・リンク,デバイス・ノード,深いディレクトリ構造,ファイルの UID/GID と許可コード,POSIX タイムスタンプなどの機能を提供できるよう,ISO-9660 を拡張しています。
加えて,Tru64 UNIX は,X/Open Preliminary Specification (1991) CD-ROM サポート・コンポーネント (XCDR) をサポートします。
XCDR を使用すると,定義されたユーティリティおよびシェアード・ライブラリを通して,選択した ISO-9660 属性をユーザが調べることができ,システム管理者が,省略時の CD-ROM ファイルのファイル・プロテクション,ファイル所有者,ファイル名を別の値に置換することもできます。
詳細については,
cdfs
(4)4.8 DVD ファイル・システム
DVD (Digital Versatile Disk) ファイル・システムを使用すると,Optical Storage Technology Association (OSTA) Universal Disk Format (UDF) 仕様でフォーマットされたディスクを読み取ることができます。 これらのインタフェースは,ISO/ITEC 13346:1995 標準および ISO 9660:1988 標準に準拠しています。
DVD-ROM のユーザ・データ・セクタには,任意のフォーマットの任意のタイプのデータを記録することができます。 ただし,Tru64 UNIX の DVDFS システムでは,OSTA UDF ファイル・フォーマット標準に準拠していなければなりません。 さらに,DVD-ROM 標準では,論理セクタ・サイズと論理ブロック (ユーザ・データ・ブロック) サイズが 2048 バイトでなければなりません。
詳細は,
dvdfs
(4)4.9 メモリ・ファイル・システム(MFS)
メモリ・ファイル・システム (MFS) は,メモリ上で機能する UNIX ファイル・システムと言えます。 ファイル構造あるいはデータのディスクヘの書き込みは行わないため,MFS の内容は,リブート時,アンマウント時,電源オフ時に消失します。 ディスクへのデータ書き込みを行わないため MFS は非常に処理の速いファイル・システムで,一時ファイルの保管,既存ファイルの読み取り専用ファイルとしてのロードには,極めて効果的です。
たとえば,ソフトウェアのビルドなど,失敗した場合には再実行が必要となるような処理を行っている場合,処理中に作成される一時ファイルを保管するには処理速度の点で MFS が非常に適しています。
Tru64 UNIX のファイル・システムは仮想ファイル・システムなので,MFS のサイズは物理的な空きメモリのサイズには制限されません。 アクティブにアクセスされていない MFS 上のデータはスワップ領域に移され,システム全体の性能が改善されます。 MFS は TruCluster Server 構成ではサポートされません,
詳細については,
newfs
(8)4.10 /proc ファイル・システム
/proc
ファイル・システムは,システム・コール
open
,close
,read
,write
,lseek
,および
ioctl
によって,プロセスをファイルとしてアクセスあるいは処理できる,ローカル・ファイル・システムです。
/proc
ファイル・システムは,VFS の下層に位置付けられる擬似ファイル・システムで,ディスク領域は占有しません。
このファイル・システムは,mount
および
unmount
コマンドでマウント/アンマウントすることも,/etc/fstab
ファイルにエントリを定義することもできます。
クラスタ・システムでは,各クラスタ・メンバが専用の
/proc
ファイル・システムを持っています。
/proc
ファイル・システムは,他の実行プロセスを制御するのに適切な許可コードになるよう各プロセスを設定できるため,デバッガで使用するのに最も適しています。
デバッガとデバッグされるプロセスの間には,親子の関係が存在する必要はありません。
詳細については,
proc
(4)4.11 File-on-File マウント・ファイル・システム
File-on-File マウント(FFM) ファイル・システムは,通常ファイル,キャラクタ・ファイル,ブロック特殊ファイルを 通常ファイルにマウントします。
主に STREAMS ベースのパイプ (あるいは FIFO) のシステム・コール
fattach
および
fdetach
で使用されます。
これらのシステム・コールは SVR4 互換です。
FFM を使用することにより,通常は対応するファイル・オブジェクトを持たない FIFO に,ファイル・システム領域で名前が与えられます。
この結果,FIFO を作成したプロセスには関係のないプロセスから FIFO をアクセスすることができるようになります。
fattach
システム・コールを通じて FFM を使用する プログラムの他に,ユーザが
mount
コマンドを使用して,1 つの通常ファイルを他のファイルの先頭にマウントすることができます。
他のファイルの先頭にファイルをマウントしても,それによってカバーされたファイルの内容は破壊されません。
単にカバーされたファイルの名前とマウントしたファイルが関連づけられ,カバーされたファイルの内容は一時的に使用できなくなります。
カバーされたファイルへのアクセスは,そのファイルにマウントしたファイルが リブート,fdetach
呼び出し,あるいは
umount
コマンドによってアンマウントされれば再び可能となります。
ただし,カバーされたファイルの内容は,fattach
呼び出しでそのファイルをオープンするプロセスに対しては,あるいはユーザがそのファイルに対して
mount
コマンドを発行した場合には有効です。
クラスタ・システムでは,FFM をマウントしているクラスタ・メンバは FFM を認識しますが,それ以外のクラスタ・メンバは認識しません。
FFM
についての詳細は,
ffm
(4)4.12 ファイル記述子ファイル・システム(FDFS)
ファイル記述子ファイル・システム (FDFS) を使用すると,アプリケーションは UNIX ファイル・システム上のファイルと同じようにプロセスのオープン・ファイル記述子を参照することができます。
FDFS は,プロセスのオープン・ファイル記述子をファイル・オブジェクトに割り当てます。
FDFSがマウントされている場合,ファイル記述子ファイルのオープンあるいは作成は
dup
システム・コールの呼び出しと同じ効果があります。
FDFS によって,UNIX スタイルの入出力をサポートするようには作成されていないアプリケーションが,パイプ,名前付きパイプ,および入出力のリダイレクトを使用できます。
FDFS は,Tru64 UNIX システムには構成されません。
FDFS は,コマンドによってマウントするか,システムの
ファイルにエントリとして配置しなければなりません。
FDFS
の詳しい説明は,
/etc/fstab
fd
(4)