!!! ACHTUNG - evtl. veraltet - ACHTUNG !!!
Diese Seite wurde zuletzt am 9. Juli 2014 um 10:54 Uhr geändert.
Wenn man mit mehreren (in unserem Fall waren es zwölf) Clients große Datenmengen (bei uns waren es >100GB) im lokalen Netz verteilen möchte,
und ein Teil der Infrastruktur (bei uns der 100MBit-Switch) ein Flaschenhals wäre, wenn alle Clients auf den selben Server zugreifen würden,
bieten sich torrents an.
Was brauche ich dazu:
(ein lokaler Tracker)
su - aptitude install cvs build-essential zlib1g-dev exit cd /usr/local/src cvs -d :pserver:cvs@cvs.fefe.de:/cvs -z9 co libowfat cd libowfat make cd .. cvs -d:pserver:anoncvs@cvs.erdgeist.org:/home/cvsroot co opentracker cd opentracker make su - cp opentracker /usr/local/bin/ chown root:root /usr/local/bin/opentracker chmod 755 /usr/local/bin/opentracker
/etc/rc.local um folgenden Eintrag ergänzen (vor „exit 0“!):
/usr/local/bin/opentracker &
(selbstgebaut)
su - aptitude install thttpd curl mrtg sed -i "s/dir=\/var\/www/&\/mrtg/" /etc/thttpd/thttpd.conf
/etc/mrtg.cfg mit folgendem Inhalt versehen:
EnableIPv6: no WorkDir: /var/www/mrtg Options[[_]]: YSize[[_]]: 150 pagetop[[tracker-conn]]: <h1>tracker - Connections/min</h1><hr> target[[tracker-conn]]: `curl http://<IP-ADRESSE-DES-TRACKERS>:6969/stats?mode=conn` maxbytes[[tracker-conn]]: 100000000 title[[tracker-conn]]: Connections/min options[[tracker-conn]]: growright, nopercent, perminute ylegend[[tracker-conn]]: Requests/min shortlegend[[tracker-conn]]: requests/min legendI[[tracker-conn]]: Requests legendO[[tracker-conn]]: Announces legend1[[tracker-conn]]: Requests legend2[[tracker-conn]]: Announces pagetop[[tracker-peer]]: <h1>tracker - Downloaders and Seeders</h1><hr> target[[tracker-peer]]: `curl http://<IP-ADRESSE-DES-TRACKERS>:6969/stats?mode=peer` maxbytes[[tracker-peer]]: 100000000 title[[tracker-peer]]: Downloaders and Seeders options[[tracker-peer]]: growright, nopercent, gauge ylegend[[tracker-peer]]: Peers shortlegend[[tracker-peer]]: peers legendI[[tracker-peer]]: Downloaders legendO[[tracker-peer]]: Seeders legend1[[tracker-peer]]: Number of Downloaders and Seeders for complete Tracker legend2[[tracker-peer]]: Number of Seeders for complete Tracker pagetop[[tracker-udp4]]: <h1>tracker - UDP Connections</h1><hr> target[[tracker-udp4]]: `curl http://<IP-ADRESSE-DES-TRACKERS>:6969/stats?mode=udp4` maxbytes[[tracker-udp4]]: 100000000 title[[tracker-udp4]]: UDP connections options[[tracker-udp4]]: growright, nopercent, perminute ylegend[[tracker-udp4]]: UDP requests/min shortlegend[[tracker-udp4]]: udp requests/min legendi[[tracker-udp4]]: Requests legendo[[tracker-udp4]]: Announces legend1[[tracker-udp4]]: Requests legend2[[tracker-udp4]]: Announces pagetop[[tracker-tcp4]]: <h1>tracker - TCP Connections</h1><hr> target[[tracker-tcp4]]: `curl http://<IP-ADRESSE-DES-TRACKERS>:6969/stats?mode=tcp4` maxbytes[[tracker-tcp4]]: 100000000 title[[tracker-tcp4]]: TCP connections options[[tracker-tcp4]]: growright, nopercent, perminute ylegend[[tracker-tcp4]]: TCP requests/min shortlegend[[tracker-tcp4]]: tcp requests/min legendi[[tracker-tcp4]]: Requests legendo[[tracker-tcp4]]: Announces legend1[[tracker-tcp4]]: Requests legend2[[tracker-tcp4]]: Announces pagetop[[tracker-scrp]]: <h1>tracker - Scrape Connetions</h1><hr> target[[tracker-scrp]]: `curl http://<IP-ADRESSE-DES-TRACKERS>:6969/stats?mode=scrp` maxbytes[[tracker-scrp]]: 100000000 title[[tracker-scrp]]: Scrape connections options[[tracker-scrp]]: growright, nopercent, perminute ylegend[[tracker-scrp]]: Scrape requests/min shortlegend[[tracker-scrp]]: scrape requests/min legendi[[tracker-scrp]]: TCP Scrapes legendo[[tracker-scrp]]: UDP Scrapes legend1[[tracker-scrp]]: TCP Scrapes legend2[[tracker-scrp]]: UDP Scrapes pagetop[[tracker-torr]]: <h1>tracker - Number of Torrents</h1><hr> target[[tracker-torr]]: `curl http://<IP-ADRESSE-DES-TRACKERS>:6969/stats?mode=torr` maxbytes[[tracker-torr]]: 100000000 title[[tracker-torr]]: Number of Torrents options[[tracker-torr]]: growright, nopercent, gauge ylegend[[tracker-torr]]: Torrents shortlegend[[tracker-torr]]: torrents legendi[[tracker-torr]]: Torrents legendo[[tracker-torr]]: legend1[[tracker-torr]]: Torrents legend2[[tracker-torr]]:
Nach dem ersten erfolgreichen Durchlaufe (guckst Du „tail /var/log/mrtg/mrtg.log“) fehlt nun noch ein letzter Befehl:
/usr/bin/indexmaker /etc/mrtg.cfg > /var/www/mrtg/index.html
Danach kann man die root-Rechte per „exit“ natürlich wieder abgeben.
(etwas zum generieren von .torrent-Dateien)
su - aptitude install mktorrent exit mktorrent -a http://<IP-DES-SERVERS-AUF-DEM-OPENTRACKER-LAEUFT>:6969/announce <VERZEICHNIS-MIT-GROSSEN-DATEIEN>/
(lenny: quellen downloaden, make, ausfuehren und fertig!)
<VERZEICHNIS-MIT-GROSSEN-DATEIEN>.torrent an alle verteilen (per download, script, cssh,…)
Wenn ich mich in dem Verzeichnis, in der die .torrent-Datei UND die zu verteilenden Dateien im Unterverzeichnis <VERZEICHNIS-MIT-GROSSEN-DATEIEN> befinde:
su - aptitude install rtorrent screen exit screen rtorrent .torrent <strg>+<a> <strg>+<d>
Jetzt nur noch per Cluster-SSH auf jedem Client rtorrent und screen installieren und rtorrent ebenfalls starten (natürlich ohne das Unterverzeichnis mit den großen Dateien)…
bereits nach wenigen sekunden werden auch sie seeden und so die netzlast gleichmäßig verteilen…
was sich ab zehn Clients im 100MBit-Netz schon fast wie ein 1GBit-Netz anfühlt!