9月版 IDEハードディスクが「/dev/hda」ではなくなる日


上川純一
日本ヒューレット・パッカード株式会社
コンサルティング・インテグレーション統括本部
2006/9/26

linux-kernelメーリングリスト(以下LKML)かいわいで起きるイベントを毎月お伝えする、Linux Kernel Watch。2006年8月はどのようなことが起きたのか、見てみましょう。

2.6.18の開発進ちょく

 8月はLinusが3週間休暇を取ったため、その間はGreg KHがメンテナンスする体制を敷きました。その間もパッチは取り込まれましたが、あまり積極的な進ちょくはなかったようです。

 2.6.18-rc4は1週間でリリースされましたが、その後-rc5をリリースするまで休暇を挟みました。-rc5はさまざまな変更が入っており、「リリース候補」というよりは定期リリースの意味合いが強いようです。また、イベントもたくさん重なったので、2.6.18はほかのリリースより時間がかかっているようです。

2.4系列のメンテナンスをどうするか

 2.4系列のリリースの在り方については、現在模索中というところでしょうか。以前は「hot-fix」と呼ぶパッチをリリースしていたのですが、最近は-stableツリーに合わせてか、「2.4.33.3」などの名称でリリースをしています。

 2.4系列のカーネルに対してセキュリティホールやバグなどが見つかった場合、Willy Tarreau(カーネル2.4のメンテナー)が修正をツリーにマージすることになります。その修正が2.6カーネルにすでに適用されているか、カーネル2.6が対象とならない修正の場合は特に問題ありません。ただし、カーネル2.6にも適用できるのにまだ適用されていない修正だったりすると、話が複雑になります。その場合、どうするべきか? 「まずカーネル2.6に適用してマージされるかどうかを確認してから、カーネル2.4に適用するべきだ」というのがAndi Kleenの意見です。

 確かに、「最新版カーネルは修正されていないのに古いカーネルでは修正されているというのはまずい」というAndi Kleenのいい分も分かります。しかし、「数千のパッチが存在しており、その状況を全部トラッキングするのは大変だ」とWilly Tarreauは不平をもらしました。

 カーネル2.4の利用者はまだ多くいるはず。いろいろと問題はあるかもしれませんが、メンテナンス自体は続いてほしいものですね。

libata移行でデバイスファイル名変更

 libataはATA用の機構であり、scsiサブシステムを応用しています。いまのところ、パラレルATA(PATA)デバイスに関しては既存のide diskドライバを利用し、シリアルATA(SATA)に関しては新規に実装されたlibataを使ったドライバを利用するという状況が続いていました。

 Alan Coxは、「libataのPATA対応が十分になってきたので、2.6.19に向けて-mmツリーにしかない一部のパッチも本流に入れて、libataのPATAサポートを利用できるようにしよう」と提案しました。また、「libataは現在、ソースツリーのdrivers/scsi以下にあるが、それをdrivers/ataに移動しよう」と付け加えました。ちなみに、ide disk関連はdrivers/ideにあります。

 ide diskドライバのコードは古くから存在しているものです。既存の機能の一部がまだlibataに実装されていない可能性はありますが、今後のメンテナンスを考えると、新しいコードベースに統合していくのが好ましいでしょう。

 libataに移行した場合、ユーザーの視点で見ると、既存のIDEハードディスクドライバではデバイスファイルが「/dev/hda」として見えていたのに対し、libataはSCSIレイヤを利用するので「/dev/sda」などと見えるという違いが生じます。名前だけなら問題ないのですが、プログラムから見ると、利用できるioctlが違ったりします。さらに、利用できるパーティションの数がide diskは64なのにscsiは16と少なくなります。この点は議論になりましたが、長期的にはSCSIのディスクデバイスもIDEのディスクデバイスも統合できるディスクデバイスに移行したい、という話で落ち着いたようです。

 libataに移行する際は、ディスクデバイスが変わってしまうので気を付けましょう。

仮想OS上のリソース制限に待った!

 Kirill Korotaevは、ユーザーリソースをアカウンティングし、利用できる限界を超えたら制限を掛けるというパッチ「User Resource Beancounters(UBC)」を提案しました。これは、各仮想OSセッションそれぞれで、利用できる仮想メモリや各種カーネルのリソース、カーネルの中で利用しているバッファの容量までを計測し、利用できる量に制限を課すというものです。

 ちなみに、Kirillは単一のLinuxカーネルが複数のユーザー空間を仮想化して提供するタイプの仮想化技術の1つ、OpenVZの開発者です。

 Andrew Mortonはこのパッチを見て、「果たしてこの実装がほかのグループで現在作業している用途についても応用可能なものなのか判断しかねる」、また「仮想メモリを管理する部分を見たが、メンテナンスの観点から好ましくなく、マージしにくい」と指摘しました。

 仮想化されたリソースを計測して使用制限を設けることは、システム全体の安定に必要です。しかし、従来計測していなかった部分を計測するようにコードを追加すると、全体としてより複雑になりメンテナンスしにくくなります。まだマージされる段階ではないようですが、今後の実装に期待です。

1/2

Index
Linux Kernel Watch 9月版
 IDEハードディスクが「/dev/hda」ではなくなる日
Page 1
 2.6.18の開発進ちょく
 2.4系列のメンテナンスをどうするか
 libata移行でデバイスファイル名変更
 仮想OS上のリソース制限に待った!
  Page 2
 実ハードでも仮想化環境でも動くカーネル
 -stableの進ちょく

連載 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カーネルの開発体制などについて伺った

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します


Linux & OSS フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Linux & OSS 記事ランキング

本日 月間