Ottawa Linux Symposium2日目リポート(2/3 ページ)

» 2005年07月27日 16時44分 公開
[David-'cdlu'-Graham,japan.linux.com]

ext3ファイルシステム

 昼食後に出席した最初のセッションは、「最新情報:ext3ファイルシステムの現状」だった。プレゼンターはミンミン・カオ(Mingming Cao)氏とアレキサンダー・ディルガー(Alexander Dilger)氏の2人。

 まず、カオ氏がLinux/extended 3ジャーナリングファイルシステムについて語った。まだ若いファイルシステムだが、しだいに普及しつつある。ext3ファイルシステムに対しては、現在、高速化とスケーラビリティの向上を目指す作業が行われている。

 そして2.6カーネルでext3に追加されたいくつかの新機能が紹介された。たとえば、オンラインリサイズ(ドライブを取り外さずにパーティションサイズを変更する機能)や拡張属性がある。

 ファイルシステムの断片化という問題に対しては、ブロックプリアロケーションという対処方法がCaoから紹介された。この方法では、各ファイルの最終的な大きさが予測され、それに見合うスペースが事前に割り振られる。これで、ディスク上のファイルの断片化が防げる。

 エクステントとその関連諸作業についても、かなりの時間が費やされた。エクステントを使えば、十分な情報が得られるまでファイルアロケーションを遅らせることができ、結果的にファイルの連続性を高められる。一時ファイルにはとくに有用な方法である。

 ext3チームはext3ファイルシステムの改良を望んでいるが、カオ氏によると、そのためにはファイルシステムに幾つかのフォーマット変更が必要になるようだ。ファイルシステムというものの性格から、いずれそうした変更を取り入れていくとしても、変更のスピードはゆっくりとしたものにならざるをえない。

 現在進行中の作業のなかには、ファイルのアンリンク/トランケートにかかる時間の削減がある。カオ氏が指摘するとおり、間接マッピングされた大きなファイルのトランケートは同期的な作業であり、時間がかかる。

 ext3でのタイムスタンプは、最近まで毎秒約1回という頻度で更新されていて、それ以上の高精度タイムスタンプを格納する方法がなかった。カーネルは、拡張iノードにはナノ秒単位のタイムスタンプを格納できるが、通常のiノードには秒単位のタイムスタンプしか格納できない。この問題の解決策としては、ディレクトリ操作の並列化と、個々のディレクトリにおける並行的ファイル操作の直列化が提案されている。

 将来的には、最大64テラバイトというパーティションが、メインラインカーネルディストリビューションでサポートされるようになる。ext3にも大幅な改善が見込めるだろう。

 カオ氏のプレゼンテーションは、ext2プロジェクトWebサイトにアップロードされる予定である。プレゼンテーション後にいくつかの質問があり、ディルガー氏がこれに答えた。たとえば、ext2とext3は実質的にまったく同じファイルシステムだそうだ。したがって、Linuxカーネル1.2には、ext3ファイルシステムをext2としてマウントできる。もちろん、ジャーナリング機能は使用できないが、ファイルサイズとパーティションサイズが通常のext2パラメータを超えない限りマウントに支障はない。

 参加者から、12ビット→16ビット→32ビット→64ビットというファイルシステムの変遷を見てきた目には、なぜ1024ビットファイルシステムに直行しないのか不思議に映る、という声も出た。そんな巨大なファイルシステムはfsckだけで何週間もかかり、管理不能だ、というのがディルガー氏の答えである。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ