MirrorBrain

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
MirrorBrain
MirrorBrain.png
Entwickler Peter Pöml
Aktuelle Version 2.18.1
(3. Februar 2014)
Betriebssystem Linux, Unix
Programmiersprache C, Python, Perl
Lizenz GPL, Apache (Freie Software)
mirrorbrain.org

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 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[Bearbeiten | Quelltext bearbeiten]

Es wurde im openSUSE-Projekt geboren und erstmals eingesetzt und wird mittlerweile unter anderem auch bei OpenOffice.org[1], LibreOffice[2], Sugar Labs, Free Software Foundation[3], XBMC Media Center[4] und ArchServer[5] zur Verteilung ihrer Downloads eingesetzt. Auch SourceForge nutzt Teile von MirrorBrain (mod_asn) in ihrem eigenen CDN-System.[6]

Technik[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

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[7] und erreichte am 5. September 2010 die Version 1.5.

Metalink-Unterstützung[Bearbeiten | Quelltext bearbeiten]

An kompatible Clients (transparente Aushandlung[8]) 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[Bearbeiten | Quelltext bearbeiten]

Quellen[Bearbeiten | Quelltext bearbeiten]

  1. FAQ - Recording downloads via MirrorBrain. In: openoffice.org. OpenOffice.org Marketing Project, abgerufen am 12. Oktober 2010 (englisch).
  2. Peter Pöml: How the mirrors gave us a vertical take-off. In: Weblog von Peter Pöml. 7. Oktober 2010, abgerufen am 12. Oktober 2010 (englisch).
  3. Apache-Verzeichnisliste für video/. In: balance.fsf.org. Abgerufen am 13. Oktober 2010: „MirrorBrain powered by Apache“
  4. Mirrors for mirrors.xbmc.org. In: XBMC File Repository. Abgerufen am 13. Oktober 2010: „Powered by MirrorBrain“
  5. Mirror Infrastructure Update. In: ArchServer Homepage. ArchServer Project, 16. September 2009, abgerufen am 12. Oktober 2010 (englisch).
  6. New SourceForge.net Mirror Redirector. In: SourceForge.net: Project sourceforge – Downtime and feature announcements. Geeknet, Inc., 2. April 2010, abgerufen am 12. Oktober 2010 (englisch).
  7. offizielle Webpräsenz des Unterprojektes mod_asn (englischsprachig)
  8. Transparent Metalinks. In: Newsgroup Metalink Discussion. Abgerufen am 12. Oktober 2010 (englisch).