Gastbeitrag von Ralf Schnell, Technical Evangelist in der Developer Platform & Strategy Group und zuständig für Windows Server 2008, ITIL und das Microsoft Operations Framework.

Hinsichtlich der Leistungsfähigkeit der Remote Desktop Services (RDS, vormals ‘Terminal Services’) gibt es offensichtlich Klärungsbedarf. Von mehreren Seiten habe ich gehört, die Grenze der Belastbarkeit sei bei 50-100 Benutzern erreicht. Das wäre ja dann nicht wirklich viel …

Ich habe sicherheitshalber nochmal bei der Produktgruppe nachgefragt, und meine Informationen wurden ausdrücklich bestätigt: Remote Desktop Services skalieren deutlich besser! Um zu verstehen, wo die Grenzen sind, muß man die einzelnen Komponenten verstehen:

Broker: Der RDS Broker konsolidiert die verschiedenen Ressourcen (RemoteApps und Hosted Desktops) zu einer Liste, die den Benutzern – gefiltert nach Berechtigungen! – präsentiert wird. Der Broker wird z.B. kontaktiert, wenn ein Benutzer auf die RDS Web Access-Seite zugreift, er hat aber mit dem Verbindungs-Aufbau zu den Ressourcen nichts zu tun (das übernimmt der Redirector). Der Broker kann je nach Hardware bis zu einigen hundert neuen Verbindungen pro Minute skalieren.

Redirector: Der RDS Redirector nimmt Verbindungs-Anfragen von RDS-Clients entgegen und leitet sie an die Session Hosts bzw. Virtualization Hosts weiter. Ist die Verbindung aufgebaut, hat der Redirector damit nichts mehr zu tun. Daher ist hier ebenfalls die Anzahl von neuen Verbindungen pro Minute ausschlaggebend, und der Redirector skaliert hier genauso gut wie der Broker. Außerdem ist es natürlich möglich, mehr als einen Redirector zu verwenden, so daß auch noch umfangreichere Infrastrukturen ohne weiteres implementierbar sind.

Session Host: Der RDS Session Host stellt RemoteApps oder auch den klassischen Terminal Server Desktop zur Verfügung. Wichtig ist hier die mögliche Anzahl der gleichzeitigen Verbindungen, und die hängt ausschließlich von der verwendeten Hardware ab. Jede Session benötigt Arbeitsspeicher, die Menge hängt von den verwendeten Applikationen ab. Eine pauschale Aussage ist daher nicht möglich, in typischen Implementationen sind jedoch einige hundert gleichzeitige Benutzer ganz normal. Reicht die Kapazität der Session Hosts nicht aus, fügt man in die RemoteApp-Farm einfach neue Hosts hinzu. Die Lastverteilung übernimmt der Redirector, wobei die Gewichtung der einzelnen Session Hosts individuell festgelegt werden kann, um unterschiedlich leistungsfähige Hardware auszugleichen. Zusätzlich sorgt das ‘Fair Share CPU Scheduling’ dafür, daß eine Session nicht die gesamte CPU-Leistung des Host blockieren kann.

Virtualization Host: Der RDS-Virtualization Host ist ein Hyper-V Host oder Cluster (oder eine beliebige Kombination aus beidem) und stellt virtuelle Maschinen (VM) als Hosted Desktops zur Verfügung. Der Verbindungsaufbau der RDS Clients erfolgt direkt mit der VM, der Host hat damit nur insofern zu tun, als daß ggf. per PowerShell-Kommando an den Host vom Redirector eine VM hochgefahren und nach Ende der Verbindung wieder gespeichert wird. Der Host benötigt also lediglich genügend Arbeitsspeicher, um die VMs betreiben zu können, die Skalierbarkeit hängt also wiederum ausschließlich von der verwendeten Hardware ab. Ein typischer Hosted Desktop mit Windows 7 als Gastbetriebssystem sollte 1GB RAM bekommen, ein Host mit 1TB RAM kann also 999 Hosted Desktops gleichzeitig betreiben. Und eine Hosted Desktop-Farm kann beliebig viele Virtualization Hosts enthalten!

Mit freundlichen Grüßen!
Ralf M. Schnell