12月版 ついに仮想化がカーネル標準機能に!?


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

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

カーネル2.6.19ではファイルシステムが複数追加に

 11月30日、Linus Torvaldsはカーネル2.6.19をリリースしました。今回のリリースで目を引くのは、クラスタファイルシステムのGFS2(Global Filesystem 2)やext4dev(注)などのファイルシステムが複数追加された点です。新しく追加されたファイルシステムを利用する場合は、テスト環境で試すことをお勧めします。

注:11月版 「ext4」が見えてきた! ついに利用方法公開を参照。

 また、VFS(Virtual File System:仮想ファイルシステム)レイヤで暗号化を実装した「eCryptfs」というファイルシステムが新たに追加されました。このeCryptfsは、bind mount(注)に似た使用感で暗号化ファイルシステムを利用できるそうです。

注:7月版 新ファイルシステム「ext4」開発開始かを参照。

 正式リリースまでの間、Linusは2.6.19-rc3、-rc4、-rc5、-rc6を続けてリリースしました。それを受けAdrian Bunkは、毎日のようにRegression一覧のメールを出して修正を促しました。Linusは、2.6.19-rc4をリリースする際のメールに「Regressionメールを出してくれたAdrian Bunkに感謝の気持ちを伝えたい」というコメントを文頭に添えました。品質向上のためにも、このようなやりとりを今後も継続してほしいですね。

参考:カーネルソース内部のドキュメント
eCryptfs
Documentation/ecryptfs.txt
GFS2
Documentation/filesystems/gfs2.txt
ext4dev
Documentation/filesystems/ext4.txt

csum_partialの正しい使い方を考える

 Randy Dunlapは「CONFIG_NET=n and REISERFS_FS=m」の際に発生するコンパイルエラーを報告しました。原因は、ReiserFSが利用しているcsum_partial()という関数にあります。この関数はarch/x86_64/lib/lib.aに入っていますが、それがカーネルイメージにリンクされていないためにエラーが発生するようです。

 Andi Kleenは「現在、Al Viroが修正を行っている」と回答しました。Al Viroは「ReiserFSでcsum_partial()を利用するのが間違っている。別の関数を定義してそれを利用するべきだ」と主張しました。そもそもcsum_partial()とは、データに対してチェックサムを計算するために利用される関数で、csum_fold()とあわせて利用されます。csum_partial()はデータのチェックサム計算を実施し、csum_fold()はその結果の値をアーキテクチャ非依存の形に変換します。ちなみにcsum_partial()は、高速性を重視してアーキテクチャごとに実装されています(そのためアーキテクチャごとに違う値を返す)。ReiserFSでは、csum_partial()の結果を直接ディスクに書き込んでいます。そのため、アーキテクチャが変わるとデータが同じであったとしても、それに対して生成されるチェックサムの値は異なってしまうのです。

 これに関連した話題で、Neil Brownは「MD RAIDでもメタデータバージョン0.90の一部にcsum_partial()を利用しているため、同様の課題を抱えている」と説明し、「少なくともエンディアンが異なるアーキテクチャ間においては互換性がない」と付け加えました。

 複数のアーキテクチャ間でReiserFSファイルシステムやMD RAIDデバイスを流用する場合は少ないかもしれませんが、その際は注意が必要です。

1/2

Index
Linux Kernel Watch 12月版
 ついに仮想化がカーネル標準機能に!?
Page 1
 カーネル2.6.19ではファイルシステムが複数追加に
 csum_partialの正しい使い方を考える
  Page 2
 カーネル2.6.20に仮想化機能がマージされる
 X起動時のパニックメッセージの出力方法とは?
 2.6.18.yと2.6.16.yのリリースに動きが

連載 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 記事ランキング

本日 月間