Guía de uso
Una vez que cuentes con la placa máster inicializada y uno o más nodos slave configurados, podrás comenzar a utilizar el clúster. Y esto incluye funciones como ejecutar scripts en paralelo, visualizar las métricas de los nodos y el estado de la red, o administrar el sistema de manera remota desde el máster.
Ejecución en el clúster
El sistema cuenta con la herramienta Slurm, que proporciona un sistema de colas tanto para usuarios como para procesos para gestionar la ejecución en el clúster. A continuación explicamos algunas de las funcionalidades que esta herramienta ofrece:
- Puedes consultar el estado del clúster mediante el comando 'sinfo'. Este comando te muestra el número de nodos con los que cuentas y el estado de los mismos. Si el estado es ‘idle', es que el nodo se encuentra operativo. Si está en ‘down’, significa que algo ha fallado y no puedes utilizar ese nodo. Deberás revisarlo para ver si es problema de configuración o si se ha quedado colgado.
- Para ejecutar scripts, utiliza el comando 'srun' Este te permite añadir opciones, como especificar el número de procesos que se crearán, el número de nodos a utilizar, redireccionar el resultado, etc.
- Cuando lances un script a ejecutar, podrás consultar su estado, el tiempo de ejecución que lleva, su identificador (PID) y quién lo lanzó mediante el comando squeue.
- Si deseas cancelar la ejecución de un proceso, utiliza el comando 'scancel' seguido del identificador (PID) del proceso a cancelar.
Para más información sobre la herramienta Slurm y cómo utilizarla, puedes consultar su documentación en su página web: https://slurm.schedmd.com/documentation.html.
Monitorización del sistema
El sistema cuenta con una herramienta de monitorización que se instala y configura durante la inicialización del sistema para que puedas hacer un seguimiento exhaustivo del clúster. Esta herramienta es Ganglia, y para acceder a la página web que muestra las métricas de tu clúster deberás acceder a un navegador desde la placa máster.
- El primer paso que debes hacer es conectarte a la placa máster. Si lo haces mediante SSH, utiliza la opción '-Y' en tu comando, para permitir el paso de la interfaz gráfica y puedas visualizar el navegador. Un ejemplo de conexión sería 'ssh -Y odroid@192.168.X.X', especificando la dirección IP de tu placa máster.
- Una vez te encuentres en la placa máster, abre un navegador web. El sistema cuenta con el navegador Midori instalado.
- Una vez lo hayas abierto, pon la siguiente dirección en la barra del navegador: http://localhost/ganglia.
- Se te mostrará la página principal de Ganglia. En la parte central-izquierda se muestra un desplegable, y al clicar en él te aparecerán todos los nodos de tu clúster. Para visualizar los datos de un nodo, no tienes más que clicar en su nombre y la página mostrará todos los gráficos que ha generado para dicho nodo.
Si deseas conocer más sobre las posibilidades que te ofrece esta herramienta, puedes echar un vistazo en su página web: http://ganglia.sourceforge.net/.
Administración remota
El sistema cuenta con un par de scripts para la administración y mantenimiento del clúster. Estos scripts permiten la ejecución de comandos en todos los nodos del clúster de manera remota desde la placa máster. De esta manera, se ofrece la posibilidad de consultar el estado de servicios o de ejecutar comandos de actualización o reinicio, por ejemplo, de una manera rápida y centralizada, sin necesidad de tener que conectarse uno a uno a todos los nodos del clúster.
Para esta tarea, se cuenta con dos scripts, llamados 'global_execute_seq' y 'global_execute_par', que ejecutan el comando o secuencia de comandos con pipes que se les indique por parámetro en todos los nodos del clúster.
Aspectos a tener en cuenta:
- La lista de nodos del clúster para la ejecución de estos scripts viene recogida en el archivo '/opt/scripts/odroid.par'. Este archivo se modifica automáticamente tras la inicialización de cada nodo slave para incluirlo. Si se desea excluir uno o más nodos de la ejecución de estos scripts de administración remota, se debe comentar la línea correspondiente al nodo en cuestión del archivo '/opt/scripts/odroid.par,' es decir, habrá que incluir un ‘#’ al inicio de la línea correspondiente.
- La ejecución de estos scripts, al encontrarse estos bajo el directorio 'bin/', se puede hacer desde cualquier directorio. Un ejemplo de uso de estos sería el siguiente: 'global_execute_seq hostname', el cual arrojará como resultado el nombre que tienen cada uno de los nodos slave asignado.
- La diferencia entre ambos scripts es que el que cuenta con el sufijo 'seq<' ejecuta el comando de manera secuencial, es decir, espera a que termine la ejecución del comando en el primero nodo slave para lanzar la ejecución del siguiente slave. Por otro lado, el que cuenta con el sufijo 'par' lanza todas las ejecuciones sin esperar a que ninguna termine. El primero, el secuencial, se deberá utilizar para tareas que requieran de paso de paquetes, como por ejemplo 'apt update', ya que como el nodo máster ejerce de cortafuegos de la red interna, una ejecución de este comando en paralelo conlleva la sobrecarga del máster. Para los comandos que no impliquen paso de paquetes a través del máster, se puede utilizar la opción en paralelo del script.