Serenader

Learning by sharing

ESXi 直通显卡(GTX 960)给虚拟机

前置条件

  1. CPU和主板需要支持 VT-x 和 VT-D 功能
  2. 在 BIOS 上关掉集显。集显无法直通给虚拟机,而且也不可以宿主机使用集显,虚拟机使用独显。所以需要禁用

步骤

  1. 安装 ESXi
  2. 进入 ESXi 的 Host Web Client
  3. 依次进入 Host -> Manage -> Hardware -> PCI Devices
  4. 选中你需要直通的 PCI 设备。在我的机器上是 NVIDIA Corporation GM206 [GeForce GTX 960] ,然后点击 Toggle passthrough
    1. 如果在列表里面没有一个 PCI 可以选择的话,那么表示你的CPU或者主板不支持直通,可以尝试在 BIOS 里面开启 VT-D
  5. 重启 ESXi
  6. 创建虚拟机
    1. 跟以往一样配置虚拟机
    1. 最后在自定义的界面里面添加其他设备,然后选择 PCI ,然后选择之前选的显卡
    1. 保存,开机
  7. 进入虚拟机,然后安装 VMtools,重启
  8. 进入虚拟机,下载安装显卡驱动,重启
  9. 进入虚拟机,此时有两种情况
    1. 一种是虚拟机开机完成之后界面直接显示在直连的显示器上。此时就算是成功了。
    1. 一种是依旧不能在显示器上显示虚拟机界面。此时在虚拟机的设备管理器上可以看到显卡,但是处于被禁用状态,错误码是 43。Nvidia 的显卡大多都会出现这个问题。这时候进入下一步
  10. 关闭虚拟机,然后编辑虚拟机,依次选择: VM Options -> Advanced ->Edit Configuration -> Add parameter
  11. 在新增的记录里面填入: hypervisor.cpuid.v0 = FALSE
  12. 保存,开启虚拟机。如无意外的话即可看到虚拟机成功在显示器上显示内容了。
  13. 第10步也可以通过手动编辑虚拟机的 vmx 文件,添加 hypervisor.cpuid.v0 = FALSE 这一行配置信息来实现。

Tips

由于直通显卡之后,宿主机就没有显卡可以使用了。所以你可以发现,在宿主机刚开机的时候,显示器是显示 ESXi 的 Console 的。但是如果你开启了直通显卡的虚拟机之后,显示器就黑屏了,ESXi 的 Console 就没有地方显示了。接着显示器就会直接显示虚拟机的界面。所以,ESXi 的配置只能通过 Web Client 或者 Desktop client 来管理,而不能通过 Console 来管理。

Reference

  1. http://blog.csdn.net/zhanxix/article/details/71516316
  2. https://www.reddit.com/r/homelab/comments/441w1z/help_needed_with_esxi_60_gtx_960_passthrough_and/#bottom-comments