Назад | Перейти на главную страницу

Определите, какой гость работает на XEN: HVM или PV guest

Я работаю с хостом Xen, на котором кем-то установлен XenServer от Citrix. Он уже установил на хосте много гостей CentOS 5.2. Интересно, как проверить этих гостей, чтобы узнать, что они типа PV или типа HVM?

Есть лучшая альтернатива анализу uname -a вывод из гостевого домена. Лучше проверять профиль виртуальной машины в самом гипервизоре.

XL

С участием электрический ток Набор инструментов XenLight для автономных установок Xen, это можно сделать, запустив 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 section - если равно"pv", это означает паравиртуальный.

XM

С участием старше автономная установка Xen с использованием традиционных xm Управление стеком инструментов было похоже:

# 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 toolstack, но мне неизвестно.


Обратите внимание, что, начиная с Xen 4.5, паравиртуальный режим на x86-64 имеет две разновидности:

  • классическая паравиртуализация (PV), который требует перезаписи гостевых систем с использованием кольцо 0 в сторону кольца 1; поскольку AMD отказалась от кольца 1 и кольца 2 в x86-64, Xen пришлось вернуться к программному управлению, которое работает даже медленнее, чем HVM;
  • паравиртуализация с аппаратной поддержкой (ПВХ), - не путать сполностью виртуализирован с паравиртуальными драйверами (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.

Небольшое примечание: на самом деле существует 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, так что это может быть довольно очевидным указателем, однако вы можете подделывать присутствие инструментов PV, чтобы можно было приостановить / возобновить работу и т. д., поэтому вы не можете полагаться на это в целом.