GPU穿透技术

wKioL1MiWWORB6t0AAU-8P8N_-Q950.jpg本文介绍了如何配置的XenServer 5.6与XenDesktop 4 HDX 3D Pro的图形使主机工作站多路显卡可以通过同等数量的并发高端专业显卡的用户(每颗GPU一个用户)的共享,从而降低了成本每个用户。多GPU是直通的XenServer 5.6,在这个时候不适合生产部署的一个技术预览功能。

此文介绍了如何配置XEN 5.6 ,不打算生产部署在这个时候。

HDX 3D Pro的显卡,的XenDesktop企业版和白金版的一个功能,使高端3D图形应用程序,包括OpenGL和DirectX的应用程序,如CAD / CAM和医疗成像的交付。通常,这些应用程序是非常计算密集的,并且需要由图形处理单元(GPU)提供硬件加速。为了支持高端3D图形应用程序的远程处理,专业显卡利用了显卡的主机工作站(通常位于数据中心)上的3D渲染和可选的数据流的深度压缩。因为多用户管理程序之前的XenServer 5.6不支持GPU的访问,HDX 3D Pro显示先前建议与物理机只,物理桌面机或刀片或机架工作站是否。

HDX 3D 专业图形是DESKTOP 企业版活铂金版的一个功能,能够提供高端三维图形应用,包括开放和DIRECTX 基础应用程序,如计算机辅助设计/ 制造和医学成像。通常这些应用是非常计算密集型的,需要硬件加速的图形处理单元(图形处理器),支持远程高端三维图形应用程序的图形,利用图形卡的主机工作站(通常位于数据中心)的三维渲染和可选的深压缩的数据流。由于多用户管理程序之前,xenserver 5.6 不支持GPU 访问,HDX3D 专业图形功能是以前建议用在物理机器上的,不管是物理的桌面机或刀片或机架工作站。


采用XenServer 5.6的多GPU直通功能,现在可以将物理GPU的映射到虚拟机,事实上,你可以多GPU映射到同等数量的虚拟机,一对一。的XenServer 5.6与GPU的映射  直接分配  模式是减少对高端3D图形硬件成本的理想解决方案。考虑具有多个GPU或可能(未测试)1,连接到一个多GPU器具(如NVIDIA的Quadro Plex的S4)的服务器。在这种情况下,每个GPU可被映射到一个虚拟机,它可以进入到GPU,并且由HDX 3D Pro显示供电。一个强大的多核服务器(如通常会支持运行典型的办公应用80次以上的XenDesktop用户双路四核Nehalem处理器的服务器),额外的虚拟机可能会运行规律的XenDesktop正常使用情况下不需要图形硬件加速,视乎表现,从而进一步降低每用户成本。

XENSERVER5.6 的多GPU 直通功能,它现在可以映射一个物理处理器的虚拟机,事实上,你可以映射多个图形处理器以相同数量的虚拟机,一对一,xenserver 5.6 图形映射在直接指派模式是理想的解决方案,降低硬件成本的高端三维图形。考虑一个服务器上有多个GPU 或可能(尚未测试)之一,是连接到一个multi-gpu 实例(想NVDIA 显卡),在一个强大的多核服务上,这种情况,每个处理器可以被映射到一个虚拟机,它可以访问该GPU HDX 3D 图形计算能力(如双四核处理器服务器通常支持80 个或更多普通xendesktop 用户运行的典型应用)。额外的虚拟机可以运行规律的xendesktop 正常使用情况下不需要图形硬件加速,主题表现,进而降低成本每用户。

硬件要求    硬件准备

的XenServer主机

服务器CPU应该是启用了IOMMU对于启用了英特尔处理器AMD处理器或VT-d的。

服务器处理器应使用IOMMU 不管是AMD的处理器还是英特尔处理器启用VT-d的

图形处理器

此解决方案要求的NVIDIA GPU支持  SLI多操作系统,如FX3800,FX4800 FX5800或。安装来自NVIDIA最新的显卡驱动程序。AMD / ATI显卡不被多GPU直通功能的支持。

这个解决方案需要英伟达GPU 技术多支持,如fx3800 fx4800 fx5800 。安装最新的图形驱动程序的实现。AMD/ATI 图形卡不支持多GPU 直通功能。

虚拟CPU

HDX 3D Pro的图形利用一个虚拟的CPU完全用于提取桌面表面,通常是12到每秒30次。如果Aero是Windows上启用此需要第二个虚拟CPU。此外,至少一个vCPU所需的图形应用程序。图形应用程序往往是CPU密集型的,即使有由GPU提供的图形渲染的硬件加速。因此,它配置的虚拟机上运行HDX 3D Pro的图形用是很重要的  至少有两个虚拟CPU,如果在运行Windows XP或使用Windows的基本模式下,如果在Windows 7上运行并启用至少有三个虚拟CPU的Aero。下面提供了有关增加在XenServer上的虚拟CPU数量。

HDX3D 专业图形利用一个虚拟处理器完全提取桌面的表面,通常每秒是12 30 倍,如果在WINDOWS AERO 是启用的,这需要另一个虚拟处理器。此外,至少有一个vcpu 所需的图形应用。图形应用往往是GPU 密集,甚至与硬件加速图形绘制的GPU 。因此重要的配置是运行HDX3D 的虚拟机应至少有2 VCPU 运行WINDOWS XP 系统,或者使用windows 基本模式,如果运行在WINDOWS7 中则至少应3 VCPU 运行,且启用AERO 。  如下所示在的XenServer 中,增加了一些虚拟的CPU

软件要求

软件要求

的XenServer主机

思杰的XenServer 5.6(最终RTM版本)

在客户虚拟机,主机托管的XenDesktop HDX 3D Pro的图形桌面软件

4.0 XenDesktop的虚拟桌面代理(Service Pack 1的建议)

HDX 3D Pro的图形1.1

用户设备上的软件(端点)

用户设备上的软件(终端)

HDX 3D Pro的图形联机插件的Windows 12.0.33(包括特殊的GPU编解码器,以减少带宽需求),或标准12.0.3联机插件,如果只有CPU的编解码器是必需的

HDX3D 专业图形在线插件windows12.0.33 以后(包括特殊图形解码器减少带宽的要求),或者标准12.0.3 在线插件如果近CPU 解码要求。


- 或 -

11.100的Citrix Receiver为Linux(仅包括CPU的编解码器)

或者11.100接收器FOR LINUX(仅包含CPU的解码方式

是指在XenServer 5.6文档在XenServer上配置的更多细节。同样,对于XenDesktop 4的和HDX 3D Pro的图形部署,请参考相关文档(如HDX 3D Pro的图形  管理员指南)。

更多详细的信息请参考XENSERVER5.6 文档,DESKTOP4 HDX3D 专业图形部署参考相关文件(如HDX3D 的管理文档)

增加虚拟CPU的数目

增加VCPU 数量

在XenServer高级版(高级版,企业版,白金和XenServer XenDesktop使用)可以让您控制每个虚拟CPU(插座)内核的虚拟机的数量。此功能可让操作系统与插座限制使用更多的主机CPU的核心。

的XenServer 高级版(桌面企业版铂金版和Xen的服务器FORXEN DESKTOP )让你控制在虚拟机中每个VCPU 的核数。这种能力可以让操作系统与SOCKET 限制使用更多的主机处理器的内核

Windows企业版和商业版支持最多两个处理器或物理插槽。没有比虚拟CPU作为核心,这将导致被限制在两个CPU的Windows企业或企业版使用。

Windows 企业版和商业版支持最多2 个处理器或者物理SOCKETS 。没有特征的VCPU ,将导致一个windows 企业版或商业版限制使用到2 CPUS.

的Windows Server授权也是每个插槽(见  微软文档)。

的Windows 服务器许可也是每插座(详见微软文档

你可以配置虚拟CPU的如何在插座和核心条款进行分配。例如,您可以配置一个虚拟机有四个虚拟CPU在以下方面:

您可以配置虚拟处理器分配方面指定终端的socke 和核心,例如,您可以配置一个虚拟机与四个虚拟处理器,在以下几个方面:

四个插槽,每个插槽一个核心

两个插槽,每个插槽有两个核心

一个插座,每个插座四核

如果没有这种功能(XenServer的免费版),每个虚拟CPU被分配给单个芯插座,这样,虚拟机将使用尽可能多的插座作为虚拟CPU。

没有此功能(xenserver 免费版),每个虚拟处理器被分配到一个单核 SOCKET ,使虚拟机将使用更多的SOCKETS VCPUs

先决条件

重要提示:要使用每个插槽的虚拟CPU的功能在XenServer内核,你必须遵守与操作系统EULA的要求。微软Windows Home Edition版本仅限于一个单一的插座。

重要的是:使用XenServer的核心SOCKET  虚拟CPU 。功能,你必须遵守操作系统的要求微软家庭版仅限单路

程序  步骤:

验证虚拟机已关闭。  验证虚拟机是关闭的

请确认您拥有的XenServer 5.0或更高版本。验证是XENSERVER5.0 以后版本

请确认你有一个的XenServer高级版(高级版,企业版或白金)

验证你有一个的XenServer 高级版(高级版,企业版,铂金版)

验证虚拟CPU的虚拟机通过每个插槽的核心数除以总数是一个正整数。

验证为虚拟机分配的VCPUS 的总数除以每SOKECT VCPU 数是一个正整数。

wKiom1MiWVWhXSFgAAEC7Y7JxBQ501.jpg

从XenServer CLI:
XE虚拟机列表名称标签=“VM名称作为显示在XenCenter中” -最小(这将返回您的VM的UUID。)
XE虚拟机参数设置平台:核心-每个插座= N UUID = <vm-uuid从以前的Command>指令
XE虚拟机参数设定的VCPU-MAX =的<desired量CPUs>的VCPU-AT-启动= CPUs>的<desired量UUID = <vm-uuid从以前的Command>指令

1。例如:要求出示4核到Windows 7企业版的虚拟机。

例如:要求指定4 核到一个WIN7 企业版的虚拟机。

2。设置所需的每插槽和虚拟CPU核心的数量。

设置每路所需的和数和VCPU

3。检查CPU的从虚拟机内看到实际数目。

从虚拟机检查实际CPU的数量

wKioL1MiWULDfuV8AAEXd5f_dG8410.jpg

4。利用XenServer的模板技术与微软Sysprep或微软WAIK(Windows自动安装工具包)一起与自动化所需的设置,如量创建虚拟机的过程中核心的每套接字。用于转化Sysprep或WAIK使用CLI编写的虚拟机模板(注意,这也可以通过XenCenter GUI配置,PowerShell界面或使用XenServer API等接口实现),见下图:

利用xenserver 模板技术与微软sysprep 或者在微软自动安装工具包的过程自动化创建虚拟机所需的设置,如大量cores-per-sockets 。见下面的转换sysprep 自动安装包准备虚拟机模板使用命令行(请注意,这也可以实现通过xencenter 的图形用户界面,powershell 接口或其他接口,使用xenserverAPI 实现)

wKiom1MiWXjyGSy5AADxlrCl3ZE814.jpg

5。具有这些特征的新的虚拟机,然后简单地以下列方式进行:

汇集图片

多GPU直通可以使用共用的图像。

1。提供服务包括共享一个虚拟磁盘中的多台服务器,也涉及到数据流,因为目标机器可能是无盘。

2。所有的目标机器应该是相同的主目标机器(从虚拟磁盘已创建一台机器)。据观察,该目标机器没有重启(蓝屏)如果系统配置为从主目标设备的不同,这可能是因为一些司机不匹配/不兼容。

3。如果虚拟磁盘版本不发生或者如果主目标设备变为无效(请在控制台),那么请尝试以下操作:

一个。如果开关用于配置服务的服务器和主目标设备,请将其移除,然后使用直接N / W端口。

湾 进入我的电脑管理>设备管理器>网络适配器属性>高级选项卡> Large Send Offload属性和禁用该属性。

GPU的映射到虚拟机

本节将介绍如何使用GPU直通到一个PCI显卡分配给客户操作系统。

本节说明如何使用GPU 直通到已经分配图形卡的操作系统

以下是详细的一步一步指南的XenServer 5.6,前提是您的系统满足上述的硬件和固件要求。

以下是一个详细的分步指南的XenServer 5.6 ,只要你的系统能够满足上述要求的硬件和固件。

1。启用IOMMU的主机上。

编辑“/开机/ extlinux.conf”,并添加
IOMMU = 1 iommu_inclusive_mapping = 1
中的/ boot / xen.gz所有实例之后
作为一个例子与那些选项的行看起来像这样:
附加的/ boot / xen.gz IOMMU = 1 iommu_inclusive_mapping = 1 COM1 = 115200,8 N1控制台= COM1,VGA的dom0

_mem = 752M lowmem_emergency_pool = 1M crashkernel = 64M @ 32M --- / boot/vmlinuz-2.6-xen的root = LABEL =根rqrdbtjz RO控制台= tty0 xencons = HVC控制台= hvc0 --- / boot/initrd-2.6-xen 。IMG

编辑/ BOOT.EXTLINUX.CONF 文件,在所有实例的的/ boot / xen.gz 之后添加IOMMU = 1 iommu_inclusive_mapping = 1 ,如例子看起来像这样的选项:

附加的/ boot / xen.gz IOMMU = 1 iommu_inclusive_mapping = 1 COM1 = 115200,8 N1控制台= COM1,VGA dom0_mem = 752M lowmem_emergency_pool = 1M crashkernel = 64M @ 32M --- / boot/vmlinuz-2.6-xen的root = LABEL =根 -  rqrdbtjz RO控制台= tty0 xencons = HVC控制台= hvc0 --- / boot/initrd-2.6-xen.img

2。重新生成引导程序执行:  extlinux /开机

更新引导加载器执行:extlinux /开机

3。运行以下命令以root身份在XenServer主机上:
回声'modprobe的pciback“>>在/ etc / rc.local中

使用ROOT 身份在的XenServer 主机上运行一下命令:

回声'modprobe的pciback“>>在/ etc / rc.local中

4。重新启动XenServer主机:  重启的XenServer 主机
检查“pciback'模块使用装在dom0  
检查pciback 模块加载情况
#lsmod的| grep的pciback



如果没有加载,然后使用下面的命令来加载“pciback”  
如果没有加载则使用下面命令加载PCIBACK 模块
#modprobe的pciback


要验证“pciback”被成功加载使用下面的命令  
重新验证PCIBACK 模块是否加载成功。
#lsmod的| grep的pciback


它应该显示在输出中包含
它应该显示的输出如下
pciback 37768 0

5。为虚拟机分配一个PCI图形卡。获得在执行了系统的PCI设备的列表  的lspci。你应该看到一个或多个设备是这样的:

指定一个PCI 显卡到一个虚拟机,系统执行lspci 获得pci 设备的列表信息。你可以看见一个或更多设备
02:00.0 VGA兼容的控制器:NVIDIA公司GT200GL [的NVIDIA Quadro FX 3800](冯A1)

6。指定其中一人执行以下命令虚拟机:  
将他们中的一个虚拟机执行以下命令:
XE虚拟机参数设定的other-config:PCI = 0/0000:02:00.0 UUID = uuid_of_the_VM

其中02:00.0是显卡的你要分配的PCI总线地址

02:00.0 是你想指定的图形卡的PCI 总线地址
使用命令  XE虚拟机列表  来获取虚拟机的UUID。

使用命令 XE虚拟机列表  获得虚拟机的UUID

7。启动虚拟机并安装正确的驱动程序为新的设备。NVIDIA的显示卡应该出现在计算机管理>这表明了GPU直接映射成功设备管理器>显示适配器。

启动虚机,为设备安装正确的驱动, NVIDIA 显卡从这里看到计算机管理- 设备管理器- 显示适配器,这表明该处理器直接映射是成功的。

8。安装XenDesktop的虚拟桌面代理其次是在虚拟机上的HDX 3D Pro的图形。

在虚拟机上安装XenDesktop的VDA FOR HDX3D 软件

笔记

1。重新启动虚拟机与GPU的映射将删除映射。因此,关机和重新启动,建议代替。

重启虚拟机,GPU的映射将删除,因此不建议重启或关闭虚拟机。

2。如需技术支持,请使用  XenServer的支持论坛

本文件适用于:

的XenServer 5.6


你可能感兴趣的:(应用程序,数据中心,DirectX,管理程序,工作站)