web-dev-qa-db-fra.com

Déterminez quel invité est en cours d'exécution sur Xen: HVM ou PV Guest

Je travaille avec un hôte Xen qui est installé Xenserver de Citrix par quelqu'un. Il a déjà installé beaucoup de centos 5,2 invités sur l'hôte. Je me demande comment vérifier ces invités de savoir qu'ils sont des types PV ou HVM?

9
Ha Son Hai

Une note rapide, il y a en fait 3 modes, pas deux lorsqu'il s'agit des pilotes utilisés:

  • HVM: noyau et pilotes non modifiés à l'aide de périphériques émulés de logiciels
  • PV-HVM: noyau non modifié avec des pilotes de disque et de réseau par xen) paravirtualisé (xen spécifiques)
  • PV: noyau et pilotes modifiés

Pour un Xen Guest/Domu, vous pouvez faire une très basique uname et lsmod avec un grep pour répertorier les modules utilisés:

uname -a
lsmod | grep xen

Si uname -a Répertorie un noyau avec la chaîne "Xen", puis vous avez un noyau modifié et il est probablement un invité PV, et vous verrez la sortie de la commande lsmod pour le confirmer. Si vous avez sorti de la GREP sur lsmod mais aucun signe d'un noyau modifié, vous êtes PV-HVM. Sans signe de non plus, c'est un HVM droit.

Remarque: Généralement, vous pouvez faire davantage avec VMS qui disposent des outils PV installés, afin que vous puissiez être un pointeur tout évident, mais vous pouvez simuler la présence des outils PV pour permettre la suspension/la reprise, etc. Vous ne pouvez pas compter sur cela en général.

10
Adam C

Il y a une meilleure alternative à l'analyse uname -a Sortie de l'intérieur du domaine invité. Vous devriez plutôt vérifier le profil VM dans l'hyperviseur lui-même.

Xl

Avec le point d'outils Xenlight actuel pour les installations xen autonomes, cela pourrait être réalisé en exécutant xl list --long commande:

# 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",
                ...
            },
            ...
        }
    }
]

Notez l'élément type dans le c_info section - si cela équivaut à "pv", cela signifie paravirtuel.

Xm

Avec un ancien Installation Xen autonome à l'aide d'une boîte à outils traditionnelle xm, les choses étaient similaires:

# xm list --long My-Virtual-Machine
(domain
    (domid 42)
    (name My-Virtual-Machine)
    (image
        (linux
            (kernel ...)
            ...
        )
    )
    ...
)

Noter la (linux) élément dans le (image) section correspond à la directive de configuration builder, où "Linux" signifie "paravirual" (plutôt que le noyau réel), tandis que "HVM" signifie "Virtualisation complète".

Xe

Avec appliance XENSERVER ou XCP , vous pouvez utiliser xe vm-list params=all commande ou quelque chose de même.

vierge

Il peut y avoir (ou avoir été) un moyen d'obtenir ces informations de Libvirt Toolstack, mais inconnu de moi.


Notez que, en commençant par Xen 4.5, le mode paravirual sur X86-64 a deux arômes:

  • paravirtualisation classique (PV) qui s'appuie sur des systèmes invités à réécriter à partir de l'utilisation anneau en direction de la bague 1; Depuis que AMD a jeté la bague 1 et la bague 2 en X86-64, Xen devait revenir à la gestion logicielle, qui est encore plus lente que le HVM;
  • Paravirtualisation assistée du matériel (PVH), - ne pas être confondu avec entièrement virtualisé avec des pilotes paravirtuels (PV-ON-HVM), - qui s'appuie sur une assistance matérielle pour la gestion des instructions privilégiées et des tables de page de mémoire, mais utilise des techniques de PV traditionnelles pour tout le reste, de sorte qu'aucun matériel n'est imité et des performances quasi natives est obtenue Comme il était bon vieux x86-32 fois.

Pour vérifier si l'hôte fonctionne avec PVH activé, on peut utiliser xl info (Bien que cette méthode ne soit pas meilleure que d'inspecter grub.cfg ):

# xl info | grep xen_commandline
xen_commandline        : pvh=1 loglvl=all guest_loglvl=all console=com1,vga
                         ^^^^^

Pour vérifier si un invité est en cours d'exécution en mode PVH (pvh=1 dans le fichier de configuration), à nouveau, consultez xl list -l:

            "c_info":{
                "name": "My-Virtual-Machine",
                "type": "pv",
                "pvh": "True",
                ...
            },

Toutefois, du point de vue de l'administration, PVH ne doit pas être différent de PV.

10
Anton Samsonov