MirrorBrain
MirrorBrain ist eine freie HTTP-Server-Software für Linux-Betriebssysteme mit Apache zum Betrieb eines Content Distribution Networks, das für Download-Anfragen intelligent günstige Bezugsquellen vermittelt.
MirrorBrain | |
---|---|
Basisdaten | |
Entwickler | Peter Pöml |
Aktuelle Version | 2.18.1[1] (3. Februar 2014) |
Betriebssystem | Linux, Unix |
Programmiersprache | C, Python, Perl |
Lizenz | GPL, Apache (Freie Software) |
mirrorbrain.org |
MirrorBrain wird seit 2006 hauptsächlich von Peter Pöml entwickelt und seit 2007 produktiv eingesetzt. Es ist teilweise (Apache-Module) in C, ansonsten überwiegend in Python entwickelt (nur der Scanner ist in Perl geschrieben) und als freie Software mit Ausnahme von drei Apache-lizenzierten Modulen unter den Bedingungen der GNU General Public License (GPL) verfügbar.
Verbreitung
Es wurde im openSUSE-Projekt geboren und erstmals eingesetzt und wird mittlerweile unter anderem auch bei OpenOffice.org[2], LibreOffice[3], Sugar Labs, Free Software Foundation[4], Kodi Media Center[5] und ArchServer[6] zur Verteilung ihrer Downloads eingesetzt. Auch SourceForge nutzt Teile von MirrorBrain (mod_asn) in ihrem eigenen CDN-System.[7]
Technik
MirrorBrain hat einen modularen Aufbau, in dessen Mittelpunkt der Weiterleitungs-Server (Redirector) steht (ein Apache-Modul namens mod_mirrorbrain), der intelligent netzwerktechnisch naheliegende Spiegelserver auswählt und Clients ohne Metalink-Fähigkeit per HTTP-Weiterleitung an einen (HTTP- oder FTP-)Spiegelserver weiterleitet. Die Auswahl erfolgt primär anhand der (physischen oder netzwerktopologischen) Distanz zwischen Anfrager und verfügbaren Spiegelservern, was anhand der IP-Adressen über Geolokation (per libGeoIP) und Routing-Daten (per mod_asn, siehe unten) ermittelt wird. Kommen danach mehrere Server in Frage, so wird anhand der Möglichkeiten der Server eine Lastverteilung vorgenommen. Die Vorgehensweise kann dabei konfiguriert und mit eigenen Regeln auch teilweise übergangen werden.
Der Mirror Scanner scannt die Spiegelserver (unter anderem mittels des auf Spiegelservern meist vorhandenen rsync) und trägt die Analysedaten in einer Datenbank (anfangs nur MySQL, nach einer Übergangsphase nur noch PostgreSQL) zusammen. Mirror Probe prüft alle paar Minuten die Verfügbarkeit der Server. Es gibt weiterhin Module zur automatischen Erstellung von Torrents und der Generierung von Prüfsummen nach verschiedenen Verfahren.
mod_asn
Das im Rahmen des Projektes entwickelte, unabhängig einsetzbare Apache-Modul mod_asn ermittelt anhand von IP-Adressen mittels des Border Gateway Protocol über AS-Nummern und Subnetz-Präfixe Daten über die Routen zwischen zwei Rechnern. In MirrorBrain stellen diese Routing-Daten als Mittel zur Erschließung der netzwerktopologischen Distanz neben der mittels Geolokation ermittelten physischen Distanz und dem untergeordneten Aspekt der Lastverteilung einen der Aspekte dar, nach denen sich der Weiterleitungs-Server bei der Auswahl der Server richtet. Dieses Modul wird beispielsweise bei SourceForge zur Datengewinnung in deren eigener CDN-Lösung verwendet. Es ist im MirrorBrain-Projekt eines der Apache-lizenzierten und der in C gecodeten Teile. Es wird seit Februar 2009 entwickelt, erhielt Anfang März ein eigenes Code-Repositorium, erreichte am 31. März die Versionsnummer 1 und bekam am 13. Juli 2009 seine eigene Website[8] und erreichte am 5. September 2010 die Version 1.5.
Metalink-Unterstützung
An kompatible Clients (transparente Aushandlung[9]) können dynamisch generierte Metalinks ausgegeben werden, anhand derer der Client selber aus mehreren enthaltenen Quellenverweisen wählen kann und die auch auf Quellen verweisen können, die über andere Protokolle (BitTorrent) ausliefern. Diese beim Client verfügbare Quellenredundanz ermöglicht die Einbeziehung zusätzlicher, nur aus Client-Sicht verfügbarer Daten in die Spiegelauswahl-Entscheidung, einen einfachen Failover im Hintergrund, sowie zur Maximierung der Downlink-Auslastung auch das parallele Anzapfen mehrerer Quellen. Die Metalinks können auch mit OpenPGP-Signaturen ausgeliefert werden, die das Spiegelserversystem als Fehlerquelle und Sicherheitsproblem eliminieren können. Eine ebenfalls integrierte Liste mit mehreren Prüfsummen ermöglicht die abschnittsweise Kontrolle angekommener Daten noch während des Herunterladens.
Weblinks
- offizielle Webpräsenz
- ausführlicher Artikel des Linux-Magazins von 2008
Einzelnachweise
- mirrorbrain.org. (abgerufen am 24. Juni 2017).
- FAQ - Recording downloads via MirrorBrain. In: openoffice.org. OpenOffice.org Marketing Project, abgerufen am 12. Oktober 2010 (englisch).
- Peter Pöml: How the mirrors gave us a vertical take-off. (Nicht mehr online verfügbar.) In: Weblog von Peter Pöml. 7. Oktober 2010, archiviert vom Original am 11. Februar 2013; abgerufen am 12. Oktober 2010 (englisch). Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.
- Apache-Verzeichnisliste für video/. In: balance.fsf.org. Abgerufen am 13. Oktober 2010: „MirrorBrain powered by Apache“
- Mirrors for mirrors.xbmc.org. (Nicht mehr online verfügbar.) In: XBMC File Repository. Ehemals im Original; abgerufen am 13. Oktober 2010: „Powered by MirrorBrain“
- Mirror Infrastructure Update. In: ArchServer Homepage. ArchServer Project, 16. September 2009, abgerufen am 12. Oktober 2010 (englisch).
- New SourceForge.net Mirror Redirector. (Nicht mehr online verfügbar.) In: SourceForge.net: Project sourceforge – Downtime and feature announcements. Geeknet, Inc., 2. April 2010, archiviert vom Original am 9. März 2010; abgerufen am 12. Oktober 2010 (englisch). Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.
- offizielle Webpräsenz des Unterprojektes mod_asn (englischsprachig)
- Transparent Metalinks. (Nicht mehr online verfügbar.) In: Newsgroup Metalink Discussion. Archiviert vom Original am 24. April 2012; abgerufen am 12. Oktober 2010 (englisch). Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.