JFS と大きなファイル

JFS ファイルシステム・タイプの大きなファイルを作成できます。

すべての JFS2 ファイルシステムがラージ・ファイルをサポートします。

ラージ・ファイルに使えるファイルシステムは、crfs コマンドと mkfs コマンドを使って作成できます。 両方のコマンドとも、ラージ・ファイルに使用可能なファイルシステムを指定するためにオプション (bf=true) を持っています。 これらのファイルシステムは、SMIT を使用しても作成できます。

ラージ・ファイルに使用可能なファイルシステムでは、4MB のファイル・オフセットの前に保管されるファイル・データは、4096 バイト・ブロック単位に割り振られます。 4MB のファイル・オフセットの後に保管されるファイル・データは、サイズが 128KB のラージ・ディスク・ブロックで割り振られます。 ラージ・ディスク・ブロックは、実際には 32 個の連続した 4096 バイト・ブロックです。

例えば、通常のファイルシステムでは、132 MB のファイルは 33K 個の 4KB ディスク・ブロック (それぞれが 1024 個の 4 KB ディスク・アドレスで埋められた 33 個の単一間接ブロック) を必要とします。 ラージ・ファイルに使用可能なファイルシステムでの 132MB のファイルは、1024 個の 4KB ディスク・ブロックと 1024 個の 128KB ディスク・ブロックから構成されます。 ラージ・ファイルの形状は、132MB のファイルに対し 2 つの単一間接ブロックしか必要としません。 ラージ・ファイル・タイプも通常のファイル・タイプも、ダブル間接ブロックが 1 つ必要です。

ラージ・ディスク・ブロックは、32 個の連続した 4KB ブロックを必要とします。 4MB を超えてラージ・ファイルに書き込みを行う場合、ファイルシステムに 32 個の未使用の連続した 4KB ブロックがないと、ファイル・オフセットが ENOSPC による障害を起こします。

注: ファイルシステムには数千個の空きブロックがある場合もありますが、その内の 32 個が連続していない場合には、割り振りは失敗します。

defragfs コマンドは、より大きな連続する空きブロック領域を用意するために、ディスク・ブロックを再編成します。

すべての新規ディスク割り振りの初期化のために JFS が必要です。 JFS は、システムに最初のラージ・ファイル使用可能ファイルシステムをマウントするとき、初期ファイル割り振りをゼロにするために使用されるカーネル kproc 手順を始動します。 ラージ・ファイルに使用可能なファイルシステムが正常にアンマウントされたとき、kproc 手順はそのまま残ります。