# OpenQRM

openQRM es una plataforma de código abierto de nueva generación para la administración de centros de datos. Su arquitectura totalmente conectable se enfoca en el despliegue automático, rápido y basado en dispositivos, monitoreo, alta disponibilidad, computación en la nube, copia de seguridad y especialmente en apoyar y conformar tecnologías de virtualización múltiple. openQRM es la única solución del mercado que unifica estos servicios en una única aplicación lo que reduce de forma considerable los costes de estas infraestructuras porque integra todos los elementos funcionales necesarios para flexibilizar su almacenamiento, medir los consumos y proteger la integridad del sistema con protocolos de alta disponibilidad. La plataforma de openQRM integra en una única consola de administración la gestión tanto de las máquinas físicas cómo de las virtuales y permite automatizar y medir la actividad en los centros de datos de una forma cómoda y segura. Provee una API bien definida la cual puede ser usada para integrar herramientas de terceros como complementos (plugins) adicionales.
Activa Impulso Tecnológico es partner de openQRM para España y América latina. Y, en la actualidad, es la única empresa española que distribuye, configura e implanta openQRM.

## Características de openQRM

* openQRM permite la separación completa de hardware (servidores físicos y máquinas virtuales) y de software (servidor – imágenes).
* openQRM sirve como soporte de diferentes tecnologías de virtualización (VMware, KVM o Linux VServer) que se integran y gestionan desde el panel de administración de openQRM.
* Permite la migración física-virtual entre los distintos elementos del sistema de forma sencilla.
* Integra Nagios un software que supervisa de forma automática todos los sistemas y servicios del parque de servidores y genera automáticamente mapas de toda la red que simplifican y optimizan su gestión.
* openQRM puede ser remplazado fácilmente sin necesidad de adaptar o reconfigurar el servidor.

## Pasos de Configuración para Computación en la nube

* El servidor es ordenado.
* El servidor es distribuido.
* El servidor tuvo una instalación física.
* El servidor es conectado a la red.
* El sistema operativo es instalado en los discos duros.
* Al servidor se le instalan sus aplicaciones.
* El servidor recibe su configuración final.
* El servidor recibe su configuración de monitoreo.
* El servidor recibe su configuración de respaldo.

## Escenarios de uso

* Alta disponibilidad: provee tolerancia a fallos y conmutación de errores para todas las exposiciones.
* Virtualización de servidores: convierte servidores físicos en Máquinas Virtuales.
* Virtualización de almacenamiento: convierte servidores estándar en servidores de almacenamiento.
* Consolidación de servidores: migra múltiples servidores en un solo host físico, provisto de desempeño y aislamiento de fallas en las fronteras de la máquina virtual.
* Monitoreo de la red: monitoreo en tiempo real de computadores, dispositivos, servidor y aplicaciones de la red entera.
* Independencia del hardware: permite a aplicaciones y sistemas operativos antiguos explotar las capacidades de hardware actual.
* Independencia de los fabricantes: no se necesita tener un hardware o fabricante específico.
* Múltiples configuraciones de sistemas operativos: corre múltiples sistemas operativos simultáneamente, para propósitos de desarrollo o pruebas.
* Desarrollo de Kernel: Prueba y depura modificaciones de Kernel en una máquina virtual.

## Soporte para Sistemas Operativos

openQRM corre en distribuciones Linux de casi cualquier tipo. Las siguientes distribuciones están soportadas:
* Debian GNU/Linux
* Ubuntu Linux
* CentOS
* SuSE/SLES
* Fedora 9
El soporte para el cliente de openQRM está disponible para cada vez más sistemas operativos. En la actualidad el soporte más madurado disponible es para Linux.
Otros puertos para sistemas operativos, incluyendo Windows y Solaris, están cerca de completarse.

## Soporte de Hardware

openQRM actualmente corre en la arquitectura x86 y también soporta plataformas x86/64 tales como el Intel EM64T y el AMD Opteron, los cuales pueden direccionar hasta 1 TB de memoria física, lo cual no es realmente más necesitado dada la reescritura en V4.X
openQRM descarga todo el soporte para problemas de hardware al sistema operativo que corre el servidor openQRM. Este enfoque provee compatibilidad con la mayoría de los dispositivos de hardware soportados por Linux.

## Fundamentos de openQRM

Arquitectura de openQRM
La administración de un data center con todos sus componentes es una tarea seria la cual (como los expertos afirman) está rápidamente sobrecargando las capacidades de una sola aplicación. La automatización y alta disponibilidad solo puede trabajar bien si todos los componentes están bien integrados y cooperan de una manera definida. El resultado es aún más complejidad.
Para resolver este problema openQRM está basado en una arquitectura estrictamente interconectada.
El servidor openQRM está separado en la “base” y los “complementos” y actualmente la base más o menos solo administra los complementos. La base también provee el framework con el que los complementos interactúen (por ejemplo recursos, imagen, almacenamiento,… objetos) pero todas estas características de openQRM están provistas por sus complementos.
Esto trae ciertos beneficios:
* Desarrollo rápido dado que los desarrolladores pueden trabajar en paralelo sobre diferentes complementos
* Robustez mejorada dado lo robusto de la base, la cual no cambia mucho ni con mucha frecuencia.
* Fácil integración con componentes de terceros a través de una API de complementos bien definida.
* Errores en un complemento no dañan al sistema base.
* Menor complejidad debido a que el complemento administra solo su propio ambiente.
* Menos código en el motor de base: menos código significa menos errores.
* Mejor escalabilidad debido a que sus complementos pueden ser habilitados/inhabilitados sobre la marcha.
* Los complementos son fáciles de desarrollar gracias al framework de base provisto.

## Los conceptos detrás de openQRM

El principal concepto de openQRM está en separar los componentes de los data centers en módulos y entonces administrar “combinaciones de módulos”. Si esto suena confuso será más claro más adelante.
Componentes de un data center común:
* Hardware físico
* Sistemas de operación
* Aplicaciones / Servicios
* Switches de Red
* SLAs (Acuerdos del Nivel de Servicios, Service Level Agreements)
* Sistemas de Almacenamiento
* Hardware Virtual y de Virtualización
* Monitoreo
* Alta disponibilidad
* Nuevas instalaciones y Despliegue
* Planificación de recursos y aprovisionamiento
* Automatización
Y un poco más
Administrar “todo” con una única aplicación suena a una tarea difícil pero con la arquitectura complementable de openQRM, cada componente está simplemente enganchado en la API del servidor openQRM para interactuar con el framework principal.
openQRM se enfoca en la administración de ambientes de servidor Linux, así que se presentará a continuación una visión más detallada de Linux en sí mismo.
¿Qué es un sistema Linux?
* Un archivo Kernel (vmlinuz)
* Un archivo Ramdisk (initrd.img)
* Archivos de módulos del Kernel (/lib/modules/[versión-kernel]/)
* Una raíz del sistema de archivos (/)
Así que básicamente un sistema Linux es “tan sólo” un puñado de archivos.
Por lo tanto, cuando los servidores Linux son “tan sólo” un puñado de archivos, se debe tratarlos en la misma forma que a los archivos.
El mecanismo de rápido desarrollo de openQRM está por lo tanto concentrado en la “creación de imágenes de servidor” (empacar servidores en archivos) y la integración de sistemas de almacenamiento (usando tecnologías modernas de almacenamiento como clonación rápida /fotografiado para gestionar archivos).
openQRM también abstrae el despliegue para permitir el aprovisionamiento de los servidores capturados (imágenes a disposición física) o el hardware virtual de una manera genérica.

## Características de openQRM

Completa separación del “hardware” (servidores físicos y máquinas virtuales) hasta “software” (imágenes de servidor)
Con openQRM el hardware solo es usado como un “recurso de cómputo”, el cual puede ser reemplazado fácilmente sin necesidad de adaptar o reconfigurar del todo al servidor (o imagen de servidor).
Soporte para diferentes tecnologías de virtualización
En la versión 4.1 se agregó KVM a las tecnologías de virtualización soportadas, de tal manera que ahora las máquinas virtuales VMWare, Xen, KVM y Linux-VServer pueden ser administradas transparentemente a través de openQRM. openQRM soporta sin problemas migraciones P2V (físico a virtual), V2P (virtual a físico) y V2V (virtual a virtual). Esto significa que los equipos servidores no solo pueden mudarse fácilmente desde físico a virtual (y de regreso) sino que también pueden ser migrados desde una tecnología de virtualización A hasta una tecnología de virtualización B sin complicación alguna.
Configuración total automática (un clic) para Nagios para monitorear todos los sistemas y servicios
Nagios es conocido por ser una gran herramienta de monitoreo para sistemas y servicios, pero es bastante difícil de configurar. En openQRM 4.1 se desarrolló una configuración completamente automática de Nagios vía “nmap2nagios-ng” el cual mapea la red openQRM entera y crea (o actualiza) la configuración del Nagios por él (todos los sistemas, todos los servicios disponibles).
Desplegados algunos nuevos servidores con un simple clic de ratón, se les tendrá en el monitor de Nagios.
Alta disponibilidad: conmutación por error “N a 1”
Se puede obtener, por ejemplo, 10 servidores HA personalizados, los cuales normalmente necesitarían otros 10 sistemas suplentes. Con openQRM se les puede tener a todos tan solo usando 1 (o más) sistemas suplentes. Esto puede ahorrarle a los dueños de la red 9 servidores subutilizados, lo cual es perfecto para tener un enfoque de tecnologías de información verdes.
Se pueden ahorrar incluso TODOS los servidores suplentes y tan solo traer una máquina virtual como suplente. En el caso de presentarse problemas, los componentes de HA conmutarán los errores del físico al virtual. Se puede también conmutar los errores desde una tecnología de virtualización A hacia una tecnología B (por ejemplo desde una máquina virtual KVM a una VMWare).
Imágenes de servidor listas a través del complemento image-shelf (almacén de imágenes)
Para comenzar rápido y fácil, openQRM ahora provee imágenes de servidor listas y con conocimiento de trabajo para Debian, Ubuntu, CentOS y openSuse. Por lo tanto se añadió un complemento image-shelf el cual permite al administrador de sistema recoger servidores fácilmente a través de una interfaz web. Los servidores tomados de image-shelf públicos o personalizados pueden ser usados, lo que significa que usted puede o bien recoger imágenes de servidor desde un proveedor de image-shelf público o bien proveer su propio servidor image-shelf con imágenes personalizadas.
Administración de almacenamiento integrado
A la pregunta ¿qué es Linux? se responde que se trata de un kernel, un initrd, algunos módulos y una raíz del sistema de archivos. Todos aquellos son “tan solo” archivos, así que se debe tratarlos como archivos poniéndolos y administrándolos en servidores de almacenamiento modernos. Entonces puede también ser de beneficio el volumen lógico de administración (por ejemplo LVM2, NetApp flexiclone, etc.) hasta imágenes de servidor existentes de tipo ultra fast clone a través de copiado (snap-shotting). Así que en caso de que se quiera desplegar 10 nuevos servidores, openQRM creará 10 copias de una imagen de servidor existente de trabajo conocido y desplegará esos clones a los recursos. Esto toma poco tiempo.
Otro beneficio de este concepto es que hay un solo sitio para respaldar / restaurar, allí donde deberían estar, en el servidor de almacenamiento mismo, así que se puede usar las características de clonación / copiado de nuevo para crear respaldos en caliente desde los servidores sin interrupción de servicio.
openQRM 4.1 soporta los siguiente tipos de servidores de almacenamiento:
* NFS
* Iscsi
* Aoe/Coraid
* NetApp
* Disco local (transfiriendo imágenes de servidor al disco local).
* LVM-Nfs (NFS sobre LVM2 para permitir clonación rápida).
* LVM-Isci (Isci sobre LVM2 para permitir clonación rápida).
* LVM-Aoe (Aoe sobre LVM2 para permitir clonación rápida).

## Soporte para todos los diferentes tipos de despliegue

El despliegue en openQRM es completamente transparente y conectable. En detalle esto significa que se tiene el paso de “montado del sistema de archivos raíz” como conectable, así se puede básicamente ir arrancando desde cualquier dispositivo de almacenamiento que se desee añadiendo un pequeño complemento para este, por ejemplo uno podría escribir un complemento para “sistema de archivos gmail”, el cual se encargue de montar un sistema de archivos raíz para servidores a través de gmailfs, solo porque esto se puede hacer.
Otra ventaja de openQRM está en que este puede luego transformar imágenes de servidor desde un tipo A hacia un tipo B, por ejemplo se puede desplegar un aparato el cual obtendrá una imagen de servidor predefinida desde un servidor NFS y lo vacía en su disco local, luego este solo continuará el arranque desde su disco local. Se puede también grabar una imagen desde un disco local y, por ejemplo, transferirlo a un Iscsi-Lun y así sucesivamente.
Dado que el despliegue es tan genérico en openQRM 4.x, este soporta básicamente cualquier combinación de transferencias y transformaciones de imágenes. Si se trata de un sistema de archivos raíz, se podrá bootear, bien sea en hardware real o dentro de alguna máquina virtual, lo cual decidirá el usuario.

## Soporte de distribución

openQRM 4.x viene con un sólido soporte para diferentes distribuciones de Linux como Debian, Ubuntu, CentOS y openSUSE. Un solo servidor openQRM puede manejar el aprovisionamiento de servidores desde diferentes distribuciones Linux sin problemas.

## Otras características

Hay algunas otras características en openQRM 4.x por ejemplo, es pequeño, fácil de instalar, es bastante amigable para los desarrolladores, es rápido de compilar, cuenta con un sistema de empaquetado integrado para compilar rpms y/o paquetes deb, tiene soporte para múltiples tipos de bases de datos por ejemplo Mysql, Oracle, DB2 y Postgres. El equipo de desarrolladores de openQRM está continuamente trabajando en el mejoramiento de este software.