【LinuxConレポート】Linus Torvalds氏が語る、次期版Linux 3.0とは?


The Linux Foundation ジャパンディレクタ 福安徳晃氏

 Linuxの開発者が集まる世界的な技術カンファレンス「LinuxCon Japan Tokyo 2011」が6月1日から3日まで開催されている。

 初日にあたる1日には、Linuxの生みの親であるLinus Torvalds氏による基調講演をはじめ、20以上のテクニカルセッションが開かれた。

 開会のあいさつに立ったThe Linux Foundationのジャパンディレクタの福安徳晃氏は、「東日本大震災により一時はキャンセルも考えたが、多くの励ましの言葉や支援をいただいて開催できることになりました」と謝辞を述べた。また、Linux生誕20年の年であることに触れ、「ヘルシンキ大学の寮の部屋からここまで成長した歴史について、すべてを語れるたった1人の人物を招待しました」と、基調講演のTorvalds氏を紹介した。

8年続いたLinux 2.6の次は“3.0”


Linus Torvalds氏(左)とGreg K-H氏(右)

 「20 Years of Linux」と題したTorvalds氏の基調講演は、カーネルメンテナーの1人である“Greg K-H”ことGreg Kroah-Hartman氏とソファに座って話をする形式で行われた。なお、2年前にTorvalds氏がLinuxCon Japan Tokyo 2010で来日したときにも、The Linux FoundationのJim Zemlin氏と同様のスタイルで基調講演をしている。

 まずGreg K-H氏は、最もホットなトピックとして、Linuxカーネルの次バージョンが「3.0」という番号が付けられることについて話を振った。5月にカーネル2.6.39がリリースされた後に、Torvalds氏が「もう2.6はいいんじゃないか」と発言して、2.6.40のかわりに3.0jをリリースすることになったことによるものだ。

 Torvalds氏は、「この旅に出る直前に3.0のrc1版が出たところ」と断りながら、「ようやく2.6が終わって喜んでいる」と笑い、「2.6は8年間続いた。昔は機能ごとにバージョンを上げていたが、2.6からは(2.6の中で)期間ごとにリリースして、それが長い間続いてきた。しかし、大きな数字は違いがわかりづらいので、覚えやすい数字のほうがいい」と語った。さらに「ここ数年は安定性を保つことを考えてきたが、rc1版は混沌(こんとん)としていて、みんな機能を押し込もうとする。これからまだ時間があるので、まだ追加できる」と開発状況を説明した。

 Greg K-H氏は続いて、「カーネル3.0の新機能で興味ぶかいもの」について尋ねた。Torvalds氏はそれに答え「見た目の新機能より地味な改善が好き。今回は、name lookup(名前探索)の変更で40%という前例のない高速化を実現している」と答えた。

 なお、最後の質疑応答のときには、会場から「マスコットキャラクターは3.0で変わるのか」との質問もなされた。これはLinuxカーネル2.0から、マスコットキャラクターがカモノハシからペンギンへ変わったことを受けてのものだ。これに対し、Torvalds氏が「それはいい新機能になるね」と笑いながら、「私はペンギンが好きだけど、君は何のキャラクターがいいと思う?」と聞き返す一幕もあった。

 次にGreg K-H氏が聞いたのは、Linuxの肥大化の話だ。Torvalds氏は「確かに古いマシンに乗らなくなったが、今のモバイルデバイスは昔のPCよりパワーがある」とし、「現代的なハードウェアや利用ケースに沿って成長する必要がある」と答えた。さらに、「cgroupsは、当初想定していたサーバーだけではなく、違う用途でターゲットを見付けた。また、昔はSMPはハイエンドサーバーのものだったが、今はモバイルデバイスでもSMPのCPUを積んでいる」と利用ケースの変化を語った。

 モバイルデバイスについてはほかに、「AppleのiOSとMac OSは分かれているし、Microsoftも(WindowsとWindows Phoneが)分かれている。Linuxは1つのカーネルとして開発していて、それが組み込みで成功している理由の1つだろう」とも主張した。また、なかばLinux 3.0の変更点の話に戻り「rc1で気にいっている点に、ARMが整理統合されたことがある。まだ初期の段階だけど、私は楽観的に考えている」とも語った。

 

Linuxは変わり続ける、メンテナンスモードには入りたくない

 ここでGreg K-H氏が話を変え、20年という長い間プロジェクトを続けてきたことについて尋ねると、Torvalds氏は「私は1つのものに集中するのが好き」としながらも「よくやっていると思う」と答えた。「ではこれから20年は?」と聞き返すと、「そのころにはこっちも年を取ってるから。私も20年前は若かったんだし、若くて優秀な人が現れたら喜んであけ渡す」と笑って答えた。

 さらに「それまでは何をするのか」とGreg K-H氏がたたみかけると、「Linuxの基本は1960年代のUNIXから変わっていないが、大事なのは進化を続けること。メンテナンスモードには入りたくない」とあらためて決意を見せた。

 質疑応答には、Linuxの生みの親のセッションだけあって、多くの参加者が質問を投げかけた。「一番印象に残っている瞬間は」という質問に対しては、「多くの人はイノベーションやビジョンにこだわるが、世界はそのように動いていない。発展は汗と努力によるもの。Linuxも、小さなアイデアにたくさんの人がかかわって、後から振り返ったら大きな変化だった」と答え、会場を感心させた。

 続けてTorvalds氏は「1つあるのは、19年前に、個人のプロジェクトから、直接の知りあいじゃない人たちを巻き込んだとき。OracleがDBをLinuxに移植したときや、IBMがサポートを発表したときもあったが、数百人のプロジェクトになったときが一番印象に印象に残っている」とも語った。

 別の質問で「技術的に一番苦労したこと」を尋ねられると、Torvalds氏は「技術的な課題はいずれは解決できる。深刻なものはない」と前置きして、「ハードウェアメーカーからデバイスドライバを書くための資料を入手できないときと、大きなプロジェクトの運営」と答えた。後者については「何千人もいると、それぞれ考えていることがまとまらない。なので、私がLinuxカーネルML(LKML)で罵詈(ばり)雑言を書くこともよくある」と苦い顔をした。

 「もって回った言い方をして、好きじゃない機能が開発されてしまうより、嫌なものは嫌と言ったほうが健全。時には“このコードはひどい”“死んだほうがいい”とまで言ってしまったり」と苦笑しつつ、「でも自分が間違っていたことがわかったら、そのときは謝る」とフォローした。

 また、LinuxカーネルのライセンスがGPL2であり、GPL3に移行はしないのかという質問もなされた。Torvalds氏は、1段落の短いライセンスで始めた後、GPL2が「改変した人が同じようにできる」という自分の考えにぴったりだったので採用したというエピソードを語り、「個人的には、GPL3はあまり好きではない。今のライセンスは変えるべきではないと思う」と答えた。

Linus Torvalds氏Greg K-H氏

 

SUSEがルーツであるドイツに戻った

 初日の基調講演の後半では、NovellのAlan Clark氏と、IntelのDirk Hohndel氏が登壇した。

Novell社Senior Manager and Strategic Adviser for Industry Initiatives, Alan Clark氏

 Clark氏は、「Charting the Next Decade of Linux」と題して、現在のLinuxの好調と、自社のSUSE Linuxの状況について語った。

 同氏は、企業などがLinuxを採用する用途として、ミッションクリティカルな用途、スーパーコンピュータなどスケールが必要な用途、ソフトウェアアプライアンスなどの専用カスタマイズが必要な用途を、それぞれ企業の例をまじえて紹介した。そのうえで、これからも勝ち続けるには「Performance」「Innovation」「Flexibility」の3つのポイントが重要だと述べた。

 後半では、AttachmateがNovellの買収を4月に完了したことを受け、SUSE Linuxの状況について説明した。これについてClark氏は、「SUSEがルーツであるドイツに戻った。これはポジティブなこと」と語った。

 今後重視するものとしては、「クラウド」「開発者のエンパワーメント」「パートナーとのエコシステム」の3つを挙げた。クラウドとしては、Amazon EC2での採用実績や、カスタムOSイメージをオンラインで作れるツールSUSE Studioなどを紹介した。開発者のエンパワーメントとしては、SUSE Studioのほか、カスタムOSイメージを共有するSUSE Gallery、ビルドサービスOpen Build Serviceなどを紹介した。エコシステムとしては、SAPとの連携や、各ハードウェアベンダーのLinux認定、各種仮想化ソフトウェアのベンダーとの連携などを紹介した。

 Clark氏は最後に、「勝利を宣言する段階ではないが、正しい方向に向かっている」と、Linuxと自社を重ねて語り、話を終えた。

企業などがLinuxを採用する3つの用途SUSEによる開発者のエンパワーメント
Intel社Linux and Open Source Technologist、Dirk Hohndel氏

 IntelのDirk Hohndel氏は、タブレット端末を手に、プレゼンテーションのスライドを使わず話だけで「Yocto」について解説した。Yoctoは、組み込みLinuxを開発するためのツールを提供する、The Linux Foundationのプロジェクト。Yoctoは10の-24乗を表す単位で、小さいシステムをイメージして付けたという。

 組み込みシステムはLinuxが強い分野の1つだ。しかしHohndel氏は、そうしたシステムの開発では1回限りのプロジェクトが多く、次の開発ではまた同じことを繰り返すということがよくあると指摘する。さらに、「Steve Jobsは“すぐれた製品を作るにはすべてをコントロールしなくてはならない”と言うが、それは間違いだと思う。すぐれた製品を作るにはコラボレーションが必要だ」と主張して、開発の共通化のためにYoctoプロジェクトが重要だと語った。

 Yoctoは2010年の秋に発表されて、バージョン1.0が4月にリリースされた。以後、6か月のリリースサイクルとなる。利用するソフトウェアはできるだけ既存のオープンソースソフトウェアを使い、ないものだけを新規開発するという。Hohndel氏は参加企業として、Intel、TI、Wind Riverなど多くの企業を読み上げてみせた。

 Yoctoプロジェクトのアドバイザリーグループでは、現在、バージョン1.1の機能について検討しているという。Hohndel氏は、パートナーの意見をできるだけ反映したいと述べ、そのために直接やオンラインなどさまざまなところで対話してよりよいプロジェクトにしたいと語った。

 質疑応答では、ほかの組み込みLinux関連のプロジェクトであるAndroidやMeeGo、Linaroなどとの関係について、次々と質問がなされた。YoctoプロジェクトはLinaroプロジェクトとは親密な関係にあり、今後も緊密に改良を加えていくという。

 

KVMの価値は“仮想化の機能にフォーカスできる”こと

 午後には、5つの部屋に分かれて個別のテクニカルセッションが開かれた。そのうちの1室では、午後いっぱいを使って仮想化技術に関するミニサミット「Virtualization Mini-Summit」が開催され、Red HatのJes Sorensen氏とDaniel Veillard氏を中心に、仮想化技術の実装や、仮想化技術を利用するVPS/IaaS事業者との議論がなされた。

 「The KVM Weather Report」と題したセッションで、Sorensen氏は、Linuxの仮想化技術「KVM」について、概要や技術動向などを解説した。

 Sorensen氏は、KVMは現在では実用段階にあり、CPU処理で実CPUと比べて1%のオーバーヘッドだけで動くというデータを示した。そして、「Linuxに組み込まれているためにOSの機能を再発明する必要がなく、仮想化の機能にフォーカスできる」ことをKVMの利点と述べた。

 続いて、カーネルのKVMとユーザーランドのQEMUからなるKVMのアーキテクチャを説明した後、これまでのKVMの改善点として「RAS(信頼性、可用性、保守性)」「マルチテナント環境でのセキュリティのための分離」「リソース管理」「パフォーマンス改善」「SPECvirt」を挙げた。そして、RASについての例としては、ゲストの時刻間隔の補正や、仮想ハードウェアへのインターフェイスの安定化、モニタリングプロトコルQMP、大容量メモリのゲストのライブマイグレーションなどが紹介された。また、分離への取り組みとしては、SELinuxを使ったsVirtなどが紹介された。リソース管理については、Linuxでプロセスのグループごとにリソース割り当てを管理するcgroups機能を使った管理が紹介された。

 パフォーマンスについては、CPU、ブロックデバイス、ネットワーク、メモリのそれぞれについて解説された。CPUについては、64仮想CPU対応やゲストのスピンロック問題の解決、カーネルからの通知の利用、X2APIC対応などが紹介された。ブロックI/Oについては、AIO(非同期I/O)やpread/pwriteへの対応、virtioドライバなどが紹介された。ネットワークについては、vhost_net方式のI/Oによる高速化や、ネットワークデバイス側の仮想化支援機構SR-IOVなどが紹介された。メモリについては、Transparent Hugepageによる効率化などが紹介された。

 4つ目のSPECvirtは、仮想化技術のベンチマークで、IBMやHPなども採用しているという。実際にRHEL 6やRHEL 5、VMware ESXなどを条件を変えてSPECvirtで比較したデータが紹介された。

 最後にSorensen氏は、KVMのこれからとして、KVMおよびQEMUの開発アクティビティのグラフを示した後、今後の計画を挙げた。計画としては、NUMA対応やゼロコピーネットワーク、virtio-netのマルチキュー、デバッグやプロファイリングの機能、cgroupsの統合、ゲストOSのエージェント、QCOW2ディスクイメージの性能改善、USB 2.0サポート、PMU(Performance Monitoring Unit)などが語られた。

 質疑応答では、PMUの実装やリモートアクセス技術のSPICEなどについて議論がなされた。

Red Hat社 Jes Sorensen氏ブロックデバイスの性能改善
ネットワークでのvhost_netの効果LinuxカーネルのバージョンごとのKVMのコミット数
QEMUの月ごとのコミット数KVMの今後の計画

 

libvirtの意義は?

 「libvirt presentation and perspectives」と題したセッションで、Red HatのDaniel Vellard氏は、仮想マシンを操作するための共通APIを提供するlibvirtについて解説した。なお、同氏はXMLのパーサーのライブラリlibxml2のメンテナでもある。

 Vellard氏はまず、XenやKVM、LXC、VMwareなど仮想化技術ごとに管理ツールを対応させるのは、作成もメンテナンスも二重三重に手間がかかることから、中間レイヤで吸収して同じように扱えるようにすることを、libvirtの意義として語った。2005年にプロジェクトを開始し、現在は0.9.2の作業中。日本人を含む20人のコミッターが参加して、ほとんどのハイパーバイザーに対応しているという。libvirtの構造としては、ハイパーバイザと同じノードでlibvirtのデーモンが動作し、アプリケーションにリンクされたlibvirtライブラリからのリモートアクセスにより操作を受け付け、実際にハイパーバイザを操作するという。

 続いて、現在のAPIセットが紹介された。ゲストの状態を操作するもの、リソースを制御するもの、デバイスの着脱などを操作するもの、仮想ストレージを操作するもの、仮想ネットワークを操作するものなどがあるという。また、ゲストの状態が変化したときにlibvirtデーモンからアプリケーションに通知するAPIもあると説明された。

 現在開発中の機能としては、APIのトランザクション、仮想スイッチ対応、libxenlightとLXCへの対応の改善、QEMUを直接操作するAPIなどが紹介された。今後の予定としては、細かいアクセス制御、画面関連のAPI、ロックマネージャの統合、ライブスナップショット機能、仮想ストレージのプロビジョニングの改善、仮想ディスクのマイグレーションなどが挙げられた。

 libvirtを利用しているアプリケーションとしては、GUIのvirt-managerとCUIのvirsh、仮想ディスクを操作するlibguestfsが紹介された。OS側の機能としては、cgroupsやiptablesなどにも対応していると説明された。

 最後に、将来の計画としては、MatahariのようなエージェントによりゲストOSをより深く制御する機能や、REST形式のWeb API、ポリシーなどを扱う高レベルAPI、Red Hatも推進するクラウドAPIであるDeltacloud APIとの接続などが語られた。

Red Hat社 Daniel Vellard氏libvirtは、管理アプリケーションからハイパーバイザを共通で扱えるようにする
現在の開発状況libvirtの構造

 「KVM Live snapshot support」と題するセッションでは、Jes Sorensen氏が再び登場。開発段階の、KVM(QEMU)のライブスナップショット機能を紹介した。

 まず、ディスクのライブスナップショット全般について説明。ライブスナップショットを正常に取るにはゲストOS側でアプリケーションのデータのフラッシュやファイルシステム静止点を取る機能が必要になること、スナップショットの管理機能も必要なことを示し、WindowsのVSSやLinuxのbtrfsの例を挙げて、libvirtなどへの期待を語った。

 続いて、QEMUのライブスナップショット機能を解説した。QCOW2形式のディスクイメージのスナップショット機能をベースに、仮想マシンを一時停止させてスナップショットを取る流れとなるという。現在、snapshot_blkdevコマンドが作られているほか、QMPプロトコルでのコマンドについて議論しているという。また、ファイルシステムの静止点を取るための仮想マシンのエージェントの機能(fsfreeze対応)などにも言及した。

 最後に、今後の予定として、非同期に並行してスナップショットを取る機能や、仮想マシンのエージェントのAPI、libvirtでのサポートなどを語った。

KVM(QEMU)のライブスナップショット機能

 

クラウド事業者がLinuxを議論

 初日の「Virtualization Mini-Summit」の最後には、「End user panel」と題し、仮想化技術を利用する側であるVPS/IaaS事業者として、さくらインターネット(さくらのVPS)、富士通(オンデマンド仮想システムサービス)、ソフトバンクテレコム(ホワイトクラウド HaaS)の3社が登壇。Sorensen氏とVeillard氏のほか、会場のカーネル技術者との議論がなされた。

 仮想化技術については、さくらのVPSではKVMを、富士通オンデマンド仮想システムサービスではXenを、ホワイトクラウド HaaSではKVMとVMwareを使っている。選択理由については、さくらインターネットはFreeBSDを動かす必要があったこと、富士通は2年半前に開発をスタートしたため当時KVMは未熟成だったことなどを挙げた。

 libvirtを使っているかどうかという質問に対しては、さくらインターネットとソフトバンクテレコムでは自社製管理ツールやユーザー用コントロールパネルのバックで利用していると回答。いっぽう富士通は開発時期から使っていないと回答した。ライブマイグレーションの利用については、富士通が「顧客のサーバーは止められないが、ハードウェアメンテナンスも必要があるため、ライブマイグレーションは必須」と答えた。

 そのほか、リソース割り当ての保証、KSM(Kernel Samepage Merging)などの新しい機能への姿勢、課金体系とlibvirtを含む管理ツールでのサポート、EucalyptusやCloudStackなどのクラウドプラットフォーム、Cisco Nexus 1000VやOpen vSwitchなどの仮想スイッチなど、さまざまな論点について質問や議論がなされた。また、実運用での経験としてRHELのlibvirtdがハングアップする症例が報告され、詳しい調査についての話がなされる一幕もあった。

左から、さくらインターネット株式会社 鷲北賢氏、富士通株式会社 吉田浩氏、ソフトバンクテレコム株式会社 小松隆行氏回答するSorensen氏とVeillard氏

 なお、Virtualization Mini-Summitは、2日目である6月2日にも開催される。

関連情報
(高橋 正和)
2011/6/2 09:58