Archivo de la categoría: oVirt

Virtualizando gratuitamente con oVirt

OVirt-logo-

En esta entrada vamos a hablar de oVirt, que es y de que se compone.

Introducción

oVirt es una plataforma de virtualización open source por la cual podemos administrar por medio de una aplicación web nuestra infraestructura, actualmente en su comunidad oVirt podemos encontrar muchísima información acerca del estado del proyecto, además también Red Hat esta detrás de este proyecto dado que su producto de virtualización RHEV proviene de oVirt. Podríamos decir que es la versión open source que compite con VMware VSphere a nivel de soluciones de virtualización en datacenters. oVirt utiliza libvirt lo cual permite manejar diferentes maquinas virtuales corriendo en diferentes backed, incluyendo KVM, Xen y VirtualBox, sin embargo el foco principal de oVirt es KVM.

oVirt tiene una aplicación de administración muy completa y útil para los administradores de sistemas, pero también posee una interfaz de consola de texto muy similar a la de virsh por la cual podemos realizar las mismas tareas que hacemos por la web. Esta interface de administración nos da un panel central de configuración en la cual podemos manejar todo los elementos como son el almacenamiento, la red, recursos de las vm, sistema de reportes, aplicar perfiles a  usuarios para que puedan hacer determinadas tareas de administración, y por supuesto todo lo referente a la virtualización de nuestra infraestructura.

Ovirt 1

oVirt puede manejar multiples hosts, estos hosts que son distintos al que posee ovirt-manager se comunican por medio de https con xml-rpc a través de un agente instalado en el servidor – VDSMd (Virtual Desktops and Servers Manager daemon), este último se comunica con libvirt para tener el control de las maquinas virtuales. Por medio de VDSMd también configura la parte de networking (Vlans, MTU, gateways, y soporte para OpenStack Neutron, etc…).

La plataforma esta escrito en Java, con JBoss como servidor de aplicaciones y GWT como framework grafico. VSDMd esta escrito en python.

Arquitectura:

La arquitectura la podríamos definir de la siguiente manera:

Ovirt 2

Partiendo del modelo anterior a simple vista podemos indicar que  consta de tres partes, las cuales son:

  1. oVirt-engine el cual es usado para desplegar, monitorizar, mover, parar y crear imágenes de VM, así como configurar almacenamientos, redes, etc…
  2. Uno o más hosts (nodes), en donde se ejecutaran las maquinas virtuales (VM)
  3. Uno o más nodos Storage (almacenamiento), en donde estaran las imágenes ISO que corresponden a cada VM

Tambien se necesita un servicio de autenticación para manejar todo el sistema de administracion de usuarios para ovirt-engine, para eso se puede usar Active Directory, LDAP o IPA.

Los nodos son sistemas GNU/Linux con VDSM y libvirt instalados, también con otros paquetes extras para poder habilitar la virtualización de networking y otros servicios del sistema. Fedora 17 fue la primera versión que soporto oVirt para instalar ovirt-engine o la ISO personalizada llamada oVirt-node que contiene lo justo y necesario para la virtualización del sistema como nodo.

Los nodos de Storage pueden ser block o file storages, también pueden ser locales o remotos, accediendo por NFS. También hay que destacar el uso de Gluster para storage compartidos, también tenemos iscis, FCoE. Los nodos de storage son agrupados en pools de storage para poder brindar alta disponibilidad y redundancia, para mas información podemos ver VDSM Storage Terminology, que básicamente resume el concepto de lo que son los Storage Pool, Storage Domain, Image, Volume/Snapshot.

Podríamos desglosar un poco mas el modelo de arquitectura en la siguiente imagen:

Ovirt Architecture

Sus componentes principales son:

  1. Engine (ovirt-engine) – Maneja los host oVirt, y permite que los administradores creen y deployen nuevas
  2. Admin Portal – Aplicación web que permite realizar diversas tareas avanzadas de administración.
  3. User Portal – Una aplicación web mas simple para determinados casos de administración mas básicos.
  4. REST API – Una API que permite realizar diversas tareas de virtualización, se puede usar desde la linea de comandos o por medio del SDK de python
  5. CLI/SDK – La interface CLI y SDK permiten un método de comunicación hacia el engine por medio de scritps.
  6. Database – La base de datos Postgres es usada por el engine para poder proveer de persistencia para cada configuración que ovirt realiza con cada componente.
  7. Host agent (VDSM) – El engine oVirt se comunica con VSDSM para pedirle realizar determinadas acciones sobre las VMs
  8. Guest Agent – El agente que corre dentro de cada vm provee información acerca de los recursos a oVirt engine. La comunicación se realiza a través de una conexión serial virtualizada.
  9. AD/IPA – Servicios de Directorio. Engine los utiliza para recibir información correspondientes de los usuarios y grupos así puede determinar los mecanimos de permisos.
  10. DWH (Data Warehouse) – El componente data warehouse realiza diversas tareas ETL en la data extraída de la base usando Talend , y así inserta esta en el historial de la base.
  11. Reports Engine Generación de reportes basado en la informacion historica de la DB, de diversos tipo como el uso de recursos,etc, los reportes que usa son Jasper
  12. SPICE client – Para el de acceso de los usuarios a las VMs.

Otro gráfico con el cual podríamos intentar clarificar  un poco mas

Ovirt Engine-arch

Características:

  • Alta Disponibilidad : Reiniciar los Guests VMs de un host con errores automáticamente a otro host
  • Migración en caliente de VMs: Mover las VM que esta corriendo en otro host sin donwtime.
  • Migración en caliente de Storage: Poder mover una VMs también con su disco de un storage domain a otro.
  • Scheduler de Sistema: Balanceo continuo de los recursos de las VM según políticas o uso del host.
  • Power Saver: Concentrar las maquinas virtuales en la menor cantidad de servidores durante las horas valle.
  • Administrador de Mantenimiento: No hay tiempo de inactividad en las máquinas virtuales durante las ventanas de mantenimiento programadas cuando por ejemplo se hace parcheo del Hypervisor.
  • Administrador de Imagenes: Creación de VM basadas en plantillas, thin provisioning y snapshosts. Posibilidad de hacer en caliente
  • Monitorización y reportes: Para cada item del sistema – VM guest, hosts, networking, storage,etc
  • OVF Importar/Exportar: Importar y exportar VM y plantillas usando OVF files.
  • V2V: Convertir VMs desde Vmware y RHEL/Xen a oVirt
  • Storage: Soporte para iSCSI, FCoE, NFS, y Gluster para storage compartidos.

Instalación:

Ahora que ya tenemos un pantallazo general del producto vamos a ver un poco los requerimientos de instalación y los pasos a seguir para una instalación básica y también algunas capturas de las pantallas mas comunes.

Vamos a ver una serie de 7 pasos para instalar tanto el oVirt-engine y el ovirt-node en el mismo equipo, lo cual no es lo mas recomendado pero para probarlo sirve , dado que lo ideal es instalarlo todo por separado, en un nodo el ovirt-engine y en otro utilizar la iso de ovirt-node o instalar vdsm y otros paquetes para transformar esa distro en un nodo ovirt. Esta el camino mas difícil que es construir desde las fuentes el oVirt-engine y el oVirt-node

Requerimientos

  • Hardware4 GB Memoria y 20 GB de espacio en disco duro
  • OpcionalNetwork storage
  • SoftwareFedora 19 or Red Hat Enterprise Linux 6.4 (o similar)
  • Navegadores recomendados: Mozilla Firefox 17 o  Internet Explorer 9, o versiones posteriores

Los siguientes pasos se han realizado sobre Fedora 19, utilizando el repositorio de Ovirt al no encontrar la versión 3.3  disponible para Fedora.

  1. Agregar el repositorio oficial de oVirt para Fedora.
    sudo yum localinstall http://ovirt.org/releases/ovirt-release-fedora.noarch.rpm
    Esto agregara el repositorio de oVirt a tu equipo permitiendo tener los ultimos paquets de oVirt
    También esto habilitara el repositorio virt-preview en tu equipo dándote acceso a las versiones ultimas de libvirt y KVM
  2. Instalar oVirt Engine.
    sudo yum install -y ovirt-engine
  3. Opcionalmente se puede instalar el paquete All-In-One plugin si se desea tener el host de VMs dentro del Engine Host
    sudo yum install -y ovirt-engine-setup-plugin-allinone
  4. Set up oVirt Engine.
    sudo engine-setup
  5. Seguir los pasos que van saliendo en pantalla para configurar e instalar el engine.
  6. Una vez terminada satisfactoriamente la instalación de oVirt Engine, tendrá en pantalla las instrucciones para poder acceder al panel de administración web de oVirt.
  7. En el caso que instalamos solo el oVirt-node, hay que seguir otros pasos para instalar los oVirt Host

  Una pantalla de como quedaría nuestro portal recién instalado, en este caso hay un par de cosas de mas.

Ovirt-Admin-portal-label

Más información:

Deja un comentario

Archivado bajo oVirt, Virtualización