Instalar BOINC en un servidor

Esta página muestra el procedimiento para instalar el software BOINC de trabajo distribuido en un servidor Linux y correr el programa sin necesidad de paquetes ni privilegios de superusuario.

Requisitos

Para llevar a cabo este tutorial se debe contar con los siguientes requisitos:

  • :!: Permiso para ejecutar el software en la máquina especificada (ver la página web de Boinc).
  • Un servidor con acceso a internet.
  • Una cuenta en el sistema de BOINC y conocimiento de cómo recuperar el código de autenticación para proyectos.
  • Al menos un proyecto ya en marcha en BOINC con nuestra cuenta.

A lo largo del ejercicio se asumirá que se está operando en el servidor miservidor.cl, el cual cuenta con acceso a internet y programas como wget; y de un usuario con login miusuario el cual debe tener al menos permiso para ejecutar programas.

Preparando el Cliente

Seleccionando el Instalador

[La página web de descarga del software de BOINC] Lo primero que hacemos es visitar la página web de BOINC:

http://boinc.berkeley.edu/

Y entrar a la sección de Descarga (“Download” si estamos visitando el sitio en inglés), donde podemos obtener el programa.

Una vez aquí es importante no descargar la primera versión que ofrece el sitio, sino entrar a la página de “todas las versiones” (“all versions”), enlace que se encuentra en la sección de enlaces al final de la página, justo antes del footer; esto ya que descargaremos y utilizaremos un cliente especial que sólo necesita una consola Linux con la cual los maestros nos manejamos tan bien. =)

Entramos a la sección “todas las descargas” y navegamos hasta la última tabla de descargas de software, la cual debe leer “For Older Linux” o algo similar. En este punto podremos escoger uno de dos instaladores (por plataforma) que sólo requieren acceso a una consola.

~~CL~~

[Opciones de descarga de BOINC para Linux, sólo consola] Ambas versiones son solamente instaladores. La versión recomendada descarga e instala una plataforma cliente BOINC que usa las bibliotecas estándar de C++, sin embargo es una solución más o menos vieja (requiere libstdc++.so.3 en circunstancias que a 2011 la biblioteca es libstdc++.so.6), sin embargo correrá perfectamente y de manera más optimizada en máquinas Intel y AMD con sistemas de la fecha de Debian 5 (“Lenny”). La versión antigua usa solamente las bibliotecas de C por lo que no habrá problemas; puede correr incluso en sistemas Pentium II.

~~CL~~

Aquí basta con copiar la URL del instalador que deseemos para dejarla descargando desde nuestro servidor, ya sea con wget o una herramienta similar, o descargar el programa y subirlo remotamente por scp o una herramienta similar.

Instalando el Cliente BOINC

Una vez en nuestro servidor, descargamos el instalador correspondiente, lo cual nos entrega un nombre de archivo como boinc_compat_varias_cosas.sh. Este archivo debemos ejecutarlo con nuestro intérprete de comandos con lo que creará una carpeta llamada BOINC (nótese las mayúsculas), que es donde queda instalado el cliente.

[miusuario@miservidor /tmp]$ sh boinc_compat_6.12.22_i686-pc-linux-gnu.sh 
use /tmp/BOINC/run_manager to start BOINC
[miusuario@miservidor /tmp]

El programa nos avisa que usamos el programa run_manager para correr el cliente… pero eso lo dejaremos para después. Lo que se debe hacer ahora es agregar esta máquina a nuestro proyecto BOINC.

Recuperando Nuestro Código de Cliente

Primero nos dirigiremos a la página de un proyecto al cual estemos suscritos. Por ejemplo si estamos suscritos a Seti@Home, la url es http://setiathome.berkeley.edu/ (nótese el slash final). Anótese esta URL para futuro uso.

Aquí buscamos el acceso al sistema para hacer login y ver la información de nuestra cuenta. Buscamos la sección que tiene el encabezado clave de cuenta (“Account Key”) y recuperamos en el portapapeles el código de la cuenta (aquí se presenta uno de ejemplo):

Clave de cuenta
Proporciona acceso total a su cuenta	00a1b2c3d4e5f60718293a4b5c6d7e8f

Una vez con este código procedemos a activar el cliente BOINC agregándolo a nuestro proyecto y cuenta por medio del argumento –attach_project al proyecto deseado usando su URL (por ejemplo, el de Seti@Home como se ve arriba):

./run_client --attach_project http://setiathome.berkeley.edu/ 00a1b2c3d4e5f60718293a4b5c6d7e8f 

Esto debiera dejar el programa corriendo para realizar los primeros análisis del sistema, benchmarks, operativos de autenticación del proyecto recuperación de datos del proyecto. Una vez que encontremos mensajes como los que siguen, podremos tranquilamente presionar <key>C-c</key> para cortar el programa (nótese que la URL cambiará acorde al proyecto al que hayamos suscrito esta máquina).

[http://setiathome.berkeley.edu/] Master file download succeeded

Llegados a este punto, el cliente BOINC ya se encuentra instalado.


Posibles Problemas

libstdc++

Opción 1 – Crear un lanzador que invoque explícitamente libstdc++.so.3:

  1. Ya sea una de las siguientes:
    • Copiar la biblioteca /usr/lib/libstdc++.so.5.??? (fichero real, no enlace simbólico) al directorio de BOINC con el nombre libstdc++.so.3.
    • Crear un enlace simbólico de /usr/lib/libstdc++.so.5 a ${RUTA_A_BOINC}/libstdc++.so.3.
  2. Editar el fichero run_client para que lea de la manera que se lee abajo en Lanzador:
  3. Ejecutar el programa, con sus argumentos, usando run_client.
Lanzador
cd "${RUTA_A_BOINC}" && LD_LIBRARY_PATH=./ exec ./boinc $@

Opción 2 – Agregar libstdc++.so.3 a las bibliotecas del sistema.

:!: Requiere privilegios de Superusuario.

Errores de conexión HTTP

Quitando el cliente de un Proyecto


TOBEDONE