80 - Montar un cluster con la Raspberry

80 - Montar un cluster con la Raspberry

Como montar un cluster con la Raspberry y cuatro Raspberry Pi Zero para exprimir al máximo estas placas, y dar un paso mas allá en la gestión de servidores

1:25
-3:15

Lo he comentado en varios episodios del podcast. Te diría que la última vez que lo hice fue precisamente en el episodio 77 en el que te hablé del internet de las cosas. No solo ahí, también en el curso taller, que impartí en Linux Center sobre la Raspberry Pi, recordé que este pequeño dispositivo, fue creado con el objetivo de estimular el aprendizaje de la informática en las escuelas. Y así aprender desde lo más básico hasta crear un cluster con la Raspberry

Llegados a este punto indicar, que no solo los más jóvenes se están pudiendo aprovechar de esta interesante iniciativa. También los mas talluditos, estamos aprovechando todo esto, y recordando viejos tiempos con el electrocefa, quimicefa y juegos similares. Ahora que lo menciono, creo que no tenía ninguno de estos, era mas bien uno de electrónico, donde venía un buen conjunto de componentes, pero lo cierto es que ahora no recuerdo.

No solo tienes la oportunidad de aprovechar esto, para aprender programación, también puedes aprender electrónica, y por supuesto de Linux y de sistemas.

En este sentido, en torno a esta pequeña placa ha surgido todo un ecosistemas de complementos. Y esto es precisamente una de las grandes ventajas respecto de otras placas. Si bien, existen placas de otros fabricantes, mas potentes e incluso mas económicas, lo cierto, es que no tienen el soporte, y la gran cantidad de complementos que puedes llegar a tener con la Raspberry Pi.

Y ¿porque te cuento todo esto? Te cuento esto porque uno de los complementos interesantes que he adquirido recientemente es un hat o sombrero que permite montar un cluster con la Raspberry.

Así, en el podcast de hoy, te voy a contar sobre como puedes montar un cluster con la Raspberry, y mi experiencia al respecto

Montar un cluster con la Raspberry

Montar un cluster con la Rasbperry

Lo que he escrito esta semana

  • El primero de los artículos hace referencia a la aplicación start-here o primeros pasos como creo que la he traducido en español. Y digo, creo porque no estoy muy seguro de ello. Lo cierto es que desde que lo comenté en el episodio 78 del podcast, en el que te hablé sobre el progreso de Ubuntu, he tenido algunos, problemas para que la aplicación funcionara. Menos mal, que Sergio y otros me habéis echado una mano, y he conseguido resolver, el problema…. Que como de costumbre era una tontá. La cuestión, es que creo que esta aplicación merece muy mucho la pena, puesto que te ayuda a configurar tu Ubuntu, sin que tengas necesidad de conocimiento alguno. Eso si, tengo que resolver como instalar esta aplicación sin necesidad de recurrir al terminal, porque es la pescadilla que se muerde la cola.
  • El segundo de los artículos, es un nuevo capítulo del tutorial sobre scripts en Bash. En este caso está dedicado a arrays y texto. No tenía muy claro, en que orden publicar los capítulos, o mejor dicho, cuando introducir esto. Si lo pongo al principio, es demasiado duro, y si lo pongo al final, ya no tiene sentido. Ahora, después de los condicionales y bucles, parece que es su sitio, o al menos esa es mi opinión.

Sobre montar un cluster con la Raspberry

Desde el momento que caí en la cuenta de que era muy sencillo montar un cluster con varias Raspberry, he estado persiguiendo esa quimera.

La cuestión, es que inicialmente me daba cierto reparo comprar cuatro o cinco Raspberry… que si que consumen realmente poco, pero esto al final va a parecer una granja de Raspberry. Que conste que, no descarto esta opción para nada. Pero, creo que todavía no ha llegado el momento.

Cuando vi el hat para montar un cluster, no me lo pensé dos veces. Por un lado, que al hacerlo con Raspberry Pi Zero, el coste es significativamente mas bajo, y por otro lado, es que todo queda muy recogido y sencillo.

Sin embargo, uno de los problemas que tenía era donde adquirir tanto el hat como las Rasbperry Pi Zero. En algunos sitios, el número de Raspberry Pi Zero que puedes adquirir está limitado. La cuestión es que finalmente di en ebay con los elementos que necesitaba,

CantidadChismeImporte total
4Rasbperry Pi Zero 1.350,08€
1Cluster Hat v232,63€
5Tarjeta MicroSD 32GB34,95€
1Raspberry Pi 3 Model B+35,99€
Total153,65€

Ah, pues… hasta el momento no había calculado cuanto me había costado el cluster. Me pudo mas tener el cluster en la Raspberry, que otra cosa… En fin. Tengo que decir, que algunos de estos chismes se podían haber comprado algo mas económicos, pero lo cierto, es que como de costumbre, me pudo el ansia viva.

Respecto al cargador y esas cosas, lo cierto es que he gastado alguno de los que ya tenía. Lo que si que compré son unos disipadores de calor, pero solo para la Raspberry Pi 3B+. Los Zero, no tienen nada.

Está pendiente comprar una caja que contenga todo el cluster y un ventilador. Y digo lo del ventilador, porque cuando pones esto en marcha es una pequeña estufa.

Montaje del cluster con la Rasbperry

Lo cierto es que el montaje me ha resultado realmente sencillo. No tiene gran misterio, tan solo poner los tornillos que vienen con el hat, y que permiten situar este sobre la Rasbperry.

Una vez hecho esto, el siguiente paso es alimentar eléctricamente el hat con un cable USB que viene de la propia Rasbperry Pi 3.

Por último conectar las 4 Raspberry Pi Zero sobre el propio hat, que van como anillo al dedo.

Sobre conectar y desconectar las Rasbperry Pi Zero, indicar que el creador del hat, recomienda hacerlo con cuidado, porque si lo fuerzas, puedes terminar dañando los conectores del hat. Yo la verdad es que no he tenido problema alguno, y ha sido todo realmente sencillo.

Instalando el software del cluster con la Raspberry

Aquí varía ligeramente la instalación respecto a lo que haces habitualmente al configurar la Raspberry. Y es que las imágenes que tienes que quemar tanto en la Raspberry Pi 3B+ como en las Zero son diferentes, y las tienes que descargar de la web del fabricante del hat.

Aunque es posible hacerlo con imágenes normales y posteriormente configurarlo todo, yo no me he querido complicar, mi objetivo era utilizar el cluster con la Rasbperry Pi.

Así te da diferentes opciones para la instalación de softwarte, simple, intermedio y avanzado. Yo me he ido al simple, como te digo, para evitarme complicaciones.

Dentro de la instalación simple todavía tienes diferentes opciones,

  • Con escritorio. Este escritorio es el PIXEL
  • Con escritorio nateado. Esto te permie compartir la conexión WiFi del controlador con las Pi Zero. Dentro de la versión de escritorio, tienes una completa y otra estándar, en función de todos los paquetes que llevan ya preinstalados.
  • Sin escritorio, también en dos versiones, una con NAT y otra sin NAT, tal y como he comentado anteriormente.

En cualquier caso, te obliga a descargarte una imagen para el controlador y cuatro imágenes, para cada una de las Zeros. También te permite descargar en un solo archivo comprimido todo. El caso es que en este caso, no tienes la opción de compartir la conexión.

Yo, como te puedes imaginar, poseído de nuevo por el ansia viva descargué la que viene todo en un archivo comprimido, sin darme cuenta que las imágenes no tenían el nateo, así que me toca o bien quemarlas de nuevo, o realizar el nateo a mano.

Finalmente, hice el nateo a mano, porque no era mas que ejecutar la siguiente instrucción en un terminal y reiniciar el cluster,

sudo sed -i 's#rootwait#rootwait quiet init=/sbin/reconfig-clusterhat cnat#' /boot/cmdline.txt

Una vez ya has quemado todas las imágenes, tanto las de las Raspberry Pi 3B como las de las Zero. Tienes que habilitar el ssh en todas las Rasbperry. Además en la Raspberry Pi 3B tienes que configurar el WiFi, si no quieres tener que conectarte vía cable al controlador o Rasbperry Pi. En el capítulo sobre como configurar una Raspberry para funcionar con USB del tutorial sobre primeros pasos con la Rasbperry

Arrancando el cluster con la Raspberry

Una vez ya has quemado todas las imágenes, tienes que colocar todas las tarjetas micro SD, en cada una de las Rasbpberry, tanto en la 3B como en las Zero. y poner en marcha la Raspberry Pi 3B.

Una vez la tengas en marcha, te darás cuenta que las Zero, no están en funcionamiento. Esto es así porque por defecto no está en marcha. Simplemente ejecuta la siguiente instrucción para poner en marcha las Zero,

$ clusterhat on

Al hacerlo verás como las distintas Zero se van poniendo en marcha de forma progresiva.

De la misma forma, en el momento que las quieras detener, tan solo tienes que ejecutar la siguiente instrucción,

$ clusterhat off

Por supuesto, si así lo deseas, puedes habilitar de forma selectiva las Zero. Para ello, tan solo tienes que ejecutar las mismas instrucciones que las indicadas anteriormente pero indicando las Zero que quieres poner en funcionamiento. Por ejemplo, si quisieras poner la 1 y la 3, simplemente, la instrucción a ejecutar sería,

$ clusterhat on p1 p3

Y para detenerlas, la operación sería similar,

$ clusterhat off p1 p3

También es posible apagar los led las Zero, para ello, ejecuta,

$ clusterhat led off

No he habilitado el ssh

En el caso de que no habilites el ssh en las Zero, tienes un pequeño problema, como me suceció a mi. Sin embargo, no es algo que no se pueda solventar. ¿Como lo habilité yo?

Tengo que decirte que siempre puedes extraer la microSD y crear el archivo ssh como he indicado anteriormente. Sin embargo, una vez puse en marcha el cluster ya no lo quería detener, así que decidí complicarme ligeramente la vida.

Para esto utilicé minicom, que es un programa de módem basado en texto, y que nos permite la comunicación vía USB. Así, para conectarme a cada una de las Zero, tan solo tienes que ejecutar minicom p1.

Nada mas entrar te recomiendo que utilices el atajo de teclado Ctrl+A Z para ver las instrucciones de minicom y no andar perdido como suele pasarme a mi. Introduce tus credenciales,

usuario: pi
contraseña: clusterhat  

Una vez dentro de cada una de las Zero, el siguiente paso es habilitar el servicio ssh. Esto lo haces como habitualmente. Ejecuta la instrucción,

sudo raspi-config

Dentro selecciona Network Options > Intefacing Options > P2 SSH. Y por supuesto seleccional a opción Yes. Para salir de minicom tienes que utilizar el atajo de teclado Ctrl+A X.

Facilitando la interacción con las Zero

Una vez ya tienes habilitadas las conexiones, ya te puedes conectar con cada una de las Zero. Para ello tan solo tienes que ejecutar la instrucción ssh p1.local para el caso de que quieras acceder a la primera.

Dado que es muy tedioso eso de tener que introducir usuario y contraseña cada vez, te recomiendo que generes una clave pública privada, y copies la pública a cada una de las Zero. Para esto, te recomiendo leas el artículo sobre sincronización sin contraseña en Linux.

¿Y ahora que?

Como te puedes imaginar, esto solo es la punta del iceberg. Es mas, esto es carne de tutorial. Y por otro lado, los problemas se multiplican por cinco, por que ahora tienes cinco servidores en marcha. Tienes que ver como gestionar los cinco, actualizarlos, etc. Vamos, que esto es carne de tutorial.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *