libvirt

  • Continuando la saga de artículos sobre virtualización con KVM en CentOS 6.2 (Virtualización en CentOS 6.2 utilizando KVM explica paso a paso cómo instalar KVM y crear una máquina virtual con Windows XP y Utilizar SPICE en máquinas virtuales KVM explica como convertir una máquina virtual KVM existente para que utilice SPICE en lugar de VNC) este  artículo está dedicado al acceso remoto de máquinas virtuales utilizando el cliente SPICE, utilizando como ejemplo la instalación y configuración del cliente SPICE en Windows 7.

    Además de explicar la instalación de los componentes SPICE tanto en el host (Spice Client y Spice Server) como en el guest (Spice Device y Spice Driver/Agent), el artículo Utilizar SPICE en máquinas virtuales KVM explica cómo conectarse a una máquina virtual utilizando el cliente SPICE para GNU/Linux. En este artículo se explica la instalación y configuración del cliente SPICE en Windows 7 y la configuración del firewall en el host CentOS 6.2.

  • Cuando se instala un host de máquinas virtuales generalmente se incluye la aplicación "virt-manager" la cual permite gestionar máquinas virtuales desde un entorno gráfico amigable. Esta herramienta también permite acceder a la consola gráfica de las máquinas virtuales. Sin embargo, cuando se instala un servidor host de máquinas virtuales, para disminuir el consumo de recursos como memoria y CPU, es conveniente que no utilice entorno gráfico y tenga la menor cantidad de servicios instalados, solo lo mínimo indispensable.

    El artículo Cómo crear y administrar máquinas virtuales KVM desde línea de comandos explica, con diferentes ejemplos, cómo crear y administrar máquinas virtuales desde línea de comandos. Este artículo explica cómo administrar las máquinas virtuales de un host sin entorno gráfico utilizando la aplicación virt-manager.

  • Cuando se instala un host de máquinas virtuales KVM generalmente se incluye la aplicación "virt-manager" la cual permite gestionar máquinas virtuales desde un entorno gráfico amigable. Esta aplicación simplifica la creación de máquinas virtuales y permite el acceso a los entornos gráficos de las mismas. Sin embargo, cuando se hace un uso serio de KVM en el mundo real, un host de máquinas virtuales se instala sin entorno gráfico para reducir la sobrecarga en el host y permitir alojar un mayor número de máquinas virtuales.

  • Cuando se instala un host de máquinas virtuales generalmente se incluye la aplicación "virt-manager" la cual permite gestionar máquinas virtuales desde un entorno gráfico amigable. Esta aplicación simplifica la creación de máquinas virtuales y permite el acceso a los entornos gráficos de las mismas. Sin embargo, cuando se hace un uso serio de KVM en el mundo real, un host de máquinas virtuales se instala sin entorno gráfico para reducir la sobrecarga en el host y permitir alojar un mayor número de máquinas virtuales.

  • Este artículo explica de forma detallada cómo clonar una máquina virtual KVM.

  • Seguramente más de uno se ha preguntado alguna vez "¿cómo conecto un dispositivo USB físico a una máquina virtual?". Las tecnologías de virtualización actuales permiten pasar (pass through) dispositivos de hardware físicos directamente desde el host al guest (máquina virtual) para que puedan ser accedidos desde el guest como si estuvieran conectados en el mismo. KVM no es la excepción, por ello en este artículo presento tres alternativas diferentes para pasar un dispositivo USB conectado a un host de máquinas virtuales KVM, en una máquina virtual. Es decir, cómo conectar un dispositivo de hardware USB físico (por ejemplo un pendrive, modem GSM o cualquier otro dongle USB) directamente a una máquina virtual en GNU/Linux utilizando virt-manager, libvirt o qemu.

  • Una cuenta pendiente que tenía era administrar un host de máquinas virtuales sin cabeza (headless), esto es, sin entorno gráfico. Cuando se instala un servidor host de máquinas virtuales, para disminuir el consumo de recursos como memoria y CPU, es conveniente que no utilice entorno gráfico y tenga la menor cantidad de servicios instalados, solo lo mínimo indispensable.

    En este artículo voy a demostrar cómo es posible crear, eliminar y administrar máquinas, discos y redes virtuales utilizando las herramientas de administración virt-install y virsh

  • Este artículo explica paso a paso cómo instalar Android en una máquina virtual QEMU/KVM. No explica qué es Android ni QEMU/KVM, ya que se supone que el lector conoce qué es Android y qué es la tecnología de virtualización QEMU/KVM.

  • SPICE es un protocolo de escritorio remoto diseñado para entornos virtuales que reemplaza a VNC en máquinas virtuales KVM/QEMU. SPICE entrega un mejor rendimiento a bajo consumo de CPU, soporta video de alta calidad, sonido e interacción con el host (copiar/pegar).

    En el artículo Utilizar SPICE en máquinas virtuales KVM expliqué detalladamente cómo configurar SPICE en una máquina virtual Windows y cómo instalar el driver QXL en Windows XP. En este artículo voy a explicar como configurar máquinas virtuales GNU/Linux para que utilicen SPICE.

  • Este artículo explica cómo crear una máquina virtual en un host CentOS 6 totalmente desde línea de comandos (y de manera simple y fácil) utilizando la herramienta de línea de comandos virsh, parte de la API de virtualización libvirt.

  • En el artículo Time drift extremo en Windows XP virtualizado con KVM muestro un caso de time drift extremo en un guest Windows virtualizado con KVM. Luego de haber podido reproducir los eventos que conducen al problema, un poco más de luz sobre el asunto...

  • En mi workstation de trabajo siempre tengo algún guest en ejecución. Por defecto, en el momento de apagar el sistema operativo todos los guest se suspenden. Esta semana sucedió que uno de los guests suspendidos fallaba al reanudar, luego de un reinicio del sistema operativo del host, mostrando el siguiente mensaje:

    Error restoring domain: Unable to read from monitor
  • Uno de mis lectores, Elvin, me envió por correo una inquietud respecto al soporte de aceleración por hardware para gráficos 3D en máquinas virtuales KVM. Por lo que decidí investigar un poco al respecto, ya que me resulta un tema más que interesante.

  • Buenas amigos, hoy traigo este artículo desde las oscuras tierras donde moran los sysadmins. Producto de romperme la cabeza para lograr un mayor entendimiento sobre cómo funciona un sistema de archivos. He incursionado en virtualización de servidores (consolidación) utilizando KVM sobre un host CentOS y actualmente me encuentro trabajando en ello.

  • En artículos anteriores expliqué cómo instalar y configurar VirtualBox en FreeBSD 10. VirtualBox es una excelente plataforma de virtualización para sistemas de escritorio y entornos de desarrollo. Sin embargo, cuando se necesita configurar sistema FreeBSD donde hospedar servidores virtuales, probablemente deseemos optar por una alternativa más adecuada a nuestras necesidades: QEMU+libvirt. Sobre todo si, como administradores de sistemas, venimos de entornos de virtualización sobre GNU/Linux y estamos más familiarizados con libvirt y su conjunto de herramientas.

    Esto no significa que VirtualBox sea una plataforma inadecuada para utilizar como host de máquinas virtuales. Es perfectamente posible configurar un hipervisor VirtualBox headless (sin entorno gráfico) y gestionarlo totalmente utilizando el front-end VBoxManage (tarea que tengo pendiente para un futuro artículo). Además, las posibilidades que ofrece esta herramienta de línea de comandos son mucho más amplias y completas que las que ofrece la interfaz gráfica, al punto que una gran parte de las funcionalidades avanzadas de VirtualBox están sólo disponibles a través de línea de comandos (VBoxManage).

    Sin embargo, quienes hemos hecho experiencia con QEMU+libvirt conocemos todas sus ventajas. Por ello, en este artículo voy a explicar paso a paso cómo instalar y configurar QEMU y libvirt, cómo crear una máquina virtual desde línea de comandos con virsh, y como configurar una red NAT utilizando el firewall ipfw provisto por FreeBSD.

  • Trabajando en mi Workstation tuve la oportunidad de ver un caso de time drift extremo en un guest Windows virtualizado con KVM. Imperdible el video!

  • Cuando se trabaja con un host de máquinas virtuales headless (es decir, sin interfaz gráfica) generalmente se utiliza una herramienta de gestión gráfica desde una estación de trabajo remota. Sin embargo, a veces puede ser necesario trabajar directamente sobre el host, con las herramientas de línea de comandos disponibles. En este caso: virsh. Este artículo presenta un ejemplo simple sobre cómo crear una nueva imagen de disco virtual dentro de un pool de disco de libvirt.

  • En el artículo Virtualización en CentOS 6.2 utilizando KVM se explica paso a paso cómo instalar KVM y crear una máquina virtual con Windows XP. Este artículo explica como convertir una máquina virtual KVM existente para que utilice SPICE.

    El proyecto SPICE provee una solución Open Source completa para la interacción con entornos de escritorio virtualizados. Actualmente se focaliza en proveer acceso remoto de alta calidad a máquinas virtuales QEMU. Busca romper las barreras de la adopción de virtualización superando los desafíos de la virtualización tradicional de escritorio y poniendo énfasis en la experiencia del usuario. Otros componentes desarrollados incluyen el driver de dispositivo virtual QXL.

    SPICE es uno de los proyectos "et" de Red Hat (Red Hat Emerging Technology Projects). Los proyectos ET son un surtido de proyectos de desarrollo de nuevas tecnologías Open Source relacionadas con virtualización y la nube.

  • Este artículo explica paso a paso el proceso de compilación e instalación, a partir del código fuente, de los tres componentes principales de la estructura de virtualización en GNU/Linux con KVM: qemu, libvirt y virt-manager.

    Este tutorial está basado en una instalación de Slackware 14.1, aunque aplica para cualquier distribución GNU/Linux, ya que el proceso de compilación es independiente de la distribución que se utilice. Los únicas diferencias ocurren al momento de instalar dependencias (si se opta por instalarlas desde los manejadores de paquetes en lugar de compilarlas), y al momento de instalar servicios (ya que depende del proceso de arranque de cada distribución: SysVinit, systemd o Upstart).

    A pesar de que se explica con gran detalle, requiere que el usuario posea conocimientos básicos acerca del manejo de la línea de comandos en GNU/Linux.

    El punto más importante a la hora de compilar paquetes desde los fuentes consiste en verificar que se respeten las dependencias. Para cada fuente (source) es necesario determinar qué versión de librerías requiere y luego verificar si nuestro sistema operativo las cumple. Que un paquete compile no significa que luego funcione, es por ello que el punto más fuerte de todo manejador de paquetes es su habilidad para resolver dependencias.

  • Actualmente hay dos tecnologías de virtualización disponibles en los repositorios de CentOS, Xen y KVM.

    Xen soporta paravirtualización y virtualización full asistida por hardware. Xen requiere que el hypervisor bootee antes que el kernel de Linux, el cual luego bootea un CentOS llamado dominio administrativo o privilegiado.

    KVM soporta sólo virtualización full asistida por hardware (aunque se está trabajando en el soporte de paravirtualización). KVM es un módulo del kernel y las máquinas virtuales son creadas a través del dispositivo /dev/kvm por el comando "qemu-kvm" (versión de qemu modificada para KVM).

    QEMU (Quick EMUlator) es un emulador de procesadores y dispositivos de hardware que se utiliza como plataforma para crear y ejecutar máquinas virtuales. Utiliza traducción binaria dinámica (un algoritmo de traducción emula un set de instrucciones en otro) para lograr gran performance y portabilidad a nuevas arquitecturas de CPU.

    En este artículo se describe el proceso completo de creación de una máquina virtual Windows XP SP3 utilizando KVM en un host CentOS 6.2.