Erweiterte Konzepte

Lastenausgleich für Citrix universellen Druckserver in XenApp und XenDesktop 7.9

Wie wir getestet haben

Alle Testszenarien wurden in realer Weise durchgeführt und der endgültige Druck war die einzige simulierte Komponente. Die Testsysteme bestanden aus XenServer-VMs, Windows 2012R2 für Infrastruktur (DDC, StoreFront und Universal Print Server) und XenApp-VDA-Systemen, Windows 10 für XenDesktop VDA-Systeme und Windows 8.1 für ICA, die über Citrix Receiver gestartet wurden. Jeder ICA-Launcher wurde mit 10 Druckern ohne Überlappung von Druckern zwischen ICA-Launchern verbunden, und benutzerdefinierte Skripte wurden verwendet, so dass jeder XenApp-VDA-Sitzung ein zufälliger Drucker zur Verfügung gestellt wurde. Die benutzerdefinierten Skripte kontrollierten auch das Drucken innerhalb jeder Sitzung, wobei AutoIt verwendet wird, um identische Druckaktionen auszuführen. Schließlich haben wir ein intern entwickeltes Tool verwendet, um die ICA-Sitzungsstarts zu koordinieren und Perfmon-Daten für die Tests zu sammeln.

Größe des universellen Druckservers Lastenausgleichs

Wie jede andere Komponente in Ihrer Umgebung ist die Dimensionierung von entscheidender Bedeutung für den Lastenausgleich für den universellen Druckserver. Da das Drucken eines großen Dokuments abhängig von Ihren Bedürfnissen subjektiv ist, konzentriert sich dieser Artikel in erster Linie auf die Druckgeschwindigkeit und verwenden, was wir als durchschnittliche Arbeit betrachten.

Durch interne Tests wurde festgestellt, dass Sie nicht zu viele oder zu wenige Universal Print Server-Instanzen im Lastenausgleich einrichten möchten. Und obwohl es wahr ist, können Sie den Druck mit zusätzlichen Universal Print Server-Instanzen erhöhen, wenn Sie über die Verteilung von Druckern sprechen, was nicht unbedingt der Fall ist. Insbesondere ist es der Fall, dass Sie zu viele Universal Print Server-Instanzen konfiguriert haben. In diesem Fall gibt es eine endgültige Verzerrung der Benutzer auf die ersten verfügbaren Universal Print Server-Instanzen.

Diagramm mit der Anzahl der Benutzer pro Druckserver

Das Diagramm verweist auf ein 3.500 Benutzer Testszenario auf 48 XenApp-Servern, die 16 Universal Print Server-Instanzen verwenden. Wie oben zu sehen ist, übernahmen die ersten 8 Universal Print Server-Instanzen den Großteil der Verbindungen und es gab keine gleichmäßige Verteilung der Verbindungen. Dieses Szenario nahm auch eine niedrige Druckrate an, die wir später diskutieren werden.

Um zu verstehen, warum dies geschieht, müssen wir uns ansehen, wie der Load Balancing Mechanismus eine Universal Print Server-Instanz auswählt. Nehmen wir an, wir haben 16 Universal Print Server-Instanzen (nummeriert 1-16) im Lastenausgleich und einen einzelnen XenApp-Server mit maximal 10 Benutzern (ein wenig übertrieben, aber Sie werden sehen, warum). Nehmen wir auch an, dass die universellen Druckserver-Instanzen mit Lastenausgleich in numerischer Reihenfolge im universellen Druckserver für den Lastenausgleich liegen.

Wenn sich ein Benutzer anmeldet und eine Sitzung (in XenApp) erstellt, ist die vom Benutzer empfangene universelle Druckserverinstanz zufällig. Es kann sich um eine beliebige universelle Druckserver-Instanz handeln, die verfügbar ist, und es wird keine Voreinstellung für einen Server gegeben. In diesem Beispiel sagen wir, dass sie Server 16 für ihre Verbindungen erhalten haben. Nachdem dieser erste Benutzer angemeldet ist und die Sitzungserstellung abgeschlossen ist, meldet sich ein anderer Benutzer an. Dieser Benutzer verwendet die erste universelle Druckserver-Instanz in der Liste aus der Richtlinie, in diesem Fall Server 1. Ein anderer Benutzer meldet sich an und nutzt jetzt Server 2. Wenn Sie diesen Trend fortsetzen, wird das unten angezeigte Laden des Servers zur Verfügung stellen. Wenn alle 10 Benutzer angemeldet sind, verfügen Universal-Druckserver-Instanzen 1-9 und 16 über Verbindungen, während die verbleibenden Server nicht.

Diagramm, in dem Benutzer pro universellen Druckserver dargestellt werden

Wir fügen jetzt einen zusätzlichen XenApp-Server zum Mix hinzu, mit dem gleichen Maximum von 10 Benutzern. Dieser Server folgt der gleichen Prozedur wie im vorherigen Beispiel mit der Ausnahme, dass der erste Benutzer zufällig Server 4 anstelle von Server 16 empfängt. In diesem Fall tritt der gleiche Prozess für jede nachfolgende Anmeldung wie zuvor auf, außer dass er Server 4 überspringt, da derzeit eine Verbindung hergestellt wurde. In diesem Fall haben Server 1-10 Verbindungen. Sie können die zusätzlichen Benutzer in orange in der folgenden Grafik sehen und beobachten, wie es ausbalanciert.

Diagramm zeigt, wie sich zusätzliche Benutzer über Druckserver ausgleichen

Erhöhen Sie weiterhin die Serveranzahl und die auftretende Verzerrungen können deutlich beobachtet werden. In der Praxis sollten Sie über eine Anzahl von XenApp-Hosts verfügen, die ein Äquivalent oder ein Vielfaches Ihrer universellen Druckserver-Instanzen sind. Es empfiehlt sich auch, die Anzahl der Benutzersitzungen als Vielfaches der universellen Druckserver-Instanzen beizubehalten, die Sie für ein optimales Laden verwenden möchten. Betrachtet man das obige Szenario aus dieser Sicht, mit 2 XenApp-Servern und 16 Universal Print Server-Instanzen, sehen wir, dass unsere Benutzerlast mindestens 16 Benutzer pro XenApp-Server betragen sollte. Eine andere Möglichkeit, das gleiche Problem zu betrachten, ist, dass, wenn wir nur 10 Benutzer pro XenApp-Server unterstützen, nicht mehr als 10 Universal Print Server-Instanzen erforderlich sind. Dies sorgt für eine ausgewogenere Belastung und wird die verfügbaren Ressourcen effektiver nutzen.

Das obige ist ein zu vereinfachter Blick auf ein Setup, das sich mit einem strikten Benutzerverbindungsausgleich befasst. Komplexere Setups mit viel mehr Benutzern pro Server wären die wahrscheinliche Konfiguration. Mit der Zunahme der Benutzer spielt die zuvor erwähnte Druckrate eine größere Rolle bei der Größe des universellen Druckservers. Es wird empfohlen, die folgenden Formel zu verwenden, um die erforderlichen universellen Druckserver-Instanzen für Ihre Umgebung zu ermitteln. Auf diese Weise können Sie anhand der erforderlichen Druckrate die Anzahl der universellen Druckserver-Instanzen ermitteln, die Sie beim Lastausgleich benötigen. Um die Größenbestimmung zu vereinfachen, kann diese Formel verwendet werden, um Anleitungen für eine optimale Einrichtung zur Verfügung zu stellen, um eine erforderliche Druckrate bereitzustellen. Im Allgemeinen werden Sie am meisten daran interessiert sein, N zu lösen, um Ihre eigene Anzahl von Druckservern zu bestimmen.

V\*P/N \< J

Wobei:

V = Anzahl der VDAs, die LB verwenden

P = Durchschnittliche Anzahl aktiver Netzwerkdruckaufträge pro Minute pro VDA

N = Anzahl der Druckserver mit Lastausgleich

J = Maximale Anzahl von Aufträgen pro Minute auf dem universellen Druckserver

P kann auf 7.8 und neueren VDAs beobachtet werden, indem die vorhandenen Universal-Druck-Client-Leistungsindikatoren auf dem VDA betrachtet werden, insbesondere durch Überwachung des Durchschnitts der Aufträge, die pro Minute für Netzwerkdrucker während eines normalen Arbeitstages auf einem VDA erstellt wurden, auf dem die Richtlinie Universal Print Server aktiviert ist und das Netzwerk -Drucker, die in Sitzungen zugeordnet sind.

J sollte eine Zahl zwischen 50 und 100 sein, abhängig von der Hardwareleistung der Druckserver und der Größe der zu druckenden Dokumente.

Die obige Formel ist verallgemeinert und hängt stark von den Anforderungen Ihrer Umgebung ab. Es ist wichtig, die Druckanforderungen Ihrer Umgebung vollständig zu verstehen, bevor Sie den universellen Druckserver-Lastenausgleich implementieren.

100 Jobs pro Minute (JPM-Tests)

Eine der größten Verbesserungen beim Lastenausgleich für den universellen Druckserver ist die Zunahme der gleichzeitigen Druckaufträge pro Minute. Der doppelte Druckratenschwellenwert von 100 Aufträgen pro Minute ermöglicht jetzt eine noch größere Dichte auf einer einzelnen Universal Print Server-Instanz. Die Verteilung auf mehrere Instanzen mit Lastausgleich von Universal Print Server macht diese Erhöhung mehr Auswirkungen. Unten ist die Perfmon-Ausgabe des Zählers “Jobs erstellt pro Minute” (der in der Formel referenziert), der bei einem Testzyklus von 18 + Stunden durchschnittlich ~ 100 Jobs pro Minute ausmacht.

Diagramm mit Jobs, die während eines 18-stündigen Testzyklus pro Minute erstellt wurden

VDI-Randomisierung

Die Lastausgleichsmethode, die in einer VDI-Umgebung verwendet wird, ist nur eine Implementierung der Randomisierungsfunktion. Wie bereits erwähnt, erfolgt der Lastausgleichsprozess ausschließlich auf dem VDA, wobei die erste Verbindung randomisiert wird und anschließend die nachfolgenden Anmeldungen in der Liste der universellen Druckserver-Instanzen ausbalanciert werden. Da eine VDI-Implementierung über einen einzelnen Benutzer pro VDA verfügt, ist die Zufallsfunktion die einzige, die angewendet wird.

Um sicherzustellen, dass die Randomisierung funktioniert, wurde ein XenDesktop-Testlauf mit 500 Benutzern unter Verwendung von 16 universellen Druckserver-Instanzen durchgeführt. Dies funktioniert auf etwa 31 Sitzungen pro Universal Print Server-Instanz (in einer perfekt ausbalancierten Welt), was eine klare Bestimmung der Wirksamkeit der Randomisierung ermöglicht. Im Folgenden finden Sie die Druckerverbindungen, die als Ergebnis dieses Tests erstellt wurden. Es ist leicht zu beobachten, dass die Verbindungen zufällig einer universellen Druckserver-Instanz zugewiesen werden.

Diagramm mit der Anzahl der Druckerverbindungen, die während des Tests erstellt wurden

5000 Anwender-Tests

XenApp ist der größte Vorteil des universellen Druckserver-Lastenausgleichs aufgrund der Dichte der XenApp-Server selbst. Um festzustellen, wie gut der universelle Druckserver Lastenausgleich in einer Umgebung mit größerer Benutzeranzahl skaliert, wurde entschieden, dass ein Testlauf mit 5.000 Benutzern ausreichend groß war, um den Lastausgleich zu überprüfen.

Diagramm, in dem gezeigt wird, wie 5.000 Benutzer während des Tests Lastenausgleich über Druckserver hinweg waren

Das obige ist das Ergebnis des 5000-Benutzertests, bei dem 48 XenApp-Server mit 16 universellen Druckserver-Instanzen verwendet werden. Diese Benutzeranzahl gilt für etwa 100 Benutzer pro XenApp-Server oder etwa 6,5 Benutzer pro universeller Druckserverinstanz pro XenApp-Server. Die Ergebnisse zeigen die zuvor identifizierte Verzerrungen, da es sich hierbei nicht um einen optimal konzipierten Test handelt. Letztlich soll dies eine Demonstration des Lastausgleichs sein.

Universeller Druckserver-Lastausgleich-Failover

Standardmäßig wird eine universelle Druckserver-Instanz für 180s MINIMUM nicht als fehlgeschlagen gemeldet und kann bis zu 360s als fehlgeschlagen angesehen werden. Dieses Timeout ist wichtig zu verstehen, da dies dazu führt, dass ein Failover nicht im Moment eines Ausfalls der universellen Druckserver-Instanz stattfindet. Es wird Zeit für die Instanz des universellen Druckservers sein, die Wiederherstellung zu versuchen, bevor das Failover auftritt. Wenn ein sofortiges Failover erforderlich ist, müssen Änderungen auf der Grundlage Ihrer Umgebungsanforderungen vorgenommen werden. Diese Änderungen können über die Citrix Richtlinie und auch über zwei Registrierungsschlüssel vorgenommen werden.

Im Folgenden finden Sie eine Demonstration des Failovers. 2.304 Benutzer auf 48 XenApp-Servern auf 16 Universal Print Server-Instanzen wurden verwendet, um den anfänglichen Lastausgleich und die nachfolgenden Failover zu veranschaulichen. Die obigen Werte wurden so ausgewählt, dass es idealerweise für 3 Benutzer pro universeller Druckserverinstanz pro XenApp-Server funktioniert.

Diagramm mit Lastausgleich und Failover

Alle universellen Druckserver-Instanzen werden gleichermaßen geladen und alle Benutzer sind angemeldet. Universelle Druckserver-Instanzen UpServer06 und UpServer11 werden auf Hypervisorebene einem erzwungenen Herunterfahren unterzogen (da PING verwendet wird, um den Verfügbarkeitsstatus einer universellen Druckserver-Instanz zu ermitteln), sodass sie als vollständig fehlgeschlagen angesehen werden. Im Folgenden werden die betroffenen Serververbindungen orange hervorgehoben. Als Nächstes werden die fehlgeschlagenen Serververbindungen in orange an die verbleibenden universellen Druckserver-Instanzen verteilt, die noch nicht verfügbar sind.

Diagramm zur Verteilung fehlgeschlagener Serververbindungen

Neue Verbindungen werden dann zu den vorhandenen Servern hergestellt, die noch verfügbar sind. Unten ist zu sehen, wie die zuvor fehlgeschlagenen Verbindungen auf die vorhandenen Server verteilt werden.

Diagramm, das die Umverteilung fehlgeschlagener Verbindungen anzeigt

Wie bereits erwähnt, führen bestehende Verbindungen keinen dynamischen Lastausgleich aus. Der Lastenausgleich erfolgt ausschließlich bei der Benutzersitzungsanmeldung. Wenn die ausgefallenen universellen Druckserver-Instanzen wieder verfügbar sind, tritt daher kein Neuausgleich oder ein Failback auf. Dies ist unten zu sehen, wo die universellen Druckserver-Instanzen, die fehlgeschlagen waren, wieder online geschaltet werden, aber keine vorhandenen Verbindungen aufnehmen.

Diagramm mit der Verteilung der Verbindungen, wenn ausgefallene Server wieder online sind

Um zu verdeutlichen, dass diese universellen Druckserver-Instanzen wieder verfügbar sind und Verbindungen akzeptieren, ist es notwendig, entweder zusätzliche Benutzer anzumelden oder einen Ausfall weiterer universeller Druckserver-Instanzen zu erzwingen. Im Folgenden wurden universelle Druckserver-Instanzen UpServer08 und UpServer10 einem erzwungenen Fehler unterworfen und die entsprechenden Verbindungen orange hervorgehoben.

Diagramm mit Verteilung fehlgeschlagener Server

Bei dem Ausfall kann dementsprechend gesehen werden, dass die Verbindungen auf andere Server migriert werden. In diesem Fall werden sie zurück zu den beiden Servern migriert, die zuvor ausgefallen waren und jetzt verfügbar sind, um Verbindungen wieder aufzunehmen. Da diese Server am wenigsten geladen sind (keine Last), nehmen sie den Großteil der Verbindungen.

Hinzufügen mehrerer Druckserver

Mehrere universelle Druckserver-Instanzen können der Lastenausgleichsrichtlinie auf zwei Arten hinzugefügt werden: über die Citrix Policy GUI oder über PowerShell-Cmdlets. Die Citrix Policy GUI ist in ihrer Verwendung selbsterklärend. Im Folgenden finden Sie eine Methode zur Verwendung von PowerShell, um der Lastenausgleichsrichtlinie schneller mehrere universelle Druckserver-Instanzen hinzuzufügen.

  1. Add-PSSnapin Citrix.common.GroupPolicy
  2. New-PSDrive — PSProvider CitrixGroupPolicy — Namens-Site — Root -Controller localhost
  3. CD site: Computer
  4. CD auf die Richtlinie, die Sie bearbeiten möchten (Der Richtlinienname, der Ihre UPSLB-Richtlinie enthält)
  5. CD Settings\ICA\Printing\UniversalPrintServer\LoadBalancedPrintServers
  6. Verwenden Sie New-Item, um der Liste neue Drucker hinzuzufügen

Bild mit PowerShell-Skriptausführen

Es gibt jedoch einige Vorbehalte bei der Verwendung dieser Methode. Stellen Sie zunächst sicher, dass Sie die Informationen korrekt eingeben. Möglicherweise möchten Sie der Richtlinie einige Drucker manuell hinzufügen und anzeigen, wie sie über die PowerShell-Anzeige angezeigt werden, um sicherzustellen, dass Sie sie korrekt hinzufügen. Zweitens, da Sie die Richtlinienbenutzeroberfläche umgehen, wird keine Überprüfung der Druckserver durchgeführt.

Universelle Druckserver-Leistungsindikatoren

Wie im Abschnitt zur Größenbestimmung erwähnt, gibt es neue perfmon-Zähler, die verwendet werden können, um Informationen über die aktuellen Druckbedingungen zu ermitteln. Es gibt eindeutige Leistungsindikatoren sowohl auf der universellen Druckserverinstanz als auch auf den XenApp/XenDesktop -Systemen.

Leistungsindikatoren, die für die allgemeine Instanz des universellen Druckservers relevant sind, befinden sich auf der entsprechenden universellen Druckserver-Instanz, z. B. der zuvor erwähnte Auftragszähler pro Minute (diese Leistungsindikatoren sind nur für diese universelle Druckserverinstanz und sind nicht für mehrere -Instanzen). Auf jedem XenApp/XenDesktop -System befinden sich Leistungsindikatoren, die für den universellen Druckserver-Lastenausgleich relevant sind (Lastausgleich erfolgt auf der einzelnen VDA-Ebene), z. B. im Leistungsindikator Aktuelle Verbindungen.

UpClient (VDA-Komponente) spezifische Leistungsindikatoren können so konfiguriert werden, dass Daten für eine bestimmte Universal Print Server-Instanz, alle Universal Print Server-Instanzen oder als Summe für alle Universal Print Server-Instanzen auf einem VDA erfasst werden. Diese Leistungsindikatoren können entweder direkt über perfmon oder über PowerShell-Skripts betrachtet werden. Die folgenden Leistungsindikatoren sind unter dem Citrix Printing Load Balancing Abschnitt von perfmon verfügbar. Diese Leistungsindikatoren sind weiter auswählbar, indem Sie eine Summe (_loadbalancers_total) für den VDA auswählen oder eine einzelne universelle Druckserverinstanz (Universal Print Server Instanz Name) auswählen, die auf diesem bestimmten VDA verfügbar ist.

Active Printer Connections Counter: Performance\Citrix Printing Load Balancer (SELECTION)\Active Printer Connections

Created Printer Connections Counter: Performance\Citrix Printing Load Balancer (SELECTION)\Created Printer Connections

Deleted Printer Connections Counter: Performance\Citrix Printing Load Balancer (SELECTION)\Deleted Printer Connections

Da es sich hierbei um Standard-Leistungsindikatoren handelt, kann das integrierte PowerShell-Cmdlet Get-Counter wie folgt verwendet werden, um Informationen von einem bestimmten VDA abzurufen.

Get-Counter -Counter \\\\VDAName\\Citrix Printing Load Balancer(SELECTION)\\COUNTER

Der obige Befehl ruft die gewünschten COUNTER (Active/Created/Deleted Printer Connections) Informationen aus dem gewünschten vdaName (Name, FQDN oder IP-Adresse des VDA) für die SELECTION (Universal Print Server Instanz Name oder_loadbalancers_total) ab. Dadurch erhalten Sie eine vollständige Auflistung des Zählerobjekts.

Bild mit PowerShell-Zählerobjekt-Ausgabe

Wenn Sie nur mit dem tatsächlichen Wert betroffen sind, müssen Sie diesen Befehl in einen weiteren Befehl einfügen, um den verarbeiteten Wert (oder nur den Verbindungswert) abzurufen. Um dies zu erreichen, fügen wir diesen Befehl am Ende des vorherigen hinzu: | Foreach-Object {$_.CounterSamples.CookedValue[0]}

Bild, das nur zurückgegebene Wert zeigt

Testumgebung

Die Testumgebung bestand aus drei separaten zusammengefassten Hardwaresätzen mit XenServer 6.2 und 6.5. Es gab einen einzelnen XenServer 6.2-Pool, der die Citrix Infrastrukturkomponenten (DDC, StoreFront, ICA Launchers, Metriksammlung) und zwei 6.5-Pools enthielt, die die Universal Print Server-Instanzen und Test-RDS-VDAs enthalten. Zwei separate zentralisierte Speicher-Repositories wurden für das Testen verwendet (eines für jede Poolversion), und alle virtuellen Testmaschinen befanden sich dort. Alle verwendeten Software war zum Zeitpunkt der durchgeführten Tests die aktuellste Version. Alle Tests wurden mit derselben Treiber- und Treiberversion durchgeführt, um sicherzustellen, dass die Ergebnisse konsistent sind. Zusätzliche Treiber wurden getestet; die individuellen Ergebnisse variieren je nach verwendeter Treiber.

XenServer 6.2 Physische Server (x10)

  • 2 x Intel Xeon E5620 mit 2,40 GHz (4-Core HyperThreaded) — 16 CPUs
  • 64 GB Arbeitsspeicher
  • NFS-Speicher

XenServer 6.5 Physische Server (x 25)

  • 2 x Intel Xeon E5-2640 mit 2,50 GHz (6-Kern HyperThreaded) — 24 CPUs
  • 256 GB Arbeitsspeicher
  • NFS-Speicher

Universelle Druckserver-VM

  • 16 vCPU (16 Sockel x 1 Kern)
  • 16 GB VRAM
  • 75 GB Speicher
  • Windows Server 2012 R2

RDS-VM

  • 16 vCPU (16 Sockel x 1 Kern)
  • 16 GB VRAM
  • 75 GB Speicher
  • Windows Server 2012 R2

ICA Launcher VM

  • 2 vCPU (2 Sockel x 1 Kern)
  • 4 GB VRAM
  • 60 GB Speicher
  • Windows 8.1 x64 Enterprise

Richtlinien für universelle Citrix Druckserver

ICA\Drucken

  • Universelle Treibereinstellung — XPS; EMF; PCL5c; PCL4; PS
  • Verwendung universeller Druckertreiber — Nur universelles Drucken verwenden
  • Universeller Druckserver aktivieren — Aktiviert ohne Fallback auf das native Drucken von Windows
  • Warten, bis Drucker erstellt werden — Aktiviert
  • Universelle Druckserver für Lastausgleich — Liste der Druckserver

Universeller Druckserver und RDS/VDA -VMs wurden auf denselben physischen Servern mit Hardware gepoolt, um sicherzustellen, dass Tests an konsistenten Hardwarekonfigurationen durchgeführt wurden. DDC- und StoreFront-Server waren in den oben genannten Fällen nicht enthalten, da sie keinen Einfluss auf den Lastenausgleich des universellen Druckservers haben, mit Ausnahme der Richtlinienverbreitung vom DDC. Minimale Richtlinien wurden in der Domäne verwendet, und die XenDesktop/XenApp -Site war eine Standardinstallation mit Standardrichtlinien, mit Ausnahme der oben genannten Richtlinien für universellen Druckserver und Lastenausgleich.

Lastenausgleich für Citrix universellen Druckserver in XenApp und XenDesktop 7.9