Linux 7.1に新NTFSドライバ、NTFS3と併存へ
Linux 7.1のマージウィンドウに、Namjae Jeonが4年かけて開発した新NTFSドライバが投入された。NTFS3は残したまま、もう一つのNTFS実装が併存する形になる。
Linux 7.1のマージウィンドウに、Namjae Jeonが4年かけて開発した新NTFSドライバが投入された。NTFS3は残したまま、もう一つのNTFS実装が併存する形になる。
4年越しのPull Requestが届いた
4月17日、Linuxカーネル開発メーリングリストに1通のPull Requestが流れた。送り主はNamjae Jeon。exFATドライバとKSMBDのメンテナとして知られる開発者だ。宛先はリーナス・トーバルズ(Linus Torvalds)。件名は「[GIT PULL] ntfs updates for 7.1-rc1」。
添付されたコードは 36,331行の追加 と118行の削除。65ファイルにまたがる、事実上新しいファイルシステム実装の提案だ。
2022年にKari Argillanderが ntfs3 の「放置」状態を報告して以来、私はこの4年間、書き込みサポートの完成、iomap採用、buffer head廃止、folio対応、性能改善、継続的なメンテナンス、fsckを含むユーティリティ群の整備に取り組んできた。
PRの冒頭でJeon自身が書いた言葉だ。4年の経緯がここに凝縮されている。
そもそもNTFSドライバは「2つも」なかったはずだった
Linuxカーネルには長年、NTFSのドライバが事実上1.5個しかなかった。
1つは2001年に書かれた古いNTFSドライバ。読み込み専用で、書き込みを試みればデータを壊す可能性があるとされ、実質的に読めるだけの存在だった。もう1つがFUSE経由で動作する ntfs-3g 。読み書きはできるが、ユーザー空間で動く構造上、速度面で明確に劣る。
状況が動いたのは2021年10月。ドイツのParagon Softwareが商用で開発していたNTFS3ドライバをGPLで寄贈し、Linux 5.15にマージされた。書き込み対応、ACL、ジャーナルリプレイと、機能面では大きな前進だった。
ところが半年後、事態は暗転する。
「メンテナンスされていないファイルシステムが2つあっても」
2022年4月、カーネル開発者のKari Argillanderがメーリングリストに警告を投げた。NTFS3がカーネルにマージされて以降、メンテナからの音信が完全に途絶えており、個人メールを送っても返信がない、と。開発者のKonstantin KomarovはParagonのCEOでもあり、通常業務に追われていたと後に明かされる。
トーバルズの返信は、いつもの彼らしい乾いた皮肉だった。
Not that two unmaintained filesystems are much worse than one :-p(メンテナされてないファイルシステムが2つあっても、1つあるよりそんなにひどいわけじゃないけどね)
この時点でLinuxカーネルは、「読めるだけの旧NTFS」と「メンテナ不在のNTFS3」という、実質的に誰も安心して使えない2つのドライバを抱えることになった。
このスレッドで名乗りを上げたのがNamjae Jeonだった。「今、読み取り専用の旧NTFSに書き込みサポートを実装している。数ヶ月で出せる見込みだ」と返信した。
実際には、数ヶ月ではなく4年かかった。
NTFSPLUS、そして「NTFS」への改名
Jeonのプロジェクトは当初「NTFSPLUS」と呼ばれていた。旧読み取り専用NTFSドライバをベースに、iomap・folio・遅延アロケーション・IDMAPPED mount対応といった現代的な要素を積み重ねた実装だ。
設計思想はParagonのNTFS3とは対照的だった。Jeonは「旧NTFSドライバのコードはクリーンで、コメントも豊富で、NTFSの挙動を理解しやすい」と述べている。
2025年末、v3パッチシリーズでプロジェクト名から「PLUS」が外れ、ただの「NTFS」となった。コード全体が旧NTFSドライバへの差分として再構成されたためだ。これにより、レビュアーは「何が新しいか」だけに集中できるようになった。
ベンチマークも公開されている。iozoneテストでは、シングルスレッド書き込みでNTFS3より3〜5%高速、4スレッドでは35〜110%高速。マウント速度は5〜6倍。xfstestsは新NTFSが287本(後に326本に増加)、NTFS3は218本(273本)のテストをパスした。
今回のPRで示された「完成度」
今回のPRに記載された数字は、さらに更新されている。
xfstestsは326本をパス。NTFS3の273本を大きく上回り、ntfs3を通過するテスト全てを新NTFSもパスしている。つまり機能的には完全な上位互換だ。
失敗した38本のうち34本はメタデータジャーナリングが必要なテストで、これは新NTFSがまだフル実装していない機能だ。残る4本も、NTFSのオンディスク形式に「unwritten extent」概念がないこと、cgroup v2のwriteback accounting非対応など、構造的な制約に起因するものが多い。
コードは2ヶ月間 linux-next ブランチでレビューされ、Christoph Hellwigから Acked-by が付いている。Hellwigはストレージ系のカーネルコードで最も厳しいレビュアーの一人として知られる人物で、彼の承認は重い。
それでもNTFS3は消えない
ここが興味深い。
Jeonは、新ドライバをマージしても NTFS3は残す と明言している。PRの本文にはこうある。
今回のPRでは、既存のNTFS3ドライバを使い続けたいユーザーのために、NTFS3をカーネルソースツリーにそのまま残している。
これは政治的にも技術的にも合理的な判断だ。NTFS3には既に数年の運用実績があり、特定のワークロードでは安定している可能性もある。Konstantin Komarovは2022年の沈黙の後、5.19あたりから活動を再開しており、完全な放棄状態ではない。
ただし、ディストリビューションが既定のマウント先をどちらに向けるかは別問題だ。Fedoraが今も ntfs-3g を使い続けているのは、カーネル内蔵のNTFS3を信頼しきれていないからだ。もし新NTFSがマージされれば、各ディストリがマウント先をどう選択するかは、今後1〜2年で大きく動く可能性がある。
トーバルズはマージするのか
Phoronixの報道は、この点を慎重に留保している。トーバルズがLinux 7.1で新ドライバをマージする判断をするかは、まだ見えていない。マージウィンドウは来週末に閉じる、と。
4年の開発期間、2ヶ月のlinux-nextでのレビュー、Hellwigのacked-by、NTFS3を完全に上回るxfstests結果。条件だけ見れば、マージされない理由を探す方が難しい。しかしカーネル開発では「十分に揃っている」ことと「この窓で入る」ことは別の話だ。特に36,000行超のコードが新規追加される場合、トーバルズが次のリリース(7.2)への持ち越しを求める可能性は残る。
仮に7.1に入らなくても、このドライバが最終的にメインラインに到達するのはほぼ確実だろう。問題は「いつ」であって「本当に入るのか」ではなくなっている。
1人の開発者が背負いすぎていないか
Jeonは今、カーネル内蔵の exFATドライバ のメンテナであり、 KSMBD (カーネル内蔵SMB3サーバ)のメンテナでもある。そこに新しいNTFSドライバと、それに付随するユーザー空間ツール群 ntfsprogs-plus が加わる。Microsoft由来のファイルシステム・ネットワークプロトコル周りの主要コンポーネントを、1人でほぼ全て抱え込んでいる格好だ。
Paragon・Komarovの件で浮き彫りになったのは、「1社・1人に依存したコードはいずれ詰む」という教訓だった。新NTFSがマージされれば、Linuxカーネルは再び同じ構造を抱えることになる。Jeonが優秀であることは、この構造問題を解決しない。
これは今日決着する話ではない。ただ、4年越しの成果を祝うだけでなく、「次の4年」をどう設計するかも考えておいたほうがいい。ファイルシステムは、壊れたときに最もダメージが大きいコンポーネントの一つだ。
参照元
他参照
関連記事
- Linux 7.1で「蘇生」したNTFS、リーナスが刻む皮肉
- Linux 7.1、i486削除コードが正式マージ──反対ゼロ
- トーバルズ、Linux 7.1で2件のプルリクエストを差し戻し
- Linux 7.1、37年間続いたi486サポートに幕を下ろす
- Linux 7.0-rc6直前、EXT4に異例の大量バグ修正が投入された
- 宇宙向けFS「FTRFS」10年越しにLinuxへ提案
- Linux 7.0リリース——Rust正式採用、AIが新常態へ
- Linux 7.0、Zen 3の誤検知エラーを土壇場で抑制
- Linuxカーネル、AI生成コードを条件付きで容認へ
- Linuxに「ドリキャスのメモカ」用ファイルシステムが提案