Planung von Umgebungen auf VDI-Basis, Teil 1
16. März 2011Das Thema Virtual Desktop Infrastructure (VDI) gehört zu den Bereichen, die derzeit in vielen Unternehmen diskutiert oder gar umgesetzt werden. Dabei handelt es sich um eine Art der Desktop-Virtualisierung, bei der der gesamte IT-Arbeitsplatz eines Mitarbeiters aus dem zentralen Rechenzentrum beziehungsweise Serverraum kommt. Der Anwender verbindet sich dann nur remote über sein Endgerät – das kann ein normaler Arbeitsplatzrechner oder auch ein Thin Client sein – mit diesem IT-Arbeitsplatz im Rechenzentrum. Dabei residieren alle Anwendungen, Daten und Einstellungen üblicherweise auf den zentralen Servern. Lokal auf den Endgeräten liegen normalerweise keine Informationen.
Diese Beitragsreihe befasst sich mit Fragen, wo eine VDI die größten Vorteile bringt, welche Technologien zu einer VDI beitragen, wie die passende Infrastruktur dazu aussieht und wie zum Beispiel XenDesktop von Citrix Microsofts Ansatz für eine VDI optimal ergänzt. Doch dieser erste Beitrag konzentriert sich auf einige Technologien, die auf den ersten Blick gar nicht viel mit der VDI zu tun haben. Die hier besprochenen Desktop-Virtualisierungs-Lösungen sind üblicherweise kein Bestandteil einer VDI – doch sie gelten als kritische Komponenten einer erfolgreich eingesetzten VDI-Architektur.
Den wohl wichtigsten Aspekt der IT-Umgebung eines Benutzers bilden die Applikationen. Sie führen bestimmte Funktionen aus und manipulieren zum einen lokale Daten (auf dem Endgerät) sowie entfernte Daten (etwa auf einem zentralen Server).
Das Betriebssystem dagegen gilt als das primäre Tool, um die Applikationen laufen zu lassen und um die Daten zu verwalten. Benutzer passen ihre Betriebssystem-Umgebung dazu gerne an – sie verwenden spezielle Hintergründe, Bildschirmschoner, Verknüpfungen auf dem Desktop und Favoriten. Auch wenn all diese Änderungen durch die Benutzer für einen Administrator als verzichtbar gelten, verwenden die Anwender doch viel Zeit, etwa um verloren gegangene Applikationen oder Daten wieder zu finden oder um Verknüpfungen neu zu erstellen. Daher ist die Verwaltung der Umgebung eines einzelnen Benutzers ein wichtiger Faktor in dieser Gleichung.
Daher in erster Linie spielen drei Bereiche zusammen, um den Arbeitsplatz für einen Benutzer bereit zu stellen:
- Die Daten und Einstellungen für den Benutzer,
- die Applikationen, auf die er Zugriff hat und
- das Betriebssystem.
Zudem ist auch noch die eigentliche Hardware wichtig, die der Benutzer als Endgerät verwendet und auf dem das Betriebssystem installiert ist.
In den meisten Arbeitsplatz-Umgebungen sind all diese Komponenten miteinander eng verschlungen:
Das Betriebssystem ist lokal auf dem Arbeitsplatzrechner des Anwenders installiert, die Applikationen kommen direkt auf diesem Betriebssystem zum Einsatz – und führen bei der Installation und beim Betrieb dann Änderungen am Dateisystem, an der Registry und an anderen Bestandteilen des Betriebssystems aus. Dazu werden die Benutzerdaten und die zugehörigen Einstellungen auf dem lokalen Dateisystem abgelegt.
Diese verschiedenen Ebenen werden üblicherweise recht abstrakt dargestellt (wie in Bild 1 zu sehen), da die Applikationen auf dem Betriebssystem installiert werden und weil der Benutzer das Betriebssystem und die Applikationen anpasst und weil der Benutzer über die Daten verfügt.
Doch in der Realität sind die Anwendungen wie auch die Einstellungen der Benutzer und ihre Daten direkt mit der Betriebssystemebene verbunden. Diese sehr enge und lokale Kopplung führt zu einigen Problembereichen:
- Das lokale Ablegen der Daten nur auf dem Client-System hat ein großes Risiko im Schlepptau, denn die Daten können abhanden kommen. Die Gründe dafür sind vielschichtig: Die Hardware kann verloren gehen oder gar gestohlen werden, die Hardware kann ausfallen, ein Datenträger kann zerstört werden oder aber die Daten werden versehentlich gelöscht. Zudem kann der Zugriff auf die Daten fehl schlagen, wenn der Benutzer eine andere Hardware einsetzt. Dasselbe Problem betrifft neben den normalen Daten auch die Einstellungen für die Benutzer und die Konfiguration.
- Ein Fehler beim Betriebssystem oder der Hardware des Arbeitsplatzsystems erfordert recht komplizierte Aktionen, um die Informationen und Einstellungen wiederherzustellen. Es gilt dazu eine Auflistung der installierten Applikationen zu führen und sie wieder zu besorgen, ehe man die Hardware ersetzen oder das Betriebssystem neu installieren kann. Danach sind auch noch die entsprechenden Applikationen auf das System zu spielen.
- Ein Fehler in der Applikation erfordert eine üblicherweise recht komplizierte Fehlersuche. Dann kommen noch komplette Deinstallations-Prozesse ins Spiel, weil die Änderungen an vielen Stellen im Betriebssystem ansetzen müssen.
- Das Einsetzen von Applikationen und das Aktualisieren der Anwendungen erweist sich mitunter als sehr umständlich und erfordert einen hohen Zeitaufwand.
Eine Lösung für diese genannten Probleme bringt die Virtualisierung dieser einzelnen Ebenen. Damit werden sie voneinander unabhängig und es findet eine Abstrahierung der einzelnen Ebenen voneinander statt. Eine derartige Lösung bietet eine flexible Umgebung, die leicht einzusetzen ist, die mit wenig Aufwand verwaltet werden kann und die zudem noch einen großen Vorteil bietet: Sie ist von überall her zugreifbar und bietet dann auch noch eine konsistentes Interface für die Benutzer – sprich für ihre „Experience“.
Der Wunsch ein Komplettsystem in einzelne eigenständige Elemente zu zerlegen führt zu mehr Flexibilität. Ein Beispiel dazu: Wer sich ein Kombigerät aus TV, DVD- und Video-Spieler gekauft hat, der muss das ganze System abgeben, wenn eine Komponente ausfällt und repariert werden muss. Mit einzelnen Blöcken – einer für TV, einer für DVDs und einer für Video, braucht man nur das defekte Element zur Reparatur einsenden – die anderen Bestandteile kann man in der Zwischenzeit weiter verwenden.
Ein ähnlicher Ansatz eignet sich auch für die IT-Arbeitsplatzumgebung eines Anwenders: Das Betriebssystem, die Applikationen, die Benutzereinstellungen sowie die Daten – sie alle sollte in Form von separaten Blöcken vorliegen. Sie werden dann zusammengeführt und ergeben je nach der Art der Anmeldung des Benutzers eine komplette Umgebung.
Darin könnte man einen lokalen Desktop, ein über VDI bereitgestelltes Betriebssystem oder eine Session über die Terminaldienste (neuerdings heißen sie Remote Desktop Services) verstehen. Da es sich bei den einzelnen Komponenten um eigenständige Blöcke handelt, entstehen keinerlei Wartezeiten, um etwa eine Installation oder eine Konfiguration durchzuführen. Jede Komponente setzt einfach auf einer anderen auf – ganz egal wo und wie sich der Benutzer anmeldet.
Im folgenden werden die verschiedenen Technologien besprochen, mit deren Hilfe eine Auftrennung und Entflechtung dieser normalerweise sehr stark verschlungenen Ebenen erfolgt. Damit soll dann sozusagen „on the fly“ eine komplette Arbeitsplatz-Umgebung entstehen, unabhängig davon von wo sich der Anwender anmeldet.
Benutzerdaten und -Einstellungen
Die Vorgabe bei den Einstellungen und Daten der Benutzer ist klar: Man möchte sie aus der Arbeitsplatz-Umgebung extrahieren können. Damit lassen sich diese Informationen schützen und stehen überall zur Verfügung, wo sich der Benutzer mit den IT-Systemen verbindet. Das kann der lokale Desktop des Benutzers sein, aber auch der Rechner eines anderen Mitarbeiters oder auch eine Remote Desktop Session, über die der Zugriff auf einen Terminalserver (die Remote Desktop Services), den XenDesktop (von Citrix) oder ein über VDI bereitgestelltes Client-Betriebssystem.
Techniken für eine derartige Abstraktion der Einstellungen für die Benutzer und die Daten stehen schon seit langem in der Windows-Umgebung zur Verfügung. Doch mit der Freigabe von Windows 7 wurden sie nochmals optimiert. Damit wird die komplette „User Experience“ nicht länger negativ beeinflusst, sondern ab Windows 7 kommen merkbare Verbesserungen in Bezug auf die Benutzer-Einstellungen und die Daten ins Spiel.
Diese Aussage lässt sich zuerst bei den Benutzer-Einstellungen nachweisen. Ein jeder Benutzer verfügt über ein Profil auf seinem System – im Ordner C:\Users (auf englischsprachigen Systemen ab Windows Vista) beziehungsweise unter C:\Benutzer. Dieses Profil besteht aus mehreren Dateien und Verzeichnissen, einschließlich der Datei ntuser.dat.
Diese Datei enthält alle Benutzer-spezifischen Registry-Informationen. Auch wenn diese Datei recht klein ist, umfasst sie den Großteil der Anpassungen für den betreffenden Benutzer. Zudem sind in dem Profil noch die Internet-Favoriten (sprich die Lesezeichen), abgelegt und auch noch Dokumente, Suchvorgänge und andere Einzelheiten.
Um nun eine konsistente Umgebung für den Benutzer herzustellen, muss dieses Profil immer für den Benutzer verfügbar sein – egal von wo aus er sich am System anmeldet. Daher muss dieses Profil im Netzwerk bereitgestellt werden. Diese Funktionalität – auch als Roaming Profile bezeichnet – besteht schon seit vielen Jahren auf Windows-Plattformen.
In der Vergangenheit haben viele Unternehmen sich gescheut, diese Roaming Profiles (servergespeicherte Profile) zu verwenden. Der Grund dafür war die Art und Weise, wie diese Funktion arbeitete: Das Profil eines Benutzers wurde beim Abmelden vom Netzwerk auf das zentrale System hochgeladen. Damit ergab sich eine verhältnismäßige lange Verzögerung beim Abmelden.
Mit Windows 7 hat Microsoft die Funktionalität der „Background Synchronisation“, also einen Synchronisationsvorgang des Profils eingeführt, der im Hintergrund stattfindet. Diese Eigenschaft ist standardmäßig deaktiviert, doch sie lässt sich über die Gruppenrichtlinien aktivieren. Mit dieser Synchronisation im Hintergrund erfolgt eine Synchronisation des Profils für einen Benutzer zu bestimmten Zeitpunkten oder aber nach bestimmten Zeitintervallen. Durch diese regelmäßigen Aktionen sind beim Abmelden des Benutzers dann weniger Daten zu synchronisieren. Damit geht das Abmelden am System schneller über die Bühne und der Anwender muss darauf nicht mehr so lange warten.
Ein weiterer Grund spricht gegen den Einsatz von Roaming Profiles vor Windows 7: Die Benutzerdaten wurden als Bestandteil des Profils behandelt. Daraus ergaben sich mitunter extrem große Mengen an Profilinformationen. Doch die Roaming Profiles wurden nicht dahingehend entwickelt oder gar optimiert, dass sie die Replikation von Daten unterstützen. Selbst bei all den Verbesserungen in den Profilen ab Windows 7 sollte man die Benutzerdaten strikt aus den Profiles heraushalten. Und damit kommt das Thema Folder Redirection (Ordnerumleitungen) ins Spiel.
Verschiedene Speicherorte sind für die Benutzer nutzbar, wie etwa die Ordner Dokumente und Bilder. Dabei handelt es sich um standardmäßige Unterverzeichnisse des Benutzerprofils. Kommen Roaming Profiles zum Einsatz, werden diese Ordner und die zugehörigen Daten als Teil des Profil-Replikations-Vorgangs repliziert. Doch das erweist sich in vielen Fällen als nicht optimal.
Die Umleitung von Ordnern ist dazu ein alternativer Ansatz. Mit ihm lassen sich Standardverzeichnisse so konfigurieren, dass sie auf einen speziellen Ort im Netzwerk verweisen. Angenommen ein Benutzer greift auf den (vermeintlich lokalen) Ordner Dokumente zu, dann kommt er (aufgrund der Ordnerumleitung) in Wirklichkeit auf einen Speicherplatz im Netzwerk. Dieser Vorgang ist für den Anwender vollkommen transparent. Eingestellt wird diese Umleitung mit Hilfe der Gruppenrichtlinien.
Umstrukturierte Namensbereiche
Eine der größten Änderungen beim Übergang von Windows XP zu Windows Vista ist die Umstrukturierung des Namensbereichs der Benutzerprofile. Damit ergibt sich eine bessere Trennung der verschiedenen Datentypen im Profil. Zudem ist die Anzahl der Profil-Ordner, die umgeleitet werden können, von 5 Speicherbereich bei Windows XP auf ganze 13 bei Vista angewachsen.
Dazu gehört das Trennen der Verzeichnisse zum Beispiel in Dokumente, Bilder, Videos und Musik. Bei XP waren das noch Unterverzeichnisse von Dokumente und daher sind sie den Umleitungsvorgaben gefolgt, die für Dokumente angegeben waren. Ab Vista könnte man dagegen die Ordner für Musik und Videos nicht umleiten, die anderen dagegen schon. Mit der Ordnerumleitung kann man nun alle Benutzerdaten umleiten, wenn man möchte. Damit ergeben sich relativ kleine Profile, die sich im Zuge der Synchronisation der Profildaten (das sind dann nur mehr ntuser.dat sowie einige kleinere Dateien für die Daten) auch gut handhaben lassen.
Die Funktionalität der Offlinedateien (Offline Files, auch als Client Side Caching bezeichnet) ermöglicht es, eine lokale Kopie der Daten eines Benutzers aus dem Netzwerk auf bestimmten, entsprechend konfigurierten Systemen anzulegen. Damit kann man die Bedürfnisse auf Datenzugriff abdecken, der bei mobilen Systemen (wie Notebooks) entsteht, wenn sie keinen Zugriff auf das Netzwerk haben. Die Offlinedateien synchronisieren die Änderungen in einem speziellen „Deltaverfahren“ (wobei nur die Änderungen selbst synchronisiert werden, nicht die kompletten Dateien), wenn wieder Zugriff auf das Netzwerk besteht.
Die Anwendungen
Wenn ein Rechner zusammengebaut ist, werden nach dem Installieren des Betriebssystems und dem Einspielen der relevanten Patches die nötigen Applikationen installiert. Dazu gehören üblicherweise Office-Software und die Softwarepakete für die einzelnen Abteilungen im Unternehmen (die LOB-Applikationen; Line Of Business). Des Weiteren sind bestimmte Sicherheits-Pakete – meist in Form von Diensten auf den Rechner aufzuspielen.
Das Installieren von Software bedeutet in der Regel einen hohen Zeitaufwand, da vielfach von den Setup-Programmen und den Konfigurationsarbeiten Aktualisierungen am Dateisystem ausgeübt werden. Zudem werden Einträge in der Registry gemacht und die entsprechenden Ressourcen eingetragen.
Üblicherweise werden nur die unternehmensweit nötigen Applikationen im Zuge der Erstinstallation des Betriebssystems einbezogen. Anwendungen, die nur für einzelne Abteilungen oder gar einzelne Benutzer nötig sind, werden oftmals erst beim ersten Anmelden der oder des Benutzers auf das System gespielt. Das führt zu weiteren Verzögerungen. Außer diesen Zeitverzögerungen können aber auch andere Probleme auftreten.
Dazu gehören in erster Linie die Unverträglichkeiten von einzelnen Applikationen. Der Grund: Wenn eine Applikation bei der Installation das Betriebssystem verändert, können Inkompatibilitäten mit anderen Anwendungen auftreten, die damit nicht zurecht kommen. Dieses Phänomen kann auch bei nur einer Applikation auftreten – wenn zum Beispiel unterschiedliche Versionen der Applikation auf einem System verwendet werden müssen.
Daher wird in diesen Fällen meist ein Regressions-Test nötig sein, ehe man eine aktualisierte oder eine neue Applikation in der Produktivumgebung zum Einsatz bringt. Es kann dann sogar soweit kommen, dass bestimmte Kombinationen von Anwendungen nicht auf einem einzelnen System verwendet werden dürfen.
Ein weiteres Problemfeld betrifft das Aufblähen des Betriebssystems. Beim Installieren einer Software werden neue Dienste hinzugefügt, die bestimmte Ressourcen benutzen. Doch das muss nicht immer einen echten Nutzen darstellen. Zudem nimmt die Registry an Größe zu – das erfordert mehr Arbeitsspeicher und verlangsamt das komplette System. Selbst wenn zu einem späteren Zeitpunkt eine Anwendung wieder vom System entfernt wird, bleiben teile der Applikation noch auf dem System.
Aktualisierungen von Anwendungen sind nicht einfach: Die Vorgehensweise für Updates an Applikationen können sich extrem unterscheiden. Daher muss dieser Vorgang von IT-Team sauber geplant und bestens organisiert werden, damit die Infrastruktur darunter nicht leidet.
All diese Punkte beruhen auf der Tatsache, dass die Anwendungen auf dem Betriebssystem installiert werden. Wenn sich nun Anwender an verschiedenen Computern, an Remote Sessions oder über VDI-Umgebungen anmelden und wenn alle unterschiedliche Applikationen benötigen, dann wird die Sache noch weitaus komplexer. Das Installieren von allen Applikationen, um die Bedürfnisse von allen Benutzern auf allen Betriebssystemumgebung abzudecken, ist in der Realität nicht mehr praktikabel. Das würde zu einem extrem aufgeblähten Betriebssystem führen – mithin ein Albtraum für die Administratoren.
Denn jede Aktualisierung einer Applikation müsste für jede Betriebssystem-Instanz ausgeführt werden. Mit herkömmlichen Installationsmethoden, die anspringen, wenn sich Benutzer in verschiedenen Umgebungen anmelden, ist dieser Aufgabe nicht mehr bei zu kommen. Denn es wäre allein zu viel Zeit für diese Arbeiten nötig – ganz zu schweigen von den zusätzlichen Herausforderungen beim Deinstallieren der Applikationen, wenn sich die benutzer wieder abmelden.
Die Lösungsmöglichkeiten
Eine Lösungsmöglichkeit ist die traditionelle Virtualisierung über die Presentation-Schicht. Dabei werden die Applikationen auf einem Terminaldienste-Server installiert und auch auf diesen Systemen ausgeführt. Das Fenster der betreffenden Applikation wird dann aber auf dem lokalen Arbeitsplatzsystem des Benutzers dargestellt.
Dieser Ansatz erfordert eine signifikante Investition in die Server-Infrastruktur, um die Ausführung der Applikation abzuwickeln. Allerdings ist eine Ausführung der Applikation im Offline-Zustand damit unterbunden. Aber es bleibt ein weiterer Nachteil zu verzeichnen: Es müssen nach wie vor alle benötigten Applikationen auf dem Terminaldienste-Servern installiert werden.
Für bestimmte Anwendungen funktioniert dieser Ansatz allerdings recht gut. Ein gutes Beispiel dafür ist eine Applikation, die den Zugriff auf große Datenmengen benötigt, die im Rechenzentrum vorgehalten werden. Wenn eine derartige Applikation ebenfalls im Rechenzentrum läuft und nur die Presentation-Schicht virtualisiert wird, bleibt der komplette Verkehr beim Zugriff auf die Daten im Netzwerk des Rechenzentrums. Das hat sehr schnelle Ausführungszeiten für die Applikation zur Folge.
Würde man dieselbe Anwendung lokal vom Arbeitsplatzsystem eines Benutzers aus laufen lassen, müssten alle Datenzugriff über das normale Netzwerk laufen und das würde viel Bandbreite benötigen. Damit wäre die Applikation wesentlich langsamer.
Eine andere Lösung für die Applikation wäre die Virtualisierung der Anwendung selbst. Als Unterschied zur Virtualisierung des Presentation Layer wird hier die Anwendung tatsächlich auf einer lokalen Instanz des Betriebssystems zum Einsatz kommen – doch das wird im zweiten Teil dieses Beitrags gezeigt.