GNU/Linux >> Tutoriales Linux >  >> Cent OS

RHV – Comprensión del agente invitado de Qemu

Libvirt usa el agente invitado de Qemu que se ejecuta dentro de una máquina virtual. Esta publicación explicará cómo el agente Qemu actúa como un canal de comunicación entre el host KVM y el invitado.

Protocolo de comunicación

El protocolo de comunicación utilizado para obtener información del sistema operativo de la máquina virtual o emitir comandos al sistema operativo invitado es el protocolo de máquina Qemu (QMP). QMP es un protocolo basado en JSON.

Por ejemplo, libvirt usa el agente invitado para obtener detalles del sistema de archivos del invitado. Para verificar si el agente invitado está trabajando:

# virsh qemu-agent-command >vm_name> '{"execute": "guest-info"}'

Por ejemplo:

# virsh qemu-agent-command TestVM '{"execute": "guest-get-host-name"}' --pretty
Please enter your authentication name: vdsm@ovirt
Please enter your password:
{
"return": {
"host-name": "<VM FQDN>"
}
# virsh qemu-agent-command TestVM '{"execute": "guest-get-osinfo"}' --pretty
Please enter your authentication name: vdsm@ovirt
Please enter your password:
{
"return": {
"name": "Oracle Linux Server",
"kernel-release": "4.14.35-1902.300.11.el7uek.x86_64",
"version": "7.8",
"variant": "Server",
"pretty-name": "Oracle Linux Server 7.8",
"version-id": "7.8",
"variant-id": "server",
"kernel-version": "#2 SMP Tue Mar 17 17:11:47 PDT 2020",
"machine": "x86_64",
"id": "ol"
}
}

Método de comunicación

La comunicación entre el agente invitado y el host se realiza a través de los canales virtio-serial e isa-serial org.qemu.guest_agen.0.

– Desde el invitado de VM, aquí está el proceso qemu.guest_agent:

# ps auxwww |grep guest
root 811 0.0 0.0 44232 4572 ? Ss Feb22 0:51 /usr/bin/qemu-ga --method=virtio-serial --path=/dev/virtio -ports/org.qemu.guest_agent.0 --blacklist=guest-file-open,guest-file-close,guest-file-read,guest-file-write,guest-file-seek ,guest-file-flush,guest-exec,guest-exec-status -F/etc/qemu-ga/fsfreeze-hook

– Desde el host, también se creará un archivo de socket correspondiente en /var/lib/libvirt/qemu/channels/.org.ovirt.hosted-engine-setup.0:

# file /var/lib/libvirt/qemu/channels/56f42910-82d1-4e14-b4a4-646d220567c7.org.ovirt.hosted-engine-setup.0
/var/lib/libvirt/qemu/channels/56f42910-82d1-4e14-b4a4-646d220567c7.org.ovirt.hosted-engine-setup.0: socket
# virsh -r dumpxml TestVM |grep guest_agent
<source mode='bind' path='/var/lib/libvirt/qemu/channels/56f42910-82d1-4e14-b4a4-646d220567c7.org.qemu.guest_agent.0'/>
<target type='virtio' name='org.qemu.guest_agent.0' state='connected'/>

Si la comunicación es correcta, el socket UNIX tiene una conexión 'ESTAB':

# ss |grep guest_agent
u_str ESTAB 0 0 /var/lib/libvirt/qemu/channels/56f42910-82d1-4e14-b4a4-646d220567c7.org.qemu.guest_agent.0 82797274 * 82971852
u_str ESTAB 0 0 /var/lib/libvirt/qemu/channels/9c798303-1c30-4965-b447-e1c12588db14.org.qemu.guest_agent.0 82944156 * 82971680

Intervalo de comunicación

De forma predeterminada, VDSM sondea al agente invitado de QEMU (qemu-ga) cada 5 minutos para obtener información. Si el agente invitado de QEMU no se está ejecutando y responde en 5 minutos, libvirtd informará un error como "El agente invitado no responde:el agente invitado de QEMU no está conectado"

Otros

La subred de QMP llamada 'hmp' también está disponible. "qemu-monitor-command" tiene la capacidad de intercambiar información en formato 'hmp' mediante las opciones -hmp. Para verificar el estado del puerto virtio-serial conectado al ovirt-guest-agent:

# virsh qemu-monitor-command --hmp <Virtual Machine Name Here> 'info qtree'

Por ejemplo:

# virsh qemu-monitor-command --hmp TestVM 'info qtree'
Please enter your authentication name: vdsm@ovirt
Please enter your password:

dev: virtserialport, id "channel1"
chardev = "charchannel1"
nr = 2 (0x2)
name = "org.qemu.guest_agent.0"
port 2, guest on, host on, throttle off


Cent OS
  1. Windows:¿carpeta compartida entre Qemu Windows Guest y Linux Host?

  2. Comprensión de los archivos de zona DNS

  3. Comprender la cárcel chroot

  4. Comprender los valores booleanos de SELinux

  5. Entendiendo el demonio DM-multipath (multipathd)

Comprender las técnicas de modelado de datos NoSQL

comprender la salida del comando "yum history"

Comprender las rutas múltiples de Linux (dm-multipath)

Comprensión de la administración de energía en RedHat Virtualization (RHV)

Descripción de las cadenas de volumen en RedHat Virtualization (RHV)

¿Cómo aumentar la resolución de pantalla visualizada en QEMU / KVM?