Wednesday, September 07, 2011

Como vincular la librería Libvirt con Java

Ya que este es el punto de partida para empezar a desarrollar aplicaciones con herramientas de virtualización, me parece importante describir el proceso paso a paso para instalar la librería Libvirt y vincularla con Java. Estas instrucciones van dirigidas a sistemas operativos como debian o Ubuntu.
  1. Verificar si el procesador del equipo en el que trabajamos tiene hardware de soporte para virtualización. El hecho de no obtener salida alguna, indica que no hay soporte para esta característica, sin embargo, es posible trabajar con algunas aplicaciones pero con bajo rendimiento, se recomienda usar con propósitos de investigación pero nunca para correr servidores reales.
    sudo egrep '(vmx|svm)' /proc/cpuin
  2. Libvirt está escrita en C y se instala con el siguiente comando:
    sudo apt-get install libvirt-dev
  3. Para editar las características del paquete escribimos:
    apt-get source -d libvirt
    sudo apt-get build-dep libvirt
    dpkg-source -x libvirt*dsc
  4. Es necesario instalar Los siguientes paquetes adicionales:
    sudo apt-get install sun-java6-jdk libjna-java junit ant
    sudo update-alternatives --config java
  5. Para confirmar la versión de Java y apache Ant
    javac -version
    ant -version 
  6. Crear una carperta llamada source para guardar el paquete a descargar
    mkdir -p ~/source
    cd ~/source 
  7. Ahora es necesario indexar la librería livbirt para utilizarla en Java. El paquete de archivos para vincular dicha librería se pueden descargar aqui.
  8. Guárdelo en la carpeta source y extráigalo con la siguiente línea de comandos:
    tar xvfz libvirt-java-0.4.7_compiled.tar.gz 
  9. La carpeta "libvirt-java-0.4.7_compiled.tar.gz" provee un archivo precompilado .jar. A continuación ingresamos a la carpeta y construimos el archivo .jar
    cd libvirt-java-0.4.7_compiled.tar.gz
    ant build
  10. El archivo construido se copia en el directorio que contiene las librerías de Java
    sudo cp libvirt-java-0.4.7_compiled.jar /usr/share/java/
    sudo ln -s /usr/share/java/libvirt-java-0.4.7_compiled.jar /usr/share/java/libvirt.jar
    
  11. El CLASSPATH debe apuntar al directorio actual y el directorio que contiene los archivos jna.jar y libvirt.jar.
    export CLASSPATH=.:/usr/share/java/*

  12. La variable LD_LIBRARY_PATH debe apuntar al archivo libjnidispatch.so.
    export LD_LIBRARY_PATH=/usr/lib/jni/
  13. El test descrito a continuación debe trabajar en cualquier maquina sin que se haya instalado previamente algún hipervisor ya que Libvirt provee un hypervisor de prueba.
  14. En la carpeta libvirt-java-0.4.7_compiled vaya al directorio target/testclasses para correr el siguiente shell script:
    cd
    cd ~/libvirt-java-0.4.7_compiled/target/testclasses
    ./run_test.sh

Si libvirt está correctamente instalada, obtendremos una larga lista de salidas, si no, Java mostrará un mensaje de error.



Si tienes información adicional sobre este tema, tus comentarios o links de referencia son bienvenidos. 

No comments: