Xen VGA graphics adapter passthrough
1.显卡虚拟化调研报告
1.1 简介
  Xen VGA graphics adapter passthrough是指将显卡绑定到虚拟机,虚拟机可以直接的独占的使用显卡,获得更好的3D和视频加速性能。
  Xen VGA passthrough只能用于全虚拟化虚拟机,不支持半虚拟化虚拟机。
Xen VGA passthrough需要Xen4.0或更新版本,需要dom0内核包含pci后端驱动。
  Xen VGA passthrough需要硬件(CPU,主板,芯片组,BIOS)支持IOMMU(Intel VT-d AMD IOMMU)技术,满足要求的硬件参考source/xenwiki/VTdHowTo
1.2 原理
VGA passthrough的技术基础是PCI passthroughPCI passthrough需要硬件支持IOMMU
主要用于网卡,U盘等PCI设备的直接访问。显卡的一些特殊性使其不能直接使用PCI passthrough,比如VGA显卡有自己的bios,集成显卡需要固定内存作为显存等。
VGA passthrough的步骤如下:
1) 映射VGA帧缓存到虚拟机。
2) 拷贝VGA BIOS 到虚拟机。
3) 映射VGA I/O 端口。
4) 关闭XenVGA模式,即禁止dom0使用该VGA显卡。
1.3 显卡支持情况
  Xen4.0的显卡支持情况
支持intel集成显卡
支持主显卡适配器(primary graphics adapters),即开机启动时默认使用的显卡。
部分NvidiaATI的显卡需要而外的patch来支持FLR(Function Level Reset)
部分Nvidia显卡需要而外的使vBAR=pBARpatch
部分显卡需要修改VGA BIOS
1.4 成功案例
1) Wiki上测试过的显卡
网址:source/xenwiki/XenVGAPassthroughTestedAdapters
Intel Corporation 82Q35 Express Integrated Graphics Controller,下图显示相关的配置信息。
Nvidia显卡,官方数据仅有FX 3800, 4800 and 5800支持graphics passthrough,下图显示相关的配置信息。
ATI显卡,经过测试的显卡有Radeon 4850Radeon 4870FirePro V5700FirePro M5800。用户报告测试成功的有ATI HD4550ATI HD5750Radeon 4770                                    ATI HD5750成功案例网址:                            xen.1045712.n5.nabble/VGA-passthrough-GA-890FXA-with-ASUS-EAH5750-video-td3274626.html
2 视频演示
软件环境:
Domain0操作系统:Fedora 11 Linux x86-64
Xen版本:Xen 3.5-unstable
Domain0内核:2.6.31.4 (pvops)
DomainUWindows XP Home Edition SP3 32-bit,全虚拟化VMpython虚拟机
Intel GFX Passthrough Patches Applied: Version 1 (Provided by Han Weidong Intel),不知道这个patch具体是什么。
硬件环境:
显卡:NVIDIA GeForce 8400 GS PCI Express x16
CPUPentium(R) Dual-Core CPU E6300 2.8GHz
主板:Intel DQ45CB
内存:8GB DDR2-800
下图是虚拟机中显卡型号的显示(视频截图)。
以下视频中硬件和软件配置同上,视频地址:
utube/watch?v=3mxuNRiMxDU,虚拟机硬件信息展示。
utube/watch?v=5I13E1MQbMc3D游戏测试。
utube/watch?v=yYg6n8yBktM3D游戏测试。
utube/watch?v=Pikwgl8bac83D游戏测试。
utube/watch?v=5tLzYqIJ7Q03D游戏测试。
utube/watch?v=uL7JS4PMpzY,磁盘I/Obenchmark
utube/watch?v=HHUwg_zxYgw,配置过程,虚拟机信息展示。
utube/watch?v=vLR-o9tX_TwCPU性能测试。
3 VGA passthroughNvidia 9500GT
软件环境:
Xen (build: xen-unstable, recent as of ~ 1/25/09 1:00AM-EST)
Dom0: Linux-2.6.18.8-xen (via xen-unstable.hg)
DomU: Windows XP (pro, sp3, 32-bit)
硬件环境:
Intel Q6600 Core 2 Quad-Core, G0 stepping (I think)
Intel DQ35JO Motherboard, Q35 Chipset, BIOS v.991 (1/9/09), VT and VT-d enabled
nVidia 9500GT (for VT-d passthrough - DomU)
nVidia GeForce2 MX200 (Dom0 console)
网址:
xen.1045712.n5.nabble/Successful-PCIe-Graphics-VT-d-Passthrough-to-Win32-DomU-Q35-chipset-td2598400.html
二. xen4.0+安装介绍
2.1 准备工作
(1) 安装一个较新版的linux,比如64位的fedora12, fedora13 ,fedora14
(2) 安装必要的软件包
Fedora12及更高版本安装以下软件包:
yum groupinstall "Development Libraries"
yum groupinstall "Development Tools"
yum install transfig wget libaio-devel dev86 glibc-devel e2fsprogs-devel gitk mkinitrd iasl xz-devel bzip2-devel pciutils-libs pciutils-devel SDL-devel libX11-devel gtk2-devel bridge-utils PyXML qemu-common qemu-img mercurial
Ubuntu安装以下软件包:
apt-get install bcc bin86 gawk bridge-utils iproute libcurl3 libcurl4-openssl-dev bzip2 module-init-tools transfig tgif texinfo texlive-latex-base texlive-latex-recommended texlive-fonts-extra texlive-fonts-recommended pciutils-dev mercurial build-essential make gcc libc6-dev zlib1g-dev python python-dev python-twisted libncurses5-dev patch libvncserver-dev libsdl-dev libjpeg62-dev iasl libbz2-dev e2fslibs-dev git-core uuid-dev ocaml libx11-dev gcc-multilib xz-utils
2.2 安装xen4.0(xen4.1)
(1) 获得xen4.0(xen4.1)的源码
  Xen4.1.1的稳定发行版下载网址:/products/xen_source.html
  其他稳定发行版的xen源码下载网址:/products/xen_archives.html
  在网址:/hg/上,可以到xen的稳定测试版(如xen-4.0-testing.hg xen-4.1-testing.hg),测试版功能  可能更全。
  测试版的下载命令:hg clone /hg/xen-4.1-testing.hg
(2)获得配置stubdom所需的软件包
  安装stubdom时会自动下载一些软件包,但是速度非常慢。
  可以事先将安装stubdom所需的软件包下载下来,拷贝到xen安装目录下的stubdom目录中,比如xen-4.1.1\stubdom,这时编译、安装stubdom时会快些。Stubdom目录下所需软件的下载网址:
grub-0.97.(ftp:///gnu/grub/grub-0.)                                                     
lwip-1.3.0.(u.org/releases-noredirect/lwip/lwip-1.3.)
  newlib-1.16.0.(ftp://dhat/pub/newlib/newlib-1.16.)
  pciutils-2.2.9.(source/xen-extfiles/pciutils-2.2.9.tar.bz2)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。