EN JA
XEN(4)
XEN(4) FreeBSD Kernel Interfaces Manual XEN(4)

名称

xenXen Hypervisor Guest (DomU) サポート

書式

並列仮想化された (PV) Xen ゲストサポートを i386 カーネルにコンパイルするためには、次の行を利用者のカーネル設定ファイルに置きます:

options PAE
options XEN
nooptions NATIVE

並列仮想化されたドライバをつけてハードウェアで補助された仮想化 (HVM) Xen ゲストサポートを amd64 カーネルにコンパイルするためには、次の行を利用者のカーネル設定ファイルに置きます:

options XENHVM
device xenpci

解説

Xen Hypervisor によって、複数の仮想計算機を、単一のコンピュータシステムで実行することができます。最初にリリースされるとき、i386 カーネルが x86 命令セットとして "para-virtualized" (並列仮想化) でコンパイルされている必要とされた Xen は、完全に仮想化可能ではありませんでした。最初に、並列仮想化は、TLB を変更するために、ハードウェア命令を指示するよりむしろ、hypervisor 呼び出し (hypercalls) を使用する仮想メモリシステムを変更しますが、並列仮想化デバイスドライバが、仮想ネットワークインタフェースとディスクデバイスのようなリソースにアクセスするためにも必要とされます。

完全に仮想化可能な命令をサポートする AMD と Intel からの後の命令セット拡張で、変更されない仮想メモリシステムもサポートできます。これは、ハードウェアで補助された仮想化 (HVM) と呼ばれます。 HVM 設定は、透過的にエミュレートされたハードウェア周辺機器、または仮想化を認識していて、したがって、性能またはセマンテックスを向上させるために特定の振る舞いを最適化することができる、並列仮想化されたドライバに頼ります。

FreeBSD は、 options XENnooptions NATIVE を使用して i386 アーキテクチャで並列仮想化された (PV) カーネルをサポートします。現在、これは、 options PAE を通して有効にされた、PAE カーネルの使用を必要とします。

FreeBSD は、i386 と amd64 カーネルの両方でハードウェアで補助された仮想化 (HVM) をサポートしています。しかしながら、HVM カーネルがある PV デバイスドライバは、amd64 アーキテクチャでのみサポートされ、 options XENHVMdevice xenpci を必要とします。

並列仮想化されたデバイスドライバは、プロセス管理要求、hypervisor へのアイドル物理メモリページを返す、などのような、特定の機能をサポートするために必要です。

Xen DomU デバイスドライバ

Xen の並列仮想化されたドライバは、PV カーネルが options XEN を使用してコンパイルされるなら、自動的にカーネルに追加されます。 HVM 環境のために、 options XENHVMdevice xenpci が必要です。次のドライバがサポートされています:
balloon
手動の調整か、または自動的なポリシの結果として hypervisor へ物理メモリページを返すことができます。
blkback
ローカルブロックデバイスまたはファイルを、それらが blkfront を通してインポートすることができる、他の Xen ドメインにエクスポートします。
blkfront
ファイルシステム、スワップなどに使用されるローカルブロックデバイスとして他の Xen ドメインからブロックデバイスをインポートします。
console
Xen コンソールサービスを通して低レベルのシステムコンソールをエクスポートします。
control
Domain 0 からのプロセス管理操作は、電源断、リブート、サスペンド、クラッシュとハルト (halt) 要求を含みます。
evtchn
/dev/xen/evtchn 特殊デバイスを通して Xen にイベントを公開 (expose) します。
netback
ローカルネットワークインタフェースを、それらが netfront を通してインポートすることができる他の Xen ドメインにエクスポートします。
netfront
ネットワークインタフェースを、IPv4、IPv6 などに使用されるローカルネットワークインタフェースとして他の Xen ドメインからインポートします。
pcifront
物理的な PCI デバイスを PV ドメインに通過することができます。
xenpci
Xen PCI デバイス、HVM ドメインに公開 (expose) されるエミュレートされた PCI デバイスを表します。このデバイスによって、Xen hypervisor の検出は、割り込みを提供することができ、要求された共有メモリサービスは、hypervisor と通信することができます。

パフォーマンスの考慮

一般的に、PV ドライバは、エミュレートされたハードウェアより良く実行し、 HVM インストールのためのお勧めの設定です。

hypervisor を使用すると、特定の FreeBSD スケジューリングの最適化の有効性を制限するかもしれない 2 番目の層のスケジューリングを導入します。これらのいくつかは、もはや、ロックを保持するスレッドが実行中であるかどうかを決定することができない、適応型のロックです。 Xen を使用するとき、適応型のロックを無効にすることをお勧めします:

options NO_ADAPTIVE_MUTEXES 
options NO_ADAPTIVE_RWLOCKS 
options NO_ADAPTIVE_SX

関連項目

pae(4)

歴史

xen のサポートは、 FreeBSD 8.1 ではじめて登場しました。

作者

Xen の FreeBSD サポートは、最初に Kip Macy <kmacy@FreeBSD.org>と Doug Rabson <dfr@FreeBSD.org>によって追加されました。更なる改良は、 Justin Gibbs <gibbs@FreeBSD.org>, Adrian Chadd <adrian@FreeBSD.org>と Colin Percival <cperciva@FreeBSD.org>によって行われました。このマニュアルページは、 Robert Watson <rwatson@FreeBSD.org>によって書かれました。

バグ

FreeBSD は、Xen ホスト (Dom0) としてでなく、Xen ゲスト (DomU) としてのみ実行することができます。

完全に並列仮想化された (PV) カーネルは、amd64 ではなく、i386 でのみサポートされます。

ハードウェアで補助された仮想化 (HVM) カーネルの下の並列仮想化されたドライバは、i386 ではなく、amd64 でのみサポートされます。

このリリース現在で、Xen PV DomU サポートは、ハードなテストを行っていません。不安定であることが、PV カーネルの VM マイグレイション (migration) の間に報告されています。

balloon ドライバのような、特定の PV ドライバの機能は、under-exercised です。訳注: under-exercised の意味不明。

December 17, 2010 FreeBSD