wiki:ServidorTorrents

Version 6 (modified by jcxifre, 14 years ago) (diff)

--

Configurar un Servidor de Repositorio para distribuir imagenes por P2P con bittorrent

Modificaciones en la instalación de paquetes

Eliminar el paquete bittorrent (no funciona correctamente el programa que utilizamos para hacer de "semillero" de torrents)

aptitude purge bittorrent

Instalar el paquete bittornado

aptitude install bittornado

Nuevo script de arranque demonios OpenGnSys

  • Copiar el nuevo script de arranque, opengnsys.init, desde el repositorio al directorio /etc/init.d con el nombre opengnsys (sin el .init)
  • Modificar el fichero de configuración para que arranquen los servicios P2P al inicio del sistema. Modificar /etc/default/opengnsys de esta forma
    # RUN_OGADMSERVER run OpenGNSys Admin service.
    # RUN_OGADMREPO run OpenGNSys Repository Manager service.
    # RUN_BTTRACKER run Bittorrent Tracker
    # RUN_BTSEEDER starts seeding of selected torrent files
    RUN_OGADMSERVER="yes"
    RUN_OGADMREPO="yes"
    RUN_BTTRACKER="yes"
    RUN_BTSEEDER="yes"
    

Descripción servicio de tracker

El servicio de tracker ofrece información a los clientes de que partes de la imagen a descargar tiene cada uno de ellos, para poder solicitarsela. En este caso, aparte de la configuración de puerto, por defecto el 1234, etc. se ejecuta con la opción de que sólo permita descargar los archivos .torrent del directorio del repositorio de imagenes, /opt/opengnsys/images, y la opción de permitir descargar los torrents por http, de la forma http://$IPRepositorio:Puerto/file?hash={hash} para clientes que permitan indicarles así el torrent a descargar. El hash y el estado de los torrents se pueden mirar conectando a http://$IPRepositorio:Puerto

El log va a /opt/opengnsys/log/bttrack.log

Descripción servicio "Seeder" (Semillero ?)

Este servicio ejerce como fuente que comparte las imagenes por torrent. El programa que se ejecuta es btlaunchmany.bittornado que cada sesenta segundos escanea el directorio que se le pasa como parámetro en busca de archivos .torrent, si encuentra un nuevo archivo .torrent se pone a descargarlo y compartirlo hasta que desaparece del directorio, por ejemplo renombrandolo a .torrent.inactive.

El directorio en que se buscan los .torrent es el del repositorio de imagenes /opt/opengnsys/images

El ejecutable estándar da demasiada información para sacarla a un log, se puede comprobar ejecutando /usr/bin/btlaunchmany.bittornado /opt/opengnsys/images así que de momento no hay archivo de log, para ver el estado se debería cambiar la configuración de arranque de los servicios para que no arrancara por defecto (BT_SEEDER="no") y lanzarlo manualmente con el comando screen screen /usr/bin/btlaunchmany.bittornado /opt/opengnsys/images usando ctrl-A + D para salir de esa pantalla y screen -x para volver a verla.

Creación de archivos .torrent

Para crear un nuevo .torrent desde el servidor de repositorio:

btmakemetafile.bittornado http://$IPRepositorio:1234/announce /opt/opengnsys/images/$ImageName --target /opt/opengnsys/images/$ImageName.img.torrent

Activación/Desactivación imagenes servidas por P2P

Si está el .torrent en /opt/opengnsys/images/ se comparte y distribuye, en cuanto se quita o se renombra a cualquier otra cosa, por ejemplo .torrent.inactive, deja de compartirse en el siguiente escaneo del directorio.

Notas

  • Problemas en la creación .torrent desde ctorrent: Parece que los .torrent que crea ctorrent no los reconoce el seeder, tengo que hacer más pruebas, si no funciona habrá que buscar una alternativa ligera para crearlos desde el cliente.
  • Problemas utilización de enlaces, simbolicos o no, en lugar de los propios archivos para el seeder: Las pruebas para que hubiera un directorio donde se pusieran los .torrent a compartir que no fuera el repositorio directamente no han sido positivas. El seeder sólo admite como parámetro el directorio dónde buscar los .torrent y trata de descargar las imagenes en ese mismo y, por tanto, habría que copiarlas en ese directorio, al intentar no tener que hacer esa copia utilizando enlaces, tanto simbólicos como "duros" al repositorio o no los reconoce el seeder, o los sigue pero no es capaz de ver que ya está la imagen completa y la machaca.