Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxチュートリアル >> KVMの基礎とアーキテクチャI概念と用語

KVMの基礎とアーキテクチャI概念と用語

  

l KVM:カーネルベースの仮想マシン、カーネルベースの仮想マシン

l VMM:KVM仮想化における仮想マシンモニター、仮想マシンモニター環境では、KVMカーネル。

l VM:仮想マシン、仮想マシン、つまりゲストマシン。

l完全仮想化:ゲストOSは変更なしで実行できます。 2つの実装があります:ソフトウェア支援実装とハードウェア支援実装。

- 完全仮想化のソフトウェア支援による実装:一般的に優先圧縮(リング圧縮)とバイナリ変換(バイナリ変換)を使用します。 LGDTなどの特権レベルRing0で実行する必要がある特権があるため、通常はOSカーネルがRing0を実行します。したがって、仮想化環境では、VMMには使用可能なRingがありません。優先順位の圧縮の一般原則は、VMMをRing 0で実行し、ゲストOSのカーネルをRing 1で実行し、ゲストOSのユーザーをRing 3で実行することです。優先圧縮はほとんどの特権命令を正しく処理しますが、x86アーキテクチャの仮想化の脆弱性(機密性の高い一部の命令はキャプチャできません)のため、バイナリ変換方式を使用してこれらの仮想化の脆弱性を処理します。キャプチャできない機密命令は、仮想化をサポートする命令に変換されます。

- 完全仮想化のハードウェア支援による実装:ハードウェア仮想化機能(Intel VT-xなど)に頼る、基本的な考え方は、ハードウェアアーキテクチャに十分な仮想化機能を追加してゲストを傍受できるようにすることです。 OS内のすべての機密命令とシミュレート。

l準仮想化:重要な命令のキャプチャを解決するために「スナップ」できない重要な命令を置き換えるようにゲストOSを変更する必要があります。

l VT-x:IntelはCPU仮想化のためのVT-x(x86用Intel仮想化)テクノロジーを提供し(AMD SVMも同様の機能を提供します)、VT-xは新しいワーキングモードを導入しますVMX(仮想マシン拡張)、このモードのCPUには、2つの動作モードがあります。ルートモード(VMXルート動作)と非ルートモード(VMX非ルート動作)です。各動作モードには、別々のRing0-Ring3があります。

- VMMはルートモードで動作しますKVM仮想化環境の場合、KVMホストはルートモードで動作し、ホストのカーネルはルートモードでRing0、ホストのユーザーモードプログラム(Qemuなど)で動作します。 -kvm)Run3がルートモードで動作しています。

- ゲストは非ルートモードで動作し、ゲストのカーネルは非ルートモードでRing0で動作し、ゲストのユーザーモードプログラムは非ルートモードでRing3で動作します。

さらに、VT-xでは、VMLAUNCH /VMRESUME(VM-Entryの起動用)、VMREAD /VMWRITE(VMCSの設定用)などを含む一連の新しい命令が導入されています。

l VM-Exit /VM-Entry:VT-x環境では、非rootモード(つまり、ゲスト)で、機密コマンドの実行は「snap」(VM-Exitと呼ばれる)を引き起こします。 VM-Exitが発生すると、CPUは自動的に非ルートモードからルートモードに切り替わり、その後VMMはVM-Exitをトリガーする機密命令をさらに処理またはシミュレートできます。

VM-EntryはVM-Entryに対応しますこの操作はVMMによって開始されますが、通常はVMMがGuest(またはVCPU)ランタイムをスケジュールすることによって発生し、このときCPUは自動的にrootモードからnon-rootモードに切り替わります。 。

l VMCS:VT-x環境では、CPU仮想化をよりよくサポートするためにVMCS(仮想マシン制御構造)が導入されました。 VMCSは、ルートモードおよび非ルートモードにおけるCPUのレジスタの値、VM-Exitの理由など、仮想CPUに必要な関連状態を保存するために使用されます。CPUがVM-ExitおよびVM-Entryを生成すると、CPUは自動的に照会し、 VMCSを更新するために、VMMはVMCSを構成することによってCPUの動作を制御することもできます。

Copyright © Windowsの知識 All Rights Reserved