簡単に言うと、使用中のドライバーに関しては、実際には 2 つではなく 3 つのモードがあります。
- HVM:ソフトウェア エミュレート デバイスを使用した変更されていないカーネルとドライバ
- PV-HVM:準仮想化 (Xen 固有) のディスクおよびネットワーク ドライバーを使用する変更されていないカーネル
- PV:カーネルとドライバーの変更
Xen ゲスト/DomU の場合、非常に基本的な uname
を実行できます と lsmod
grep を使用して、使用中のモジュールを一覧表示します:
uname -a
lsmod | grep xen
uname -a
の場合 文字列「xen」を含むカーネルがリストされている場合、変更されたカーネルがあり、おそらく PV ゲストであり、lsmod
からの出力が表示されます。 コマンドで確認します。 lsmod
の grep からの出力がある場合 しかし、変更されたカーネルの兆候がない場合は、PV-HVM です。どちらの兆候もなく、それは純粋な HVM です。
注:一般に、PV ツールがインストールされている VM ではより多くのことができるため、これは非常に明白な指針となりますが、一時停止/再開などを許可するために PV ツールの存在を偽装することができるため、一般的にそれに依存することはできません。 .
uname -a
を分析するより良い方法があります ゲストドメイン内からの出力。ハイパーバイザー自体で VM プロファイルを確認する必要があります。
XL
現在で スタンドアロンの Xen インストール用の XenLight ツールスタック。これは、xl list --long
を実行することで実現できます。 コマンド:
# xl list
Name ID Mem VCPUs State Time(s)
My-Virtual-Machine 42 1024 1 -b---- 9001.0
# xl list -l 42
or
# xl list --long My-Virtual-Machine
[
{
"domid": 6,
"config": {
"c_info": {
"name": "My-Virtual-Machine",
"uuid": "12345678-abcd-1234-abcd-12345678abcd",
"type": "pv",
...
},
...
}
}
]
type
に注意してください c_info
の項目 セクション — "pv"
に等しい場合 、これは準仮想化を意味します。
XM
年上のと 従来の xm
を使用したスタンドアロン Xen インストール 管理ツールスタック、物事は似ていました:
# xm list --long My-Virtual-Machine
(domain
(domid 42)
(name My-Virtual-Machine)
(image
(linux
(kernel ...)
...
)
)
...
)
(linux)
に注意してください (image)
の要素 セクション — builder
に対応します ここで、「linux」は (実際のカーネルではなく) 「準仮想化」を意味し、「hvm」は「完全仮想化」を表します。
XE
XenServer または XCP アプライアンス xe vm-list params=all
を使用できます コマンドかそれに類するもの
virsh
libvirt からこの情報を取得する何らかの方法がある (またはあった) 可能性があります ツールスタックですが、私にはわかりません。
Xen 4.5 以降、x86-64 の準仮想化モードには 2 つのフレーバーがあることに注意してください:
- 従来の準仮想化 (PV) リング 0 を使用してからリング 1 に向かって書き換えられるゲスト システムに依存します。 AMD は x86-64 でリング 1 とリング 2 を破棄したため、Xen は HVM よりもさらに遅いソフトウェアベースの管理にフォールバックする必要がありました;
- ハードウェア支援による準仮想化 (PVH) — 準仮想化ドライバーによる完全仮想化と混同しないでください (PV-on-HVM) — 特権命令とメモリ ページ テーブルを処理するためにハードウェア アシスタンスに依存しますが、他のすべてには従来の PV 技術を使用するため、ハードウェアはエミュレートされず、ネイティブに近いパフォーマンスが良好な状態で達成されます。古い x86-32 回。
ホストが PVH を有効にして実行されているかどうかを確認するには、xl info
を使用できます。 (ただし、この方法は grub.cfg を検査するよりも優れているわけではありません ):
# xl info | grep xen_commandline
xen_commandline : pvh=1 loglvl=all guest_loglvl=all console=com1,vga
^^^^^
特定のゲストが PVH モード (pvh=1
) で実行されているかどうかを確認するには 構成ファイルで)、もう一度、xl list -l
を参照してください :
"c_info":{
"name": "My-Virtual-Machine",
"type": "pv",
"pvh": "True",
...
},
ただし、管理の観点からは、PVH は PV と何ら変わりはありません。