Der MTB-News.de Serverpark

Vor gut einem Jahr habe ich in meinem Blog schon mal eine kurze Zusammenfassung der bei MTB-News.de im Einsatz befindlichen Hardware geschrieben.

Seit dem hat sich ein kleines bisschen was verändert, Zeit also für eine aktuelle Zusammenfassung.

Die wichtigen Server stehen allesamt in den Vereinigten Staaten, genauer in Dallas (Texas). Alle Maschinen basieren auf der gleichen Hardware und unterscheiden sich nur in Dingen wie z. B. Hauptspeicherausstattung. Dadurch ist die Pflege und Wartung der Server um einiges leichter, verglichen mit einer Reihe Server verschiedenster Bauart. Unsere Maschinen haben auch softwareseitig alle das gleiche Grundsetup. Basis ist das aktuelle Debian Stable (Sarge). Je nach Einsatz der Maschine wird dann die entsprechende Serversoftware installiert – Webserver oder Datenbankserver.

Hier sind wir auch schon beim Thema: Grundsätzlich unterscheiden wir Web- und Datenbankserver. Insgesamt haben wir drei Webserver im Einsatz und zwei Datenbankserver. Wobei eine Maschine zur Zeit beides gleichzeitig macht.

Als Datenbank setzen wir momentan MySQL 4.0 ein. MySQL hat sich seit Jahren als sehr performant und stabil erwiesen. Wir nutzen ausschließlich MyISAM-Tabellen – mit Ausnahme von ein paar HEAP-Tabellen (für z. B. Sessions). Für alle Applikationen von MTB-News.de reicht uns eine Maschine als Datenbankserver vollkommen aus. Trotzdem replizieren sich alle Datenbanken auf einen zweiten Server („Slave“) – aus zwei Gründen:

  1. haben wir so permanent eine exakte Kopie aller Datenbanken, was im Falle eines Ausfalls des Hauptdatenbankservers („Master“) ein schnelles Umschalten auf die replizierten Daten ermöglicht.
  2. können wir bestimmte Anfragen (Volltextsuchen in etwa) auf den Slave-Server schicken, so dass der Master sich nicht mit u. U. recht aufwändigen Abfragen aufhalten muss.

Wie bereits angedeutet, haben wir drei Webserver im Einsatz. Diese teilen sich die Arbeit wie folgt:

  1. Hauptwebserver und Load-Balancer: Hier kommen alle Anfragen für MTB-News.de (mit Ausnahme des Fotoalbums) herein und werden durch einen Loadbalancer (pound) entweder direkt an den lokalen Webserver oder an den Forum-Slave weiter geleitet. Alle Webdienste (außer dem Fotoalbum) von MTB-News.de kommen von dieser Maschine.
  2. Webserver für das Fotoalbum: diese Maschine ist ausschließlich dazu da, die Seiten des Fotoalbums auszuliefern.
  3. Der Forum-Slave generiert ausschließlich performancehungrige Seiten des Forums, die Startseite, Foren- oder Themenansichten zum Beispiel. Der überwiegende Teil der Seiten des Forums kommt von hier.

Zwei der Webserver basieren auf dem Duo Apache 1.3 und PHP 4. Auf dem anderen Webserver ist schon Apache 2.0 im Einsatz, da sich diese Version mittlerweile als sehr stabil und unanfällig für Fehler erwiesen hat. Die anderen Maschinen werden sicher mittelfristig auch auf Apache 2.0 umgestellt werden. PHP 5 ist momentan auf einem Testsystem im Einsatz und wird wohl auch bald auf allen Webservern zum Einsatz kommen. Apache 2.0 und PHP 5 durchgängig auf allen Maschinen ist also das Ziel.

Zum Thema Load-Balancing bei Webanwendungen im Allgemeinen und den Einsatz von pound im Speziellen habe ich vor einer Weile mal eine vierteilige Artikelserie geschrieben, zu finden ist sie hier: High Volume Load-Balancing – HTTP-Traffic verteilen.

Es gibt dann noch einen etwas kleineren Server, welcher für die Einblendung der Werbebanner auf den Seiten zuständig ist. Diese Maschine ist nicht Bestandteil des Clusters und steht auch nicht in Dallas, sondern im fränkischen Erlangen.

Demnächst werde ich mal ein paar Statistiken zum Besten geben – es fragen ja immer wieder Leute nach der Anzahl Seitenabrufen und Visits usw. Ihr werdet sehen, dass es durchaus eine beeindruckende Datenmenge ist, die unsere Maschinen so durch das Netzwerk pressen.

Ein Gedanke zu „Der MTB-News.de Serverpark

  1. coole sache…dachte immer der server sein ein alter pII der beim rickman in der küche steht und ne dsl flat hat ;)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.