ext4
開発者Mingming Cao, Andreas Dilger, Alex Zhuravlev (Tomas), Dave Kleikamp, セオドア・ツォー, Eric Sandeen, Sam Naghshineh 他
正式名Fourth extended file system
導入2006年10月10日 (Linux 2.6.19)
パーティション識別子0x83 (MBR)
EBD0A0A2-B9E5-4433-
87C0-68B6B72699C7 (GPT)
構造
ディレクトリテーブル, ツリー
領域管理ビットマップ, テーブル
不良ブロックテーブル
限度
最大ファイル サイズ16TiB
最大ボリューム サイズ1EiB
ファイル名の文字NULL('\0')と/以外使用可能
特徴
タイムスタンプ変更, 属性変更, アクセス, 作成, 削除
日付範囲1901年12月14日から2514年4月25日
日付分解能ナノ秒
フォーク可能
属性No-atime, append-only, synchronous-write, no-dump, h-tree (directory), immutable, journal, secure-delete, top (directory), allow-undelete
パーミッションPOSIX
透過的圧縮できない
透過的暗号化可能(Linux4.1から)
重複排除無し
対応OSLinux
テンプレートを表示
ext4(fourth extended file system)は、Linuxのファイルシステムで、ジャーナリングファイルシステムの一つである。ext3の後継のファイルシステムで、拡張機能を使っていない場合に限りext3としてマウントできる。1EiBまでのストレージをサポートし、ファイルの断片化を防ぐextent file writingと呼ばれるシステムが導入される。ファイルのタイムスタンプは、ナノ秒単位で西暦1901年から2514年までの範囲をサポートする(ext3では秒単位で2038年まで)。Linuxカーネル 2.6.19より開発版が利用が可能になり、2.6.28[1]より安定版のファイルシステムとなった。 ext3に対して後方互換性を保ちつつ、64ビットストレージの制限を除き、パフォーマンスを向上させるために開発が始められた[2]。しかしLinuxカーネルの開発者たちは、安定性に対する懸念から、ext3に拡張を加えることに反対した[3]。その代わり、ext3のソースコードから分岐してext4と改名し、現行のext3ユーザーに影響を及ぼすことなく開発を進めることを提案した。この提案は受け入れられ、2006年6月28日、ext3のメンテナであるセオドア・ツォー (Theodore Ts'o) は新しいプロジェクトとしてext4の開発を発表した[4]。 最初の開発スナップショットはLinux 2.6.19に導入された。2008年10月11日には、ext4を安定コードとしたパッチがLinux 2.6.28のソースコードリポジトリに結合された[5]。これは開発段階の終了を意味し、ext4の採用を推奨するものであった。ext4ファイルシステムを含むLinux 2.6.28は、2008年12月25日にリリースされた[6]。
経緯
特徴
大きなボリュームサイズとファイルサイズ
ext4ファイルシステムは、最大1EiBまでのボリュームサイズ[7]と、最大16TiBまでのファイルサイズをサポートする。
エクステント
エクステント
後方互換性
ext4ファイルシステムはext3およびext2に対する後方互換性を持つ。すなわち、ext3およびext2ファイルシステムをext4ファイルシステムとしてマウントすることができる。その場合でも、わずかにパフォーマンスの向上が見られる。なぜなら、ブロック確保アルゴリズムなどの新しい機能はext3やext2でも使用できるからである。ext3ファイルシステムは部分的にext4に対する前方互換性を持つ。すなわち、ext4ファイルシステムをext3パーティションとしてマウントできる(マウントするときは「ext3」をファイルシステムタイプとして指定する)。しかし、もしext4パーティションがエクステント(ext4の重要な新機能である)を使用しているなら、ext3としてマウントすることはできなくなる。
永続的な事前確保
ext4ファイルシステムはファイルのためのディスク空き領域の事前確保を可能にする。ほとんどのファイルシステムにおけるこれまでの方法論では、ファイルが作成されたときに予約されたスペースを0で埋める形で書き込まれる。ext4においてはこの方法で要求されることはもはやない。そのかわり、新しくfallocate()システムコールがLinuxカーネルにファイルシステム用に追加され、ext4やXFSにおいて使われている。これにより互換性が維持されている。ファイルのために確保されたスペースはディスクフルによる書き込み失敗はしないことが保証され、連続していることが期待される。この機能はメディアストリーミングやデータベースで使われる。
遅延確保
ext4ファイルシステムのパフォーマンス向上のテクニックとして、allocate-on-flush