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


9

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

回答:


10

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

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

Xenのゲスト/ DomUのためにあなたは非常に基本的な行うことができますunameし、lsmod使用中のモジュールを一覧表示するためにはgrepとを:

uname -a
lsmod | grep xen

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

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


@Adamに感謝します。私がこれまでに見つけた最も明確な答えです。
ハ息子ハイ

10

uname -aゲストドメイン内からの出力を分析するより良い代替手段があります。ハイパーバイザー自体でVMプロファイルを確認する必要があります。

XL

では、現在のスタンドアロンのXenのインストールでXenLight toolstack、これは実行することによって達成することができ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

、古い伝統的な使用して、スタンドアロンのXenのインストールxm管理toolstackを、物事は類似していました:

# 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コマンドなどを使用できます。

ヴァーシュ

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


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

  • リング0を使用してリング1に向けて書き換えられるゲストシステムに依存する従来の準仮想化(PV)。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と何ら変わりません。


xmコマンドがないがxl出力が異なるため、これは4.4.1では機能しません。4.4.1 XENに関する情報を取得する方法。ありがとう。
和漢短歌

@WakanTanka現在動作しているXenサーバーにアクセスできませんが、オンラインで見つけたサンプル出力によると、アプローチは基本的に同じです。更新された回答をご覧ください。
アントンサムソノフ2015

これは、@ AdamCの答えよりもはるかに優れたアプローチです。なぜなら、私によるとxl、PVであるPV ubuntuゲストがいくつかありますが、カーネル名やカーネルモジュールにxenの記述がないためです。
偽の名前

2
これにはハイパーバイザーへのアクセスが必要ですが、ゲストにのみアクセスできるかどうかをどのようにして知ることができますか?
Tonin
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.