Xen(発音は/ ˈzɛn /)は、複数のコンピュータオペレーティングシステムを同じコンピュータハードウェア上で同時に実行できるようにするサービスを提供する、無料のオープンソースのタイプ1ハイパーバイザです。元々はケンブリッジ大学コンピュータ研究所によって開発され、現在はLinux FoundationがIntel 、 Citrix 、 Arm Ltd、Huawei、AWS、Alibaba Cloud、AMD、Bitdefender、EPAM Systemsの支援を受けて開発を進めています。
Xen Project コミュニティは、GNU General Public License (GPL) バージョン 2の要件に従って、 Xen Project をフリーかつオープンソースのソフトウェアとして開発および保守しています。Xen Project は現在、IA-32、x86-64、およびARM命令セットで利用可能です。[ 4 ]
Xen Project は、ファームウェアを除くマシン上の他のどのソフトウェアよりも高い特権 CPU 状態で実行されます。
ハイパーバイザの役割には、すべての仮想マシン(「ドメイン」)のメモリ管理と CPU スケジューリング、および最も特権の高いドメイン(「dom0」)の起動が含まれます。dom0 は、デフォルトでハードウェアに直接アクセスできる唯一の仮想マシンです。dom0 からハイパーバイザを管理したり、特権のないドメイン(「domU」)を起動したりできます。[ 5 ]
dom0 ドメインは通常、 LinuxまたはBSDのバージョンです。ユーザー ドメインは、 Microsoft Windowsなどの従来のオペレーティングシステムで、特権命令はハードウェア仮想化命令によって提供されます (ホスト プロセッサがx86 仮想化( Intel VT-xやAMD-Vなど) ]、[ 6 ]または準仮想化オペレーティングシステムで、オペレーティングシステムが仮想マシン内で実行されていることを認識し、特権命令を発行するのではなく、ハイパー コールを直接行います。
Xen ProjectはGNU GRUBなどのブートローダーから起動し、通常は準仮想化されたホストオペレーティングシステムをホストドメイン(dom0)にロードします。
Xen は、ケンブリッジ大学のコンピュータ研究所の上級講師であるイアン・プラットと彼の博士課程の学生であるキア・フレイザーが主導した研究プロジェクトとして始まりました。初期の貢献者であるアニル・マダヴァペディによると、Xen は、フレイザーが週末に同じハードウェア上で複数の Linux カーネルを起動できるかどうかという賭けから始まりました。[ 7 ] Xen の最初の公開リリースは 2003 年に行われ、v1.0 は 2004 年に続きました。その後すぐに、プラットとフレイザーは、サイモン・クロスビーや創設 CEO のニック・ゴールトを含む他のケンブリッジ大学の卒業生とともに、XenSource Inc. を設立し、Xen を競争力のあるエンタープライズ製品にしました。
比較的ハードウェアコンピューティングリソースが限られているスマートフォン/IoTなどの組み込みシステムをサポートするために、ARM CPU上のSecure Xen ARMアーキテクチャが、IBM TJ Watsonで開催された2007年4月17日のXenサミットで展示されました。[ 8 ] [ 9 ] Secure Xen ARMソースコードの最初の公開リリースは、Samsung Electronicsのケンブリッジ大学卒業生であるSang-bum Suh氏[ 12 ]によって、2008年6月24日のXenサミットで行われました。[ 10 ] [ 11 ]
2007 年 10 月 22 日、Citrix Systems はXenSource の買収を完了し[ 13 ]、Xen プロジェクトは xen.org ドメインに移行しました。この移行は以前から始まっており、Citrix、IBM、Intel、Hewlett-Packard、Novell、Red Hat、Sun Microsystems、Oracleのメンバーで構成される Xen プロジェクト諮問委員会 (Xen AB) の存在が公表されました。Xen 諮問委員会は Xen プロジェクト リーダーに助言を行い、Xen 商標[ 14 ]の責任を負っています。Citrix は、Xenハイパーバイザを実装するすべてのベンダーとプロジェクトにこの商標を無償でライセンス供与しています[ 15 ]。Citrixはまた、Xen とは関係のないいくつかの独自製品 ( XenAppやXenDesktopなど) に Xen ブランド自体を使用しました。
2013 年 4 月 15 日、Xen プロジェクトがLinux Foundationの傘下に移管され、共同プロジェクトとなったことが発表されました。[ 16 ] Linux Foundation は、旧商標「Xen」の商用利用と区別するために、「Xen Project」という新しい商標を発表しました。移管の一環として、新しいコミュニティ Web サイトが xenproject.org で開設されました。 [ 17 ]発表当時、プロジェクト メンバーには、Amazon、AMD、Bromium、CA Technologies、Calxeda、Cisco、Citrix、Google、Intel、Oracle、Samsung、Verizon が含まれていました。[ 18 ] Xen プロジェクト自体は自主管理されています。[ 19 ]
Linuxカーネルのバージョン3.0以降、dom0とdomUのXenサポートがメインラインカーネルに存在する。[ 20 ]
インターネットホスティングサービス企業は、仮想プライベートサーバーを提供するためにハイパーバイザーを使用しています。Amazon EC2(2006年8月から2017年11月まで)[ 49 ] 、 IBM SoftLayer [ 50 ]、Liquid Web、富士通グローバルクラウドプラットフォーム[ 51 ] 、 Linode、OrionVM [ 52 ]、Rackspace Cloudは、製品提供の主要なVMハイパーバイザーとしてXenを使用しています。[ 53 ]
仮想マシンモニター(ハイパーバイザーとも呼ばれる)は、IBM、HPなどのシステムを実行するメインフレームや大型サーバー上で動作することもよくあります。 サーバー仮想化には、次のような利点があります。
Xenは仮想マシンをあるホストから別のホストへライブマイグレーションする機能をサポートしており、負荷分散とダウンタイムの回避を可能にします。
仮想化は、開発作業(オペレーティングシステムの開発を含む)においても利点があります。新しいシステムをゲストOSとして実行することで、バグが発生するたびに物理コンピュータを再起動する必要がなくなります。サンドボックス化されたゲストシステムは、コンピュータセキュリティの研究にも役立ち、ホストシステムを侵害することなく、ウイルスやワームの影響を研究することができます。
最後に、ハードウェアアプライアンスのベンダーは、異なるオペレーティングシステムを必要とする様々なソフトウェアを実行できるように、複数のゲストシステムを搭載したアプライアンスを出荷することを決定する場合があります。
Xen は、ゲスト オペレーティングシステムを実行するための 5 つのアプローチを提供します。[ 54 ] [ 55 ] [ 56 ]
Xen は準仮想化と呼ばれる仮想化形式を提供しており、ゲストは変更されたオペレーティングシステムを実行します。ゲストは、特定のアーキテクチャ機能の代わりに、特別なハイパーコールABI を使用するように変更されます。準仮想化により、Xen は、従来の仮想化技術との非協力で知られるホスト アーキテクチャ (x86) でも高いパフォーマンスを実現できます。[ 57 ] [ 58 ] Xen は、仮想化を明示的にサポートしていない CPU でも準仮想化ゲスト (Xen 用語では「PV ゲスト」) を実行できます。準仮想化により、ハードウェアおよびファームウェア サービスの全セットをエミュレートする必要がなくなり、PV システムの管理が簡単になり、潜在的に悪意のあるゲストにさらされる攻撃対象領域が減少します。32 ビット x86 では、Xen ホスト カーネル コードはリング 0で実行され、ホスト ドメインはリング 1 (カーネル) およびリング 3 (アプリケーション) で実行されます。
仮想化をサポートする CPU では、独自のオペレーティングシステム (Microsoft Windows など) を含む、変更されていないゲストを実行することが可能です。これはハードウェア支援仮想化として知られていますが、Xen ではハードウェア仮想マシン (HVM) として知られています。HVM 拡張機能は追加の実行モードを提供し、実際のハードウェアにアクセスできるハイパーバイザが使用する最も特権の高いモード (x86 では「ルート モード」と呼ばれます) と、ハイパーバイザの完全な制御下にある「ハードウェア」アクセスを持つゲスト カーネルおよびアプリケーションが使用する特権の低いモード (x86 では「非ルート モード」として知られています。ルート モードと非ルート モードの両方にリング 0~3 があります) を明確に区別します。Intel とAMD は、それぞれの Intel VT-x および AMD-V アーキテクチャ拡張機能を活用するために、Xen に修正を加えています。[ 59 ] ARM v7A および v8A 仮想化拡張機能の使用は、Xen 4.3 で導入されました。[ 60 ] HVM拡張機能では、準仮想化ゲスト/ドライバがハイパーバイザに直接呼び出しを行うための新しい命令も提供されることが多く、これは通常、I/Oや高性能を必要とするその他の操作に使用されます。これにより、適切なマイナーな変更を加えたHVMゲストは、準仮想化I/Oの多くのパフォーマンス上の利点を得ることができます。現在のバージョンのXen(4.2まで)では、完全に仮想化されたHVMゲストのみが、複数の独立したレベルのメモリ保護とページングのためのハードウェア機能を利用できます。その結果、一部のワークロードでは、PVドライバを備えたHVMゲスト(PV-on-HVM、またはPVHとも呼ばれる)は、純粋なPVゲストよりも優れたパフォーマンスを提供します。Xen HVMは、仮想マシンにI/O仮想化を提供するために、 QEMUプロジェクトに基づくデバイスエミュレーションを備えています。システムは、dom0のバックエンドとして実行されるパッチ適用済みのQEMU「デバイスマネージャ」(qemu-dm)デーモンを介してハードウェアをエミュレートします。これは、仮想化されたマシンが、かなり基本的なPCのエミュレートされたバージョンを認識することを意味します。パフォーマンスが重視される環境では、通常のゲストOSの動作中にPV-on-HVMのディスクおよびネットワークドライバが使用されるため、エミュレートされたPCハードウェアは主に起動に使用されます。
管理者は、可用性を損なうことなく、LAN を介して物理ホスト間で Xen 仮想マシンを「ライブマイグレーション」できます。この手順では、LAN は仮想マシンの実行を停止することなく、仮想マシンのメモリを宛先に繰り返しコピーします。このプロセスでは、 仮想マシンが最終的な宛先で実行を開始する前に、最終同期を実行するために約 60 ~ 300 ミリ秒の停止が必要となりますが、これによりシームレスなマイグレーションのように見えます。同様の技術は、実行中の仮想マシンをディスクに一時停止し、実行状態を「凍結」して後で再開するためにも使用できます。
Xenは、4095個の物理CPU、 HVMゲストあたり256個のVCPU、PVゲストあたり512個のVCPU、ホストあたり16TBのRAM、 HVMゲストあたり 最大1TBのRAM、またはPVゲストあたり最大512GBのRAMまで拡張できます。[ 61 ]
Xenは、ドメインが他の選択されたドメインと共有するメモリ ページを指定できるようにするグラント テーブルを使用して共有メモリを実装します。[ 62 ]
Xenハイパーバイザは、多くのプロセッサファミリーに移植されています。
Xenは、 XCP-ngやXenServer(旧Citrix Hypervisor、さらにその前はCitrix XenServer、さらにその前はXenSourceのXenEnterprise)などの専用仮想化プラットフォームに組み込んで出荷することができます。
また、Xenは多くの標準オペレーティングシステムのオプション構成として配布されています。Xenは以下のシステムで利用可能であり、同梱されています。
ゲストシステムは、完全仮想化(ハードウェアサポートが必要)、準仮想化(ゲストオペレーティングシステムの変更が必要)、または準仮想化ドライバを使用した完全仮想化(PVHVM [ 75 ])で実行できます。[ 76 ] PCで実行できるほとんどのオペレーティングシステムは、Xen HVMゲストとして実行できます。次のシステムは、準仮想化Xenゲストとして動作できます。
Xen バージョン 3.0 では、ホスト マシンのプロセッサがIntel VT-x (以前は Vanderpool というコードネーム) または AMD-V (以前は Pacifica というコードネーム) によって提供されるハードウェア仮想化をサポートしている場合、Microsoft Windows をゲスト オペレーティングシステムとして変更せずに実行できる機能が導入されました。Xen 1.x の開発中、 Microsoft Research はケンブリッジ大学のオペレーティングシステム グループとともに、Microsoftのアカデミック ライセンス プログラムによって可能になったWindows XPの Xen への移植を開発しました。このライセンスの条件ではこの移植の公開は許可されていませんが、その経験に関するドキュメントは元の Xen SOSP の論文に掲載されています。[ 80 ] James Harper と Xen オープンソース コミュニティは、Windows 用のフリー ソフトウェアの準仮想化ドライバの開発を開始しました。これらは Xen ブロックおよびネットワーク デバイス用のフロントエンド ドライバを提供し、HVM モードで実行されている Windows システムのディスクおよびネットワーク パフォーマンスを大幅に向上させます。これらのドライバがない場合、すべてのディスクおよびネットワーク トラフィックは QEMU-DM を介して処理する必要があります。[ 81 ]その後、Citrix は BSD ライセンスの下で Windows 用の PV ドライバをリリースし、(引き続きメンテナンスしている)。[ 82 ]
サードパーティの開発者は、Xenホストの管理における一般的なタスク(Xenゲストの構成、起動、監視、停止など)を容易にするためのツール(Xen管理コンソールとして知られています)を多数開発しています。例としては、以下のようなものがあります。
XenハイパーバイザーはGNU一般公衆利用許諾契約書(GPL)に基づいて提供されているため、これらのバージョンはすべてソースコード付きのフリーソフトウェアの中核部分を含んでいます。ただし、その多くには独自の追加機能が含まれています。
{{cite web}}: CS1メンテナンス: アーカイブサービスは非推奨になりました (リンク){{cite web}}: CS1メンテナンス: アーカイブサービスは非推奨になりました (リンク)