GNU/Linux >> Tutoriales Linux >  >> Linux

Determine qué invitado se está ejecutando en XEN:invitado HVM o PV

Una nota rápida, en realidad hay 3 modos, no dos cuando se trata de los controladores en uso:

  • HVM:núcleo y controladores no modificados que usan dispositivos emulados por software
  • PV-HVM:núcleo no modificado con controladores de disco y red paravirtualizados (específicos de Xen)
  • PV:núcleo y controladores modificados

Para un invitado de Xen/DomU, puede hacer un uname muy básico y lsmod con un grep para listar los módulos en uso:

uname -a
lsmod | grep xen

Si uname -a enumera un kernel con la cadena "xen", entonces tiene un kernel modificado y es probable que sea un invitado PV, y verá la salida del lsmod comando para confirmarlo. Si tiene una salida de grep en lsmod pero no hay señales de un kernel modificado, entonces eres PV-HVM. Sin ninguna señal de ninguno de los dos, es un HVM directo.

Nota:En general, puede hacer más con las máquinas virtuales que tienen instaladas las herramientas de PV, por lo que puede ser un indicador bastante obvio; sin embargo, puede falsificar la presencia de las herramientas de PV para permitir la suspensión/reanudar, etc., por lo que no puede confiar en eso en general. .


Existe una alternativa mejor que analizar uname -a salida desde dentro del dominio invitado. Debería comprobar el perfil de la máquina virtual en el propio hipervisor.

XL

Con la corriente Pila de herramientas de XenLight para instalaciones independientes de Xen, esto podría lograrse ejecutando xl list --long comando:

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

Tenga en cuenta el type elemento en el c_info sección — si es igual a "pv" , esto significa paravirtual.

XM

Con un mayor Instalación independiente de Xen usando xm tradicional conjunto de herramientas de administración, las cosas eran similares:

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

Tenga en cuenta el (linux) elemento en el (image) sección — corresponde al builder directiva de configuración, donde "linux" significa "paravirtual" (en lugar del núcleo real), mientras que "hvm" significa "virtualización completa".

XE

Con XenServer o XCP dispositivo podrías usar xe vm-list params=all comando o algo parecido.

virsh

Puede haber (o ha habido) alguna forma de obtener esta información de libvirt conjunto de herramientas, pero desconocido para mí.

Tenga en cuenta que, a partir de Xen 4.5, el modo paravirtual en x86-64 tiene dos sabores:

  • paravirtualización clásica (PV) que depende de que los sistemas invitados se reescriban desde el anillo 0 hacia el anillo 1; dado que AMD se deshizo del anillo 1 y el anillo 2 en x86-64, Xen tuvo que recurrir a la gestión basada en software, que es incluso más lenta que HVM;
  • paravirtualización asistida por hardware (PVH), — no debe confundirse con totalmente virtualizado con controladores paravirtuales (PV-on-HVM), que se basa en la asistencia de hardware para manejar instrucciones privilegiadas y tablas de páginas de memoria, pero utiliza técnicas de PV tradicionales para todo lo demás, de modo que no se emula ningún hardware y se logra un rendimiento casi nativo como en buenas condiciones. viejo x86-32 veces.

Para verificar si el host se ejecuta con PVH habilitado, se puede usar xl info (aunque este método no es mejor que inspeccionar grub.cfg ):

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

Para verificar si un invitado en particular se está ejecutando en modo PVH (pvh=1 en el archivo de configuración), nuevamente, consulte xl list -l :

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

Sin embargo, desde la perspectiva de la administración, PVH no debería ser diferente a PV.


Linux
  1. Cómo comprobar qué versión de Postgres se está ejecutando/instalada

  2. ¿Cómo determinar qué proceso está creando un archivo?

  3. Linux:¿cómo determinar qué módulo contamina el kernel?

  4. Linux:¿cómo identificar qué distribución de Linux se está ejecutando?

  5. ¿Ejecutar un script cada vez que se instala un nuevo kernel?

Cómo averiguar la versión del kernel de Linux que se ejecuta en su PC

¿Cómo puedo ver en qué núcleo de CPU se está ejecutando un subproceso?

¿Cómo sé si mi kernel de Linux se ejecuta en 32 o 64 bits?

¿Cómo identifico qué distribución de Linux se está ejecutando?

¿Determinar en qué grupo(s) se encuentra un proceso en ejecución?

¿Qué sistema operativo se ejecuta en mi contenedor Docker?