web-dev-qa-db-ja.com

XENで実行されているゲストを特定する:HVMまたはPVゲスト

CitrixからXenServerを誰かがインストールしたXen Hostを使用しています。彼はすでにホストに多くのCentOS 5.2ゲストをインストールしています。それらのゲストをチェックして、PVタイプまたはHVMタイプであることを確認する方法を教えてください。

9
Ha Son Hai

手短に言うと、使用中のドライバーに関しては、2つのモードではなく、実際には3つのモードがあります。

  • HVM:ソフトウェアエミュレートデバイスを使用した未変更のカーネルとドライバー
  • PV-HVM:準仮想化(Xen固有)ディスクおよびネットワークドライバーを備えた未変更のカーネル
  • PV:変更されたカーネルとドライバー

Xenゲスト/ DomUの場合、grepを使用して非常に基本的なunameおよびlsmodを実行し、使用中のモジュールを一覧表示できます。

uname -a
lsmod | grep xen

uname -aは、「xen」という文字列を含むカーネルをリストします。変更されたカーネルがあり、それはPVゲストである可能性が高く、確認のためにlsmodコマンドからの出力が表示されます。 lsmodのgrepからの出力はあるが、変更されたカーネルの兆候がない場合は、PV-HVMです。どちらの兆候もなく、それはまっすぐなHVMです。

注:通常、PVツールがインストールされているVMでより多くのことができるので、それは非常に明白な指針になる可能性がありますが、一時停止/再開などを許可するPVツールの 偽のプレゼンス を使用できます。あなたは一般的にそれに依存することはできません。

10
Adam C

ゲストドメイン内からの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",
                ...
            },
            ...
        }
    }
]

c_infoセクションのtypeアイテムに注意してください。"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またはXCPapplianceを使用すると、xe vm-list params=allコマンドなどを使用できます。

ヴァーシュ

libvirtツールスタックからこの情報を取得する方法はいくつかあります(またはありました)が、私にはわかりません。


Xen 4.5以降、x86-64の準仮想モードには2つのフレーバーがあることに注意してください。

  • 従来の準仮想化(PV) ring を使用して書き換えられるようにゲストシステムに依存し、リング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と何の違いもありません。

10
Anton Samsonov