Red Hat Training

A Red Hat training course is available for RHEL 8

6.3. Ejemplo de configuración XML de una máquina virtual

La configuración XML de una VM, también denominada domain XML, determina los ajustes y componentes de la VM. La siguiente tabla muestra secciones de un ejemplo de configuración XML de una máquina virtual (VM) y explica su contenido.

Para obtener la configuración XML de una VM, puede utilizar el comando virsh dumpxml seguido del nombre de la VM.

# virsh dumpxml testguest1

Tabla 6.1. Ejemplo de configuración XML

Sección XML del dominioDescripción
<domain type='kvm'>
 <name>Testguest1</name>
 <uuid>ec6fbaa1-3eb4-49da-bf61-bb02fbec4967</uuid>
 <memory unit='KiB'>1048576</memory>
 <currentMemory unit='KiB'>1048576</currentMemory>

Esta es una máquina virtual KVM llamada Testguest1, con 1024 MiB de RAM asignados.

 <vcpu placement='static'>1</vcpu>

La VM se asigna con una sola CPU virtual (vCPU).

Para obtener información sobre la configuración de vCPUs, consulte Sección 16.5, “Optimización del rendimiento de la CPU de la máquina virtual”.

 <os>
  <type arch='x86_64' machine='pc-q35-4.1'>hvm</type>
  <boot dev='hd'/>
 </os>

La arquitectura de la máquina está configurada para la arquitectura AMD64 e Intel 64, y utiliza el tipo de máquina Intel Q35 para determinar la compatibilidad de las características. El sistema operativo está configurado para arrancar desde el disco duro.

Para obtener información sobre la creación de una máquina virtual con un sistema operativo instalado, consulte Sección 2.2.2, “Creación de máquinas virtuales e instalación de sistemas operativos invitados mediante la consola web”.

 <features>
  <acpi/>
  <apic/>
  <vmport state='off'/>
 </features>

Las funciones del hipervisor acpi y apic están desactivadas y el puerto IO de VMWare está desactivado.

 <cpu mode='host-model' check='partial'>

Las definiciones de la CPU del host desde el XML de capacidades (que se puede obtener con virsh capabilities) se copian automáticamente en la configuración XML de la VM. Por lo tanto, cuando la VM se inicia, libvirt elige un modelo de CPU que es similar a la CPU del host, y luego añade características adicionales para aproximarse al modelo del host lo más posible.

 <clock offset='utc'>
  <timer name='rtc' tickpolicy='catchup'/>
  <timer name='pit' tickpolicy='delay'/>
  <timer name='hpet' present='no'/>
 </clock>

El reloj del hardware virtual de la VM utiliza la zona horaria UTC. Además, se configuran tres temporizadores diferentes para la sincronización con el hipervisor QEMU.

 <on_poweroff>destroy</on_poweroff>
 <on_reboot>restart</on_reboot>
 <on_crash>destroy</on_crash>

Cuando la VM se apaga, o su SO termina inesperadamente, libvirt termina la VM y libera todos sus recursos asignados. Cuando la VM se reinicia, libvirt la reinicia con la misma configuración.

 <pm>
  <suspend-to-mem enabled='no'/>
  <suspend-to-disk enabled='no'/>
 </pm>

Los estados de suspensión ACPI S3 y S4 están desactivados para esta máquina virtual.

 <devices>
  <emulator>/usr/bin/qemu-kvm</emulator>
  <disk type='file' device='disk'>
   <driver name='qemu' type='qcow2'/>
   <source file='/var/lib/libvirt/images/Testguest.qcow2'/>
   <target dev='hda' bus='ide'/>
   <address type='drive' controller='0' bus='0' target='0' unit='0'/>
  </disk>
  <disk type='file' device='cdrom'>
   <driver name='qemu' type='raw'/>
   <target dev='hdb' bus='ide'/>
   <readonly/>
   <address type='drive' controller='0' bus='0' target='0' unit='1'/>
  </disk>

La VM utiliza el archivo binario /usr/bin/qemu-kvm para la emulación. Además, tiene dos discos conectados. El primer disco es un disco duro virtualizado basado en el /var/lib/libvirt/images/Testguest.qcow2 almacenado en el host, y su nombre de dispositivo lógico está configurado como hda.

  <controller type='usb' index='0' model='qemu-xhci' ports='15'>
   <address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
  </controller>
  <controller type='sata' index='0'>
   <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
  </controller>
  <controller type='pci' index='0' model='pcie-root'/>
  <controller type='pci' index='1' model='pcie-root-port'>
   <model name='pcie-root-port'/>
   <target chassis='1' port='0x10'/>
    <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0' multifunction='on'/>
  </controller>
  <controller type='pci' index='2' model='pcie-root-port'>
   <model name='pcie-root-port'/>
   <target chassis='2' port='0x11'/>
    <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x1'/>
  </controller>
  <controller type='pci' index='3' model='pcie-root-port'>
   <model name='pcie-root-port'/>
   <target chassis='3' port='0x12'/>
    <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x2'/>
  </controller>
  <controller type='pci' index='4' model='pcie-root-port'>
   <model name='pcie-root-port'/>
   <target chassis='4' port='0x13'/>
    <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x3'/>
  </controller>
  <controller type='pci' index='5' model='pcie-root-port'>
   <model name='pcie-root-port'/>
   <target chassis='5' port='0x14'/>
     <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x4'/>
  </controller>
  <controller type='pci' index='6' model='pcie-root-port'>
   <model name='pcie-root-port'/>
   <target chassis='6' port='0x15'/>
    <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x5'/>
  </controller>
  <controller type='pci' index='7' model='pcie-root-port'>
   <model name='pcie-root-port'/>
   <target chassis='7' port='0x16'/>
   <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x6'/>
  </controller>
  <controller type='virtio-serial' index='0'>
   <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
  </controller>

La VM utiliza un único controlador para conectar dispositivos USB, y un controlador raíz para dispositivos PCI-Express (PCIe). Además, se dispone de un controlador virtio-serial, que permite a la VM interactuar con el host de diversas formas, como la consola serie.

Para más información sobre los dispositivos virtuales, consulte Sección 10.5, “Tipos de dispositivos virtuales”.

 <interface type='network'>
  <mac address='52:54:00:65:29:21'/>
  <source network='default'/>
  <model type='rtl8139'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
 </interface>

Se configura una interfaz de red en la VM que utiliza la red virtual default y el modelo de dispositivo de red rtl8139.

Para obtener información sobre la configuración de la interfaz de red, consulte Sección 16.6, “Optimización del rendimiento de la red de máquinas virtuales”.

  <serial type='pty'>
   <target type='isa-serial' port='0'>
    <model name='isa-serial'/>
   </target>
  </serial>
  <console type='pty'>
   <target type='serial' port='0'/>
  </console>
  <channel type='unix'>
   <target type='virtio' name='org.qemu.guest_agent.0'/>
   <address type='virtio-serial' controller='0' bus='0' port='1'/>
  </channel>
  <channel type='spicevmc'>
   <target type='virtio' name='com.redhat.spice.0'/>
    <address type='virtio-serial' controller='0' bus='0' port='2'/>
  </channel>

Una consola serial pty se configura en la VM, lo que permite una comunicación rudimentaria de la VM con el host. La consola utiliza el canal UNIX en el puerto 1, y el paravirtualizado SPICE en el puerto 2. Esto se configura automáticamente y no se recomienda cambiar esta configuración.

Para obtener más información sobre la interacción con las máquinas virtuales, consulte Sección 2.4.1, “Interacción con las máquinas virtuales mediante la consola web”.

  <input type='tablet' bus='usb'>
   <address type='usb' bus='0' port='1'/>
  </input>
  <input type='mouse' bus='ps2'/>
  <input type='keyboard' bus='ps2'/>

La máquina virtual utiliza un puerto virtual usb, que está configurado para recibir la entrada de la tableta, y un puerto virtual ps2 configurado para recibir la entrada del ratón y del teclado. Esto se configura automáticamente y no se recomienda cambiar estos ajustes.

  <graphics type='spice' autoport='yes' listen='127.0.0.1'>
   <listen type='address' address='127.0.0.1'/>
   <image compression='off'/>
  </graphics>
  <graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1'>
   <listen type='address' address='127.0.0.1'/>
  </graphics>

La máquina virtual utiliza los protocolos vnc y SPICE para renderizar su salida gráfica, y la compresión de imágenes está desactivada.

  <sound model='ich6'>
   <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
  </sound>
  <video>
   <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/>
   <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
  </video>

Un dispositivo de sonido ICH6 HDA está configurado para la VM, y el dispositivo de framebuffer paravirtualizado QEMU QXL está configurado como acelerador de vídeo. Esto se configura automáticamente y no se recomienda cambiar estos ajustes.

  <redirdev bus='usb' type='spicevmc'>
   <address type='usb' bus='0' port='1'/>
  </redirdev>
  <redirdev bus='usb' type='spicevmc'>
   <address type='usb' bus='0' port='2'/>
  </redirdev>
  <memballoon model='virtio'>
   <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
  </memballoon>
 </devices>
</domain>

La VM tiene dos redireccionadores para conectar dispositivos USB de forma remota, y la ampliación de la memoria está activada. Esto se configura automáticamente y no se recomienda cambiar estos ajustes.