viernes, 21 de noviembre de 2014

CÓMO AMPLIAR EL DISCO DE MÁQUINAS VIRTUALES CON KVM

Cuando hacemos pruebas con máquinas virtuales, es posible que tras un tiempo haga falta ampliar el espacio en disco, o bien porque lo hemos dimensionado mal, o bien porque queremos utilizar la máquina para otro propósito. Si utilizamos KVM este procedimiento es muy sencillo. El primer paso es apagar la máquina virtual y después ejecutar este comando:

sudo qemu-img resize nombre-imagen.qcow2 +15G

En este caso estamos ampliando la imagen en 15 GB. En este momento no se soportan reducciones de espacio, tan solo ampliaciones.

Una vez ampliada la imagen, hay que ampliar el sistema de ficheros de la máquina virtual. El procedimiento más sencillo es utilizar GParted. GParted es una herramienta gráfica de gestión de particiones que proporciona una ISO live que se puede utilizar para arrancar la máquina correspondiente.La ISO se puede descargar desde este enlace.

Tan solo hay que configurar la máquina virtual para que arranque desde la ISO de GParted, y una vez arrancado el sistema, podemos hacer el redimensionamiento del sistema de ficheros.

jueves, 6 de noviembre de 2014

PRIMEROS PASOS CON JBOSS FUSE

JBoss Fuse es una de las soluciones de integración proporcionadas por Red Hat. Incluye tres partes fundamentales:
  • Apache CXF para web services
  • Apache Camel para patrones de integración
  • JBoss A-MQ para mensajería
Todo ello corriendo en contenedores OSGi, Apache Karaf.
En el siguiente tutorial vamos a explicar brevemente cómo realizar la instalación y arrancar JBoss Fuse para empezar a trabajar, tanto en modo standalone como utilizando Fabric.

1. DESCARGA DEL PRODUCTO
Todos los productos de Red Hat JBoss Middleware están disponibles para descarga de forma gratuita en JBoss Developer. Concretamente, el software de JBoss Fuse está disponible aquí.

2. INSTALACIÓN
La instalación es tan sencilla como descomprimir el fichero que acabamos de descargar.

3. CONFIGURACIÓN INICIAL
Antes de arrancar el servicio, hay que hacer unos pequeños cambios de configuración.

El primer paso es establecer la variable de entorno JAVA_HOME si no está establecida ya. En Linux, se puede hacer añadiendo la siguiente línea a $HOME/.bash_profile:

export JAVA_HOME=/usr/lib/jvm/java-openjdk

Tras editar el fichero, hay que ejecutar lo siguiente para que se cojan los cambios:

source $HOME/.bash_profile

Por último, hay que configurar usuarios para la consola de administración. Para ello, hay que editar el fichero $FUSE_HOME/etc/users.properties. El formato de estas entradas es el siguiente: usuario=password[,rol1][,rol2]
Para este ejemplo sencillo vamos a utilizar la opción por defecto:

admin=admin,admin

4. ARRANQUE DEL SERVICIO
Después de realizar los cambios en configuración, está todo listo para arrancar JBoss Fuse por primera vez.
Para ello, vamos al directorio $FUSE_HOME/bin y ejecutamos lo siguiente:

./fuse


Por defecto se arranca un contenedor OSGi standalone con una consola de administración. Si desde un navegador accedemos a la url http://localhost:8181 veremos la consola de administración Hawtio.



Podemos acceder a la consola con las credenciales que hemos configurado anteriormente (admin/admin).



Con este contenedor ya podemos empezar a trabajar. Sin embargo, como parte de esta introducción también vamos a crear un Fabric.
Un Fabric consiste en dos tipos de contenedores:

Fabric Server
Un Fabric Server tiene un status especial; es el responsable de mantener una réplica del registro de Fabric. En cada uno de los Fabric servers se instala un servicio de registro. Este servicio, basado en Apache Zookeper, mantiene una réplica de la base de datos de registros y proporciona un Zookeper Server, a cuyos agentes se pueden conectar para recibir datos del registro.  

Fabric Container Un Fabric Container conoce la localización de todos los Fabric Servers, y puede recibir datos de registro de cualquier Fabric Server. Hay un Fabric Agent en cada Fabric Container. Este agente monitoriza de forma activa el registro de Fabric, y cuando se hace cualquier modificación relevante, inmediatamente actualiza el contenedor para mantenerlo consistente con las opciones del registro.

Estos dos tipos de contenedores forman un Fabric Ensemble. Un Fabric Ensemble es una colección de Fabric Servers y Containers que mantienen de forma colectiva el estado del registro de Fabric. El Fabric Ensemble implementa una base de datos replicada y utiliza un sistema de votación basado en quorum para asegurar que los datos del registro permanecen consistentes en todos los contenedores. Para evitar splits debidos a problemas de red en un sistema basado en quorum, es imprescindible que el número de Fabric Servers sea un número impar.
El número de Fabric Servers es típicamente 1, 3 ó 5. En sistemas en producción, el número tiene que ser al menos 3, instalados en máquinas diferentes para proporcionar tolerancia a fallos.
Para añadir Fabric a nuestro ejemplo, tenemos que ejecutar lo siguiente desde la consola de Fuse:

fabric:create --zookeeper-password=admin --wait-for-provisioning


Una vez creado el Fabric, tendremos una nueva vista en la consola de administración, en la cual vemos todos los contenedores existentes, y que nos permite crear nuevos contenedores:


En siguientes tutoriales iremos mostrando diferentes ejemplos de aplicaciones que podemos crear utilizando JBoss Fuse.