Citrix XenApp auf AWS GPU G2 EC2-Instanzen
This content is more than 4 years old and the cloud moves fast so some information may be slightly out of date.
Im Rahmen eines Projektes haben wir eine Citrix XenApp Cluster-Installation auf AWS GPU Instanzen (G2) durchgeführt, damit der Kunde 3D-Programme entsprechend Grafik-beschleunigt nutzen kann. Natürlich musste dabei auch der ein oder andere Stolperstein beseitigt werden … siehe hierzu auch Citrix Netscaler auf AWS … Hier die einzelnen Schritte, um XenApp auf EC2 G2 GPU-Worker-Instanzen bereitzustellen …
- Windows 2016 / 2012 Server AMI mit GPU NVIDIA Grafikadapter K520 aus AWS Marketplace launchen (https://aws.amazon.com/marketplace/pp/B00SK9DXLG)
- Grafiktreiber Version kontrollieren: Nur Treiberversionen bis Releasestand 335.35-grid-desktop-win8-win7-winserv2008r2-winserv2012-64bit unterstützen den XA/XD Zugriffsmodus unter Citrix. Der vorinstallierte Treiber ist im Default aktueller und MUSS für Citrix XenApp ausgetauscht werden.
- Downgrade des vorhandenen Treibers:
- Der Austausch des Treibers funktioniert nur im direkten Konsolen Modus. Innerhalb einer RDP Session besteht keine Möglichkeit den Treiber erfolgreich zu installieren.
- Eine Konsolen Sitzung lässt sich am einfachsten mit VNC Server einrichten. Download VNC https://www.realvnc.com/download/vnc/
- Auf dem betreffenden Server den VNC Server installieren, auf einem weiteren Server im VPC den VNC Viewer aktivieren und die Verbindung aufbauen
- Den benötigten NVIDIA Treiber hier downloaden http://www.nvidia.com/content/DriverDownload-March2009/confirmation.php?url=https://www.tecracer.com/blog/Windows/Quadro_Certified/335.35/335.35-grid-desktop-win8-win7-winserv2008r2-winserv2012-64bit-international.exe&lang=us&type=GRID
- Installation des Treibers:
- Der Austausch des vorhandenen Treibers kann über das Treiberpaket selbst erfolgen. Alternativ kann der Treiber über den Device Manager, Treiberversion, Update erfolgen
- Nach der Installation ist ein Reboot des Server notwendig.
- Anpassung des Servers für die direkte GPU Unterstützung: Damit die entsprechenden Anwendungen später direkten Zugriff auf die GPU Adapter erhalten können, sind folgende Anpassungen notwendig:
- Per VNC Verbindung zum Server aufbauen
- Im Device Manager den Standard VGA Adapter deaktivieren und im Anschluss deinstallieren.
- Im Verzeichnis C:\Windows\System32\Driver den BasicDisplay Treiber löschen. Dieser wird normalerweise für die RDP Zugriffe benötigt. Ist der Treiber auf der Maschine aktiv, greifen installierte Anwendungen im Default auf diesen Treiber zu. Damit wird die eigentliche GPU Unterstützung für die Anwendung verhindert.
- Nach Löschen des BasicDisplay Treibers das System rebooten und per VNC erneut verbinden.
- Nun müssen noch Registry Key`s unter HKEY_LOCAL_MACHINE gesetzt werden damit die Anwendungen die GPU Adapter nutzen können. Je nach Zugriffsszenario die Schlüssel erstellen für DirectX, WPFHook, CUDO, OpenGL
DirectX Windows Registry Editor Version 5.00 \[HKEY\_LOCAL\_MACHINE\\SOFTWARE\\Citrix\\CtxHook\\AppInit_Dlls\\Graphics Helper\] "DirectX"=dword:00000001
\[HKEY\_LOCAL\_MACHINE\\SOFTWARE\\Wow6432Node\\Citrix\\CtxHook\\AppInit_Dlls\\Graphics Helper\] "DirectX"=dword:00000001 WPFHook
\[HKEY\_LOCAL\_MACHINE\\SOFTWARE\\Citrix\\CtxHook\\AppInit_Dlls\\Multiple Monitor Hook\] "EnableWPFHook"=dword:00000001
\[HKEY\_LOCAL\_MACHINE\\SOFTWARE\\Wow6432Node\\Citrix\\CtxHook\\AppInit_Dlls\\Multiple Monitor Hook\]
CUDO
"EnableWPFHook"=dword:00000001 \[HKEY\_LOCAL\_MACHINE\\SOFTWARE\\Citrix\\CtxHook\\AppInit_Dlls\\Graphics Helper\] "CUDA"=dword:00000001
\[HKEY\_LOCAL\_MACHINE\\SOFTWARE\\Wow6432Node\\Citrix\\CtxHook\\AppInit_Dlls\\Graphics Helper\] "CUDA"=dword:00000001 OpenGL
\[HKEY\_LOCAL\_MACHINE\\SOFTWARE\\Citrix\\CtxHook\\AppInit_Dlls\\Graphics Helper\] "OpenCL"=dword:00000001
\[HKEY\_LOCAL\_MACHINE\\SOFTWARE\\Wow6432Node\\Citrix\\CtxHook\\AppInit_Dlls\\Graphics Helper\] "OpenCL"=dword:00000001
- Nach Reboot des Systems können nun die Anwendungen auf den Server installiert werden. Ein gutes Tool um zu kontrollieren, das die Anwendungen die GPU Adapter nutzen finden Sie hier