Mirrorbrain, der Redirector und Metalink-Generator des Opensuse-Projekts

(C) Kirsty Pargeter, Fotolia.com

Beliebte Download-Angebote verursachen mächtig Last auf den anbietenden Servern. Das Opensuse-Projekt verwendet ausgeklügelte Open-Source-Software, um die Anfragen optimal über ein Netz von Mirror-Servern zu verteilen.

Jeden Tag prasseln auf die Downloadseiten des Opensuse-Projektes bis zu 40 Millionen Anfragen ein. Sie alle verlangen gleichzeitig nach den mehrere GByte großen Images der beliebten Distribution. Ein einzelner, kleiner Server wäre mit der Auslieferung dieser Datenmengen schon nach wenigen Millisekunden hoffnungslos überfordert. Dennoch flutschen die Bytes in der Praxis ohne lange Verzögerungen auf die Festplatten der Interessenten. Diese reibungslose Abwicklung klappt nur Dank der zahlreichen Spiegelserver im Hintergrund – und einer unscheinbaren Software namens Mirrorbrain (auch als Opensuse Download Redirector bekannt).

Dessen Arbeitsweise ist so einfach wie genial: Sobald ein Client um einen Download bittet, ermittelt Mirrorbrain anhand der IP-Adresse dessen geographischen Standpunkt und leitet ihn anschließend an einen Spiegelserver in der Nähe weiter. Sollten mehrere Server in etwa gleicher Entfernung zum Client stehen, wählt Mirrorbrain automatisch denjenigen mit der momentan geringsten Auslastung (Load Balancing).

Vor der Haustür

Da die Daten somit praktisch vor der Haustür des Abnehmers lagern und nicht erst langwierig durch das Überseekabel aus den vereinigten Staaten genuckelt werden müssen, flutscht nicht nur der Transport – die Übertragungswege des Internet bleiben auch für wichtigere Dinge frei. Den dabei entstehenden Rechnerverbund bezeichnet man allgemein als Content Delivery Network (auch Content Distribution Network, kurz CDN).

Intern besteht Mirrorbrain ausschließlich aus freien Software-Komponenten. Das eigentliche Gehirn des Mirrorbrain-Systems bildet dabei der Redirector “mod_zrkadlo”, ein Modul für den Apache-Webserver ab Version 2.2. Sein etwas merkwürdig anmutender Name stammt aus dem Slowakischen und lässt sich mit “Spiegel” übersetzen. Das Modul ermittelt für jede eingehende Anfrage einen passenden Spiegelserver und leitet den Client an ihn weiter.

Die Geographie des Internet

Die eigentliche Auflösung der IP-Adresse übernimmt dabei die externe Bibliothek LibGeoIP der Firma Maxmind.

Die Firma Maxmind zeigt die Leistung ihrer IP-Ortung auch in einer Online-Demo.

Die Firma Maxmind zeigt die Leistung ihrer IP-Ortung auch in einer Online-Demo.

Bei der Wahl des Mirrors berücksichtigt mod_zrkadlo nicht nur dessen geographischen Standort, sondern auch die jeweils aktuell auf den Servern liegenden Dateien. Letzteres ist notwendig, da zum einen nicht jeder Spiegelserver zwangsweise alle Pakete eines Projekts bereitstellen muss und zum anderen auf den Mirrors auch veraltete Dateiversionen liegen können. Letzteres passiert beispielsweise gerne nach einer Aktualisierung der Pakete auf dem Hauptserver: Bis die Mirrors davon Wind bekommen und ihre Dateien synchronisiert haben, können durchaus schon einmal mehrere Stunden vergehen. Der anfragende Client muss jedoch immer die aktuellste Version erhalten.

Prüfen und Sammeln

Alle diese Statusinformationen über die Spiegelserver trägt der Mirror Scanner zusammen. Das Werkzeug besucht in regelmäßigen Abständen alle Server per Rsync, FTP oder HTTP-Protokoll und prüft dabei auch noch gleichzeitig, ob die Mirrors überhaupt in der Lage sind, große Dateien ohne Fehler zu übertragen. Die ergatterten Informationen legt der Scanner in einer MySQL-Datenbank ab, aus der sich dann wiederum der Redirector mod_zrkadlo über das Apache DBD-Framework bedient. Die Datenbank wurde dabei so entworfen, dass eine einzige SQL-Abfrage pro Client-Anfrage ausreicht.

Als letzter Helfer im Bunde prüft Mirror Probe in bestimmten Abständen, ob die in der Datenbank gelisteten Spiegelserver noch leben. Sollte einer von ihnen vom Netz gegangen sein, unterbindet Mirrorbrain automatisch jegliche Weiterleitung, bis der Mirror wieder verfügbar ist.

Metalinker listet Spiegelserver-Dateien in einem standardisierten XML-Format auf.

Metalinker listet Spiegelserver-Dateien in einem standardisierten XML-Format auf.

Metalinks

Alternativ zur direkten Weiterleitung erzeugt Mirrorbrain sogenannte Metalinks. Dabei handelt es sich um eine Liste mit Spiegelservern in einem standardisierten und auf XML basierenden Format. Sollte ein Server ausfallen, kann dann der Client ohne weitere Nachfrage selbständig zu einem anderen Mirror auf der Liste wechseln. Darüber hinaus enthalten Metalinks Hashwerte, mit denen die Clients die Integrität der heruntergeladenen Daten überprüfen können. Allerdings ist die Anzahl der Programme, die Metalinks unterstützen, noch recht überschaubar. Die Unterstützung für YaST/Zypper ist derzeit in Arbeit.

Erfolgsgeschichte

Obwohl Dr. Peter Poeml erst seit etwas über einem Jahr an Mirrorbrain werkelt, hat das System seine Alltagstauglichkeit beim Opensuse-Projekt bereits eindrucksvoll unter Beweis gestellt. Dort jongliert es nach Angaben von Novell mit über 500.000 Dateien. Die meisten Belastungen kommen dabei auf den Webserver zu. Die Homepage des Mirrorbrain-Projektes empfiehlt, möglichst die komplette Datenbank samt Index im Hauptspeicher zu halten.

Im Fall von Opensuse läuft das System auf einem Xeon-Rechner mit 3,4 GHz und 4 GByte RAM. Darauf laufen 12 parallele Scannerprozesse sowie die Datenbank, die so bis zu 2000 Anfragen pro Sekunde beantworten kann. Seit dem Update Mitte August dürfen zudem mehrere Instanzen von Mirrorbrain parallel auf einer Maschine laufen. Apache kann diese Instanzen jeweils in einem virtuellen Host betreiben.

Mirrorbrain bei der Arbeit: Die Download-Seite liegt bei Opensuse, doch die heruntergeladene Datei kommt von einem Mirror-Server.

Mirrorbrain bei der Arbeit: Die Download-Seite liegt bei Opensuse, doch die heruntergeladene Datei kommt von einem Mirror-Server.

Von den großen, kommerziellen Content Delivery Networks unterscheidet sich Mirrorbrain primär durch die Arbeitsweise. Beispielsweise betreibt Akamai nach eigenen Angaben alleine über 25.000 Server in 71 Ländern. Da das Unternehmen die volle Kontrolle über seine Rechner besitzt, kann es die Weiterleitung schon transparent auf der DNS-Ebene ansetzen und darüber hinaus sogar als Application Service Provider (ASP) komplette Anwendungen anbieten. So betreibt Akamai unter anderem die Videoangebote von ARD, ZDF und Maxdome.

Die Betreiber eines Open-Source-Projektes sind hingegen auf das Wohlwollen anderer Serverbetreiber angewiesen, die in der Regel gerade mal etwas Plattenplatz herausrücken. Es entsteht so ein heterogener Rechnerverbund, auf den der Projektinitiator normalerweise keine direkten Einflussmöglichkeiten besitzt. In genau solchen Umgebungen sorgt Mirrorbrain für eine schnelle und gerechte Abwicklung der Downloads – nicht mehr, aber auch nicht weniger. Und wie das Opensuse-Projekt beweist, scheint Mirrorbrain seine Sache äußerst gut zu machen. (mhu)

LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben