4.2. Hyper-V enlightenments の有効化
Hyper-V enlightenments は、Microsoft Hyper-V ハイパーバイザーをエミュレートする方法を KVM に提供します。このハイパーバイザーは、Windows 仮想マシンのパフォーマンスを向上させます。
4.2.1. Windows 仮想マシンでの Hyper-V enlightenments の有効化 リンクのコピーリンクがクリップボードにコピーされました!
Hyper-V enlightenments を有効にすると、RHEL 10 ホストで実行されている Windows 仮想マシン (VM) のパフォーマンスが向上します。
手順
virsh editコマンドを使用して、仮想マシンの XML 設定を開きます。以下に例を示します。# virsh edit windows-vmXML の
<features>セクションに、以下の<hyperv>サブセクションを追加します。<features> [...] <hyperv> <relaxed state='on'/> <vapic state='on'/> <spinlocks state='on' retries='8191'/> <vendor_id state='on' value='KVM Hv'/> <vpindex state='on'/> <runtime state='on' /> <synic state='on'/> <stimer state='on'> <direct state='on'/> </stimer> <frequencies state='on'/> <reset state='on'/> <tlbflush state='on'/> <reenlightenment state='on'/> <ipi state='on'/> <evmcs state='on'/> </hyperv> [...] </features>XML に
<hyperv>サブセクションが含まれている場合は、上記のように変更します。設定の
clockセクションを次のように変更します。<clock offset='localtime'> ... <timer name='hypervclock' present='yes'/> </clock>- XML 設定を保存して終了します。
- 仮想マシンが実行中の場合は再起動します。
検証
virsh dumpxmlコマンドを使用して、実行中の仮想マシンの XML 設定を表示します。次のセグメントが含まれている場合、仮想マシンで Hyper-V enlightenments が有効になっています。<hyperv> <relaxed state='on'/> <vapic state='on'/> <spinlocks state='on' retries='8191'/> <vendor_id state='on' value='KVM Hv'/> <vpindex state='on'/> <runtime state='on' /> <synic state='on'/> <frequencies state='on'/> <reset state='on'/> <tlbflush state='on'/> <reenlightenment state='on'/> <stimer state='on'> <direct state='on'/> </stimer> <ipi state='on'/> <evmcs state='on'/> </hyperv> <clock offset='localtime'> ... <timer name='hypervclock' present='yes'/> </clock>
4.2.2. 設定可能な Hyper-V enlightenments リンクのコピーリンクがクリップボードにコピーされました!
特定の Hyper-V 機能を設定して Windows 仮想マシンを最適化できます。以下の表では、設定可能な Hyper-V 機能およびその値に関する情報を提供します。
| Enlightenment | 説明 | 値 |
|---|---|---|
| evmcs | L0 (KVM) と L1 (Hyper-V) ハイパーバイザーとの間で準仮想化プロトコルを実装し、L2 を終了してハイパーバイザーに移動する時間を短縮できます。 注記 この機能は Intel プロセッサーのみを対象とします。 | on、off |
| frequencies | Hyper-V 周波数 MSR (Machine Specific Registers) を有効にします。 | on、off |
| ipi | IPI (準仮想化された相互プロセッサー割り込み) サポートを有効にします。 | on、off |
| reenlightenment | タイムスタンプカウンター (TSC) 周波数の変更がある場合に (移行時のみ) 通知します。新しい周波数に切替える準備ができるまで、ゲストでそのまま以前の周波数を使用することも可能です。 | on、off |
| relaxed | 仮想マシンを高負荷のホストで実行すると、一般的に BSOD に陥る Windows のサニティーチェックを無効化します。これは、Linux カーネルオプション no_timer_check と似ています。これは、Linux が KVM で実行している場合に自動的に有効になります。 | on、off |
| runtime | ゲストコードの実行に費やすプロセッサー時間および、ゲストコードの代わりに費やすプロセッサー時間を設定します。 | on、off |
| spinlocks |
| on、off |
| stimer | 仮想プロセッサーの合成タイマーを有効にします。この Enlightenment が指定されない場合には、特定の Windows バージョンが、HPET (HPET が利用できない場合には RTC も使用) を使用するように戻るため、仮想 CPU がアイドル状態であっても、CPU の消費量が大幅に消費される可能性があることに注意してください。 | on、off |
| stimer-direct | 有効期限イベントが通常の割り込みで配信されると合成タイマーを有効にします。 | on、off |
| synic | stimer とともに、synthetic タイマーをアクティブにします。Windows 8 では、この機能は定期的なモードで使用します。 | on、off |
| time | 仮想マシンでできるように、以下の Hyper-V 固有のクロックソースを有効にします。
| on、off |
| tlbflush | 仮想プロセッサーの TLB をフラッシュします。 | on、off |
| vapic | 仮想 APIC を有効にして、高負荷のメモリーマッピングされた APIC (Advanced Programmable Interrupt Controller) レジスターへのアクセラレート MSR アクセスを提供します。 | on、off |
| vendor_id | Hyper-V ベンダー ID を設定します。 |
|
| vpindex | 仮想プロセッサーのインデックスを有効にします。 | on、off |