1 背景说明

前一段时间我所参与的一个项目中,有个需求就是要使用到桌面虚拟化的,用户通过桌面协议客户端直接访问虚拟机的桌面进而在虚拟机中使用我们的软件,同时虚拟机需要使用到vGPU;所以当时在做了多方面对比之后我选择使用开源的oVirt虚拟化平台及nvidia的m60 GPU搭建环境;之所以这么选择是因为oVirt使用的桌面协议是spice(这边有个坑,后面会说),该协议在对声音及图像的处理上做得非常不错,然后nvidia m60最多可支持出32个桌面,与我们的业务相符(本来想用m40的,m40可以支持64个桌面且比m60便宜,但可惜的是代理商说这款没卖了);然后我在搭建实验环境的时候就遇到了问题,就是oVirt与Xenserver和VMware不同,使用vGPU不能像它们一样在创建虚拟机时的参数中就能配置,为此我也走了好多弯路问了好多人,甚至翻墙找资料,花了好多时间最终才把环境搭建出来,为了避免有人像我一样走弯路,所以决定把我搭建过程中总结出的经验拿出来分享一下,第一次发文,有什么不足之处还望大家担待一下。

2 具体操作

2.1 环境准备

首先要准备一套部属了oVirt的环境,具体的部署方式我就不多做说明,CSDN上有许多相关的帖子,并且oVirt官网上也有教程;然后将nvidia tesla m60插到oVirt环境中node节点所在的服务器物理机上(有些服务器是不能直接插GPU的,需要额外买个riser套件,将套件装在服务器上,然后再插GPU),并且安装好驱动和安装License服务器,具体操作你在购买或试用License时,从官方下载的驱动及软件包里有文档教程的,安照那个安装准没错,所以这部我也不细说了。

  2.2 开启pci透传(2019.2.12备注:经后续使用发现,pci透传功能并不需要开启,故此本步骤直接省略,跳至2.3即可)

1) 登录oVirt平台,点击 计算->主机->编辑->内核,在内核命令中填入intel_iommu=on rablacklist=nouveau然后点击确认

2) 点击确认之后会返回到主机页面,然后点击上方的管理->维护

3) 维护操作完成之后,点击安装->重新安装,重新安装完成以后查看主机信息就会发现pci透传已经启用了

2.3 将vGPU分配给虚拟机

1)  登录oVirt Engine的终端,查询GPU的bus-id,如下图所示,我的id分别为44:00.0和45:00.0

2)根据vGPU的实例类型查询vGPU的实例名,实例类型可在相应的vgpu grid用户手册中查到,如下图所示,下图为M60的实例参数

进入/sys/bus/pci/devices/0000:<你的bus-id>/mdev_supported_types/目录,使用grep -l "<你所使用实例的类型>" nvidia-*/name命令就能获取到实例名,如下图所示,我的bus-id为44:00.0,需要查询M60-0Q(该实例分配512M)的实例名,查询到的实例名为nvidia-12

3) 登录oVirt平台,找到你要分配vGPU的虚拟机,编辑虚拟机->自定义属性,添加自定义属性mdev_type,值为2)中查询到的实例名,然后开启虚拟机后,在虚拟机中即可当作普通GPU使用了,直接安装相应的GPU驱动配置License即可

3 一些问题

  在前面我有说过这边有一个坑,那就是,当你在虚拟机中安装完gpu的驱动再重启生效时,你就会发现spice客户端出不了画面了,是的没有画面,因为这是spice本身的问题,spice直接将vGPU当成第二屏幕了,所以从vGPU中传递过来的图片和声音,spice客户端是捕捉不到的,所以就不会有页面显示了;总结就是spice协议不支持使用vGPU咯,当然你非要使用spice协议也是可以的,那么就得自己修改一下spice协议的底层的,这都是开源的,你在网上就能获取到源码,然后自己修改重新编译打包就行了

如果觉得该spice协议太费时费力的话,不妨可以换个桌面协议,推荐使用win10操作系统的虚拟机,然后默认使用rdp协议就行了,当然直接远程链接过去GPU是不起效果,还需要配置一下:

1) win+r输入gpedit.msc进入组策略

2) 计算机配置->管理模块->Windows组件->远程桌面服务->远程桌面会话主机->远程会话环境
        a 启用'限制最大颜色深度',颜色深度设为32位
        b 启用'将硬件图形适配器应用于所有远程桌面服务会话'
        c 启用'配置远程桌面连接的H.264/AVC硬件编码'
        d 启用'配置RemoteFX自适应图形的图像质量',图像质量设为无损
        e 启用'为专门针对Windows Server 2008 R2 SP1设计的RemoteFX客户端启用RemoteFX编码'
        f 进入RemoteFX for Windows Server 2008 R2目录将里面的三项全启用,其中屏幕捕获速率个屏幕图像质量设为最高(最佳质量),视觉体验设为丰富的多媒体

3) 重启虚拟机后即可生效

oVirt4.2给虚拟机分配vGPU相关推荐

  1. 分享ThinVirt云桌面软件实现NVIDIA P40显卡为虚拟机分配vGPU过程

    ThinVirt云桌面软件是云终端设备厂商(瑞恩科技),给他们云终端.瘦客户机产品配套的VDI虚拟化桌面软件.该软件采用KVM + Intel/NVIDIA vGPU虚拟化技术,满足日常办公同时又能满 ...

  2. Ubuntu查看系统任务管理器(cpu+内存资源占用)+查看虚拟机分配核心数

    Ubuntu查看系统任务管理器(cpu+内存资源占用) 命令: gnome-system-monitor 打开ubuntu下的任务管理器,启动桌面管理,显示系统cpu,内存占用情况. 参考:https ...

  3. 虚拟化精华问答 | 如何为虚拟机分配任务?

    虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机.今天就让我们来看看关于虚拟化的精华问答吧. 1 Q:在一台特定的服务器上,每一个虚拟机是否可以运行任何版本的Windows? A:服务器虚拟 ...

  4. 虚拟机服务器分配内存,服务器虚拟机分配内存大小

    服务器虚拟机分配内存大小 内容精选 换一换 开发者板形态下,使用16路推理进程并发对1080P图片进行处理,导致内存耗尽,内存申请失败后进程退出.为了防止抖动,默认情况下Engine队列大小为200, ...

  5. CloudSim源码分析之虚拟机分配

    CloudSim源码分析之虚拟机分配 分类: 云计算 CloudSim2011-05-15 14:32 1629人阅读 评论(10) 收藏 举报 虚拟机integerlistnulltableobje ...

  6. linux虚拟机给多少内存,我应该为虚拟机分配多少内存(RAM)?

    问题描述 我正在虚拟盒中安装Ubuntu;我的主机操作系统是Windows 7,我的系统上有6GB的RAM.关于在虚拟机上设置Ubuntu的一个教程(这个,在步骤14:http://www.aztcs ...

  7. Linux版VMware为Windows虚拟机分配固定IP及启用远程桌面连接

    首先介绍一下环境: 1. Host(宿主计算机)的操作系统是Scientific Linux,内核版本2.6.18,主机名SPVM02,IP地址135.100.101.102,部署的是VMware W ...

  8. CAS虚拟化平台Linux虚拟机安装vGPU显卡驱动并获取许可

    前言 在虚拟化环境中,虚拟机要使用vGPU,需要搭建显卡许可服务器License Server,虚拟机客户端通过连接许可服务器获得许可.当物理机上的显卡被拆分后,分配到虚拟机上,虚拟机需要安装相应的显 ...

  9. 给一个执行在windows 7和NAT下的VMWARE虚拟机分配固定IP

    虚拟机上装了个oracleserver,每次vmware重新启动或者resume时总要分配新的IP地址,这样就得改动windows下的client配置,所以须要想办法把IP地址固定住. DHCP服务在 ...

  10. vm虚拟机分配处理器_虚拟机处理器核数与物理cpu的关系

    vCPU,顾名思义,是虚拟CPU. 创建虚拟机时,需求配置vCPU资源. 因而vCPU是虚拟机的部件. 因而脱离VM,议论vCPU是没有意义的. 虚拟化办理体系怎么调度vCPU,取决于体系内的虚拟机数 ...

最新文章

  1. mysql 事务值被改变_面试被问MySQL 事务的实现原理,怎么破?
  2. 前端学习(477):前端简介1
  3. mysql5.4升级5.6_如何在CentOS上升级php5.4至5.6?
  4. (105)FPGA面试题-查找程序中的代码错误
  5. 很感人的爱情故事——世界上最遥远的距离
  6. 通过select下拉框里的value控制div显示与隐藏
  7. 前端解析ipa、apk安装包信息 —— app-info-parser
  8. c++ 类与默认函数、包括构造函数和析构函数的特点
  9. 淘宝全屏代码天猫首页全屏代码不显示全屏怎么做设置自适应通栏990布局 全屏代码1920
  10. oracle hcm cloud价格,Oracle HCM
  11. H264 数据帧头分析
  12. IT职场人生:学外语
  13. 曾因“贿赂”苹果被罚款 10.3 亿美元,高通上诉成功
  14. Windows下部署ubuntu16.04+anaconda2.7+tensorflow
  15. JAVA的简单数据类型和复合数据类型
  16. tc流量控制原理和实现
  17. 如何完成中文翻译日文在线翻译
  18. 六行python代码的爱心曲线_6行python代码的爱心曲线
  19. Linux下QT串口通过无线模块收发十六进制数据
  20. 2020年第四届计算机检测维修与数据恢复国赛模拟比赛

热门文章

  1. Linux 文件与目录管理/tree命令
  2. 香港免备案服务器的优势在哪
  3. 服务器系统各linux占有率,11月服务器系统大排行Linux占有率升至5%
  4. Bugku CTF之xxx二手交易市场
  5. 学生党专用计算机,大学生用什么笔记本电脑好?3k档超值推荐 学生党们赶紧收藏呀...
  6. 淘宝店铺换季需要注意的点,换季需要做哪些工作
  7. vues部分基础知识
  8. 【PythonNLP】WordNet的应用
  9. python对流进行join
  10. 利用Python+Django快速开发Web毕业设计