Monthly Archives: November 2013

FUDECyT y Comunidad Fedora dieron una conferencia sobre software libre

Voy arrancar este resumen citando la nota que salio en un diario digital de la ciudad, ademas del impreso:

Fue una charla informativa sobre la Comunidad Fedora, el software libre y la distribución de GNU/Linux. El disertante fue César Horacio “Rino” Rondán, embajador en Argentina de Fedora.

Fedora

La Fundación FUDECyT y la Comunidad Fedora brindaron en nuestra ciudad una conferencia gratuita y abierta al público sobre la Comunidad Fedora, el software libre y la distribución de GNU/Linux.

El disertante fue César Horacio “Rino” Rondán, embajador en argentina de Fedora, quien explicó qué es la Comunidad Fedora, cómo se integra, sus novedades en la distribución y los beneficios de la expansión del uso del software libre, entre otros temas.

Durante el evento, los participantes tuvieron la oportunidad de usar la distribución, y experimentar los beneficios de la virtualización sobre el entorno Fedora, en una práctica informativa.

“Estamos muy contentos de poder acercar el Proyecto Fedora y el software libre a la comunidad de Campana. Es una experiencia diferente que suma valor y conocimientos sobre las tecnologías y software hoy usados en el mundo”, señaló Rondán tras la conferencia que brindó en la sede principal de la Fundación FUDECyT (Luis Costa 689).

Un resumen personal:

Durante el evento se dieron primero dos charlas introductorias, una de ellas era Comunidad Fedora, en donde se explico que es la Comunidad, como formar parte de ella y todo lo referido a las tareas que uno puede realizar. Luego se hablo en otra charla sobre Fedora 19 y lo que se viene en Fedora 20, pasando por cada feature y distintas caracteristicas de cada release.
Para terminar la charla se hablo un poco sobre virtualizacion en Fedora, se mencionaron conceptos basicos sobre los distintos tipos de virtualizacion y herramientas que hay en la distro. Luego como parte de un taller se hizo una instalacion de Fedora 19 y se vio como se utiliza el virt-manager. Los presentes se pudieron llevar un resumen bastante amplio acerca de como funciona la Comunidad y la distro, se les entrego dvd, calcos y pins junto con el certificado de asistencia.

oVirt en Fedora

oVirt en Fedora

En esta nota vamos a introducirnos acerca de que es Ovirt y mencionar los elementos que la componen. Para eso primero vamas a ver un pantallazo general acerca de lo que es Ovirt.

Comenzemos con un breve resumen:

oVirt es una plataforma de virtualizacion open source por la cual podemos administrar por medio de una aplicación web nuestra infraestructura, actualmente en su comunidad oVirt[1] podemos encontrar muchisima informacion acerca del estado del proyecto, ademas tambien Red Hat esta detras de este proyecto dado que su producto de virtualizacion RHEV proviene de oVirt. Podriamos decir que es la version open source que compite con VMware VSphere a nivel de soluciones de virtualizacion en datacenters. OVirt utiliza libvirt lo cual permite manejar diferentes maquinas virtuales corriendo en diferentes backed, incluyendo KVM,Xen y VirtualBox[2], sin embargo el foco principal de oVirt es KVM.
OVirt tiene una aplicación de administracion muy sofisticada muy util para los administradores de sistemas, pero tambien 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 administracion nos da un panel central de configuracion en la cual podemos manejar todo el storage,red , recursos de las vm, sistema de reportes, manejo de roles de administracion para determinados usuarios en donde se le aplica que perfil usa para que pueda hacer determinadas tareas de administracion u solo un uso basico, y por supuesto todo lo referente a la virtualizacion de nuestra infraestructura.

oVirt puede manejar multiples hosts, estos host servers diferentes del nodo que se instala el producto ovirt-manager se comunican por medio de https con xml-rpc por medio de un agente instalado en el servidor – VDSMd (Virtual Desktops and Servers Manager daemon), este ultimo se comunica con libvirt para tener el control de las maquinas virtuales. Por medio de VDSMd tambien configura la parte de networking ( Vlans, MTU , multiples gateways, y soporte para OpenStack Neutron,entre otras).
OVirt esta escrito en Java, con JBoss como servidor de aplicaciones y GWT como framework grafico. VSDMd esta escrito en python.

Arquitectura:

La arquitectura de oVirt[7] en un aspecto general la podriamos definir de la siguiente manera:

Partiendo del modelo anterior una vista rapida y estandar de oVirt consta de tres partes primeramente:

ovirt-engine el cual es usado para deployar, monitorear, mover,parar y crear imagenes de VM, configurar storate, redes, etc.
Uno o moas hosts (nodes), en donde correran las maquinas virtuales (VM)
Uno o mas nodos Storage, en donde estaran las imagenes ISo que corresponden a cada VM

Tambien se necesita un servicio de autenticacion para manejar todo el sistema de administracion de usuarios para ovirt-engine, para eso se puede usar Active Directory, LDAP, IPA.
Los nodos son sistemas GNU/Linux con VDSM y libvirt instalados, tambien con otros paquetes extras para poder habilitar la virtualizacion de networking y otros servicios del sistema. Fedora 17 fue la primera version que soporto oVirt para instalar ovirt-engine o la iso personalizada llamada oVirt-node que contiene basicamente lo justo y necesario para la virtualizacion del sistema como nodo.
Los nodos de Storage pueden ser block o file storages, tambien pueden ser locales o remotos, accedios por NFS tambien. Otro feature imporante es el uso de Gluster para storage compartidos, tambien tenemos iscis, FCoE. Los nodos de storage son agrupados en pools de storage para poder brindar alta disponibilidad y redundancia, para mas informacion podemos ver VDSM Storage Terminology[8], que basicamente resume el concetpo de lo que son los Storage Pool, Storage Domain, Image, Volume/Snapshot.

Podriamos desglozar un poco mas el modelo de arquitectura en la siguiente imagen:

Sus componentes principales son:
1. Engine (ovirt-engine) – Maneja los host oVirt, y permite que los administradores creen y deployen nuevas VMs.
2. Admin Portal – Aplicacion web que permite realizar diversas tareas avanzadas de administracion.
3. User Portal – Una aplicación web mas simple para determinados casos de administracion mas basicos.
4. REST API – Una API que permite realizar diversas tareas de virtualizacion, se puede usar desde la linea de compandos o por medio del SDK de python
5. CLI/SDK – La interface CLI y SDK permiten un metodo 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 configuracion 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 informacion acerca de los recursos a oVirt engine. La comunicación se realiza atraves de una conecion serial virtualizada.
9. AD/IPA – Servicios de Directorio. Engine los utiliza para recibir informacion correspondientes de los usuarios y grupos asi puede determinar los mecanimos de permisos.
10. DWH (Data Warehouse) – El compontente data warehouse realiza diversas tareas ETL en la data extraida de la base usando Talend , y asi inserta esta en el historial de la base.
11. Reports Engine – Gneracion 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 – El memto de accceso de os usuarios a las VMs.

Otro grafico que podriamos poner para redondear un poco mas , asi igual recomiendo mirar la documentacion oficial para ahondar mas a fondo.

Versiones de oVirt y features:

oVirt actualmente en Fedora se encuentra en la version 3.2 para Fedora 20[3] pero en el proyecto ya tenemos la version 3.3 como estable[4]. Son muchisimas las caracteristicas que posee ovirt[5,6], pero podriamos mencionar algunas mas importantes.

Alta Disponibilidad : Reiniciar los Guests VMs de un host con errores automaticamente a otro host
Migracion en caliente de VMs: Mover las VM que esta corriendo en otro host sin donwtime.
Migracion en caliente de Storage: Poder mover una VMs tambien con su disco de un storage domain a otro.
Scheduler de Sistema: Balanceo continuo de los recursos de las VM según politicas o uso del host.
Power Saver: Concentrar las maquinas virtuales en la menor cantidad de servidores durante las horas no pico
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: Creacio de VM basadas en plantillas, thin provisioning y snapshosts. Posibilidad de hacer en caliente
Monitoreo 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.

Instalacion:

Ahora que ya vimos un patanllazo general del producto vamos a ver un poco los requirimientos de instalacion y los pasos a seguir para una instalacion basica y tambien algunas capturas de las pantallas mas comunes.

Vamos a ver una serie de 7 pasos para insalar tanto el oVirt-engine y el ovirt-node[9] 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 dificil que es buildear desde las fuentes el oVirt-engine[10] y el oVirt-node[11]

Requerimientos de Hardware
4 GB Memoria
20 GB disk space
Opcional
Network storage
Software
Fedora 19 or Red Hat Enterprise Linux 6.4 (o similar)
Navegadores recomendados
Mozilla Firefox 17 or later
Internet Explorer 9 or later

Los siguientes pasos estan para Fedora 19, pero se utiliza el repo de ovirt porque la version 3.3 no esta disponible para Fedora, recien en Fedora 20 esta la 3.2.
Fedora 19
0. 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
Tambien esto habilitara el repositorio virt-preview en tu equipo dandote acceso a las versiones ultimas de libvirt y KVM
1. Instalar oVirt Engine.
sudo yum install -y ovirt-engine
2. 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
3. Set up oVirt Engine.
sudo engine-setup
4. Seguir los pasos que van saliendo en patanlla para configurar e instalar el engine.
5. Una vez terminada satifactoriamente la instalacion de oVirt Engine, tendra en pantalla las instrucciones para poder acceder al panel de administracion web de oVirt
6. ¿Eso fue todo?, querian algo mas complicado ??, ya se encuentra todo instalado.
7. En el caso que instalamos solo el oVirt-node, hay que seguir otros pasos para instalar los oVirt Host[12]

Una pantalla de como quedaria nuestro portal recien instalado, en este caso hay un par de cosas mas.

Para la proxima entrega vamos a ver como instalarlo de forma separa paso a paso mostrando cada pantalla.
Les dejo estos slides[13] que explican mas en profundidad como funciona todo.

Referencias:
[1] http://www.ovirt.org/Community
[2] http://libvirt.org/drvvbox.html
[3] https://fedoraproject.org/wiki/Features/oVirtEngine_3.2
[4] http://resources.ovirt.org/releases/
[5] http://www.ovirt.org/OVirt_3.2_release-management#Features
[6] http://www.ovirt.org/OVirt_3.3_release-management#Features
[7] http://www.ovirt.org/Architecture
[8] http://www.ovirt.org/Vdsm_Storage_Terminology
[9] http://resources.ovirt.org/releases/3.3/iso/ovirt-node-iso-3.0.1-1.0.2.vdsm.fc19.iso
[10] http://www.ovirt.org/Building_oVirt_engine
[11] http://www.ovirt.org/Node_Building
[12] http://www.ovirt.org/Quick_Start_Guide#Install_Hosts
[13] http://www.ovirt.org/OVirt_Slide_Decks