GPU-Accelerated VDI on OpenStack OpenStack DC MeetUp June 18, 2013 Nimbis Services, Inc. http://www.nimbisservices.com Brian Schott, CTO [email protected]
About Nimbis Services Nimbis Services is lowering the barriers to high- performance computing (HPC) and offering a secure marketplace for technical computing in the cloud. Nimbis partners with leading HPC & cloud providers, software vendors, and domain experts to configure and broker secure on-demand pay-as-you-go access to applications.
Challenges for GPU-Accelerated Virtual Desktop Infrastructure (VDI) on OpenStack § Making the GPU available to a virtual machine. (3 basic approaches, ok, maybe 4). Ø Bare Metal / Containers (lxc) Ø PCI Pass-Through Ø Para-virtualization (proxy device drivers) Ø Remote Display Protocols (X, NX, VirtualGL, WebGL) § Remote desktop protocol that supports GPU acceleration. Ø Host and Guest Combinations: Linux or Windows Ø Remote Clients: Linux, Windows, OSX, Web Browser, Tablet Ø Networking: “The Joys of Firewalls”, or “Any Port as Long as it is 443” Ø Licenses: “This is too good to be free.” § Provisioning GPU resources from within OpenStack. Ø Nova compute virtualization driver (plugin). Ø GPU instance types, resource discovery, and scheduling. Ø This is still under development in the community. Ø Full disclosure: Nimbis hand-deployed the GPU instances for testing.
Nvidia GRID GPU Virtualization (Kepler Architecture) Source: http://www.nvidia.com/object/grid-boards.html Source: 1http://www.nvidia.com/content/PDF/kepler/NV_DS_Tesla_KCompute_Arch_May_2012_LR.pdf GPU Virtualization¹ GRID boards feature the NVIDIA Kepler architecture that, for the first time, allows hardware virtualization of the GPU. This means multiple users can share a single GPU, improving user density while providing true PC performance and compatibility.
GPU-Accelerated VDI Approaches Considered § Customer Requirements Ø Combination of Windows and Linux guest images. Ø Applications using OpenGL on both Windows and Linux. Ø Variety of Windows (95, 7, 8) clients, OSX clients, and web browsers (IE7, IE8, Firefox, Chrome, Safari). Ø Variety of firewall and IT/FSO software challenges. § Technologies Tested Ø Microsoft Hyper-V and RemoteFX Ø XenServer with VNC / RDP / Guacamole Ø Open Source Xen (libvirt) on Ubuntu Linux with VNC § Possible Alternatives Ø Linux Containers (lxc) • USC/ISI team has the blueprint and code targeted for Havana. • No Windows support. Ø XenDesktop with HDX 3D Pro (not tested) • Requires a custom client, Citrix Receiver, OpenGL support unclear. • Does not integrate with OpenStack.
Microsoft Hyper-V and RemoteFX § Technology Ø Windows Host GPU device with para-virtualized driver for windows guests. § Host / Hypervisor Ø Microsoft Windows Server 2012 Datacenter Edition (RemoteFX license). Ø Latest Nvidia driver for Windows. § Guests Ø No GPU pass-through available or driver for Linux guests. Ø Accelerates Windows DirectX calls, does software OpenGL rendering. § Clients Ø Good performance with standard Windows RDC > 8.0. Ø Good performance from FreeRDP* OSX client, not Microsoft client. Ø iOS and Android? Not tested, but FreeRDP clients exist on both. § OpenStack Status Ø Integrates with OpenStack Hyper-V nova compute drivers. Ø Nova scheduler support for Hyper-V extra specs not on blueprint radar. Ø Possible to use today with custom nova scheduler plugin. * http://www.freerdp.com
XenServer with VNC / RDP / Guacamole § Technology Ø GPU pass-through of Nvidia GRID K2 to Windows and Linux guests. Ø Two GPU devices available for two separate instances. Ø Physical GPU virtualization drivers promised by end of the year (n=64?). § Host / Hypervisor Ø XenServer 6.1 Platinum Edition (enables GPU license). § Guests Ø Linux: specify Windows 7 as server template then standard CentOS 6.4 install process. Good GPU performance using VNC and VirtualGL. Ø Windows: tried both RDP and TigerVNC do software OpenGL rendering. • Unable to VNC or RDP to “console” display, possibly no monitor? § Clients Ø Windows and OSX Clients comparable to remote desktop to native boxes. Ø Tried RDP, VNC, and Guacamole (HTML5 VNC client). § OpenStack Status § XenServer Integrates with OpenStack using XenServer plugins. § Nova scheduler support for XenServer not on blueprint radar.
Open Source Libvirt/Xen with VNC / RDP / Guacamole § Technology Ø GPU pass-through of Nvidia GRID K2 to Windows and Linux guests. Ø Two GPU devices available for two separate instances. Ø Unsure of GPU virtualization drivers status for n > 2. § Host / Hypervisor Ø Ubuntu 12.04, Xen (Xen hypervisor 4.1.0), libvirt (0.98) Ø Xen HVM guest cfgfile in /etc/xen/<guest> to enable VGA passthrough: gfx_passthru=1 pci=['yy:zz.n’] § Guests Ø Linux: Tested CentOS 6.4 image with latest Nvidia drivers (310.44). Verified device functioned. Expect similar results to XenServer. Ø Windows: Did not test an image. Expect similar results to XenServer. § OpenStack Status § Xen supported within OpenStack using nova libvirt driver. § Nova specs support for libvirt exists (i.e. this host has a GPU). § Feasible to have support included in H or I release given lxc work. http://wiki.xen.org/wiki/Xen_VGA_Passthrough
Summary § GPU-accelerated VDI pools within OpenStack are quite feasible. Ø Code support is very rough around the edges, not production ready. Ø We really need to get open community support organized for this feature. Ø Several vertical vendor solutions out there, but Xen and KVM baselines should be possible as open-source. § Questions?