タックス3

タックス3
開発者ダニエル・フィリップス、小川博文
フルネームタックス3
紹介された2008年7月23日Linux 2.6.x (2008年7月23日
パーティションID0x83 ( MBR ) スーパーブロックマジック: "tux3" {0x74, 0x75, 0x78, 0x33}
構造
ディレクトリの内容Bツリー
ファイルの割り当てBツリー
制限
最大ボリュームサイズ2^60バイト(1EiB
最大ファイルサイズ2^60バイト(1EiB
最大ファイル2^48
ファイル名の最大長255バイト
ファイル名に使用できる文字NULと'/'を除くすべてのバイト
特徴
記録された日付属性変更(ctime)、変更(mtime)、アクセス時間(atime)、バージョン作成
日付範囲40ビット
日付解決1/256秒
ファイルシステムの権限POSIX
他の
サポートされているオペレーティングシステムリナックス

Tux3は、ダニエル・フィリップス氏によって開発されたオープンソースのバージョン管理ファイルシステムです。彼は、複数の特許出願によりライセンス上の問題に直面していたTux2ファイルシステムの代替として、このファイルシステムを導入しました。[ 1 ]フィリップス氏は以前、Htreeディレクトリインデックスシステムを開発しており、これは後にext3の公式機能となりました。[ 2 ] Tux3の技術的詳細は、2008年7月23日のメールで初めて公開されました。[ 3 ]

デザイン

大まかに言えば、Tux3は従来のUnixスタイルのinode /ファイル/ディレクトリ設計に従っています。Tux3のinodeテーブルは、バージョン管理された属性をリーフに持つBツリーです。ファイルはinode属性であり、リーフにバージョン管理されたエクステントを持つBツリーです。ディレクトリインデックスは、Htreeと同様にディレクトリファイルブロックにマッピングされます。空き領域は、リーフにエクステントを持つBツリーによってマッピングされます。Tux3は、再マウント時に回復できるリカバリロジックを導入することで、従来のジャーナリングを回避しようとしています。 [ 4 ]

Tux3 inode は、属性のリストで構成される可変サイズのオブジェクトです。各属性には、属性が追加、変更、または削除されたバージョンがラベル付けされています。inode を参照する B ツリー インデックスはバージョン管理されません。大きなファイルの B ツリー インデックスも、インデックスのリーフを除いてバージョン管理されません。リーフには、参照先のファイル データが追加または変更されたバージョンがラベル付けされたエクステントのリストが含まれます。このバージョン管理スタイルは、基本的に、Write Anywhere File Layout (WAFL)、ZFSBtrfsで使用されるツリー バージョン管理方法の逆です。これらの方法では、ファイルシステム全体の複数のツリー ルートが作成され、ファイルシステムのバージョン間の差異が表現されます。

Tux3 スタイルのバージョン管理されたエンティティの利点として、ツリー バージョン管理されたファイルシステムではいくつかのインデックス ブロックを割り当てて書き込む必要があるのに対し、inode 属性への単一の変更を表すため、またはファイル データ ブロックの新しいバージョンのインデックスを作成するために、わずか数バイトを追加すれば済むことが挙げられます。

開発の歴史

2008年8月時点では、Tux3はファイルに対する基本的なファイルI/Oしか実行できませんでした。2008年末までに、Tux3はカーネル内で実行できるようになり、ファイルシステムエクササイザーfsx-linuxの繰り返し実行に耐えられるようになりました。これは大きな成果でした。[ 5 ]

2009年2月17日、Linuxは初めてTux3ルートファイルシステムから起動しました。[ 6 ]

2013年1月18日に、最初のfsckサポートが追加されました。[ 7 ]今のところ物理的な参照整合性をチェックするだけですが、開発者はすぐに完全に機能するe2fsck品質のfsckを作成できると確信しています。

2014年5月17日、ダニエル・フィリップスはカーネルメンテナーに対し、コードをレビューしてカーネルに実装するよう嘆願しました[ 8 ]。目標はカーネル内のコードを安定させ、最終的に安定させることです[ 9 ]。

2017 年 10 月 9 日に、Daniel Phillips がメーリング リストで Tux3 アップデート- Shardmapを送信しました。

参照

参考文献