Linuxカーネルコミュニティー(kernel.org)の中心的なメンテナーの1人であるジェームズ・ボトムリー氏が、2012年10月26日に開催される「Enterprise User's Meeting 2012」(The Linux Foundation主催)の講演などのために来日。Linuxカーネルの開発の現状、技術の強化の方向などを聞いた。

(聞き手は森側 真一=日経Linux


カーネルコミュニティーは大規模になったが開発は順調か、課題は何か

ジェームズ・ボトムリー氏
ジェームズ・ボトムリー氏

 カーネル3.7ではいま、約3000人のコントリビューター(開発者)がいる。その周辺の作業も含めると1万~2万人が従事している。

 カーネルの開発は規模を拡大しながら順調に進んでいる。コントリビューターには仕事としてかかわっている人たちも増え、75%程度がそうした人たちになっている。残り25%はホビーとしての参加だ。この割合は、落ち着いてきており、いい均等といえる。

 規模が大きくなって1つの大きな問題は、パッチのレビューやテストといったワークフローのマネジメントだ。自分の担当であるSCSIでは、40社からパッチが送られてくる。量が膨大だが、特にパッチを読む作業は単純にはいかない。

 カーネルのコード量が大きくなり、過去のコードのバグフィックスの作業も多い。改変コードの量は新規開発と比べて少ないのだが、実際の作業量は新規よりも多いのではないか。とはいえ、その作業比率は以前から変わりはないので、まだ発展していけるだろう。

カーネルの強化はいまどの分野に向かっているのか

 プロセッサ「ARM」やクラウド分野などいろいろあるが、結局はコントリビューターの強い分野が進んでいく。

 機能面では、ファイルシステム「Btrfs」、コンテナー、メモリーマネジメント、スワップオーバーネットワーク、といった分野の動きが活発だ。スワップオーバーネットワークとは、ブレードサーバーとストレージをネットワークで接続した環境で、スワッピングを実施するものだ。

個人的に活動を進めている分野はどこか

 コンテナーは、仮想環境を効率良く構築するもので、米Google社が強い興味を持っており、自分が所属するパラレルスとのかかわり合いもあって、強化を進めている。

 コンテナーの構造は、仮想マシン上のゲストOSが1つのカーネルを共有する形になっている。つまり、KVMやXenのように1台の物理マシンに複数の“種類”のゲストOSを搭載できない。1台に複数の同じ種類のゲストOSを利用するわけだが、その分、起動や終了は10倍程度早いし、集約率も3倍程度と、高い効率性を実現できる。

 つまり、データセンターのような環境に適しているため、Google社が強い興味を持っている。既存の「LXC」や「OpenVZ」、Google社が開発しているコンテナーをLinuxで統合しようとしている。現状で作業の8割程度が終了している。

 ただこうしたコンテナー技術は、カーネルの機能に対し横断的にかかわってくるので、作業の進展が難しい。具体的には、リソースを共有化するための「cgroup」、リソースを分離するための「Namespace」のいずれにもかかわる。

 カーネルに入れようとしたがうまく行かないものもあった。チェックポイント/リストア機能で、Linuxのプロセスを停止/再開させるもの。これができれば、コンテナーでライブマイグレーションができたり、再起動なしでカーネルを更新できたりする。今はユーザースペースで動作するプログラムとしてCRIUプロジェクトで開発を進めている。