Oracle Grid Engine
Contenido
Introduccion
Apuntes sobre mi investigación de como montar un servicio de OGE, partiendo de la base de que ya tenemos un servicio SGE funcionando. Se trata de crear una plataforma en paralelo que finalmente haga el mismo servicio que hacía nuestro SGE.
El servicio de OGE trata de realizar trabajos de forma distribuida (DRM Distributed Resource Management) teniendo en cuenta nivel de ocupación de recursos. En nuestro caso, lo usamos para crear colas de trabajos distribuidas entre ciertos servidores de ejecución.
Referencias
Documentacion oficial de Oracle
Servidores y roles
En un cluster de SGE existen varios roles entre los servidores que van a realizar las tareas
- Master host: el servidor que gestiona al resto de servidores, es el que gestiona las colas
- Shadow Master: servidor master de reserva. Solo se activa cuando falla el master host
- Execution host: servidores que ejecutan las tareas.
- Administration host: Aplicaciones de operacion y administración sobre las colas de OGE. Por defecto la instalacion del master host hace que sea tambien un administration host.
- Submit host: Equipos que pueden lanzar y controlar tareas en las colas.
Instalación
Sistema de ficheros compartido
SGE se basa en tener compartido entre los diferentes hosts que van a ejecutar los trabajos las colas de ejecución. De hecho nosotros vamos a hacer la instalación de los binarios en un NFS que estará compartido entre todas las máquinas implicadas en la ejecución de tareas.
Hemos creado una exportación NFS (en mi ejemplo es /vol/pruebas/oge) que se podrá montar entre todas las máquinas que usaremos.
En cada máquina añadiremos una entrada en /etc/fstab para montar de forma automática este sistema de ficheros, algo como esto:
# NFS compartido de aplicacion de SGE <ip_filer>:/vol/pruebas/oge /opt/oge nfs rsize=32768,wsize=32768,hard,bg,tcp,intr,vers=3,noatime,nocto,nolock,nodiratime 0 0
Descarga de instalables
Para la descarga del instalable podemos acudir a la página de OGE en Oracle. Descargamos un zip en el que van incluidos todos los binarios para las diferentes plataformas. Este zip lo he descomprimido en /usr/src/oge
Preparando la instalación
Para la instalación sobre Linux de 64 bits he creado un directorio /opt/oge y deentro de este se descomprime, primero el fichero /usr/src/oge/oge-6_2u7-common.tar.gz y después el /usr/src/oge/oge-6_2u7-bin-linux24-x64.tar.gz. Con esto estaremos preparados para realizar la instalacion del SGE.
Instalacion de JDK
Nos va a hacer falta java para la instalación con consola, así que he descargado la version de 64bit de jdk desde la página de oracle y he modificado el /etc/bashrc de mi Centos para añadir la variable de entorno JAVA_HOME y añadir la ruta de los binarios de java al PATH. La instalación de JAVA la he hecho en /opt/java.
Instalación
En la primera pantalla se eligen los componentes y el metodo de instalación, rapida o personalizada. Nosotros elegimos personalizada
En la siguiente se pone la configuración principal, donde vamos a destacar que el Admin user es root, que el rango de Group ID va desde el 60000 hasta el 62999 (esta configuracion va relacionada con el numero de jobs concurrentes que se pueden ejecutar ¿?¿?)
La siguiente pantalla va de la configuración de JMX. En esta se especifica que el puerto JMX, dejamos por defecto el 6446, y tambien el path para un keystore en /var/sgeCA/port6444/default/private/keystore. La contraseña que hemos puesto al keystore es sistemas
La siguiente pantalla es la configuración de los spools. Destacamos que el directorio del spool qmaster es /opt/oge/default/spool/qmaster y que el directorio del Global execd spool es /opt/oge/default/spool. Tambien, elegimos que el metodo de spooling es berkeley db y que el directorio de esa DB es /opt/oge/default/spool/spooldb
La siguiente es para la configuración de los parámetros del certificado SSL.
En la siguiente configuración se eligen los servidores en los que se va a hacer instalación. En nuestro ejemplo, llegados a este punto, he añadido una nueva máquina a este manual, sge8lnx.
Nota: Para que funcione la instalación he tenido que generar una clave rsa en sge7lnx, que es desde donde lanzo la instalación, y he actualizado el authorized_keys de las dos máqiunas (incluida ella misma) con esa clave publica.
En la siguiente pantalla apareceran todas las tareas de la instalación y el estado en el que están.
Nota: En este punto me ha fallado la instalación. Lo que ha fallado es la instalacion de execution host en el sge8lnx, el segundo servidor.