Xen (仮想化ソフトウェア)

出典: フリー百科事典『ウィキペディア(Wikipedia)』
Xen
Xenで NetBSD と3つの Linux ディストリビューションを実行中
開発元 Linux Foundation, The Xen Project
XenSource, Inc.
最新版
4.15[1] / 2021年4月8日 (3年前) (2021-04-08)
リポジトリ ウィキデータを編集
対応OS Linux、その他Unix系*BSDOpenSolarisMicrosoft Windows
種別 ハイパーバイザ
ライセンス GPL
公式サイト http://www.xenproject.org/
テンプレートを表示

Xen(ゼン)は、仮想マシンモニタの一つ。一つのハードウェアを用いて、複数のオペレーティングシステム (OS) を並列実行・制御するサービスを提供する。

概要[編集]

Xenは、ケンブリッジ大学のComputer Laboratoryにおいて最初のバージョンが開発された。2010年より、XenコミュニティはXenをGPLv2ライセンスの下で、フリーソフトウェアとして開発・メンテナンスしている。Xenは、IA-32x64IA-64、そしてARMアーキテクチャにおいて利用が可能である。

Xenでは、仮想マシンの実行単位をドメインと呼ぶ。Xenシステムにおいて、Xenハイパーバイザは最も低い特権層で動作する、中核となるソフトウェアである[2]。Xenハイパーバイザ階層は一つまたは複数のゲストOSをサポートし、物理CPUに対してのスケジューリングを行う。最初のゲストOSは、Xenの専門用語において「ドメイン 0 (dom0)」と呼ぶ。これは標準において、ハイパーバイザが起動する時に自動的に実行され、特別な管理特権と、全ての物理ハードウェアへの直接アクセスを受け持つ。システム管理者は、追加された全てのゲストOSに対して、dom0を通してログインすることができる。このときの管理対象を、Xenの専門用語において「ドメインU」(domU)と呼び、ドメインUはuser domainsを意味する。

ドメイン0となるOSには、一般的にLinuxNetBSDSolarisの修正版が用いられる。なお、従来Linuxにおいてもカーネルの修正が必要であったが、Linux kernel 2.6.23においてXenがmain lineに統合されている[3]。これ以降のバージョンにおいてkernelの修正は必要なくなっている。

ドメインUは、完全仮想化または準仮想化において利用可能なオペレーティングシステムに違いがある。ホストプロセッサIntel VT-xAMD-Vのようなx86仮想化支援機能を有する場合には、未修正のオープンソース、あるいはMicrosoft WindowsのようなプロプライエタリなOSのコピーが完全仮想化された状態で動作する[4]。修正が行われているOSは、拡張サポートのための特殊なドライバを併用して準仮想化されるのがXenの特徴である。

現在では、XenSourceはシトリックス・システムズの仮想化事業部門として統合されており、製品版の開発・販売を担っている。

歴史[編集]

Xenのオリジナルは、XenSource, Incの創立者でありケンブリッジ大学の上級講師であるイアン・プラット英語版が率いる、ケンブリッジ大学の研究プロジェクトである。XenSourceは、フリーソフトウェア・プロジェクトによる開発と、エンタープライズ版を販売し、一般へのXenの最初の公開は2003年に行われた。

シトリックス・システムズは2007年8月15日にXenSourceの買収を発表し、シトリックス・ブランドに合わせてXenSourceの製品名を次の通り変更した:

  • XenExpress : 過去の"XenServer Express Edition" と "XenServer OEM Edition" (組み込み向けのハイパーバイザ)
  • XenServer : 過去の "XenServer Standard Edition"
  • XenEnterprise 過去の "XenServer Enterprise Edition"

後に、製品名はXenServer(フリー)、Essentials for XenServer Enterprise、そしてEssentials for XenServer Platinumに変更されている。

2007年10月25日、シトリックス・システムズはXenSourceの買収を完了し[5]、Xenプロジェクトを http://www.xen.org/ に移動した。これに伴って、11月頃にはシトリックス・システムズ、IBMインテルヒューレット・パッカードノベルレッドハットサン・マイクロシステムズ[6]オラクルをメンバーとして、Xen Project Advisory Board (Xen AB)[7] を公表している。

2010年の春には、製品名が次のように改められている:

  • XenServer(無償版)
  • XenServer Advanced Edition
  • XenServer Enterprise Edition
  • XenServer Platinum Edition

リリース履歴[編集]

バージョン リリース日 備考
1.0 2003-10-02[8][9]
2.0 2004-11-05[10]
3.0 2005-12-05[11][12]
  • Intel VT-x仮想化支援をサポート
  • IA-64アーキテクチャをサポート

加えて、3.0.4のリリースにおいて次の機能が加えられた:

  • AMD SVM仮想化拡張をサポート[13]
  • PowerPCアーキテクチャをサポート[14]
  • 準仮想化ゲストに対してグラフィカルフレームバッファをサポート[15]
3.1 2007-05-18[16]
3.2 2008-01-17[17] ホストシステムにPCIパススルーとACPI S3スタンバイモードをサポート
3.3 2008-08-24[18] PCIパススルーとパワーマネジメントに関する改良
3.4 2009-05-18[19]
4.0 2010-04-07[20]
4.1 2011-03-25[21]

ホストの最大物理メモリが5TBにアップ [22]

4.2 2012-09-17[23]
  • ホストの最大物理CPU数が4095にアップ
  • PVゲストの最大CPU数が512にアップ
4.3 2013-07-09[24]
  • ARMアーキテクチャの実験的サポート
  • Open vSwitchのサポート
4.4 2014-03-10[25]
  • ARMアーキテクチャの正式サポート
4.5 2015-01-15[26]
  • 43種類の新機能の追加
  • コードが全面的に見直され、約78000行が追加、約141000行が削除された
4.6 2015-10-13[27]
4.7 2016-05-23[28]
4.8 2016-12-05[29]
4.9 2017-05-28[30]
4.10 2017-12-12[31]
4.11 2018-07-10[32]
4.12 2019-04-02[33]
4.13 2019-12-18[34]
4.14 2020-07-24[35]
4.15 2021-04-08[36]

利点[編集]

Xenは、他の仮想マシンに共通する以下の利点を提供する。

可用性の向上
動作中の仮想マシンをほぼ瞬時に別ハードウェアに移動すること(マイグレーション)ができるため、ハードウェアのメンテナンスやアップグレードがサービスを停止せずに行える。
柔軟性の向上
仮想マシン間でCPUやメモリなどの資源配分を指定することで、ニーズに応じて適切な資源を無駄なく割り当て活用できる。
運用コストの低下
サーバ群において、他のサーバに環境を構築するのが容易である。
セキュリティの向上
仮想マシン環境は互いに隔離されており、ある仮想マシンで動作する有害なソフトウェアがほかの環境や仮想マシンモニタに悪影響を与えることはできない。

また、Xenは準仮想化手法も採用しており、完全仮想化のそれにくらべより小さいオーバーヘッドを実現している。

Xenの特徴[編集]

仮想化モデル[編集]

準仮想化 (ParaVirtualization)[編集]

Xenは準仮想化と呼ばれる実装手法を標準採用している。 実在のハードウェアを完全にエミュレートする代わりに、仮想マシン環境を実現するのに都合の良い仮想的なハードウェアを再定義する。 この仮想ハードウェアは、実在のハードウェアに似ているが、操作をするためにはハイパーバイザコールを呼び出す必要がある。 Xenはこのハイパーバイザコールの要求に応じて、仮想マシン環境に変更を加える。

この実装手法はエミュレーションのオーバーヘッドを最小限に抑えることができるため、性能面で大きなアドバンテージがあるが、 OSをXen仮想ハードウェア上に移植する必要がある。

完全仮想化 (FullVirtualization)[編集]

Xenはハードウェアの完全仮想化機能も提供している。この機能を利用すると、実ハードウェア用に用意されたOSをそのままXen上で動作させることが可能となる。Xenでは、完全仮想化されたドメインをHVMドメイン (Hardware Virtual Machine) と呼ぶ。

この完全仮想化機能が提供する仮想マシン環境内のOSは、特権モードで動作し完全に物理ハードウェアを支配しているかのように振る舞う。実際には、仮想マシン側のOSが仮想ハードウェアを制御する命令を実行したとき、仮想ハードウェアがそれを検出し、例外のようなものが発生してXenに制御を渡す。制御を渡されたXenは、OSが行おうとした処理を分析し、仮想ハードウェアの動作をエミュレートする。完全仮想化の環境は、準仮想化方式に比べると、エミュレーションのためのコストが大きくなるが、ソフトウェアをユーザの手で変更することが難しいWindowsなどのOSも動作させることができる。

エミュレーションのオーバヘッドを最小限に抑えるために、デバイスドライバのみ準仮想化されたものを用いることも可能である。

デバイスドライバのモデル[編集]

Xen自体はデバイスドライバを持たず、ドメイン0上のOSが物理デバイスの制御を行う。 この仕組みにより、そのOSが動作するハードウェアであればどこでもXenによる仮想マシン環境を利用できる。

動作するOS[編集]

2009年6月現在、LinuxMINIXPlan 9 from Bell LabsNetBSDOpenBSDFreeBSDOpenSolarisNetWareGNU/Hurd/MachOZONEがXenの上で動作する。

動作環境[編集]

多くのLinuxディストリビューションが標準でXenを含んでいる。Fedora Core 4以降、XenoppixSUSE Linux 10.0、Debian EtchRHEL5UbuntuNetBSDなどでサポートされている。またSolaris/OpenSolarisにも移植されている[37]

Xen3.0.2はP6 (Pentium Pro) 以上のCPUで動作する。(一部のモバイル向けCPUはPAE非対応のため動作しない)

完全仮想化機能を用いるためにはインテル製のIntel VT対応CPU、もしくはAMDAMD-V対応CPUが必要となる。他に、サポートしているプラットフォームとしては、IA-64PowerPC上でも稼動する。

Hyper-Vとの関係[編集]

XenSourceとマイクロソフトハイパーバイザ形式の仮想化システムに関し、共同開発を行っており、XenとHyper-Vは共に同一の仮想化コアを用いている。両者はそれぞれ独自の各種用語を用いているが、その主な違いは、実ハードウェアのサポートを受け持つXenで言うところのDOM0に標準搭載されている管理用OSが主にライセンスの関係[38]で、XenではLinuxであり、Hyper-VではWindows Server 2008である程度である。このため、XenとHyper-Vの上で動作する対応OSは同一である[39]。また、両者の仮想ディスクも相互運用が可能となっており、Xenで運用している仮想マシンをHyper-Vに、Hyper-Vで運用している仮想マシンをXenに移行といった事が特に意識せず可能となっている。

脚注[編集]

  1. ^ Xen 4.15 is released”. Xenproject.org. 2021年4月10日閲覧。
  2. ^ Xen 3.0 User Manual
  3. ^ 末安 泰三 (2007年10月10日). “仮想化ソフト「Xen」に対応した、Linuxカーネル2.6.23が公開”. Nikkei Business Publications, Inc.. 2012年2月10日閲覧。
  4. ^ Xen OS Compatibility
  5. ^ Citrix Systems » Citrix Completes Acquisition of XenSource”. Citrix Systems (2007年7月12日). 2012年2月10日閲覧。
  6. ^ 現在ではオラクルに買収されている。
  7. ^ 山幡 為佐久(VA Linux Systems Japan) (2008年11月12日). “Xenの歴史と実装 - the hitchhiker's guide to xen”. 情報処理学会 システムソフトウェアとオペレーティングシステム研究会. 2012年2月10日閲覧。
  8. ^ Xen / [Xen-devel] [ANNOUNCE] Xen high-performance x86 virtualization
  9. ^ The first stable Xen release [LWN.net]
  10. ^ Xen 2.0 released [LWN.net]
  11. ^ Xen 3.0 released [LWN.net]
  12. ^ XenSource: Press Releases
  13. ^ http://lists.xensource.com/archives/cgi-bin/mesg.cgi?a=xen-users&i=A95E2296287EAD4EB592B5DEEFCE0E9D4BA296%40liverpoolst.ad.cl.cam.ac.uk
  14. ^ [Xen-devel] Xen 3.0.3 released! - Xen Source
  15. ^ [Xen-devel] FW: Xen 3.0.4 released! - Xen Source
  16. ^ http://lists.xensource.com/archives/html/xen-announce/2007-05/msg00002.html
  17. ^ http://vmblog.com/archive/2008/01/17/xen-3-2-0-officially-released.aspx
  18. ^ http://www.h-online.com/newsticker/news/item/Xen-3-3-0-hypervisor-ready-for-download-737027.html
  19. ^ http://community.citrix.com/display/ocb/2009/05/18/Xen.org+Announces+Release+of+Xen+3.4+Hypervisor
  20. ^ http://www.h-online.com/open/news/item/Virtualisation-Xen-is-looking-to-catch-up-by-releasing-version-4-974405.html
  21. ^ http://blog.xen.org/index.php/2011/03/25/xen-4-1-releases/
  22. ^ http://wiki.xen.org/wiki/Xen_Release_Features
  23. ^ http://blog.xen.org/index.php/2012/09/17/xen-4-2-0-released/
  24. ^ http://blog.xen.org/index.php/2013/07/09/xen-4-3-0-released/
  25. ^ http://blog.xen.org/index.php/2014/03/10/xen-4-4-released/
  26. ^ https://blog.xenproject.org/2015/01/15/less-is-more-in-the-new-xen-project-4-5-release/
  27. ^ http://wiki.xenproject.org/wiki/Xen_Project_4.6_Release_Notes
  28. ^ https://wiki.xenproject.org/wiki/Xen_Project_4.7_Release_Notes
  29. ^ https://wiki.xenproject.org/wiki/Xen_Project_4.8_Release_Notes
  30. ^ https://wiki.xenproject.org/wiki/Xen_Project_4.9_Release_Notes
  31. ^ https://wiki.xenproject.org/wiki/Xen_Project_4.10_Release_Notes
  32. ^ https://wiki.xenproject.org/wiki/Xen_Project_4.11_Release_Notes
  33. ^ https://wiki.xenproject.org/wiki/Xen_Project_4.12_Release_Notes
  34. ^ https://wiki.xenproject.org/wiki/Xen_Project_4.13_Release_Notes
  35. ^ https://wiki.xenproject.org/wiki/Xen_Project_4.14_Release_Notes
  36. ^ https://wiki.xenproject.org/wiki/Xen_Project_4.15_Release_Notes
  37. ^ Xen at OpenSolaris.org
  38. ^ XenSource買収も事前に相談、MSとシトリックスの関係とは - @IT
  39. ^ マイクロソフトと XenSource が、Windows Server “Longhorn” Virtualization に向けた相互運用テクノロジを共同開発

参考文献[編集]

  • Paul Barham; Boris Dragovic, Keir Fraser, Steven Hand, Tim Harris,. Alex Ho, Rolf Neugebauer, Ian Pratt, Andrew Warfield. (2003). “Xen and the art of virtualization”. Proceedings of the nineteenth ACM symposium on Operating systems principles (New York, NY, USA: ACM Press): 164 - 177. doi:10.1145/945445.945462. 

関連項目[編集]

外部リンク[編集]