XEN(4) | FreeBSD Kernel Interfaces Manual | XEN(4) |
名称
xen — Xen Hypervisor Guest (DomU) サポート書式
並列仮想化された (PV) Xen ゲストサポートを i386 カーネルにコンパイルするためには、次の行を利用者のカーネル設定ファイルに置きます:
options XEN
nooptions NATIVE
並列仮想化されたドライバをつけてハードウェアで補助された仮想化 (HVM) Xen ゲストサポートを amd64 カーネルにコンパイルするためには、次の行を利用者のカーネル設定ファイルに置きます:
device xenpci
解説
Xen Hypervisor によって、複数の仮想計算機を、単一のコンピュータシステムで実行することができます。最初にリリースされるとき、i386 カーネルが x86 命令セットとして "para-virtualized" (並列仮想化) でコンパイルされている必要とされた Xen は、完全に仮想化可能ではありませんでした。最初に、並列仮想化は、TLB を変更するために、ハードウェア命令を指示するよりむしろ、hypervisor 呼び出し (hypercalls) を使用する仮想メモリシステムを変更しますが、並列仮想化デバイスドライバが、仮想ネットワークインタフェースとディスクデバイスのようなリソースにアクセスするためにも必要とされます。完全に仮想化可能な命令をサポートする AMD と Intel からの後の命令セット拡張で、変更されない仮想メモリシステムもサポートできます。これは、ハードウェアで補助された仮想化 (HVM) と呼ばれます。 HVM 設定は、透過的にエミュレートされたハードウェア周辺機器、または仮想化を認識していて、したがって、性能またはセマンテックスを向上させるために特定の振る舞いを最適化することができる、並列仮想化されたドライバに頼ります。
FreeBSD は、 options XEN と nooptions NATIVE を使用して i386 アーキテクチャで並列仮想化された (PV) カーネルをサポートします。現在、これは、 options PAE を通して有効にされた、PAE カーネルの使用を必要とします。
FreeBSD は、i386 と amd64 カーネルの両方でハードウェアで補助された仮想化 (HVM) をサポートしています。しかしながら、HVM カーネルがある PV デバイスドライバは、amd64 アーキテクチャでのみサポートされ、 options XENHVM と device xenpci を必要とします。
並列仮想化されたデバイスドライバは、プロセス管理要求、hypervisor へのアイドル物理メモリページを返す、などのような、特定の機能をサポートするために必要です。
Xen DomU デバイスドライバ
Xen の並列仮想化されたドライバは、PV カーネルが options XEN を使用してコンパイルされるなら、自動的にカーネルに追加されます。 HVM 環境のために、 options XENHVM と device 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 サポートは、最初に <kmacy@FreeBSD.org>と <dfr@FreeBSD.org>によって追加されました。更なる改良は、 <gibbs@FreeBSD.org>, <adrian@FreeBSD.org>と <cperciva@FreeBSD.org>によって行われました。このマニュアルページは、 <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 |