![]() |
![]() |
![]() |
![]() |
|
|
Linux-Terminalserver - eine ÜbersichtEiner für alleAndreas Sebald |
![]() |
Jeder Linux-Rechner ist im Prinzip ein vollständiger Server, ein typischer Desktop-Anwender nutzt diese Fähigkeiten aber nicht. Gut wäre es, wenn alle Serverdienste nur einmal gestartet würden, eben auf einem Server, und auf dem Desktop-Computer nur eine Anwendung zum Steuern der grafischen Oberfläche: das Prinzip des Terminalservers. Linux bringt bereits alle Voraussetzungen für den Betrieb als grafischer Terminalserver mit. Im Gegensatz zu allen Windows-Ausprägungen ist Linux nicht nur Multitasking-, sondern auch Multiuser-fähig; Windows schafft das erst mit der Terminalserver-Edition.
In kleinen Installationen reicht ein Server, der alle Dienste und Anwendungen bereitstellt. Bei großen Benutzerzahlen und hoher Verfügbarkeit kommt oft eine stärker verteilte, komplexe Architektur zum Einsatz. Die grafische Darstellung geschieht üblicherweise mit X11, das aus zwei Teilen besteht, dem Server- und dem Client-Programm, die beide auch auf verschiedenen Computern laufen und über TCP/IP miteinander kommunizieren können. Arbeiten sie auf einem Rechner, nutzen sie Named Pipes zur Kommunikation.
Damit ist neben der Multiuser-Fähigkeit auch der zweite Baustein für einen Terminalserver gegeben: Die grafische Oberfläche wird auf einem Server erzeugt und auf einem Client dargestellt. Um die Sache etwas undurchsichtig zu machen, heißt das Programm zur Darstellung auf dem Client-Desktop X-Server und das Programm, das auf dem Server die Grafiken erzeugt X-Client.
Jetzt sind alle grundlegenden Komponenten für eine Terminalserver-Lösung vorhanden, die Sache hat nur einen Haken: X11 ist selbst über ein LAN erschreckend langsam. Eine wesentliche Ursache ist das Kommunikationsverhalten des X11-Protokolls. Client und Server tauschen die benötigten Informationen - etwa über den Aufbau von Fenstern - nacheinander aus. Immer wieder werden deshalb neue Anfragen nötig, ein kompletter Zyklus aus Frage und Antwort heißt Roundtrip.
Auf diese Art und Weise werden nicht nur viele Daten übertragen, also Bandbreite belegt, auch die Latenz der Antwort wird erhöht. Ein aktiver Benutzer kann durchaus um die 5 MBit/s Bandbreite belegen. Wenn KDE startet, werden auf diesem Weg ungefähr 4 bis 6 MByte über die Leitung fällig, bei einer komprimierten SSH-Verbindung sind das immer noch knapp 2 MByte.
Es gibt mehrere Ansätze, um mit der schlechten Performance von X11 im Netz besser umzugehen: Das Linux Terminal Server Project (LTSP, Open Source) ignoriert das Problem[1]. Nomachine NX ist ein kommerzielles Produkt mit einem Open-Source-Kern. Hier geht es darum, X11 durch Proxies auf beiden Computern auf dem Netzwerkweg zu beschleunigen[2]. Die komplett proprietären Tarantella-Produkte wiederum ersetzen X11 gleich durch ein eigenes Protokoll namens AIP[3]. Alle Lösungsansätze haben für bestimmte Einsatzzwecke ihre Berechtigung.
Das Linux Terminal Server Project kam bisher nicht so recht aus den Startlöchern. Es wird hauptsächlich von Schulen[4] verwendet, da es in einem 100-MBit-Netzwerk erst bei 25 bis 50 gleichzeitigen Benutzern zu einem Lasteneinbruch kommt. Für Schulen ist das oft noch erträglich. Der große Vorteil liegt in dem cleveren Bootvorgang über das Netzwerk, der es ermöglicht, Thin Clients einzubinden: unkonfigurierte, plattenlose Computer. Damit können die chronisch unterfinanzierten Bildungseinrichtungen auch mit alten PCs flottes Arbeiten anbieten. Der zentrale Server liefert dabei nicht nur die Desktop-Darstellung für die Clients, sondern auch das komplette Betriebssystem der Clients samt Linux-Kernel und X11-Server als Bootimage.
Gebootet wird über ein PXE-Modul auf der Netzwerkkarte oder - wenn das nicht möglich ist - über eine ROM-o-matic-Diskette[5]. Voraussetzung dafür ist allerdings ein entsprechend konfigurierter DHCP-Server, der nach dem Booten das Bootimage per Trivial File Transfer Protocol (TFTP) über das Netzwerk kopiert und startet. In einem 100-MBit-Netzwerk dauert das nicht länger als das Starten von der Festplatte.
Das Projekt ist gut dokumentiert und die Zusammenarbeit der beteiligten Schulen ist, vor allem in Europa, außergewöhnlich gut[6], [7]. Es gibt vorkonfektionierte Distributionen, die nur noch lokal anzupassen sind. Für kleinere Standorte mit einer überschaubaren Anzahl Clients ist das LTSP durchaus eine Möglichkeit, mit einfachen Mitteln eine Terminalserver-Lösung aufzubauen. Und so viel sei jetzt schon verraten: An einer Open-Source-Lösung für die langsame X11-Datenübertragung wird, wie auf dem letzten Linuxtag 2004[8] zu hören war, mit Hochdruck gearbeitet.
Die Nomachine NX[2] des Italieners Gian Filippo Pinzari ist das Zaubertool, das dem LTSP und anderen Terminalservern der Open-Source-Welt Flügel verleihen soll. Die Chancen dafür stehen nicht schlecht. Anwender können Nomachine NX als kommerzielles Produkt für Linux kaufen und bekommen dann alles, was zur schnellen Installation notwendig ist. Alle Kernelemente der NX-Engine stehen jedoch unter der GPL. Ein Client-Programm, das den Linux-Desktop im Fenster darstellt, ist für Linux, Windows, Mac OS X und einige andere Systeme kostenfrei erhältlich, es gibt sogar eine Portierung auf Playstation 2. An einer Integration in das Linux Terminal Server Project wird bereits gearbeitet.
NX arbeitet als transparenter Proxy, der auf der Server- und Client-Seite installiert sein muss. Er komprimiert die Daten aber nicht nur, sondern schickt dank eines intelligenten Algorithmus unnötige Roundtrips gar nicht erst auf die Reise zur anderen Seite des Netzwerks. Das gelingt so gut, dass NX sich sogar für den Terminalserver-Betrieb über WAN-Leitungen empfiehlt. In der höchsten Kompressionsstufe erreicht NX eine durchschnittliche Kompressionsrate von 70:1. Damit lasten 150 gleichzeitig angemeldete Benutzer selbst ein schwaches 10-MBit-Netz nur zu 60 Prozent aus. Eine bestehende KDE-Session benötigt nur 40 KBit/s an Bandbreite, mit diesem Wert lässt sich sogar über eine ISDN-Verbindung bequem arbeiten.
Nomachine NX kann über einen integrierten Agenten nicht nur das X11-Protokoll verstehen, sondern zusätzlich das Windows-Protokoll RDP. Ein NX-Server ist also in der Lage, Verbindung zu einem Windows-Terminalserver aufzunehmen und als Vermittler (Middle Server) zu agieren.
Nach dem süditalienischen Tanz der von der Tarantel Gestochenen ist das Terminalserver-Produkt der alten SCO benannt. Die vielen Beine einer Spinne sollten dabei die vielfältigen Verbindungsmöglichkeiten symbolisieren. Mittlerweile ist das Spinnenlogo verschwunden und Tarantella ein eigenes Unternehmen, das seine beiden Produkte unter dem Namen Secure Global Desktop zusammenfasst. Dabei stellt die Terminal Server Edition den Kontakt zu Windows-Servern über RDP her, die Enterprise Edition, ehemals Tarantella Enterprise 3 genannt, ist für heterogene Betriebssystem-Landschaften aus Unix, Linux, Windows, Mainframe und AS/400 zuständig. Im Gegensatz zu Nomachine NX gibt es bei Tarantella[3] keine Open-Source-Bibliotheken.
Tarantella bietet keine Anwendungs-Server, sondern stellt als Middle-Server die Verbindung zum Client her. Secure Global Desktop benutzt dafür ein eigenes, sehr effizientes Protokoll (Adaptive Internet Protocol, AIP) um die Daten eines oder mehrerer Terminalserver zu den Clients zu bringen. AIP richtet die Kompressionsrate jeweils nach der zur Verfügung stehenden Bandbreite der Übertragungsleitung. Über die Kompressionsleistung macht Tarantella grundsätzlich keine Angaben, da sie zu stark von der jeweiligen Applikation und sonstigen Bedingungen abhängig sei.
Die Anwendungs-Server müssen nicht unbedingt unter Unix oder Linux laufen, auch Microsofts Terminalserver-Familie wird unterstützt. Eine sehr interessante Eigenschaft von Tarantella ist auch die Möglichkeit der Darstellung von Terminalserver-Anwendungen in einem Java-fähigen Browser. Auf diese Weise lassen sich alle Anwendungen, die auf einem Terminalserver ablaufen, kurzerhand Web-fähig machen.
Ein weiter Vorteil ist die flexible Skalierbarkeit. Die entsprechenden Lizenzen vorausgesetzt ist es möglich, mehrere Tarantella-Server zu Serverfarmen zusammenzuschließen, die außer höherer Verfügbarkeit auch Lastausgleich bieten. Das Ganze hat aber seinen Preis, und der besteht nicht nur aus den 160 bis 320 Euro pro Lizenz für einen namentlich zugreifenden Benutzer des Secure Global Desktop, sondern auch aus der nicht trivialen Installation und Betreuung eines Tarantella-Systems.
Mit dem Namen Secure Global Desktop will Tarantella verdeutlichen, dass ihre Lösung sicher ist, bezieht sich hier aber ebenfalls auf die Verfügbarkeit. Die Verfügbarkeit einer Serverfarm ist allemal höher als die eines einzelnen Servers - und genau darin liegt eines der versteckten Probleme einer einfachen Terminalserver-Lösung: Der zentrale Server ist ein Single Point of Failure. Terminalserver-Lösungen sind im produktiven Bereich aber auf hohe Verfügbarkeit und ausreichende Leistungsreserven angewiesen, hier zählt nicht nur die möglichst gute Ausnutzung der Übertragungsbandbreite.
Damit liegt der Einsatzbereich für Tarantella auf der Hand, als Frontend-Enabler ist der Secure Global Desktop die erste Wahl. Für den Einsatz in einem Netzwerk mit überschaubarer Nutzeranzahl, womöglich noch mit festen Arbeitsplätzen, ist aber genau zu prüfen, ob sich der Aufwand lohnt.
Da mit AIP und NX schnelle Übertragungsmöglichkeiten vorhanden sind, die das Netzwerk entlasten, rückt die Serverperformance in den Vordergrund. Eine der oft gebrauchten Anwendungen im Desktopbereich ist Open Office - und gerade dies zwingt einen Terminalserver in die Knie. Um solche Performanzeinbrüche abzufedern, dürfen Terminalserver nicht kleinlich ausgestattet sein. Sollte die Leistung eines einzelnen Servers nicht mehr ausreichen oder hohe Verfügbarkeit erforderlich sein, wird die Luft noch dünner.
Eine Serverfarm aufzubauen und zu betreiben erfordert den Einsatz erheblicher Mittel, nicht nur finanzieller Art. Für den Einsatz in produktiver Umgebung ist eine entsprechend hohe Verfügbarkeit und Leistung jedoch Voraussetzung. In einer Client-Server-Umgebung kann beim Ausfalls eines Servers meist teilweise lokal weitergearbeitet werden, fällt aber der einzige Terminalserver aus, können die Benutzer wieder mit Papier und Bleistift hantieren.
Auch in einem kleinen Netzwerk will der Einsatz eines Terminalservers gut überlegt sein. Je mehr Benutzer remote zugreifen, desto eher rechnet sich die Investition in kräftige zentrale Server. Nicht nur dass alle Anwendungen von der zentralen Administration gepflegt werden können. Softwareverteilung, Virenschutz, Datensicherung und all diese Dinge sind dann an einem Punkt zu erledigen, auch die Hardware der Client-Seite ist erheblich pflegeleichter. Im günstigsten Fall kommen plattenlose Thin Clients zum Einsatz, die der Benutzer bei Ausfall selbst tauschen kann, oder es kommen eigentlich veraltete PCs aus dem Fundus zu neuer Blüte.
Neue Tarantella-Produkte |
Im vierten Quartal 2004 bringt Tarantella aktualisierte Produktlinien auf den Markt. Das Unternehmen integriert zunehmend die Windows-Terminalserver-Technik der vor einem Jahr gekauften Firma New Moon mit der alten Tarantella-Technik. Ergebnis ist unter anderem ein Linux-Client für die Windows-basierte Terminal Server Edition, mit der Tarantella im direkten Wettbewerb zu Citrix steht. Größere Veränderungen stehen der im Artikel hauptsächlich behandelten Enterprise Edition bevor, sie wird auf den aktuellen großen Server-Distributionen zertifiziert sein: Suse Enterprise 9, Red Hat Advanced Server 3 und außerdem auch auf Solaris 10. Die oft kritisierte komplizierte Installation will Tarantella mit einem Web-basierten Installationstool und einem Configuration Wizard vereinfachen. Die in der DMZ angesiedelten Tarantella-Server sollen sich ohne Root-Zugang administrieren lassen, keine Datei soll Root gehören, was den Sicherheitslevel erhöht. Für das Jahr 2005 hat Tarantella einen größeren Umbau der zugrunde liegenden Technologie angekündigt, ohne bisher jedoch Details preiszugeben. |
Eine Kompromisslösung ist die gelegentliche Nutzung von Terminalserver-Diensten auf einem Fat Client. Für den sanften Umstieg auf Linux oder einen gesicherten Zugriff auf eine spezielle Anwendung bietet ein Terminalserver ideale Möglichkeiten. Terminalserver und Client-Server-Landschaft schließen einander nicht aus, sondern können sich harmonisch ergänzen.
Die Kombination Terminalserver und Thin Client unterstützt lokale Peripherie wie Drucker, Soundkarten und Datenträgergeräte nicht immer komplett. Drucken jedoch ist ein absolutes Muss, deshalb gibt es für jeden Terminalserver-Typ eine mehr oder weniger elegante Lösung, einen lokal am Client angeschlossenen Drucker zu betreiben.
Bei den übrigen Geräten sieht die Lage anders aus. Sound- oder Videostreams müssen sich die Bandbreite mit den X11-Anwendungen teilen, das kann ein K.-o.-Kriterium sein. Muss der Nutzer am Client-Desktop CDs lesen oder Disketten schreiben, zum Beispiel Zahlungsdisketten einer Buchhaltung, entfallen reine Thin-Client-Lösungen, wie sie etwa die Firma Igel[10] anbietet, und der Hauptvorteil von Terminalserver-Lösungen, nämlich preiswerte, wartungsfreie Arbeitsplätze, ist wieder ein Stück dahin.
Der Betrieb von Terminalservern ist ein alternatives Betriebskonzept. Vor allem größere Organisationen und Behörden sehen darin ein Mittel, den Wildwuchs der dezentralen IT-Strukturen zu stutzen. Die Hoffnung, die Total Cost of Ownership (TCO) drastisch zu senken, kann sich durchaus erfüllen, die Möglichkeiten sind mit Linux gegeben. Der Umstieg muss dabei nicht abrupt erfolgen, klassische Client-Server-Strukturen können auch parallel zu Terminalserver-Lösungen existieren. Das Ideal administrationsloser Thin Clients ist damit aber nicht zu erreichen.
Ihre Vorteile spielen Terminalserver bei homogenen Client-Landschaften aus, in denen die Benutzer problemlos ihren Arbeitsplatz wechseln können, oder bei vielen verteilten über WAN angebundenen Arbeitsstationen. Lokale Profilpflege entfällt, Softwareverteilung und Updates sind eine Sache von Minuten, defekte Thin Clients werden einfach durch ein baugleiches Modell ersetzt. Soweit jedenfalls die Theorie.
Wie so vieles in der Computerwelt ist auch der Betrieb von Terminalservern abhängig vom Einsatzszenario. Mit den Produkten von Tarantella gibt es eine Möglichkeit, Windows- und Unix-/Linux-Anwendungen schnell Web-fähig zu machen. Mit LTSP ist bei beschränktem Budget eine sichere Linux-Umgebung für eine überschaubare Benutzeranzahl zu realisieren, in NX steckt im Augenblick das größte Potenzial. (uwo)
Infos |
[1] Linux Terminal Server Project: [http://www.ltsp.org] [2] Nomachine NX: [http://www.nomachine.com] [3] Tarantella-Homepage: [http://www.tarantella.com] [4] LTSP in Schulen: [ http://marl.linuxfreunde.de/kmLinuxTSE.html]. [5] ROM-o-matic-Diskette: [http://www.rom-o-matic.net] [6] Pingos; Linux-User helfen Schulen: [http://www.pingos.org/portal] [7] Freie Software und Bildung e.V., Homepage: [http://fsub.schule.de] [8] "NX - Turbolader für Linux- und Windows-Terminal-Server", Vortrag auf dem Linuxtag 2004: [http://www.pl-berichte.de/berichte/lt2004-nxartikel.html] [9] Wyse-Terminals und Thin Clients: [http://www.wyse.com] [10] Igel-Thin-Clients: [http://www.igel.de] [11] PXES Universal Linux Thin Client: [http://freshmeat.net/projects/pxes] [12] Bernd Kretschmer, Dirk von Suchodoletz, Holger Burbach, " Linux-Terminal-Server": Galileo Computing, ISBN 3-89842-329-8 [13] Funktionsweise von Nomachine NX: [http://www.linux-community.de/story?storyid=13692] |
Der Autor |
Andreas Sebald ist leitender Systemverwalter einer Behörde. Aus der Unix-Welt kommend ist er darum bemüht, Linux als wirtschaftliches und stabiles Betriebssystemen zu vertreten. |