miércoles, 30 de enero de 2013

[Proyecto] Cliente torrent con Transmission y Raspberry Pi - Parte 1: Introducción

Aunque la reciente llegada de MEGA puede revitalizar las descargas directas, desde hace años he sido partidario del uso de BitTorrent. Empecé a utilizarlo hace bastantes años, cuando el mundo de las descargas estaba dominado por eMule y, al principio no le terminaba de ver las ventajas respecto de aquel programa, que tenía buscador integrado y que permitía descargar los archivos de manera más cómoda.

Con el tiempo, he visto el declive de eMule, Kazaa, Pando, Peer2Mail y seguro que me dejo alguno. La ventaja del protocolo BitTorrent es que es descentralizada y por tanto no depende de un servidor central que pueda cerrar. El caso más claro lo tenemos con la difunta Megaupload, que de momento sigue cerrada y sin permitir a sus usuarios el acceso a sus propios archivos.

Otra ventaja de BitTorrent es que, a diferencia de un servidor de descargas convencional, la disponibilidad del archivo se incrementa con el aumento de personas compartiéndolo, disminuyendo así posibles congestiones debidos a descargas masivas. Esto ha hecho que muchas compañías, desde Blizzard hasta Canonical, hagan uso del protocolo BitTorrent para compartir actualizaciones para sus juegos o las versiones de su sistema operativo, respectivamente.

El inconveniente de este sistema es que si sólo nosotros tenemos un determinado archivo compartiendo por torrent, tenemos que tener un PC encendido con conexión a Internet o nadie podrá descargarlo. Aunque en muchos casos podemos simplemente descargar el archivo y apagar el PC, habrá otros en los que queramos dejar ese archivo compartiendo. Sin embargo, un PC convencional puede gastar unos 70~100W encendido, por lo que no es lo más adecuado si queremos tenerlo compartiendo por torrent a todas horas, ya que el gasto en electricidad es considerable.

Y ahí es donde entra el Raspberry Pi, que aunque poco potente, al fin y al cabo es un ordenador, con alguna peculiaridad, pero un ordenador al fin y al cabo. El Raspberry Pi consume muy poco, apenas 2 o 3W según las especificaciones (y como nosotros no utilizaremos la GPU, consumirá aún menos). Si le añadimos un HDD de bajo consumo como un WD Caviar Green o un HDD de 2.5’’ podemos tener un sistema para descargar y compartir por torrent barato de construir y con un consumo muy bajo.

Digo que el Raspberry Pi es un ordenador con peculiaridades porque existen algunos inconvenientes que limitarán en cierta medida el proyecto. A priori se me ocurren los siguentes:
  • Por lo que he visto en foros, al escribir en un HDD con formato NTFS, que es el predeterminado de Windows, la CPU del Raspberry Pi se pone en torno a un 90% y el rendimiento es pobre. Tengo que mirar si existe alguna solución, pero creo que optaré por formatear el HDD directamente en Ext3.
  • He visto también en varios sitios que sin una configuración adecuada, el Raspberry tiende a bloquearse descargando por torrent, debido seguramente a que no es capaz de gestionar el alto número de conexiones y peticiones de red. Tendré que averiguar porqué pasa y ver qué configuración es la adecuada para evitar esto. Ya he visto en varios foros configuraciones que en principio no dan problemas, pero quiero enterarme de todos modos cuál es exactamente el problema.
  • Aunque el Raspberry tiene 2 puertos USB 2.0 y un puerto de red RJ45, realmente los tres van por la misma línea de datos USB 2.0, por lo que es de esperar que la velocidad de descarga baje al transferir archivos y viceversa. De hecho, creo que una de las cosas que más echo de menos del Raspberry es un puerto SATA al que conectar un HDD y no depender de conexiones USB y menos compartidas. Un puerto Gigabit hubiese estado también muy bien, aunque si la línea de datos tiene el ancho de banda de un USB 2.0 no hubiese servido para mucho.
  • El Raspberry no tiene suficiente potencia en los puertos USB para alimentar un HDD, por lo que o bien habrá que usar un HDD con alimentación externa o, como recomiendan en la página principal, un Hub USB autoalimentado.
A pesar de que a priori parezcan muchos problemas, creo que se puede conseguir algo bastante decente, y además nos despreocuparemos del ruido, del calor generado, del consumo y del tamaño; no todo iba a ser malo.

Este proyecto será corto, aunque quizá lo amplíe en un futuro para añadir alguna nueva funcionalidad, por ahora, lo que iremos desarrollando en siguientes entradas será lo siguiente:
  1. Instalación de Raspbian y configuración inicial.
  2. Montaje de HDD para descargas y configuración.
  3. Instalación de Transmission Daemon y configuración.
  4. Acceder a los archivos descargados de forma remota.
Con esto tendremos ya el sistema listo y funcionando. Es posible que en un futuro pueda ampliar el proyecto añadiendo un servidor DLNA o similar, pero prefiero mantenerlo simple de momento, y asegurarme de que esté terminado en un tiempo razonable (no como el anterior proyecto de la radio, que sigue parado de momento).

Nos vemos en el siguiente post, donde instalaremos Raspbian y configuraremos nuestra red doméstica para conseguir una IP fija y una redirección del puerto 80 del router para poder utilizar más tarde la interfaz web de Transmission.

No hay comentarios:

Publicar un comentario