仮想化されたマシンは物理的な (仮想化をしていない) マシンのように振る舞い ますが、いくつかの制限事項があります。これらは VM ホストサーバ 側のシステムに 当てはまるものがあるほか、 VM ゲスト 側にも当てはまるものがあります。
KVM を利用するにあたって、一般的な制限事項は下記の通りです:
KVM ではメモリとディスク領域の両方に対してオーバーコミットを許可して います。これが何を意味するのかは利用形態によって変わりますが、 利用可能なりソースを超過することによって発生するハードウエアエラーは ゲスト側のエラーにもつながります。また CPU のオーバーコミットにも 対応していますが、性能面で問題を引き起こす可能性があります。
多くのゲストでは、時刻を正確に維持するのに追加のサポートを必要とします。
利用可能であれば、 kvm-clock を使用してください。
それ以外にも NTP やその他のネットワークベースの時刻同期プロトコルを利用し、
安定した時刻を維持することを強くお勧めします (VM ホストサーバ と VM ゲスト の
両方に対して) 。ゲスト内での NTP は、 kvm-clock
を利用している場合には推奨されません。詳しくは 8.5項 「時計の設定」
をお読みください。
NIC に対して MAC アドレスを指定しない場合は、既定の MAC アドレスが割り当て られます。この場合、複数の NIC が同じ MAC アドレスになってしまい、 ネットワーク問題を引き起こすことが考えられます。それぞれの NIC に対して ユニークな MAC アドレスを割り当てることをお勧めします。
ライブマイグレーション機能は同じ製造元の CPU を利用した VM ホストサーバ 間のみで、 かつホストからゲストに対して物理的な (実在する) デバイスを何もパススルー していない場合にのみ、対応しています。また、ゲスト側のストレージは両方の VM ホストサーバ からアクセスできる必要があるほか、ゲスト側の定義に互換性が存在 する必要があります。また、 VM ホストサーバ と VM ゲスト の間では、正しく時刻が 同期できている必要もあります。
管理ツール (Virtual Machine Manager, virsh, vm-install)
は libvirt に対して認証を行なう必要があります (詳しくは
第6章 接続と権限 をお読みください) 。
また、 qemu-kvm をコマンドラインから実行するには、
ユーザが kvm のメンバーで
なければなりません。
ゲストが稼働中の場合、 VM ホストサーバ システムのサスペンドやハイバネートには 対応していません。
ゲストに対する仮想的なハードウエア制限が確認されています。ただし、以下の ような制限に到達しても、最新のリリース (openSUSE 11 SP1) 以降であれば、 ホストと VM のインストールと動作の問題はありませんし、大幅な性能劣化 (CPU, メモリ, ディスク, ネットワーク) もありません。
|
ゲスト側の最大 RAM サイズ |
512 GB |
|
ゲスト 1 つあたりの最大仮想 CPU 数 |
64 |
|
ゲスト 1 つあたりの最大仮想ネットワークデバイス数 |
8 |
|
ゲスト 1 つあたりの最大ブロックデバイス数 |
エミュレーションで 4 個 (IDE) 、擬似仮想化
( |
|
VM ホストサーバ 1 台あたりの最大 VM ゲスト 数 |
全てのゲストに割り当てた仮想 CPU 数の合計が、ホスト側の CPU コア数の 8 倍を超えない範囲 |
基本的には物理的な (仮想化を伴わない) インストール向けの作業はそのまま 仮想化することができるため、新しい仮想化技術の利点はそのまま享受できる ことになります。しかしながら、仮想化を利用することで、それなりに性能に 影響することがあります。そのため、 CPU や I/O に対して考えられる最大限の 仕事量を与えて、仮想化に耐えられるかどうかをお確かめください。様々な 要件に適合するかどうか、広範囲な仮想化ソリューションを利用して確認は 行なわれていますが、場合によっては KVM での仮想化に適さない作業である ことがありうるためです。
このことから、下記の通りガイドラインとしてゲスト側の性能予想を示して います。下記の表でのパーセント値は、非仮想化時と同じ仕事量を与えた場合に どれだけの性能を達成できるのかを示した値です。なお、下記の値はおおよその 値であり、性能が保証されるものではありません。
|
分類 |
完全仮想化 |
擬似仮想化 |
ホスト側でのパススルー | ||
|---|---|---|---|---|---|
|
CPU, MMU |
7% |
該当せず |
| ||
|
ネットワーク I/O (1GB LAN) |
60% (e1000 エミュレーションの NIC の場合) |
75% ( |
95% | ||
|
ディスク I/O |
40% (IDE エミュレーションの場合) |
85% ( |
95% | ||
|
Graphics (アクセラレーション無効の場合) |
50% (VGA または Cirrus) |
該当せず |
該当せず | ||
|
時刻の正確さ (NTP を利用しない推奨設定の場合の最悪ケース) |
95% - 105% (100% を正確とした値) |
100% ( |
該当せず |