最近一直在折腾OpenStack,玩了KVM下的直通,总结之余发现使用vmware是最方便和效率最高的,故总结一下。
1. 基本环境
安装完vmware EXSi 6.7,需要在硬件下对PCI进行直通。选中需要进行直通的NVIDIA设备,点击“切换直通”,注意需要把同一个组下的所有NVIDIA设备都一起添加上,完成后重新引导主机生效。备注:6.7版本有个小bug,在点击直通设备时会不停地跳动,耐心操作一下即可。
重启后,直通设备处会显示为“活动”,这样基本环境就配置好了。
2.配置虚拟机
编辑虚拟机设置,添加我们直通的PCI设备,注意一个组下的设备要放在一起。并把第一个PCI设备的id给记下来,比如我的是:0000:17:00.0 在后续会使用到。
3.开启ssh,配置直通
需要使用ssh功能进入到EXSi的控制台,先在服务页面下打开SSH功能。
然后使用命令行连接到vmware的服务器,ip地址改成你的服务器地址,用户名root,密码就是vmware的密码。
ssh root@172.168.105.98
修改配置
vi /etc/vmware/esx.conf
使用以下命令切换到最后一行。
G
按下i,进行到输入模式。
i
添加一行为:/device/显卡设备号/owner = “passthru”,把刚才记下的id填入到显卡设备号中,比如我的为:
/device/0000:17:00.0/owner = "passthru"
最后,保存退出。
ESC :x
4.配置仿冒,隐藏虚拟机属性
由于家用的NVIDIA显卡并不能直接支持在虚拟机中运行,否则驱动会报43错误,因此需要对虚拟机设置仿冒,让虚拟机对外呈现为实体机的属性。选中需要直通的虚拟机,编辑设置,在“虚拟机选项”找到高级配置项。
在高级中编辑配置文件
添加一个参数:hypervisor.cpuid.v0 把对应值设置为:FALSE,设置完成后保存,重启EXSi。
5.安装驱动
操作系统安装完成后,在联网的情况下,win10操作系统会自动安装好驱动文件,耐心等待一下。当显示适配器正常显示并且接入显示器到显卡接口,表明功能正常。
如果是离线环境,可以到NVIDIA官方网站上下载离线的驱动程序。
https://www.nvidia.cn/Download/index.aspx?lang=cn
6.测试
在浏览器中访问以下网址,如果图形正常显示,并且GPU占用正常,说明直通是成功的。
# 测试网址1 https://cznull.github.io/vsbm # 测试网址2 http://gpu.jy6d.com/