Die Hintergründe der Unet-Misere

von Peter Marksteiner (Ausgabe 99/1, März 1999)

 

Jahrelang hat der Unet-Rechner seine Funktionen als Mail- und Webserver für die Studierenden der Universität Wien ohne größere Probleme erfüllt. Nach der Umstellung auf DCE/DFS zu Beginn des Wintersemesters funktionierte er eine Woche lang praktisch überhaupt nicht, dann ein Monat lang sehr schlecht, und erst nach zwei weiteren Monaten konnten die letzten Probleme beseitigt werden. Im folgenden wird beschrieben, wie es zu diesem unerfreulichen Zustand kam, warum diese Maßnahme unvermeidlich war und warum sie sich langfristig aller Voraussicht nach doch rentieren wird.

Obwohl der Unet-Recher stabil und zuverlässig lief, kam er doch nahe an die Grenzen seiner Leistungsfähigkeit: Vor allem wegen der hohen Benutzerzahl - gegen Ende des Sommersemesters 1998 waren es etwa 25.000 - ging es manchmal schon recht zäh. Es war daher unvermeidlich, früher oder später auf eine verteilte Lösung umzusteigen. Der unmittelbare Anlaß für die DCE-Umstellung war jedoch das PC-Raum-Projekt. Öffentlich zugängliche PC-Arbeitsplätze für alle Studierenden einzurichten, ist bei einer der größten Universitäten Europas, die noch dazu auf so viele verschiedene Standorte verteilt ist, keine leichte Aufgabe. Die Anforderungen an dieses System sind hoch: Weltweit gibt es nur wenige Institutionen, die vergleichbare Projekte durchgeführt haben, und die Auswahl an Softwareprodukten, mit denen man ein solches System verwalten kann, ist nicht sehr groß.

Nach langen Planungs- und Vorbereitungsarbeiten fiel im Frühjahr 1998 die Entscheidung: Der Betrieb der neuen PC-Räume sollte auf dem Distributed Computing Environment (DCE) beruhen. Auch etliche andere Dienstleistungen des EDV-Zentrums sollten nach und nach auf DCE umgestellt werden, um die Vorteile des Systems (einheitliche Authentifizierung, vereinfachte Administration etc.) so weit wie möglich nutzen zu können. Damit wurde auch das Unet-Team mit dem Thema DCE konfrontiert: Als erster Schritt der DCE-Implementation war die Einbindung des Unet-Rechners als Klient ins DCE und die Übersiedlung der Benutzerdaten in ein Distributed File System (DFS) geplant. Ansonsten sollte sich an den Funktionen des Unet-Rechners nicht viel ändern - er sollte weiterhin der zentrale Mail- und Webserver bleiben.

Anfangs haben wir das Ausmaß dieser Umstellung etwas unterschätzt: Wir meinten, nach der Übernahme der Daten ins DFS könnte der Unet-Rechner im großen und ganzen so weiterlaufen wie bisher. Es stellte sich jedoch bald heraus, daß alle verwendeten Softwareprodukte (Webserver, Mail- und POP-Server) im DCE nicht ohne weiteres funktionierten. Nachdem die Suche nach geeigneten fertigen Lösungen erfolglos war, beschlossen wir, die fehlenden Komponenten selbst zu schreiben. Diese Arbeit ging zügig voran; die neuen Programme wurden im Lauf des Sommers entwickelt und gründlich getestet. Die Vorbereitungen waren bald abgeschlossen, sodaß die Umstellung noch rechtzeitig vor Beginn des Wintersemesters erfolgen konnte.

Am Sonntag, den 27. September, wurde der Betrieb des Unet-Rechners wie angekündigt um acht Uhr morgens eingestellt. Anfangs verlief alles nach Plan: Nach einigen Stunden war das Übertragen der Benutzerdaten ins DFS beendet, und am späten Nachmittag ging der Unet-Rechner in seiner neuen Funktion als DCE-Klient wieder in Betrieb. Die Freude war allerdings nur von kurzer Dauer - schon nach wenigen Minuten begann die Last auf der Maschine zu steigen und erreichte bald beängstigende Ausmaße. Schließlich reagierte der Rechner überhaupt nicht mehr und konnte nur durch Drücken des Reset-Knopfs neu gestartet werden. Nachdem sich dieses Spiel mehrere Male wiederholt hatte, gaben wir gegen drei Uhr früh vorläufig auf, drückten ein letztes Mal auf den Reset-Knopf und fuhren nach Hause. (Der Unet-Rechner hielt noch etwas länger durch und gab erst um fünf Uhr den Geist auf.)

In den nächsten Tagen gab es nur sporadisch einen rudimentären Betrieb. In den kurzen Phasen, in denen die Maschine mit akzeptabler Geschwindigkeit antwortete, beobachteten wir ihr Verhalten und entwickelten verschiedene Theorien über die Ursachen dieser Performance-Probleme. Aufgrund dieser Theorien (die sich später im wesentlichen als korrekt herausstellten) entwickelten wir in großer Hektik neue Versionen von Webserver, Mail- und POP-Server, die das System weniger belasten sollten. Zusätzlich wurden noch verschiedene Tuning-Maßnahmen ergriffen, und nach einigen Tagen funktionierte der Rechner wieder einigermaßen - bis plötzlich gehäuft die Nameserver abzustürzen begannen.

Was Nameserver-Abstürze mit DCE-Problemen auf dem Unet-Rechner zu tun haben sollen, ist nicht unmittelbar einsichtig; nach ein oder zwei Tagen stand aber dennoch eindeutig fest, daß der Unet-Rechner der "Schuldige" war. Für dieses Problem gab es vorerst nur eine Behelfslösung: Es wurde ein eigener Nameserver aufgesetzt, der gegen den Unet-Rechner "immun" war, und auf dem Unet-Rechner selbst wurde ein komplizierter Überwachungs-Prozeß implementiert, der laufend die diversen DCE-Services (die sogenannten "Daemonen") überprüfte und gegebenenfalls neu startete. Leider war das sehr oft nötig, wodurch es mehrmals täglich zu Betriebsunterbrechungen von einigen Minuten kam. Auch die Performance-Probleme waren noch immer nicht beseitigt - des öfteren wurde die Maschine durch übermäßige Last vollkommen lahmgelegt.

In der Zwischenzeit hatte sich auch der Software-Support von IBM der Probleme angenommen. (Es dauerte einige Zeit, die IBM davon zu überzeugen, daß das Problem bei ihrer DCE-Software lag und nicht bei uns.) Nachdem zwei IBM-Abteilungen in Austin einander mehrmals den Schwarzen Peter zugeschoben hatten, kam endlich der Rat, ein Upgrade auf die neueste Betriebssystem-Version durchzuführen. Meistens ist das die Standard-Ausrede von Softwarefirmen; diesmal gab es jedoch auch solide technische Gründe dafür, weshalb wir den Rat annahmen. Anstelle eines Upgrades wurde jedoch das neue Betriebssystem auf einem neuen Rechner von Anfang an neu installiert und konfiguriert.

Nach einem besonders ausgiebigen Absturz am Vorabend, der den Unet-Rechner die ganze Nacht lahmlegte, wurde am Vormittag des 28. Oktober der neue Rechner mit der neuen Software in Betrieb genommen. Die ersten Erfahrungen waren durchaus ermutigend; vor allem trat das Problem mit den Nameserver-Abstürzen nicht mehr auf. Dennoch funktionierte auch das neue System nicht einwandfrei: Die DCE-Daemonen zeigten nach wie vor die Tendenz, frühzeitig zu versterben. Auch die oben beschriebenen Performance-Einbrüche gab es immer noch, wenn auch in weit abgeschwächter Form. Immerhin gelang es nach ein paar Tagen, einen einigermaßen akzeptablen Betriebszustand aufrechtzuerhalten: Aufwendige Überwachungsprozeduren bemerken es sofort, wenn Daemonen nicht laufen, und starten sie neu - zum Unterschied zu früher praktisch ohne Beeinträchtigung des Betriebs. Durch prophylaktischen Neustart von Zeit zu Zeit werden die Auswirkungen der Instabilitäten der Daemonen auf ein Minimum beschränkt.

Auch wenn durch ähnliche Maßnahmen noch einzelne Verbesserungen möglich sind, auch wenn IBM sich der diversen Bugs annimmt, ist ein solcher Zustand auf Dauer dennoch nicht tragbar. Das Grundproblem scheint zu sein, daß DCE - zumindest in der derzeit von IBM angebotenen Implementation - für so "schwergewichtige" Klienten wie den Unet-Rechner nicht geeignet ist. Leistungsstarke Server können tausende Klienten mit zehntausenden Benutzern anscheinend ohne Probleme versorgen; ein einzelner Klient ist jedoch mit den Aufgaben, wie sie der Unet-Rechner zu erfüllen hat, hoffnungslos überfordert. Die Tests im Sommer wurden bei geringerer Last durchgeführt- da traten diese Probleme nie auf. Offensichtlich hat auch IBM die Klienten nie unter Last getestet. (An dieser Stelle sei angemerkt, daß die Probleme ausschließlich bei der kommerziellen DCE-Software liegen; die "selbstgestrickten" DCE-fähigen Versionen von public domain-Web- und Mailservern funktionieren tadellos.)

Da ein einzelner Klient nicht ausreicht, liegt es nahe, die Last auf mehrere Klienten zu verteilen. In einem ersten Schritt wurden daher Web- und Mail-Services voneinander getrennt. Am 16. Dezember 1998 wurde der neue Webserver www.unet.univie.ac.at in Betrieb genommen; allerdings nur für wenige Stunden, dann blieb er einfach stehen. Nachdem IBM das Problem als Fehler im DFS identifiziert hatte, wurde am 23. Dezember ein Patch (= Fehlerkorrektur) ausgeliefert - mit diesem Patch lief der Server ganze fünf Minuten. Nach Neujahr kam schließlich ein Patch für den Patch, und seither laufen beide Rechner, der Web- und der Mailserver, (fast) ohne Probleme. Möglicherweise wird es noch weitere Aufteilungen geben (z.B. einen eigenen Timesharing-Rechner).

Abschließend möchten wir uns bei den "Opfern" der DCE-Umstellung bedanken, die trotz unzustellbarer eMail, unerreichbarer Server und unzugänglicher Homepages viel Geduld aufbrachten und - von wenigen Ausnahmen abgesehen - großes Verständnis für die Mühen und Nöte der Mitarbeiter des EDV-Zentrums zeigten.