仮想化道場
コードの全面的なリフレッシュを行ったハイパーバイザー「Xen 4.5」
(2015/3/20 06:00)
2015年1月末に、ハイパーバイザーのXen 4.5がリリースされた。Xen 4.5では、コードを根本的に見直して、Xen自体のプログラムのダイエットとさまざまな機能の追加が行われている。
今回は、そのXen 4.5に関して解説していく。
Linux Foundationに移管されたXen
Xen 4.5の紹介を行う前に、Xenを取り巻く状況を説明していく。
もともとXenは、英国のケンブリッジ大学にいたイアン・プラット氏が行っていた学内の研究プロジェクトがスタートだった。
プラット氏は、Xenのひな形を大学で開発してから、Xen自身をオープンソースにして開発を続け、Xenのフリー版と商用版の開発・提供を行うために、XenSourceを設立した。Xenの最初のバージョンが一般ユーザーに公開されたのは、2003年だった。
2007年には、米Citrix Systems(以下、Citrix)がXenSourceを買収した。Citrixでもフリー版と商用版の提供は続けられていたが、徐々にオープンソース陣営のKVMや、VMware ESXi、Hyper-Vなどに押され始め、Xenの開発自体がスローペースになっていた。
XenSourceがCitrixに買収され、Xenのロードマップや開発方針があいまいになってきたことが原因のようだ。一説には、Citrixという営利企業が運営するオープンソースプロジェクトということで、開発に参加するデベロッパーが少なくなっていったとも言われている。
またXenは、Linuxカーネルにパッチを当ててる必要があったため、当初はLinuxカーネルのメインストリームに採用されなかった。しかしXenのコードを修正することで、2011年にリリースされたLinux 3.0において、やっとメインストリームに採用されることになった。
Citrixは、2013年の春にXenのソースコードやXenに関する権利を、Linuxのカーネル開発やさまざまなプロジェクトをオープンソースプロジェクトとして運営しているLinux Foundationに寄贈した。Linux Foundationとしては、Xenをコラボレーションプロジェクトに位置づけて、開発を進めることになった。
そししてLinux Foundationのもとで再スタートしたXen Projectには、プロジェクトメンバーとして、Amazon Web Services(AWS)、AMD、ARM、Bromium、CA Technologies、Cavium、Cisco、Citrix、Google、Intel、NetApp、Oracle、Rackspace、Verizonなどの企業が参加している。
このように、Xenの開発に多くの企業が参加し、Linux Foundationのもと、透明性のある運営が行われることで、再度Xenの開発が活発化してきた。
またLinux FoundationにXenが移管されたことで、Linuxのカーネル開発と歩調を合わせることができるというメリットもある。Xenにとって、なかなかLinuxのメインストリームに採用されなかったというのは、ある意味トラウマともいえるのかもしれない。
Xen 4.2までは、x86(32ビット)、Itaniumのサポートが行われていたが、Xen 4.3ではリリースから両プロセッサを外し、Xen 4.4では本格的に64ビットハイパーバイザーへと進化している。ARMプロセッサに関しては、32ビット/64ビット(ARM v7とARM v8)がサポートされている。
Linux Foundationに移管後、7月にXen 4.3がリリースされた(Citrixの下ではXen 4.2まで)が、これはCitrixのもとで開発が進められていたオープンソースコードが、そのまま利用されたものだった。本格的にLinux Foundationのもと、Xen Projectでのリリースが行われたのは、2014年3月にリリースされたXen 4.4からといっていいだろう。
Xen 4.4からは、6カ月ごとにリリースを重ねていくというリリースサイクルが発表され、年2回リリースしていくということになった。
ちなみにXen 4.4では、Xen 4.3で実験的サポートが行われていたARMプロセッサを正式サポートに格上げした。さらに、FIFOベースのイベントチャンネルに変更することで、10万以上のイベントチャンネルをサポートできるようになり、これまで最大500ほどだった仮想マシンの上限が大幅に引き上げられた。これにより、MirageOS(Xen Projectで開発が進められている)、OSvといったクラウドOSを動かす上で、Xenをインフラして利用できるようになった。
さらに、libvirtを本格的にサポートすることで、CloudStackやOpenStackなどからXenの操作が容易にできるようになった。