次のページ 前のページ 目次へ

9. 他のファイルシステム

9.1 ADFS - Acorn Disc ファイルシステム

Acorn Disc ファイルシステムは,Acorn 製の ARM ベースの RISC PC システムと,Acorn 製の Archimedes クラスのマシンで動作する RiscOS の 標準ファイルシステムです.

Linux カーネル 2.1.x 以降はこのファイルシステムに対応しています.Linux 版のファイルシステムを実装したのは Russell King < rmk@arm.uk.linux.org> です.

9.2 AFFS - Amiga 高速ファイルシステム

高速ファイルシステム(Fast File Sysutem, FFS)は AmigaOS 1.3 (34.20) 以来 Amiga(tm) システムのハードディスクで使われている標準の ファイルシステムです.

Linux カーネル 2.1.x 以降はこのファイルシステムに対応しています.Linux 版のファイルシステムを実装したのは Ray Burr < ryb@nightmare.com> です.

9.3 BeFS - BeOS のファイルシステム

BeFS は BeOS で使われている ジャーナルファイルシステム です.BeFS の詳しい情報については書籍 Practical File System Design with the Be File System または Linux 用 BeFS ドライバのソースコードを参照してください.

Linux 用の BeFS の実装:

このドライバは x86 用と PowerPC 用の Linux に対応しています. また,このドライバはハードディスクとフロッピーディスクの読み取りにだけ 対応しています.

9.4 BFS - UnixWare の起動ファイルシステム

UnixWare の BFS ファイルシステムは特殊な目的のファイルシステムです. このファイルシステムは UnixWare のカーネルのロードと起動のために設計さ れています.BFS は 連続的な割り当てを行うファイルシステム として設計されています.BFS は 1 つの(ルート)ディレクトリにしか対応し ておらず,通常ファイルしか作成できません.つまり,サブディレクトリや デバイスファイルやソケット等の特殊ファイルは作成できません.

BFS の詳しい情報については http://uw7doc.sco.com/FS_admin/_The_bfs_File_System_Type.html を見てください.

Linux から BFS にアクセスできます:

BFS 対応はバージョン 2.3.25 以降の Linux カーネルに含まれています. これより古いカーネルを使っているのであれば,BFS のホームページに このファイルシステムに対応するためのパッチがあるかどうかを確認してくだ さい.このホームページにはまだ公式カーネルに取り込まれていないバグ修正 や改良が入ったパッチもあります.

筆者による古い実装もありますが,これは時代遅れになっています. 筆者としてはこのコードを FreeBSD に移植する予定です.

これは Linux 用の読み取り専用の UnixWare BFS 対応です.これを使うと UnixWare の /stand パーティションやフロッピーディスクを読み取り専用で マウントできます.筆者は読み書き対応のバージョンは考えていないのですが, 欲しいという方はメールを下さい.Linux 用の VxFS 対応も調べるとよいかもしれません.

9.5 CBM FS - Commodore 1581/1541 のファイルシステム

このファイルシステムは Commodore 1581/1541 で使われていました. 読み取り専用の Linux 用ファイルシステムドライバがあります.

読み取り専用の Commodore 1581/1541 ファイルシステムドライバで, カーネルモジュールとしてインストールされます.3.5" のフロッピードライブ に入っている Commodore 1581 のディスクと,任意のフロッピーディスクに コピーした 1541 のディスクイメージをマウントできます. PETSCII から ASCII への変換も自動的に行われます.1581 ディスク上の パーティションはサブディレクトリとしてアクセスされます.

9.6 CrosStor ファイルシステム

これは High throughput filesystem (HTFS) の新しい名前です. 詳しくは CrosStor のホームページ http://www.crosstor.com を見てください.

9.7 DTFS - Desktop ファイルシステム

Desktop ファイルシステムの設計の目的は,小さなコンピュータシステムでは 環境はどうなるかという考えからの影響を受けています.DTFS は 通常ファイルに格納されたデータを圧縮し,必要なディスク容量を減らします (ディレクトリはそのまま圧縮しません).圧縮は一度に 1 ページずつ 「オン・ザ・フライ」で行われます. DTFS は LZW 圧縮と非圧縮に対応していますが,ユーザが独自のアルゴリズム を追加できます.i-ノードの先行割り当てをやめることによりディスクをいく らか節約できます.どのディスクブロックもいつでも i-ノードとして割り当 てられる対象になっています.それぞれの i-ノードは B+-ツリーに格納され ます.詳しい情報については USENIX の DTFS に関する論文を見てください ( ftp://ftp.crosstor.com/pub/DTFS/papers/ から入手できます).

CrosStor は UnixWare と SUN Solaris 用には読み書きが可能な商用ドライバ を出しています:

9.8 EFS - Enhanced ファイルシステム (Linux)

Enhanced ファイリングシステムプロジェクトの目的は,マウントできる 「ファイルシステム」を管理者が定義できるような新しいファイリングシステム をブロックデバイス群(ハードディスクまたはパーティション)の上に作成する ことです.最初の開発対象は Linux で,最終的には他の OS も対象にする 予定になっています. もうひとつの目的は,システムの動作中にパーティションの集合からファイル システムを追加/削除できるようにすることと,システムの動作中にパーティション を集合に追加できるようにすることです.主な 2 つの目的は,たくさんの マウント可能なファイルシステムが記憶空間の同じプールを共有できるように し(IE は複数のユーザのホームディレクトリをニューススプールとして同じ ディスク上に持っていますが,別々のアカウンティングを行います),ハードディスク の追加を容易にして容量を増やせるようにすることとも言えます.

他に作者らが実装しようとしている機能は ロギング/ジャーナリングの実装, できるかぎりたくさんの OS への対応(ただし,最初のうちは全ての作業が Linux 上で行われています),起動時に無駄な quota チェックで無駄な時を過 ごさなくてもよいような FS 組み込みの quota 機能――ロギングを行えば, fsck が不要なのと同じように quota チェックも不要になるはずです. 作者達が実現したいことは,4 つのハードディスクにわたって 10G の ニュースが置かれているシステムでも,停電があったに完全な quota チェックをした上で 20 秒未満で全てのファイルシステムをマウントす ることです!

Enhanced FS のホームページは http://www.coker.com.au/~russell/enh/ です.詳しくは Contact Russell Coker < russell@coker.com.au> に連絡してください.

9.9 EFS - Extent filesystem (IRIX)

Extent File System (efs) は Silicon Graphics の昔のブロック デバイスファイルシステムで,バージョン 6.0 より前の IRIX で広く使われ ていました.6.0 からは xfs が IRIX に付属しており,ユーザは xfs ファイルシステムに移行することが推奨されています.バージョン 6.5 以降 の IRIX では読み取り専用のサポートしか行われなくなります.ただし,efs は SGI のソフトウェア配布 CD で今でも非常によく使われています.

Linux から EFS ファイルシステムにアクセスするためのカーネルモジュール は 2 つあります.

efs カーネルモジュールは Linux 2.2 カーネル向けに extent ファイルシステム を実装したものです.efs の実装(efsmod-0.6.tar.gz)は元々は 1.x カーネル 用に Christian Vogelgsang が作成しました. この実装のコードは完全に書き直され,エンディアン非依存になりました. efs モジュールを使うには少なくともバージョン 2.2 のカーネルが必要です.IRIX の CD をマウントするには,お使いの CD-ROM が 512 バイト/ブロックを扱える必要 があります.このバージョンの efs はハードディスク上のパーティションに 対応しており,Linux カーネルツリーに efs コードをインストールできる カーネルパッチも含まれています.巨大なファイルの扱いも大幅に改善されて います.

オリジナルの efsmod も入手できます:

efs-mod 0.6 は Linux で EFS を読み書きするためのオリジナルのモジュール です.バージョン 0.6 は完成していますが,時間がないことと書き込み部分 の実装に関する情報不足のためにプロジェクトは凍結されました.

EFS と FFS のためのライブラリ,libfs

EFS と FFS を x86 用 Windows NT, SunOS, IRIX で読み込むための C ライブラリです.使い方は簡単であり(POSIX 風のインタフェースです),既存 コードとリンクすることも簡単です.FTP サーバには UFS と EFS ファイルシステムを対話的に読み込むための Windows NT 用バイナリである winefssh.exe と winufssh.exe もあります. あまりまとまっておらず文書もないパッケージですが,このパッケージを便利 だと思う人もいるでしょう.

役に立つリンク:

9.10 FFS - BSD Fast filesystem

これはほとんどの BSD UNIX(FreeBSD, NetBSD, OpenBSD, Sun Solaris, ...) で使われているネイティブのファイルシステムです.

SFS, secure filesystemUFS も見てください.

9.11 GPFS - General Parallel Filesystem

GPFS は RS/6000 SP(tm) サーバ用に設計された UNIX(tm) OS 形式のファイル システムです.GPFS では複数ノード上にあるアプリケーションがファイルの データを共有できます.また,非常に巨大なファイルにも対応していますし, 複数ディスクを使ったストライピングを行って性能を向上させることもできま す.GPFS はアプリケーションノードに直接割り当てられていないディスクへ のアクセスのオーバーヘッドを減らす共有ディスクモデルに基づいており, また分散ロッキングプロトコルを用いて,任意のノードからのアクセスに対し てデータが完全に一貫していることを保証しています.GPFS は AIX(tm) 標準 のファイルシステムインタフェースも多く持っており,ほとんどの アプリケーションは修正や再コンパイルの必要なしに実行できます. これらの機能は,SP システムの全てのノードから同じデータに対する高速な アクセスを可能とし,様々なノードで起こる操作に対して完全にデータの 一貫性を保つことができます.複数ノードにわたる操作やコンポーネントの 異常があっても,GPFS は継続に十分なリソースが存在すると仮定して操作を 継続しようとします.

9.12 HFS - HP-UX Hi performance filesystem

これはこの HOWTO 文書に出てくる 2 つめの `hfs' です.この名前は古い バージョンの HP-UX でも使われています.

9.13 HTFS - High throughput filesystem

役に立つリンク:

読み書き可能な商用ドライバが Crostor から入手できます:

9.14 JFS - ジャーナルファイルシステム (HP-UX, AIX, OS/2 5, Linux)

JFS は IBM のジャーナルファイルシステム技術です. 現在は IBM エンタープライズサーバで使われており,高スループットの サーバ環境向けに設計されています.

9.15 LIF - 論理交換フォーマット (HP-UX)

このファイルシステムは古いバージョンの HP-UX で使われています.この ファイルシステムは ROM や起動セクタの中にもあります.

9.16 LFS - Linux ログ構造化ファイルシステム

Linux ログ構造化ファイルシステム(Linux Log structured filesystem)の 実装は d(t)fs と呼ばれています:

d(t)fs は Linux 用ログ構造化ファイルシステムのためのプロジェクトです. 現時点では,ファイルシステムはだいたい完成して動作していますが,まだ コードをきれいに書き直したものはありません.

ホームページでは dtfs メーリングリストのアナウンスもそのうちに行われる ようです.詳しくは http://www.xss.co.at/mailman/listinfo.cgi/dtfs を見てください.

9.17 MFS - Macintosh filesystem

MFS は Macintosh が最初に使っていたファイルシステムです. これは既に HFS/HFS+ に置き換わっています. 詳しい情報をお持ちであれば, 筆者にメールをください.

9.18 Minix ファイルシステム

これは Minix ネイティブのファイルシステムです.これは初期バージョンの Linux でも使われていました.

9.19 NWFS - Novell NetWare filesystem

NWFS は Novell NetWare OS のネイティブファイルシステムです.これは FAT ベースのファイルシステムを改造したものです.このファイルシステムには 2 つの変種があります.16 ビットの NWFS 286 は NetWare 2.x で使われており, NetWare 3.x, 4.x, 5 では 32 ビットの NWFS 386 が使われています.

NetWare filesystem / 286

(執筆予定)

NetWare filesystem / 386

(執筆予定)

Linux から NWFS-386 にアクセスする方法

このドライバを使うと NWFS-386 ファイルシステムを Linux にマウントでき ます.

9.20 NSS - Novell Storage Services

これは新しい 64 ビットの ジャーナル ファイルシステムであり, B-ツリーアルゴリズムを 使っています.このファイルシステムは Novell NetWare 5 で使われています.

9.21 ODS - On Disk Structure filesystem

これは OpenVMS と VMS のネイティブなファイルシステムです.

9.22 QNX filesystem

このファイルシステムは QNX で使われています.ファイルシステムには主な バージョンが 2 つあります.QNX 2 で使われているバージョン 2 と QNX 4 で使われているバージョン 4 です.QNX 4 はバージョン 2 に対応していませ んし,その逆も同じです.

QNX4 ファイルシステムは Linux 2.1.x 以降でアクセスできるようになりまし た.'QNX filesystem support' の問いに ``Y'' と答えてください.

これは QNX 4 ファイルシステム用のドライバです.

9.23 Reiser ファイルシステム

Reiserfs は古典的な B-ツリーアルゴリズムの変種を使ったファイルシステム です.ext2fs のように普通のブロック割り当てを行うファイルシステムとの 比較を同じ OS とバッファリングコードを使って行うと以下のような結果が出 ます. まずこれらのアルゴリズムは,ノードの大きさとかけ離れたサイズのファイル (大きなものも小さなものも)では時間性能の効率が良くなります.次に ファイルの大きさがノードの大きさに近付くにつれて時間性能の点では効率が悪 くなり,空間性能は著しく向上します.それからファイルサイズが実質的に ノードのサイズ(4K)より小さくなってくると空間性能も時間性能も極めて 効率的になります.そして 100 バイト程度のファイルで性能向上は最も 大きくなります.小さなファイルで空間性能と時間性能が向上することは, ファイルシステム層より上にレイヤを用意して小さなオブジェクトをまとめる べきだという OS 設計の一般的な仮定をそろそろ見直してもよいことを示して います.

[ 訳注: 上の説明はノードの大きさを軸に行われていますが,時間効率と 空間効率を軸に理解すると分かりやすいと思います.

時間効率:

ノードとの差が大きいほうがよい(ノードと同等のサイズでは効率が悪い)

空間効率:

ファイルサイズが小さいほうがよい

]

役に立つリンク:

9.24 RFS (CD-ROM 用ファイルシステム)

Sony の追記型のパケット書き込みファイルシステムです.

9.25 RomFS - Rom filesystem

Linux 用 RomFS の実装は Janos Farkas < chexum@shadow.banki.hu> が行いました.詳しい情報については /usr/src/linux/Documentation/filesystems/romfs.txt を見てください.

9.26 SFS - Secure filesystem

SFS ファイルシステムは FFS ファイルシステムの変化形です.SFS ファイルシステムの起動ブロック,スーパーブロック,記憶ブロック, 空きブロックは管理レベルでは FFS と同じです.ただし i-ノードは FFS の i-ノードと異なります.奇数番号の i-ノードはセキュリティ情報のために 予約されています.セキュリティ情報としてはアクセス制御リストの情報が 保持されています.筆者は SFS が他の機能を持っているかどうかはよく知り ません.

SFS 関連リンク:

9.27 Spiralog ファイルシステム(OpenVMS)

Spiralog は OpenVMS 用の 64 ビット高性能ファイルシステムです. Spiralog は ログ構造化技術と伝統的な B-ツリー技術を組み合わせて一般的な抽象化を行っ ています.B-ツリーによるマッピング機構では先行書き込みロギングを用いて 安定性と修復性の保証を行っています.

Spiralog 関連のリンクは Digital にあります:

9.28 System V のファイルシステムと System V 由来のファイルシステム

System V Linux のホームページは http://www.knm.org.pl/prezes/sysv.html です. このプロジェクトの管理者は <kgb@manjak.knm.pl.org> です.

AFS - Acer Fast Filesystem

Acer Fast ファイルシステムは SCO Open Server で使われています. これは System V リリース 4 のファイルシステムに似ていますが, ブロックの連鎖フリーリストではなくビットマップを使っています.

EAFS - Extended Acer Fast Filesystem

AFS ファイルシステムは 255 文字までのファイル名を扱えるように「拡張」 できます.ただしディレクトリのエントリは 14 文字のままです.この ファイルシステムは SCO OpenServer で使われています.

Coherent ファイルシステム

S5

これは UnixWare で使われているファイルシステムです.これはたぶん System V と互換ですが,筆者はまだ確認していません.詳しい情報については http://uw7doc.sco.com/FS_admin/_The_s5_File_System_Type.html. を見てください.

S51K - SystemV 1K

Version 7 ファイルシステム

このファイルシステムは PDP-11 マシンの Versino 7 Unix で使われていまし た.

Xenix ファイルシステム

9.29 Text - (Philips の CD-ROM ファイルシステム)

オーディオ CD にディスクとトラックに関するデータをエンコードするために Philips が作った標準です.

9.30 UDF - Universal Disk Format (DVD-ROM のファイルシステム)

Linux 用の UDF ファイルシステムドライバがあります:

9.31 UFS

注意: BSD Fast Filesystem のことを間違って UFS と呼ぶ人がよくいます.FFS と UFS は別のファイルシステムです. 最近の UNIX は全て,UFS ではなく FFS ファイルシステムを使っています. UFS は初期バージョンの BSD で使われていました. ソースコードは http://minnie.cs.adfa.edu.au/TUHS/ から入手 できます.

役に立つリンク:

BSD FFS も参照してください.

9.32 V7 ファイルシステム

V7 ファイルシステムは UNIX タイムシェアリングシステムの第 7 版で 使われていました(1980 年頃).詳しい情報については第 7 版の ソースコードを見てください. これは the Unix Archive: http://minnie.cs.adfa.edu.au/TUHS/ から入手できます.

9.33 VxFS - Veritas filesystem (HP-UX, SCO UnixWare, Solaris)

これは Veritas Inc. が出している商用ファイルシステム開発ツールです. これは HP-UX, SCO UnixWare, Solaris 等のシステムで見かけます. VxFS は非常に面白い機能を持っています: 範囲ベースの割り当て,ジャーナリング,アクセス制御リスト(ACL), 2 テラバイトまでの巨大なファイルへの対応, オンラインバックアップ(スナップショットファイルシステム), BSD スタイルの quota やその他たくさんの機能です.

VxFS は 3 つのバージョンが利用できます:

バージョン 1: これがオリジナルの VxFS です.一般には使われていません

バージョン 2: ファイル集合と動的な i-ノードの割り当てに対応

バージョン 4: 最新バージョン巨大なファイルや quotas に対応

HP-UX, Solaris, UnixWare 版のファイルシステムは多少異なる構造を持って いるので,別のシステムに接続しても読むことはできないと思います.

VxFS 関連リンク:

VxVM (Veritas ボリュームマネージャ)ジャーナルファイルシステムも参照してくだ さい.

VxTools

VxFS 2, 4 にアクセスできる UNIX 用のコマンドラインユーティリティが GNU GPL の下で入手できます:

Vxtools は Linux から(たぶん他の UNIX からでも) VxFS ファイルシステム にアクセスできるようにするコマンドラインユーティリティです.現在の バージョンは VxFS 2, 4 を読めます.

筆者は Linux 用の VxFS カーネルドライバの開発を計画しています.

筆者の知る限りでは, Rodney Ramdas < rodney@quicknet.nl> が FreeBSD 用の VxFS を開発中です.筆者は彼のプロジェクトの進行状況は 知らないので,詳しい情報が欲しい方は直接彼に聞いてください.

9.34 XFS - 拡張ファイルシステム (IRIX)

XFS(tm) は,デスクトップワークステーションからスーパーコンピュータまで の Silicon Graphics[TM] システムの次世代ファイルシステムです. XFS は完全な 64 ビット機能を持ち,巨大なファイルや 1 テラバイトもの ファイルシステムを容易に扱えます.XFS ファイルシステムには ボリューム管理も統合されており,速度保証 I/O や, 高速で信頼性の高い 復旧を可能にする ジャーナリング機能も組み込ま れています.動作中にバックアップを取れるので,システム管理の手間も大幅 に節約できます.

XFS は非常に高性能なマシン向けに設計されています.300MB 毎秒を超え続け るデータを処理するデモが CHALLENGE システムで行われました.XFS ファイルシステムは CHALLENGE MP アーキテクチャに相応しい性能を発揮でき ます.従来のファイル,ディレクトリ,ファイルシステムはサイズが大きくな るにつれて性能は低下していましたが,XFS ファイルシステムではそのような 損失はありません.例えば,XFS では 1 つのディレクトリに 3200 万個まで のファイルを置くテストが行われています.

XFS はジャーナルファイルシステムです.XFS は i-ノード,ディレクトリ, ディスクへのビットマップに対する変更が,元のエントリが更新される前に記 録されます.更新が行われる前にシステムがクラッシュしたとしても,ログを 使ってその更新をやり直すことができ,最初の意図した通りの更新を行えます.

XFS は空間マネージャを使ってファイルシステムのためのディスク空間の割り 当てと i-ノードの制御を行います.XFS は名前空間マネージャを使って ディレクトリファイルの割り当てを制御します.これらのマネージャは B-ツリーによるインデックス付けを行ってファイルの位置情報を保存し, ファイル情報を取り出すために必要なアクセス時間を大幅に減らしています.

i-ノードは必要に応じて作成されますし,置かれる場所もディスクのパーティ ション上の特定の領域には制限されていません.XFS は i-ノードの場所を その i-ノードが参照しているファイルやディレクトリのそばに置こうとしま す.非常に小さなファイル(シンボリックリンクやいくつかのディレクトリ)は i-ノードの一部として格納されます.この方法によって性能は向上し, ディスク容量も節約できます.大きなディレクトリではディレクトリ内の ファイルのインデックス付けに B-ツリーを使い,ディレクトリの検索や ファイルの追加/削除を高速に行えます.

XFS 関連の役に立つリンク:

XFS の Linux 移植版は SGI Inc. から GNU GPL に従って入手できます:

9.35 Xia FS

このファイルシステムは Linux で古い Minix ファイルシステムを置き換える ために開発されました.このファイルシステムの作者は Franx Xia < qx@math.columbia.edu> です.


次のページ 前のページ 目次へ