4月版 乱立する仮想化技術を統合しよう


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

仮想化技術統合の兆し?

 「Paravirtualization用のパッチをLinuxカーネルにマージしてほしい」という動きが最近盛んです。

 Chris Wrightは、LinuxカーネルがXen Hypervisor上で動くパッチを提案しました。Linuxカーネルが直接ハードウェアをたたくのではなく、Hypervisor callを実施してXen上で動くようにするものです。一方、Zachary Amsdenは、VMI(Virtual Machine Introspection)インターフェイスを利用したVMware用Linuxを提案しました。ただし、XenのParavirtualizationと実装方法が類似しているため、両方のインターフェイスをカーネルにマージするのは好ましくありません。将来的には、ある時点でどちらかが選択される必要があるでしょう。XenとVMwareのどちらの提案がメインラインに先に取り込まれるのか、目が離せません。

 別のレイヤでは、Linux VServerやOpenVZなど、単一カーネルが複数のユーザー空間を仮想化するタイプのシステムが乱立している現状を受けて、Kirill Korotaevが技術の統合を目的とした議論を提案しました。これは、同意できるところから共通コードを実装しようという話になっているようです。このアプローチは、Paravirtualizationに比べてオーバーヘッドが少ないことが利点です。まだまだメインラインにマージできるような成果物は出ていないようですが、活発な開発が続くとよいですね。

ext2にext3の機能をバックポート

 Linuxで標準的に利用されているファイルシステムは、おそらくext3でしょう。ext3ファイルシステムは、その以前に事実上の標準として採用されていたext2にジャーナル機能などを追加したものです。ジャーナリングファイルシステムであるため、クラッシュした後の起動時にfsckが高速に終了しますが、その代償としてジャーナルを記録するためのオーバーヘッドがあります。このオーバーヘッドを嫌って、ext2を使うという選択も十分あり得ることです。

 Valerie Hensonは、ext2ファイルシステムがマウントされている状態でシステムがクラッシュしても、その瞬間にファイルシステムが変更中でなかった場合はfsckを省略できるパッチを提案しました。そのパッチに呼応して、ext3にあってext2には実装されていない機能についての話題が展開しました。

 ext2を利用している人はまだまだいるようなので、今後もメンテナンスが続くとよいですね。

-stableリリース

 最後に、3月の-stableリリースを見てみましょう。2.6.15.5は2月10日以来のリリースで、パッチが累積していたようです。

  • 2.6.15.5(3月1日)
    ・NFSのDoSの修正(CVE-2006-0555)
    ・XFSのftruncateによるデータ漏えい(CVE-2006-0554)
    ・em64tでのローカルDoS脆弱性(CVE-2006-0741)
    ・ext2ファイルシステムがsyncオプションでマウントされている場合のデッドロックの修正
    など、38パッチ
  • 2.6.15.6(3月5日)
    ・コンパイルエラーの修正
    ・setsockopt(TCP_DEFER_ACCEPT)の修正
    ・die_if_kernelが終了しない場合があることの修正(CVE-2006-0742)
    など、4パッチ
  • 2.6.15.7(3月28日)
    ・SO_BINDTODEVICEに渡されるデバイス名がNULLで終了しいることを確認する修正
    ・cramfsが正常にマウントできなかった問題の修正
    など、8パッチ
  • 2.6.16.1(3月28日)
    ・ccissのバグの修正
    ・straceがビルドできるようにrtc.hを修正
    ・SO_BINDTODEVICEに渡されるデバイス名がNULLで終了しいることを確認する修正
    ・RSTを送信する際にtcp_socketのinet->idを利用しないようにする(CVE-2006-1242)
    ・sata_mvの修正
    など、21パッチ

 また、カーネル2.6.15.5から、gitのツリーがgregkhおよびchriswディレクトリからstableディレクトリに移動しました。これまではリリースした人がGreg K-HかChris Wrightかによって最新版を取得できるgitリポジトリのパスが変わっていたのですが、今後はstableディレクトリに共通化されるでしょう。

 git経由で-stableリリースを利用するためのコマンドラインは、

# cg-clone http://www.kernel.org/pub/scm/linux/kernel/git/stable/linux-2.6.16.y.git

です。これでlinux-2.6.16.yというディレクトリができるので、そのディレクトリで、

# cg-update

コマンドを実行すれば最新の-stableリリースのソースにアップデートできます。一度お試しを。

関連リンク:
安定版カーネル
http://www.kernel.org/pub/linux/kernel/v2.6/
-stableツリーのgitリポジトリ(Web表示)
http://www.kernel.org/git/?p=linux/kernel/git/stable/linux-2.6.16.y.git

2/2

Index
Linux Kernel Watch 4月版
 乱立する仮想化技術を統合しよう
  Page 1
 カーネル2.6.16リリース
 spliceシステムコール導入でコピーが速くなる
 メモリバリアのドキュメント完成
  Page 2
 仮想化技術統合の兆し?
 ext2にext3の機能をバックポート
 -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 記事ランキング

本日 月間