Skip to main content
NetApp virtualization solutions
Se proporciona el idioma español mediante traducción automática para su comodidad. En caso de alguna inconsistencia, el inglés precede al español.

Obtenga más información sobre la virtualización KVM con QEMU y Libvirt

Colaboradores netapp-jsnyder kevin-hoke

Obtenga información sobre la virtualización KVM y cómo funciona con QEMU y Libvirt para crear una plataforma de virtualización Linux integral. Descubra cómo estos componentes permiten máquinas virtuales con un rendimiento casi nativo al tiempo que brindan capacidades de gestión flexibles para recursos informáticos, de almacenamiento y de red en entornos empresariales.

Descripción general de los componentes

  1. KVM (máquina virtual basada en kernel):

    • Rol: KVM es un módulo del kernel que proporciona las capacidades de virtualización centrales aprovechando las extensiones de virtualización asistidas por hardware en la CPU (por ejemplo, Intel VT-x o AMD-V).

    • Funcionalidad: KVM permite que el kernel de Linux actúe como un hipervisor de tipo 1, lo que le permite crear y administrar máquinas virtuales con un rendimiento casi nativo para operaciones de CPU y memoria.

    • Capa más baja: KVM es el componente de nivel más bajo, que interactúa directamente con el hardware para proporcionar la infraestructura necesaria para la virtualización completa.

  2. QEMU (EMULADOR RÁPIDO):

    • Rol: QEMU es un emulador de máquina (hardware) que proporciona otros componentes de hardware virtualizados para el sistema invitado, como interfaces de red, controladores de disco y tarjetas gráficas.

    • Funcionalidad: QEMU puede funcionar como un hipervisor tipo 2 cuando KVM no está disponible, pero es significativamente más lento ya que tiene que simular la CPU invitada en el software. Cuando se combina con KVM, QEMU utiliza KVM para acelerar las operaciones de CPU y memoria, mientras que QEMU maneja la emulación de periféricos y otros dispositivos de hardware.

    • Interacción con KVM: QEMU interactúa con KVM a través de un archivo de dispositivo (por ejemplo, /dev/kvm) utilizando llamadas del sistema ioctl() para administrar los procesos de la máquina virtual y comunicarse con KVM.

  3. "Libvirt":

    • Rol: Libvirt es una biblioteca de virtualización y una API que proporciona una interfaz de administración de nivel superior para varias plataformas de virtualización, incluidas KVM/QEMU, Xen y VMware ESXi.

    • Funcionalidad: Libvirt simplifica la gestión de máquinas virtuales al proporcionar una interfaz unificada y un conjunto de herramientas. Actúa como una capa de abstracción, permitiendo a los usuarios y aplicaciones administrar máquinas virtuales sin necesidad de interactuar directamente con los comandos o API específicos del hipervisor subyacente.

    • Características principales:

      • Gestión del ciclo de vida de las máquinas virtuales: iniciar, detener, pausar, guardar, restaurar y migrar máquinas virtuales.

      • Administración remota: controle máquinas virtuales en hosts remotos a través de SSH u otros protocolos.

      • Administración de almacenamiento: cree y administre grupos de almacenamiento y volúmenes para máquinas virtuales.

      • Redes virtuales: configure redes virtuales con NAT, puentes y otros modos.

      • Seguridad: Integración con SELinux y AppArmor para el confinamiento de seguridad de las máquinas virtuales.

      • Conexión en caliente: agregue o elimine dispositivos como discos e interfaces de red mientras la máquina virtual está en ejecución.

      • Herramientas: Libvirt incluye herramientas de línea de comandos como virsh y herramientas gráficas como virt-manager para administrar máquinas virtuales.

    • Cómo trabajan juntos:

      • KVM: proporciona la infraestructura de virtualización a nivel de kernel.

      • QEMU: proporciona el hardware emulado y administra los procesos de la máquina virtual.

      • Libvirt: actúa como capa de administración, proporcionando una API y herramientas para controlar KVM/QEMU y otros hipervisores.

    • En esencia: KVM proporciona la aceleración de hardware para la virtualización, QEMU proporciona el hardware emulado y ejecuta la VM, y Libvirt proporciona la interfaz de administración fácil de usar y la API para controlar toda la configuración.

Las herramientas cliente de Libvirt se pueden utilizar para administrar máquinas virtuales u operaciones desde CLI, GUI o web utilizando máquinas de cabina. Para obtener una lista de aplicaciones que utilizan libvirt, consulte "aquí" .

A medida que las aplicaciones se trasladan al entorno de Kubernetes, eche un vistazo a Kubevirt para ejecutar máquinas virtuales como pods en esos entornos.

Gestión de clústeres

Normalmente, Virtualization Manager o la herramienta CLI de virsh administran un solo host a la vez. Para administrar varios hosts en un clúster, a menudo se utilizan aplicaciones de nivel superior como oVirt, CloudStack o OpenStack. Estas herramientas ayudarán a colocar las máquinas virtuales y a distribuir la carga. Si busca alta disponibilidad de ciertas máquinas virtuales en un entorno de clúster de tamaño pequeño, se utiliza Pacemaker junto con Corosync o verifique su opción de pila de administración.

Pila Libvirt con componentes de gestión

Calcular

Libvirt proporciona un marco integral para administrar los recursos y la funcionalidad de las máquinas virtuales. Esto incluye tareas relacionadas con:

  1. Administración de máquinas virtuales (dominio):

    • Operaciones del ciclo de vida: Libvirt ofrece un conjunto completo de operaciones para administrar el estado de las máquinas virtuales (denominadas "dominios" en la terminología de libvirt). Esto incluye iniciar, detener, pausar, reanudar, guardar, restaurar y migrar máquinas virtuales.

    • Configuración XML: Las configuraciones de las máquinas virtuales se definen mediante archivos XML. Puede utilizar herramientas como virsh o virt-manager para crear, modificar y eliminar estas configuraciones XML.

    • Administración remota: puede administrar máquinas virtuales en hosts remotos utilizando el protocolo remoto de libvirt, que admite varios transportes de red como SSH.

  2. Asignación y gestión de recursos:

    • Administración de CPU: Libvirt le permite configurar CPU invitadas, lo que incluye especificar la cantidad de CPU virtuales, controlar la fijación de CPU (asociar vCPU con CPU físicas específicas en el host) y administrar los modos de CPU (como el paso a través del host para exponer las características de la CPU del host al invitado).

    • Administración de memoria: puede asignar memoria a máquinas virtuales y configurar la sobreasignación de memoria (permitiendo que la suma de memoria asignada a las máquinas virtuales exceda la memoria física disponible en el host).

    • Administración de almacenamiento: Libvirt puede administrar varios tipos de almacenamiento para máquinas virtuales, incluidas imágenes de disco (en formatos como qcow2, vmdk y raw), recursos compartidos NFS, grupos de volúmenes LVM, recursos compartidos iSCSI y dispositivos de disco raw.

    • Administración de dispositivos host: puede administrar dispositivos host físicos y virtuales como USB, PCI, SCSI y dispositivos de red, incluidas capacidades de virtualización como SR-IOV y NPIV.

  3. Redes virtuales:

    • Conmutadores de red virtuales: Libvirt crea conmutadores de red virtuales (puentes) para conectar máquinas virtuales entre sí y a la red del host.

    • Modos de red: admite varios modos de red, como NAT, puenteado, aislado y enrutado, para configurar cómo las máquinas virtuales interactúan con la red.

    • Reglas de firewall: Libvirt administra automáticamente las reglas de firewall (usando iptables) para controlar el tráfico de red para redes virtuales.

  4. Optimización del rendimiento:

    • Fijación de CPU: fijar vCPU a CPU físicas específicas puede mejorar la eficiencia y el rendimiento de la memoria caché, especialmente en entornos NUMA.

    • Ajuste de NUMA: puede optimizar el rendimiento en sistemas NUMA limitando el tamaño del invitado a la cantidad de recursos en un solo nodo NUMA y fijando las vCPU y la memoria al mismo zócalo físico que está conectado al adaptador de E/S.

    • Páginas enormes: el uso de páginas enormes puede mejorar el rendimiento al reducir la sobrecarga asociada con la administración de páginas de memoria pequeñas.

  5. Integración con otras herramientas:

    • virsh: La interfaz de línea de comandos para interactuar con libvirt.

    • virt-manager: una herramienta gráfica para administrar máquinas virtuales y recursos de libvirt.

    • OpenStack: Libvirt es un controlador de virtualización comúnmente utilizado en OpenStack.

    • Herramientas de terceros: muchas otras herramientas y aplicaciones aprovechan la API de libvirt para administrar máquinas virtuales, incluidas plataformas de administración de la nube y soluciones de respaldo.

El hipervisor KVM permite sobrecargar la CPU y la memoria, ya que normalmente los invitados de VM no suelen utilizarlos lo suficiente. Pero es necesario monitorearlo y equilibrarlo para lograr un mejor rendimiento.

Los metadatos de la máquina virtual se almacenan como XML en /etc/libvirt/qemu. La máquina virtual se puede crear usando virt-install o virsh cli. Se puede utilizar Virt-Manager si se prefiere la interfaz de usuario o utilizar la pila de gestión superior.

En resumen, libvirt proporciona una capa de gestión integral para los aspectos computacionales de la virtualización, permitiéndole controlar los ciclos de vida de las máquinas virtuales, asignar recursos, configurar redes, optimizar el rendimiento e integrarse con otras herramientas y plataformas.

Almacenamiento

Los discos de VM se pueden aprovisionar de forma dinámica en el grupo de almacenamiento o el administrador de almacenamiento puede aprovisionarlos previamente para la VM. Hay varios tipos de grupos admitidos por libvirt. Aquí está la lista de tipos de pool aplicables junto con el protocolo de almacenamiento compatible. La opción más común es dir. Luego, netfs y logical. iscsi e iscsi-direct utilizan un solo destino y no ofrecen tolerancia a fallos. mpath ofrece multitrayecto, pero no asignación dinámica. Se utiliza más como mapeo de dispositivos sin procesar en vSphere. Para los protocolos de archivos (NFS/SMB/CIFS), las opciones de montaje se pueden especificar en "montador automático" o se utiliza el tipo fstab y dir pool. En el caso de protocolos de bloque (iSCSI, FC, NVMe-oF), se utiliza un sistema de archivos compartido como ocfs2 o gfs2.

Protocolo de almacenamiento director fs netfs lógico disco iscsi iscsi-direct mpath

SMB/CIFS

No

No

No

No

No

No

Sistema Nacional de Archivos

No

No

No

No

No

No

iSCSI

No

FC

No

No

No

NVMe-oF

No

No

No

No1

Notas: 1 - Es posible que se requiera configuración adicional.

Según el protocolo de almacenamiento utilizado, es necesario que haya paquetes adicionales disponibles en el host. Aquí está la lista de muestra.

Protocolo de almacenamiento Fedora Debian Pac-Man

SMB/CIFS

cliente samba/utilidades cifs

smbclient/utilidades cifs

smbclient/utilidades cifs

Sistema Nacional de Archivos

utilidades nfs

nfs-común

utilidades nfs

iSCSI

Utilidades del iniciador iscsi, mapeador de dispositivos multiruta, herramientas ocfs2/utilidades gfs2

open-iscsi, herramientas multipath, herramientas ocfs2/utilidades gfs2

open-iscsi, herramientas multipath, herramientas ocfs2/utilidades gfs2

FC

sysfsutils, mapeador de dispositivos multiruta, herramientas ocfs2/gfs2-utils

sysfsutils, herramientas multipath, herramientas ocfs2/gfs2-utils

sysfsutils, herramientas multipath, herramientas ocfs2/gfs2-utils

NVMe-oF

nvme-cli,ocfs2-tools/gfs2-utils

nvme-cli,ocfs2-tools/gfs2-utils

nvme-cli,ocfs2-tools/gfs2-utils

Los detalles del grupo de almacenamiento se almacenan en un archivo XML en /etc/libvirt/storage.

Para importar datos de máquinas virtuales desde un entorno de vSphere, consulte"Kit de herramientas de cambio" .

Red

Libvirt proporciona sólidas capacidades de red virtual para administrar máquinas virtuales y contenedores. Esto se logra mediante el concepto de un conmutador o puente de red virtual.

Conceptos básicos: * Conmutador de red virtual (puente): actúa como un conmutador de red basado en software en su servidor host. Las máquinas virtuales se conectan a este conmutador y el tráfico fluye a través de él. * Dispositivos TAP: son dispositivos de red especiales que funcionan como "cables virtuales" que conectan la interfaz de red de la máquina virtual al puente libvirt.

  • Modos de red: Libvirt admite varias configuraciones de red para satisfacer diferentes necesidades:

    • NAT (traducción de direcciones de red): este es el modo predeterminado. Las máquinas virtuales conectadas a una red NAT pueden acceder a la red externa mediante la dirección IP del host, pero los hosts externos no pueden iniciar conexiones directamente a las máquinas virtuales.

    • Puente: en este modo, la red virtual está conectada directamente al mismo segmento de red que el host. Esto permite que las máquinas virtuales parezcan como si estuvieran conectadas directamente a la red física.

    • Aislado: las máquinas virtuales en una red aislada pueden comunicarse entre sí y con el host, pero no pueden acceder a nada fuera del host. Esto es útil para probar o proteger entornos.

    • Enrutado: el tráfico de la red virtual se enruta a la red física sin NAT. Esto requiere una configuración de enrutamiento adecuada en la red del host.

    • Abierto: similar al modo enrutado, pero sin ninguna regla de firewall aplicada automáticamente por libvirt. Esto supone que el tráfico de la red será gestionado por otros sistemas.

  • DHCP y DNS: Libvirt puede administrar servicios DHCP para sus redes virtuales utilizando dnsmasq, lo que le permite asignar direcciones IP a las máquinas virtuales y manejar la resolución de DNS dentro de la red virtual.

  • Reglas de firewall: Libvirt configura automáticamente reglas de iptables para controlar el flujo de tráfico de las redes virtuales, particularmente en el modo NAT.

Administración de redes Libvirt:

  • virsh: la herramienta de línea de comandos virsh proporciona un conjunto integral de comandos para administrar redes virtuales, incluido el listado, el inicio, la detención, la definición y la anulación de la definición de redes.

  • Administrador de máquinas virtuales (virt-manager): esta herramienta gráfica simplifica la creación y gestión de redes virtuales con una interfaz de usuario intuitiva.

  • Configuración XML: Libvirt utiliza archivos XML para definir la configuración de redes virtuales. Puede editar estos archivos XML directamente o utilizar herramientas como virsh net-edit para modificar las configuraciones de red.

Casos de uso comunes:

  • NAT: Conectividad básica y simple para máquinas virtuales en un host con una única interfaz de red.

  • Bridged: integración perfecta de máquinas virtuales en una red existente.

  • Aislado: creación de entornos seguros o de prueba donde las máquinas virtuales tienen restringido el acceso externo.

  • Enrutado: escenarios más avanzados donde se requiere un enrutamiento específico.

  • Open vSwitch (OVS): para implementaciones complejas a gran escala que requieren automatización y administración de red avanzadas.

Al aprovechar estas características, libvirt proporciona un marco flexible y potente para administrar redes de máquinas virtuales en entornos Linux.

Escucha

NetApp Data Infrastructure Insights (anteriormente Cloud Insights) es una plataforma de análisis y monitoreo de infraestructura basada en la nube que brinda visibilidad integral de su infraestructura de TI, incluidas las máquinas virtuales.

Si bien Data Infrastructure Insights es conocido por su fuerte enfoque en el monitoreo de entornos de almacenamiento NetApp y VMware, también tiene capacidades para monitorear otros tipos de infraestructura y cargas de trabajo.

A continuación se explica cómo puede supervisar potencialmente las máquinas virtuales basadas en Libvirt con NetApp Data Infrastructure Insights:

  1. Recopiladores de datos:

    • Data Infrastructure Insights opera a través del software Acquisition Unit, que utiliza varios recopiladores de datos para reunir datos de su infraestructura.

    • Data Infrastructure Insights tiene recopiladores para cargas de trabajo e infraestructuras heterogéneas, incluido Kubernetes. También hay un recopilador Telegraf abierto y API abiertas para una fácil integración con otros sistemas.

  2. Posible integración con Libvirt:

    • Recopilación de datos personalizada: potencialmente puede utilizar el recopilador abierto Telegraf o la API de Data Infrastructure Insights para recopilar datos de sus sistemas basados en Libvirt. Necesitaría escribir o configurar el recopilador para recopilar métricas de Libvirt usando su API (por ejemplo, a través de los comandos virsh o accediendo a las métricas internas de Libvirt).

  3. Beneficios de supervisar Libvirt con Data Infrastructure Insights:

    • Visibilidad unificada: obtenga una vista única de su entorno virtualizado, incluido su almacenamiento NetApp y sus máquinas virtuales basadas en Libvirt.

    • Supervisión del rendimiento: identifique los cuellos de botella de rendimiento y las limitaciones de recursos, ya sean internos a las máquinas virtuales o relacionados con la infraestructura subyacente que las respalda.

    • Optimización de recursos: analice los perfiles de carga de trabajo para dimensionar adecuadamente las máquinas virtuales, recuperar recursos no utilizados y optimizar la utilización de recursos en todo su entorno.

    • Solución de problemas: identifique y resuelva problemas rápidamente correlacionando las métricas de rendimiento de la máquina virtual con las métricas de almacenamiento de back-end para lograr visibilidad de extremo a extremo.

    • Análisis predictivo: utilice el aprendizaje automático para obtener información inteligente e identificar de forma proactiva posibles problemas antes de que afecten el rendimiento.

En resumen, si bien Data Infrastructure Insights tiene un fuerte soporte para VMware, es posible integrarlo con la virtualización basada en Libvirt mediante el uso de recopiladores de datos personalizados o aprovechando sus API abiertas. Esto proporcionaría visibilidad unificada, monitoreo mejorado del rendimiento y capacidades de optimización de recursos para su entorno Libvirt dentro de la plataforma Data Infrastructure Insights .

Protección de datos

La protección de datos de máquinas virtuales basadas en Libvirt con NetApp ONTAP se puede lograr a través de varios métodos, a menudo aprovechando las funciones de protección de datos integradas de ONTAP. A continuación se presenta un desglose de las estrategias más comunes:

  1. Uso de las funciones de protección de datos nativas de ONTAP:

    • Instantáneas: la principal tecnología de protección de datos de ONTAP son las instantáneas. Se trata de copias rápidas y puntuales de sus volúmenes de datos que requieren un espacio de disco mínimo y tienen una sobrecarga de rendimiento insignificante. Puede usar instantáneas para crear copias de seguridad frecuentes de sus discos de VM Libvirt (suponiendo que estén almacenados en volúmenes ONTAP ).

    • SnapMirror: SnapMirror se utiliza para replicar de forma asincrónica copias de Snapshot de un sistema de almacenamiento ONTAP a otro. Esto le permite crear copias de recuperación ante desastres (DR) de sus máquinas virtuales Libvirt en un sitio remoto o en la nube.

    • SnapVault: SnapVault se utiliza para realizar copias de seguridad de datos de múltiples sistemas de almacenamiento en un sistema ONTAP central. Esta es una buena opción para consolidar copias de seguridad de muchas máquinas virtuales de Libvirt desde diferentes hosts en un repositorio de copias de seguridad central.

    • SnapRestore: SnapRestore le permite restaurar rápidamente datos de copias instantáneas. Esto es esencial para recuperar sus máquinas virtuales Libvirt en caso de pérdida o corrupción de datos.

    • FlexClone: FlexClone crea copias grabables de volúmenes basadas en copias instantáneas. Esto es útil para crear rápidamente entornos de prueba/desarrollo basados en datos de máquinas virtuales de producción.

    • Sincronización activa de MetroCluster/ SnapMirror : para RPO cero (objetivo de punto de recuperación) automatizado y disponibilidad de sitio a sitio, puede usar ONTAP MetroCluster o SMas, lo que permite tener un clúster extendido entre sitios.

  2. Integración con soluciones de respaldo de terceros: muchas soluciones de respaldo de terceros se integran con NetApp ONTAP y admiten la realización de copias de seguridad de máquinas virtuales. Puede utilizar estas soluciones para realizar copias de seguridad de sus máquinas virtuales Libvirt en el almacenamiento ONTAP , aprovechando las funciones de protección de datos de ONTAP. Por ejemplo, algunas soluciones de respaldo utilizan la tecnología Snapshot de ONTAP para realizar copias de seguridad rápidas y sin agentes.

  3. Scripts y automatización: puede crear scripts para automatizar el proceso de creación de instantáneas de ONTAP de sus volúmenes de VM de Libvirt. Estos scripts pueden aprovechar la interfaz de línea de comandos o las API de ONTAP para interactuar con el sistema de almacenamiento.

Consideraciones clave:

  • Ubicación de almacenamiento: las imágenes de disco de su máquina virtual Libvirt deben almacenarse en volúmenes ONTAP para aprovechar las funciones de protección de datos de ONTAP.

  • Conectividad de red: garantice la conectividad de red entre sus hosts Libvirt y su sistema de almacenamiento ONTAP .

  • Administración de HBA: si utiliza Fibre Channel (FC) para la conectividad de almacenamiento, asegúrese de tener los paquetes de administración de HBA necesarios instalados en sus hosts Libvirt.

  • Monitoreo e informes: monitoree sus operaciones de protección de datos y asegúrese de que se completen exitosamente. Al combinar las capacidades de Libvirt con las sólidas funciones de protección de datos de ONTAP, puede implementar una estrategia integral de protección de datos para su entorno virtualizado.