Diferencia entre revisiones de «Oracle Grid Engine»

De Ardemans Wiki
Saltar a: navegación, buscar
(Instalación)
 
(6 revisiones intermedias por el mismo usuario no mostrado)
Línea 18: Línea 18:
  
 
= Instalación =
 
= 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:
 +
 +
<pre>
 +
# 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
 +
</pre>
 +
  
 
== Descarga de instalables ==
 
== Descarga de instalables ==
Línea 23: Línea 36:
  
 
== Preparando la instalación ==
 
== 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.
+
Para la instalación sobre Linux de 64 bits se usará el directorio en el que hemos montado el export NFS '''/opt/oge''' y dentro 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 ==
 
== 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.
 
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 ==  
+
== Instalación con GUI ==  
  
 
En la primera pantalla se eligen los componentes y el metodo de instalación, rapida o personalizada. Nosotros elegimos personalizada
 
En la primera pantalla se eligen los componentes y el metodo de instalación, rapida o personalizada. Nosotros elegimos personalizada
 +
 +
[[Archivo:02 - instalacion - tip de instalacion.png]]
  
 
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 ¿?¿?)
 
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 ¿?¿?)
 +
 +
[[Archivo:03 - instalacion - configuracion principal.png]]
  
 
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 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
 +
 +
[[Archivo:04 - instalacion - configuracion jmx.png]]
  
 
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 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'''
 +
 +
[[Archivo:05 - instalacion - configuracion spools.png]]
  
 
La siguiente es para la configuración de los parámetros del certificado SSL.  
 
La siguiente es para la configuración de los parámetros del certificado SSL.  
 +
 +
[[Archivo:06 - instalacion - configuracion certificado SSL.png]]
  
 
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.
 
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.
 +
 +
[[Archivo:07 - instalacion - selección de hosts.png]]
  
 
''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.''
 
''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. Una vez finalizado tendremos nuestro cluster funcionando.
 +
 +
''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.''
 +
 +
 +
= Algunas comprobaciones =
 +
 +
== Una ejecución de prueba ==
 +
En el propio directorio de instalación van unos cuantos scripts de ejemplo. Para lanzar la ejecución de uno de esos scripts nos conectamos al master y ejecutamos lo siguiente:
 +
 +
<pre>
 +
]# qsub /opt/oge/examples/jobs/simple.sh
 +
</pre>
 +
 +
Para ver que se está en la cola de ejecución podemos usar el comando qstat
 +
 +
<pre>
 +
[root@sge7lnx common]# qstat
 +
job-ID  prior  name      user        state submit/start at    queue                          slots ja-task-ID
 +
-----------------------------------------------------------------------------------------------------------------
 +
      1 0.55500 simple.sh  root        r    04/23/2013 17:45:21 all.q@sge7lnx.test.prisadigita    1
 +
</pre>

Última revisión de 16:29 23 abr 2013

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 se usará el directorio en el que hemos montado el export NFS /opt/oge y dentro 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 con GUI

En la primera pantalla se eligen los componentes y el metodo de instalación, rapida o personalizada. Nosotros elegimos personalizada

02 - instalacion - tip de instalacion.png

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 ¿?¿?)

03 - instalacion - configuracion principal.png

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

04 - instalacion - configuracion jmx.png

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

05 - instalacion - configuracion spools.png

La siguiente es para la configuración de los parámetros del certificado SSL.

06 - instalacion - configuracion certificado SSL.png

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.

07 - instalacion - selección de hosts.png

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. Una vez finalizado tendremos nuestro cluster funcionando.

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.


Algunas comprobaciones

Una ejecución de prueba

En el propio directorio de instalación van unos cuantos scripts de ejemplo. Para lanzar la ejecución de uno de esos scripts nos conectamos al master y ejecutamos lo siguiente:

 ]# qsub /opt/oge/examples/jobs/simple.sh

Para ver que se está en la cola de ejecución podemos usar el comando qstat

[root@sge7lnx common]# qstat
job-ID  prior   name       user         state submit/start at     queue                          slots ja-task-ID
-----------------------------------------------------------------------------------------------------------------
      1 0.55500 simple.sh  root         r     04/23/2013 17:45:21 all.q@sge7lnx.test.prisadigita     1