Instalaci n y Configuraci n de Un Cluster Bajo Pelicanhpc

22
Instalación y configuración de un Cluster de Alto rendimiento basado en PelicanHPC Por Diego I. G. Najar Carrascal http://www.linkedin.com/in/dignajar

Transcript of Instalaci n y Configuraci n de Un Cluster Bajo Pelicanhpc

Page 1: Instalaci n y Configuraci n de Un Cluster Bajo Pelicanhpc

Instalación y configuración de un Cluster de Alto rendimiento basado en PelicanHPC

Por Diego I. G. Najar Carrascal

http://www.linkedin.com/in/dignajar

Page 2: Instalaci n y Configuraci n de Un Cluster Bajo Pelicanhpc

Indice1. Introducción.............................................................................................1

1.1. Objetivo.............................................................................................11.2. ¿Que es un Cluster?...........................................................................11.3. Tipos de Cluster.................................................................................1

2. Sistema....................................................................................................22.1. Componentes de Hardware...............................................................22.2. Componentes de Software................................................................22.3. Configuración de las maquinas virtuales...........................................22.4. PelicanHPC........................................................................................2

3. Instalación y configuración de PelicanHPC sobre VirtualBox....................43.1. Primeros pasos..................................................................................43.2. Configuración del nodo máster.........................................................53.3. Configuración de los nodos esclavos.................................................83.4. Clonación de los nodos esclavos.....................................................10

4. Inicio y configuración de PelicanHPC......................................................114.1. Inicio y configuración del nodo máster............................................114.2. Inicio y configuración de los nodos esclavos...................................144.3. Configuración final del nodo máster................................................154.4 Comandos útiles de PelicanHPC.......................................................16

Agregar un nuevo nodo esclavo.........................................................16Apagar todos los nodos esclavos........................................................16Iniciar entorno grafico.........................................................................16

5. Benchmarks...........................................................................................175.1. FLOPS (Floating point operation per seconds).................................17

Conclusión..................................................................................................19Bibliográfica...............................................................................................20

Page 3: Instalaci n y Configuraci n de Un Cluster Bajo Pelicanhpc

1. Introducción

1.1. Objetivo

Se propuso como objetivo instalar y configurar un Cluster con una distribución GNU/Linux. Se utilizaran maquinas virtuales – si funciona en maquinas virtuales funciona en maquinas físicas – para virtualizar un nodo máster y dos nodos esclavos.

1.2. ¿Que es un Cluster?

Es una clase de arquitectura de computador paralelo que se basa en unir maquinas independientes cooperativas integradas por medio de redes de interconexión para proveer un sistema coordinado, capaz de procesar una carga.

- Dr. Thomas Sterling

1.3. Tipos de Cluster

• Alto rendimiento (HP, high performance): Los Cluster de alto rendimiento han sido creados para compartir el recurso mas valioso de una computadora, es decir, el tiempo de proceso. Cualquier operación que necesite altos tiempos de computo puede ser ejecutada en un o Cluster de alto rendimiento, siempre que se encuentre un algoritmo que sea paralelizable.

• Alta disponibilidad (HA, high availability): Los Cluster de alta disponibilidad pretenden dar servicios las 24hs de cualquier tipo, son Cluster donde la principal funcionalidad es estar controlando y actuando para que un servicio o varios se encuentren activos durante el máximo periodo de tiempo posible.

• Alta eficiencia (HT, high throughput): Los Cluster de alta eficiencia tiene como objetivo la ejecución de la mayor cantidad de tareas en el menor tiempo posible.

Podemos encontrar muchos mas tipos de Cluster, y combinaciones de ellos, solo se nombraron los tipos mas importantes, y mas usados.

1

Page 4: Instalaci n y Configuraci n de Un Cluster Bajo Pelicanhpc

2. Sistema

2.1. Componentes de Hardware

• Intel Quad Core 6600 2.4GHz - (4 núcleos)

• 2GB Memoria RAM

• 500GB Disco rígido

2.2. Componentes de Software

• Sistema operativo nativo GNU/Linux (Gentoo Linux)

• Maquinas virtuales bajo VirtualBox v4.1.6

• Sistema operativo para el Cluster GNU/Linux (PelicanHPC basado en Debian) http://idea.uab.es/mcreel/PelicanHPC

2.3. Configuración de las maquinas virtuales

• Nodo Máster: 1 procesador, 512MB Ram, sin disco rígido, booteo desde la imagen Live-CD de PelicanHPC

• Nodo Slave 1: 1 procesador, 512MB Ram, sin disco rígido, booteo a través de la red LAN

• Nodo Slave 2: 1 procesador, 512MB Ram, sin disco rígido, booteo a través de la red LAN

2.4. PelicanHPC

Es una distribución de GNU/Linux basa en Debian para la creación de Cluster de alto rendimiento en poco minutos, viene en formato iso-hybrid(CD y USB) de esta forma podemos bootear directamente la imagen desde un CD o un pendrive USB. PelicanHPC le permite al usuario realizar computo paralelo usando MPI. El nodo máster bootea desde la imagen y los nodos esclavos bootean utilizando PXE(Preboot eXecution Environment).

Todos los nodos del Cluster obtiene el sistema de archivo de la misma imagen, de esta forma garantiza que todos ellos ejecutan el mismo software.

PelicanHPC permite instalar paquetes nuevos utilizando el manejador de paquetes apt-get, como esta basada en la distribución Debian tenemos una gran cantidad de paquetes de software.

Características a destacar:

• Disponible para procesadores de 64 y 32 bits.

• Contiene lo ultima versión estable del paquete OpenMPI.

• GNU Octave lenguaje de alto nivel para realizar cálculos numéricos, es considerado la versión libre de MATLAB. Utiliza todo el poder de los Cluster que utilizan MPI, dividiendo los cálculos en diferentes nodos.

• Linkpack librería especial para el el calculo del álgebra lineal en Cluster.

2

Page 5: Instalaci n y Configuraci n de Un Cluster Bajo Pelicanhpc

• Herramientas de configuración nativas de PelicanHPC.

• Autoconfiguración de llaves publicas/privadas para la comunicación a través de SSH.

• Escritorio XFCE configurado y listo para usar. Ademas contiene algunos tutoriales de PelicanHPC en formato PDF y con su respectivo lector de PDFs, navegador web, y algunas herramientas gráficas.

3

Page 6: Instalaci n y Configuraci n de Un Cluster Bajo Pelicanhpc

3. Instalación y configuración de PelicanHPC sobre VirtualBox

3.1. Primeros pasos

Como primer instancia debemos bajar la imagen de PelicanHPC, para este informe vamos a utilizar la ultima versión de PelicanHPC v2.6, por lo tanto nos dirigimos al sitio oficial, vamos a la sección “Download”, y descargamos la imagen “pelicanhpc-v2.6.iso”. (http://idea.uab.es/mcreel/PelicanHPC)

Una vez que tengamos la imagen, podemos comenzar con la configuración de las maquinas virtuales.

Antes de iniciar VirtualBox debemos iniciar los módulos necesarios(drv, netdp, netflt).

Iniciar módulos para VirtualBox

# for m in vbox{drv,netadp,netflt}; do modprobe $m; done

Ejecutamos VirtualBox

# VirtualBox

Figura 3.1.1 - VirtualBox v4.1.6

4

Page 7: Instalaci n y Configuraci n de Un Cluster Bajo Pelicanhpc

3.2. Configuración del nodo máster

Ahora nos centraremos en crear una maquina virtual para el nodo máster de nuestro Cluster Para esto creamos una maquina virtual nueva, y completamos los parámetros que nos pide. Ingresamos el nombre de la maquina virtual, y le damos a elegir que es un sistema operativo Linux como se ve en la figura 3.2.1, para nuestro caso seleccionamos que es un Linux con versión de kernel 2.6 y de 64bits.

Figura 3.2.1 - Nueva maquina virtual

Luego como se ve en la figura 3.2.2 no pide que ingresemos la cantidad de memoria RAM que va a utilizar nuestro nodo máster Debemos setear un poco mas de 256MB (por favor que sea potencia de 2), en el ejemplo seteamos 512MB.

Después de setear la memoria RAM, se nos pide que indiquemos si vamos a utilizar un disco físico. PelicanHPC bootea sobre la memoria RAM así que no sera necesario el disco.

Finalizamos la creación y nos deberá aparecer la maquina virtual en nuestro VirtualBox.

5

Page 8: Instalaci n y Configuraci n de Un Cluster Bajo Pelicanhpc

Figura 3.2.2 – Cantidad de memoria que tendrá disponible nuestra maquina virtual

Hacemos click derecho sobre la maquina virtual, y nos dirigimos a la configuración(settings). Seleccionamos la opción “System”, desmarcamos todas las opciones donde dice “Boot Order”, y dejamos seleccionado solo el checkbox “CD/DVD-ROM”. Esto es necesario para que nuestra maquina virtual cuando inicie sepa que debe bootear sobre la imagen .ISO que bajamos anteriormente, figura 3.2.3.

6

Page 9: Instalaci n y Configuraci n de Un Cluster Bajo Pelicanhpc

Figura 3.2.3 - Configuración del orden de booteo

Una vez configurado el orden de booteo, nos dirigimos a la opción Storage, y seleccionamos la imagen que vamos a bootear, hacemos click sobre el CD-ROM que aparece sobre el lado derecho. Ademas seleccionamos el checkbox Live CD/DVD, como se indica en la figura.

7

Page 10: Instalaci n y Configuraci n de Un Cluster Bajo Pelicanhpc

Ahora debemos configurar la red de nuestra maquina virtual, como se ve en la figura 3.2.4. Nos dirigimos a la opción que dice Network. Seleccionamos “Internal Network”, y le damos un nombre a nuestra red, por ejemplo “pcpd”.

Figura 3.2.4 - Configuración de la red sobre la maquina virtual del nodo máster

Con estos pequeños detalles de configuración ya tendríamos configurada la maquina virtual para nuestro nodo máster.

3.3. Configuración de los nodos esclavos

Para esto, necesitamos crear una maquina virtual nueva, luego con la opción de clonar maquinas virtuales, podemos crear mas nodos esclavos para nuestro Cluster.

Las maquinas virtuales deben tener por lo menos 512MB de memoria RAM para su correcto funcionamiento.

Creamos una maquina virtual, asignamos las mismas características que el nodo máster, y luego nos dirigimos a la configuración de la misma, seleccionamos la opción “System”, debemos configurar el orden del booteo de tal forma que busque sobre la red el arranque. Para esto desmarcamos todos los checkbox y dejamos habilitado solamente el “Network” como se visualiza en la figura 3.3.1.

8

Page 11: Instalaci n y Configuraci n de Un Cluster Bajo Pelicanhpc

Figura 3.3.1 - Configuración de la maquina virtual del nodo esclavo

Ahora vamos a la opción “Networks” y configuramos el adaptador de red para que trabaje sobre la misma red que nuestro nodo máster, completamos el nombre de la red como “pcpd”. Vea la figura de la derecha.

9

Page 12: Instalaci n y Configuraci n de Un Cluster Bajo Pelicanhpc

3.4. Clonación de los nodos esclavos

Gracias a VirtualBox podemos configurar un solo nodo esclavo y luego duplicar este tantas veces queramos. Por lo tanto hacemos click derecho sobre la imagen del nodo esclavo que creamos recién, y hacemos click sobre “clone”, nos pedirá que seteamos un nombre para la maquina virtual clonada como se ve en la figura 3.4.1, en mi caso el nombre es “PelicanHPC Slave 2”, tildamos el checkbox para que le asigne nuevas MAC a las maquinas virtuales anteriores, por cuestiones de no tener problemas futuros y que no se repitan las MACs en el sistema.

Figura 3.4.1 – Clonación de una maquina virtual

Ya tenemos dos maquinas virtuales para los nodos esclavos, podemos agregar cuantos queramos de estos clones, pero no es recomendable ya que son maquinas virtuales y en el fondo hay 1 sola maquina ejecutando todas estas maquinas virtuales.

10

Page 13: Instalaci n y Configuraci n de Un Cluster Bajo Pelicanhpc

4. Inicio y configuración de PelicanHPCLuego de tener nuestras maquinas virtuales es necesario iniciar primero que todo la maquina virtual del nodo máster, y configurar algunos parámetros antes de iniciar los nodos esclavos.

4.1. Inicio y configuración del nodo máster

Iniciamos nuestra maquina virtual nodo máster con un simple doble click o con el botón “Start”.

Como primer instancia podemos ver el menú del Grub como se muestra en la figura 4.1.1, donde nos da a elegir iniciar la distribución “live” o “live (failsafe)”, y otras opciones para comprobar la memoria y una ayuda. Seleccionamos la opción “live”.

Figura 4.1.1 – Iniciando la maquina virtual nodo máster

11

Page 14: Instalaci n y Configuraci n de Un Cluster Bajo Pelicanhpc

Esperamos a que inicie. Y nos mostrara la pantalla de Pelican Setup como se ve en la figura de la derecha, le damos al botón OK.

Luego nos pedirá si queremos crear un directorio home/user con archivos de prueba y unos tutoriales, seguimos con el botón Yes.

Y por ultimo nos pide que cambiemos el password del usuario “user”, ademas de cambiarlo deben recordarlo, sera el password que usaran todos los nodos esclavos y el máster Una vez finalizada la configuración podemos ver en la figura 4.1.2 el login del sistema.

Figura 4.1.2 – Login del nodo máster

12

Page 15: Instalaci n y Configuraci n de Un Cluster Bajo Pelicanhpc

Ya booteamos y configuramos a medias nuestro Cluster, ahora ingresamos con el usuario “user” y el password que seteamos en el paso anterior.

Una vez logueados, ejecutamos el comando “pelican_setup”

# pelican_setup

Una vez iniciado nos aclara que debemos tener cuidado con los servidores DHCP que estén en nuestra red en común, porque PelicanHPC debe manejar un servidor DHCP para darle las direcciones IP a nuestros nodos esclavos. Como estamos emulando una red, no tenemos este problema, pero si lo estuviéramos haciendo físicamente, y utilizamos algún router que tiene el servicio de DHCP activado deberíamos desactivar esta opción. Siguiendo los pasos, le damos al botón Yes, nos dirá que quiere reiniciar algunos componentes, seguimos con el botón Yes y ya estaríamos preparados para iniciar nuestros nodos esclavos.

13

Page 16: Instalaci n y Configuraci n de Un Cluster Bajo Pelicanhpc

4.2. Inicio y configuración de los nodos esclavos

Dejamos de lado la maquina virtual con el nodo máster, e iniciamos las maquinas virtuales nodos esclavos.

Como puede ver en la figura 4.2.1, el nodo esclavo busca un servidor DHCP para que le asigne una IP, acá es cuando en nodo máster le asigna una IP a cada nodo esclavo. Luego de asignarle la dirección IP le enviá una imagen del sistema al nodo esclavo, y de esta forma el nodo esclavo bootea. Inicia el kernel y los procesos.

Figura 4.2.1 – Buscando servidor DHCP

Figura 4.2.2 – Login del nodo esclavo

14

Page 17: Instalaci n y Configuraci n de Un Cluster Bajo Pelicanhpc

Una vez que todos los nodos esclavos fueron iniciados (figura 4.2.2), debemos volver al nodo máster para terminar de acoplar nuestro Cluster.

4.3. Configuración final del nodo máster

Nos dirigimos a la maquina virtual que contiene el nodo máster, y realizamos la búsqueda de los nodos esclavos. Pulsamos el botón “No” así el nodo máster hace broadcast con pings, analiza la red en búsqueda de nodos posibles, cuando un nodo retorna el ping(pong), el nodo máster agrega al Cluster el nodo esclavo. En la figura 4.3.1 podemos ver que el nodo máster encontró 2 nodos esclavos.

Figura 4.3.1 – Se encontraron los 2 nodos esclavos

Ya tenemos 2 nodos esclavos detectados por el nodo máster, por lo tanto podemos seguir, pulsamos en el botón “Yes” y listo, ya tenemos nuestro Cluster funcionando. Pueden ver la figura siguiente 4.3.2, del lado izquierdo tenemos los dos nodos esclavos y del lado derecho tenemos nuestro nodo máster.

15

Page 18: Instalaci n y Configuraci n de Un Cluster Bajo Pelicanhpc

Figura 4.3.2 - Nodos esclavos ejecutando htop

4.4 Comandos útiles de PelicanHPC

PelicanHPC cuenta con algunos comandos útiles que se pueden ejecutar desde el nodo máster.

Agregar un nuevo nodo esclavo

Si deseamos agregar un nuevo nodo esclavo debemos iniciar el nodo, esperar que boote la imagen por red, y luego correr el comando siguiente.

# pelican_restart_hpc

Apagar todos los nodos esclavos

Si queremos podemos apagar todos los nodos esclavos con un solo comando, por lo tanto desde el nodo máster ejecutamos el comando siguiente.

# pelican_nodes stop

Iniciar entorno grafico

Si queremos iniciar el entorno gráfico XFCE, ejecutamos el comando siguiente.

# startx

16

Page 19: Instalaci n y Configuraci n de Un Cluster Bajo Pelicanhpc

5. Benchmarks

5.1. FLOPS (Floating point operation per seconds)

Los FLOPS son una medida de rendimiento de una computadora, especialmente en cálculos científicos que requieren un gran uso de coma flotante. Por lo tanto vamos a ejecutar un pequeño benchamark que trae el propio PelicanHPC para ver la cantidad de FLOPS que tiene nuestro Cluster

Para esto debemos ejecutar el binario “flops” pero bajo MPI, de esta forma el Cluster se comunica con sus nodos esclavos. En la figura 5.1.1 se puede ver como los nodos esclavos inicia en el proceso “flops”.

Especificamos el archivo con los hosts de nuestra red

# mpirun –hostfiles tmp/bhosts ./flops

El archivo “bhosts” contiene las direcciones IP de todos los nodos esclavos y la propia del nodo máster Este archivo es generado automáticamente cuando se inicia y configura el nodo máster Igual que las llaves publicas del nodo máster están distribuidas en los nodos esclavos para que se puedan conectar vía SSH y sin necesidad de ingresar el password en cada comunicación.

Figura 5.1.1 – Ejecutando el comando “flops”

17

Page 20: Instalaci n y Configuraci n de Un Cluster Bajo Pelicanhpc

Otras opción que podemos agregarle al comando mpirun son la cantidad de procesadores que vamos a usar del Cluster, por ejemplo si queremos que el comando “flops” solo se ejecute en 2 procesadores, podemos agregar el flag “-np 2” de esta forma, el nodo máster, buscara dos nodos esclavos distintos y ejecutara el comando en solo estos dos. PelicanHPC tiene la propiedad de buscar los nodos esclavos menos cargados y asignar el procesos en esos nodos.

Como podemos ver en la figura 5.1.2 el nodo máster da la orden y luego los dos nodos esclavos ejecutan el comando “flops”, y obtenemos los resultados para los 2 procesadores que utilizamos. Para mostrar mejor la idea, ahora vamos a ejecutar 1 solo proceso de “flops”, entonces el Cluster deriva este proceso a un solo nodo esclavo y obtenemos los resultados de 1 solo nodo, podemos ver en la figura 5.1.2 sobre el nodo esclavo de arriba que se esta ejecutando el comando “flops” y sobre el nodo esclavo de abajo no se esta ejecutando el proceso.

Figura 5.1.1 – Ejecución del comando flops con 1 y 2 procesadores

Ejecución de “flops” en 2 procesadores

# mpirun –hostfiles tmp/bhosts -np 2 ./flops

Ejecución de “flops” en 1 procesador

# mpirun –hostfiles tmp/bhosts -np 1 ./flops

18

Page 21: Instalaci n y Configuraci n de Un Cluster Bajo Pelicanhpc

ConclusiónPelicanHPC es una muy buena distribución para crear un Cluster de alto rendimiento en pocos minutos, totalmente autoconfigurable, detección y configuración de nodos esclavos casi transparentes.

Ademas de ser una versión Live-CD se puede instalar al disco de manera sencilla pero eso escapa de nuestro informe.

Contiene un entorno gráfico liviano y configurable(XFCE) especial para la gente que no le gusta el shell, o desea manejar mas terminales de los normal o utilizar herramientas de ploteo de funciones matemáticas.

Viene con librerías especiales para la programación paralela y ademas librerías de calculo numérico y algebraico que también hacen uso del sistema Cluster.

Gran cantidad de software para instalar ya que PelicanHPC esta basada en Debian, y utiliza todos sus repositorios, con un simple comando(apt-get install APLICACION) podemos instalar paquetes.

19

Page 22: Instalaci n y Configuraci n de Un Cluster Bajo Pelicanhpc

Bibliográfica

“Beowulf Cluster Computing with Linux by Thomas Sterling”. Libro.

“Pagina oficial de la distribución PelicanHPC”. Web.

<http://idea.uab.es/mcreel/PelicanHPC>

“Foro oficial de la distribución PelicanHPC”. Foro. Web.

<http://pelicanhpc.788819.n4.nabble.com/>

“Computer Cluster”. Wikipedia. Web.

<http://en.wikipedia.org/wiki/Computer_cluster>

“General information about the Open MPI Project”. Web.

<http://www.open-mpi.org/faq/?category=general>

“GNU Octave”. Aplicación de calculo numérico. Web.

<http://www.gnu.org/software/octave>

20