7月版 新ファイルシステム「ext4」開発開始か
上川純一
日本ヒューレット・パッカード株式会社
コンサルティング・インテグレーション統括本部
2006/7/25
ext4ファイルシステムへの道
ext3で扱えるディスク/ファイルのサイズやファイル数を拡張する一連のパッチがリリースされました。
6月にはMingming Caoが「extents and 48bit ext3」というタイトルのメールで、ext3ファイルシステムをextentベースに変更し、さらに48bitにするパッチを投稿しました。8Tbytes(ブロックサイズ4kbytesの場合)の壁を超えるため、extentのサイズを48bitで管理するというものです。ext3ファイルシステムを-o extentsオプション付きでマウントすると、ディスク上のextentのフォーマットが48bitに変更されるそうです。
ただ、いったんこの形式でマウントしてしまうと、その後は対応していないカーネルではマウントできなくなります。この点が議論になり、Jeff Garzikは「ディスク上のフォーマットが不可逆的に変わってしまうのであれば、いっそのこと『ext4』という名前にしよう」という意見を出しました。議論の結果、ext3を大幅に変更することについては異論が多く、ext4を作成する方向になったようです。
しかし、まだ課題は残っています。ext3のソースコードをそのままコピー(cp -r ext3 ext4)してext4を作成したとしても、それ以降はext3のメンテナンスがやりにくくなることが問題となりました。Matthew Wilcoxは、「ext2とext3の差分を調べたが、ext3でしか修正されていない問題がいくつかある」と指摘しました。ext4が増えるとさらに複雑になることが予想されるので、今後のメンテナンスを考えると重要な問題となるでしょう。
Linus Torvaldsはこの議論を見て、「ext3で利用できるディスクのサイズを大きくすることも必要かもしれないが、ほかにも重要な問題もある」ことを指摘しました。「現状、ext3がiノード管理のために確保しているメモリ領域は大き過ぎる。これは問題だろう。次のコマンドを実行して、その結果を見てみろ」というのです。
# cat /proc/slabinfo | grep ext3 |
この問題に対しては、Theodore Tsoがすぐに「Inode diet」というパッチを出して対応しました。
ext4がどうなっていくのかまだ明確には見えてきていませんが、しばらくext3関連の動きから目が離せそうにありません。
関連リンク: | |
NECソフトウェア東北株式会社 佐藤さんの、ext3の各種制限への対応について、いままでの経緯について説明したLC2006での発表論文 http://lc.linux.or.jp/paper/lc2006/CP-09.pdf |
|
発表資料 http://lc.linux.or.jp/lc2006/slide/CP-09s.pdf |
4KSTACKSの場合割り込みがカウントされないバグ
Danial Thomは「Measuring tools - top and interrupts」というメールで、「ハードウェア割り込みが多数発生していてもsys cpuが増えないのはおかしい」と指摘しました。ネットワーク負荷を掛けていてもCPU負荷が高くないのは変だろう、ということです。「その程度のネットワーク負荷は大したことがないからCPUに負荷は掛からないのだ」という見当違いのメールが多数流れた後、実は問題があったことが分かりました。
最近のカーネルは、4KSTACKS(2006年1月版)を利用しています。Arjan van de Venの解説によると、4KSTACKSを利用していると、ハードウェア割り込みとソフトウェア割り込みとユーザー割り込みはそれぞれ独自にスタック領域を持っています。「softirqが実行中か」というフラグはスタック上にあり、割り込み時間の計上はこのフラグを参照して行われています。そして、一部の割り込みの経路ではこのフラグが更新されておらず、今回の問題が発現したというわけです。
たまには負荷を計測するツールがちゃんと動いているのか、前提条件をまず確認しておく必要がありそうですね。
-stableの進ちょく
今回も相変わらずSCTP関連の修正が多いようです。また、2.6.16と2.6.17系列が並行してメンテナンスされている点が特徴的です。2.6.16がいつまでメンテナンスされるのか、気になるところです。
- 2.6.16.20(6月5日)
・sbp2のiPod用のワークアラウンド
・libataのレジュームの修正
など、12パッチ - 2.6.16.21(6月20日)
・SCTPの無限ループの修正(CVE-2006-3085)
・run_posix_cpu_timersから意味のないBUG_ONを削除(CVE-2006-2445)
・PowerPCの32bitカーネルのMCAの問題(CVE-2006-2448)
など、4パッチ - 2.6.16.22(6月22日)
・tmpfsの[acm]time時間の扱いの修正
・MIPSでのNTFSの修正など、http://bugzilla.kernel.org/でトラッキングされている問題の修正
など、12パッチ - 2.6.16.23(6月30日)
・SCTPの問題修正(CVE-2006-2934)
・PARPORT_SERIALがSERIAL_8250_PCIに依存していたのを修正 - 2.6.17.1(6月20日)
・SCTPの無限ループの修正(CVE-2006-3085) - 2.6.17.2(6月29日)
・ohci1394のsuspend/resume
・bcm43xx:Machine Checkの対策
・SCTPの各種修正
など、23パッチ - 2.6.17.3(6月30日)
・SCTPの問題修正(CVE-2006-2934)
2/2
|
|
|
||||
|
連載 Linux Kernel Watch |
Linux Squareフォーラム Linuxカーネル関連記事 |
連載:Linux Kernel Watch(連載中) Linuxカーネル開発の現場ではさまざまな提案や議論が交わされています。その中からいくつかのトピックをピックアップしてお伝えします |
|
連載:Linuxファイルシステム技術解説 ファイルシステムにはそれぞれ特性がある。本連載では、基礎技術から各ファイルシステムの特徴、パフォーマンスを検証する |
|
特集:全貌を現したLinuxカーネル2.6[第1章] エンタープライズ向けに刷新されたカーネル・コア ついに全貌が明らかになったカーネル2.6。6月に正式リリースされる予定の次期安定版カーネルの改良点や新機能を詳しく解説する |
|
特集:/procによるLinuxチューニング[前編] /procで理解するOSの状態 Linuxの状態確認や挙動の変更で重要なのが/procファイルシステムである。/procの概念や/procを利用したOSの状態確認方法を解説する |
|
特集:仮想OS「User
Mode Linux」活用法 Linux上で仮想的なLinuxを動かすUMLの仕組みからインストール/管理方法やIPv6などに対応させるカーネル構築までを徹底解説 |
|
Linuxのカーネルメンテナは柔軟なシステム カーネルメンテナが語るコミュニティとIA-64 Linux IA-64 LinuxのカーネルメンテナであるBjorn Helgaas氏。同氏にLinuxカーネルの開発体制などについて伺った |
|
|
- 【 pidof 】コマンド――コマンド名からプロセスIDを探す (2017/7/27)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、コマンド名からプロセスIDを探す「pidof」コマンドです。 - Linuxの「ジョブコントロール」をマスターしよう (2017/7/21)
今回は、コマンドライン環境でのジョブコントロールを試してみましょう。X環境を持たないサーバ管理やリモート接続時に役立つ操作です - 【 pidstat 】コマンド――プロセスのリソース使用量を表示する (2017/7/21)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、プロセスごとのCPUの使用率やI/Oデバイスの使用状況を表示する「pidstat」コマンドです。 - 【 iostat 】コマンド――I/Oデバイスの使用状況を表示する (2017/7/20)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、I/Oデバイスの使用状況を表示する「iostat」コマンドです。
|
|