◆Unix File System|詳細|データ復旧をサポートする会社を徹底検証!
| UFS | |
|---|---|
| 開発者 | CSRG |
| 正式名 | UNIX file system |
| 導入 | (4.2BSD) |
| 構造 | |
| ディレクトリ | テーブル |
| 限度 | |
| 最大ファイル サイズ | 273バイト (8 ZiB) |
| 最大ファイル名長 | 255 バイト |
| 最大ボリューム サイズ | 273バイト (8 ZiB) |
| 特徴 | |
| 対応OS | FreeBSD, OpenBSD, NetBSD, DragonFlyBSD, A/UX |
Unix File System(UFS)とは、UNIX系列のOSにおいて使用されるファイルシステムである。
また固有のファイルシステムを指す言葉ではなく、Version 7 Unix のファイルシステムおよびそこから派生した一連のファイルシステムの総称である。 一般にUFSと呼ぶ場合は4.2BSDで実装された Fast File System (FFS) のことを指す場合が多く、他にはFFFS、UFS2、UFS Logging等が存在する。
目次 |
設計
UFSボリュームは以下の部分から構成される。
- パーティションの先頭数ブロックはブートブロックとして予約されている(ファイルシステムとは別に初期化する必要がある)。
- UFSであることを示すマジックナンバーやファイルシステムの構成を示す基本的な値や統計情報やチューニングパラメータを含むスーパーブロック。
- シリンダグループの集合体。各シリンダグループには以下のような構成要素がある。
- スーパーブロックのバックアップコピー
- シリンダグループのヘッダ。そのシリンダグループの統計情報、フリーリストなど、スーパーブロックに似た情報がある。
- inode群。それぞれにファイル属性情報が格納されている。
- データブロック群。
inode は順に番号を振られている。ルートディレクトリの inode の後の何個かの inode は歴史的理由により予約されている。
ディレクトリファイルは、そのディレクトリにあるファイルのファイル名と対応する inode 番号だけを格納している。ファイルについての全てのメタデータは inode にある。
背景
初期のUNIXで使っていたファイルシステムは、単に FS と呼ばれていた。FS にはブートブロック、スーパーブロック、inode群、データブロック群だけが存在していた。初期のUNIXで使っていた小さいディスクではこれで十分であったが、技術の進歩と共にディスク容量が大きくなり、inodeのある部分とデータブロックの間をヘッドが行き来することによる(いわゆる)スラッシングが無視できなくなってきた。BSDではこれを最適化した FFS (Fast File System) を導入した。これは、シリンダグループという概念を発明したもので、ディスクを小さい部分に分け、それぞれにinodeとデータブロックを配置する構成である。
BSD FFS は、データブロックとそれに関連するメタデータを同じシリンダグループに配置することでアクセスを局所化しようとしたものであり、理想的には1つのディレクトリのコンテンツが(データブロックも対応するメタデータも)同じか近いシリンダグループに配置され、ディレクトリのコンテンツがディスク全体に分散配置されることによるフラグメンテーションを低減する。
スーパーブロックには性能に関わるパラメータとして、トラック数、セクタ数、回転速度、ヘッド速度、トラック間のセクタ配置などの情報がある。完全に最適化されたシステムでは、プラッタの回転を待つ間に近接するトラック間でヘッドを移動させ、不連続に配置されているセクタを読むことができる。
ディスク容量が大きくなると、セクタレベルの最適化は効果を発揮できなくなってきた(特に、トラック当たりのセクタ数が一定でない場合)。ディスクが大容量化しファイルが巨大化すると、読み込みが断片化することがさらに大きな問題となってきた。これに対してBSDは当初、ファイルシステムのブロックサイズを1セクタから1Kに増やし(4.0BSD)、FFS ではそれをさらに 8K に増やした。これにはいくつかの効果がある。ファイルのセクタが連続確保される可能性が大きくなる。ファイルのブロックをリストで保持するオーバーヘッドを低減できる。ブロック数を保持するビットフィールドで表現できるファイルサイズ上限が大きくなる。
ブロックサイズが大きくなると、小さいファイルがたくさんある場合は領域を無駄に消費することになる。そこでBSDではブロックレベルのフラグメント化を導入した。ファイルの最後の部分はブロックサイズ未満になるので、それをブロックを分割したサブブロックに格納することで領域を有効活用できるようにする。これをブロックのサブアロケーション、テールマージ、テールパッキングなどとも呼ぶ。
実装
SunOS/Solaris、SVR4、UP-UX、Tru64 UNIX などの商用UNIXではUFSを導入した。その多くは独自の拡張を施したため、別のベンダーのUFSを認識することができない。しかし、元のブロックサイズやデータフィールド幅は保持されていることが多く、ある程度の互換性は保持されている。しかし、ディスクを異機種間で共有する場合、事前に互換性を確認することが重要である。
サン・マイクロシステムズは Solaris 7 でUFSにジャーナリングファイルシステムの機能を追加した UFS Logging を導入した。Solaris UFS には他にも巨大ファイルを扱うための拡張、巨大ディスクを扱うための拡張など様々な拡張がなされている。
カーク・マキュージックは FreeBSD の FFS 層と UFS 層を拡張し、UFS2 を開発した。これは64ビットのブロックポインタを追加し(ボリュームの最大を 8 ゼタバイトに拡大)、ブロックサイズを可変化し、フラグフィールドを拡張し、'birthtime' というタイムスタンプを新たに追加するなどの拡張をしたものである。FreeBSD 5.0 では UFS2 がデフォルトとなった。FreeBSD ではさらに soft updates とUFS1およびUFS2両方でのスナップショット機能を導入している。これらは NetBSD にも移植された。OpenBSD では、2.9 から soft updates をサポートし[1]、4.2 から UFS2 をサポートしている[2]。
4.4BSD と FreeBSD、NetBSD、OpenBSD、DragonFly BSD などのBSD系システムでは、UFS1 と UFS2 の実装は2つの層に分かれている。上位層はディレクトリ構造と inode 構造内のメタデータ(パーミッション、所有者情報など)を扱い、下位層は inode として実装されているデータコンテナを扱う。これは従来からのFFSとLFSというログ構造ファイルシステムで共通部分を共有するための仕組みである。上位層を "UFS" と呼び、下位層を "FFS" または "LFS" と呼ぶ。この場合、下位層にFFSを使っている場合は全体を FFS と呼び、下位層に LFS を使っている場合は全体を LFS と呼ぶことがある。
LinuxでもBSDなどとの互換性のためにUFSを実装しているが、UFSには共通の標準実装があるわけではないので、Linux がサポートしているのは読み込みが中心であり、書き込みは完全サポートしていない。Linux の ext2 ファイルシステムは UFS の影響を受けている(実際、4.4BSDから派生した一部のシステムでは、UFSを上位層とし、ext2 をFFSやLFSなどのように下位層として使えるものもある)。
NeXTStep もBSDから派生しているため、UFS を使っていた。それより派生したアップルの Mac OS X では、HFS+の代替として UFS を使うこともできたが、Mac OS X v10.5 以降では UFS でフォーマットされたボリュームにインストールできなくなった。また、UFS ボリュームにインストールされた10.5より前のバージョンの Mac OS X を10.5以降のバージョンにアップグレードすることもできなくなった。[3]。
脚注
- ^ The OpenBSD 2.9 Release
- ^ The OpenBSD 4.2 Release
- ^ Mac OS X 10.5 Leopard: Installing on a UFS-formatted volume
参考文献
- Marshall Kirk McKusick, William N. Joy, Samuel J. Leffler and Robert S. Fabry (1984年). A Fast File System for UNIX. Computer Systems Research Group, Computer Science Division, Department of Electrical Engineering and Computer Science, University of California, Berkeley, Berkeley, CA 94720.
- Marshall Kirk McKusick, William N. Joy, Samuel J. Leffler and Robert S. Fabry (8月 1984年). “A Fast File System for UNIX”. ACM Transactions on Computer Systems 2 (3): 181–197. doi:10.1145/989.990.
- Marshall Kirk McKusick, Keith Bostic, Michael J. Karels, and John S. Quarterman (1996年). “Local Filesystems”. The Design and Implementation of the 4.4BSD Operating System. Addison-Wesley. ISBN 0-201-54979-4.
- Marshall Kirk McKusick, Keith Bostic, Michael J. Karels, and John S. Quarterman (1996年). “Local Filestores”. The Design and Implementation of the 4.4BSD Operating System. Addison-Wesley. ISBN 0-201-54979-4.
- Marshall Kirk McKusick and Gregory R. Ganger (1999年). “Soft Updates: A Technique for Eliminating Most Synchronous Writes in the Fast Filesystem”. Proceedings of the FREENIX Track: 1999 USENIX Annual Technical Conference. pp. 1–18
- Marshall Kirk McKusick (2002年). “Running "fsck" in the Background”. Proceedings of the BSDCon 2002. pp. 55–64
- The Linux Documentation Project, Filesystems HOWTO: FFS. なお、このサイトでのFFSとUFSの区別の仕方は間違っている。
- Little UFS2 FAQ: What is the difference between UFS and FFS? ここでの FFS と UFS の定義は逆転している。The Design and Implementation of the 4.4BSD Operating System の "Local Filesystems" という章では上層をUFSとし、"Local Filestores" の章では下位層を FFS と称している。
- The Sun Solaris UFS implementation Solaris Internals: Solaris 10 and OpenSolaris Kernel Architecture, Second Edition という本(Richard McDougall, Jim Mauro 著)の一部。ISBN 0-13-148209-2
外部リンク
- Little UFS2 FAQ
- Linux userspace UFS2 tools.
- Filesystems-HOWTO The Linux Documentation Project の一部
- UFS2 Tools: UFSパーティションにWindowsからアクセスするためのオープンソースツール
- Mac OS X 10.5 Leopard: Installing on a UFS-formatted volume
- Large data storage in FreeBSD
|
||||||||||||||||||||||||||||||||||||||||||||
Text is available under Creative Commons Attribution-ShareAlike (CC-BY-SA) and/or GNU Free Documentation License (GFDL).
最終更新 2011年11月28日 (月) 01:05 (日時は個人設定で未設定ならばUTC)。
【Unix File System】変更履歴
関連ワード
- Unix File System|詳細 |データ復旧ならデータ復旧比較.jp|データ復旧の会社を徹底検証!
- Record-oriented filesystem|詳細 |データ復旧ならデータ復旧比較.jp|データ復旧の会社を徹底検証!
- procfs|詳細 |データ復旧ならデータ復旧比較.jp|データ復旧の会社を徹底検証!
- 仮想ファイルシステム|詳細 |データ復旧ならデータ復旧比較.jp|データ復旧の会社を徹底検証!
- UFS2|詳細 |データ復旧ならデータ復旧比較.jp|データ復旧の会社を徹底検証!
- Filesystem in Userspace|詳細 |データ復旧ならデータ復旧比較.jp|データ復旧の会社を徹底検証!
- VERITAS File System|詳細 |データ復旧ならデータ復旧比較.jp|データ復旧の会社を徹底検証!
- 論理ボリュームマネージャ|詳細 |データ復旧ならデータ復旧比較.jp|データ復旧の会社を徹底検証!
- Soft updates|詳細 |データ復旧ならデータ復旧比較.jp|データ復旧の会社を徹底検証!
- Solaris Volume Manager|詳細 |データ復旧ならデータ復旧比較.jp|データ復旧の会社を徹底検証!
Unix File System|詳細:データ復旧の用語集をご覧の皆様へ
パソコンやデジカメなどのデータが消えた!パソコンが急に起動しなくなった!など、急なトラブルであなたの大切なデータが消えてしまったことはございませんか?そんな突然のトラブルからデータ復旧してくれるのが、データ復旧サービスです。データ復旧比較.jpの用語集ではデータ復旧に関する様々なキーワード「例:Unix File System」が検索できます。
ご利用上の注意
- 本用語集に掲載される用語は、百科事典「ウィキペディア日本語版」からプログラムにより自動的に抽出・表示されるため、一部ふさわしくない用語が表示される場合があります。
- 当社は、本用語集を通じて提供される情報に関する、有用性、適合性、完全性、正確性、安全性、合法性、最新性等について、いかなる責任も負わないものとします。
- 当社は、お客様が本用語集をご利用されることによって発生した直接・間接の損害に対して、いかなる責任も負わないものとします。

