-
前言
前段时间在寝室的服务器上插了显卡给室友玩游戏,但是苦于辣鸡windows不能做到很好的用户隔离和资源分配,导致我使用服务器跑一些高负载服务时,室友不能愉快玩耍。于是考虑到通过PIC-E直通+虚拟化的方式来解决这样的问题,顺便提升后续的扩展性。
准备工作
- 洋垃圾服务器一台
- E5-2650v2 双路
- 64g ECC RAM 双路双通道
- H710阵列卡 with 21T Raid0 HDD
- 9260-8i阵列卡 with 12T Raid5 HDD
- 2T酷鱼
- 128g Intel SSD
- 祖传EVGA GTX 750Ti
- Windows Server 2016 数据中心正版(白嫖)
- 破解版N卡驱动
- Moonlight客户端(用于串流)
开始配置
- 将主板跳线拨至使用板载集显位置,通过VGA输出视频
- 格掉以前的C盘,安装Windows Server操作系统,开启Hyper-V服务(这点很重要,只有server 2016及后续版本才能支持Hyper-V的PCIE设备直通)
- 配置宿主机的RDP,移除宿主机显示器,配置网络(我的网络环境是所有的路由器都由主路由提供HDCP服务,因此我仅需要配置一个虚拟交换机即可)
- 将“自动停止操作”里面的操作从保存虚拟机状态改为强行关闭虚拟机
- 将虚拟机检查点类型改为生产检查点,并取消勾选“创建标准检查点”
- 从宿主机下线显卡:
- 控制面板
- 设备管理器
- 详细信息
- 位置路径(记录下来)
- 禁用设备
- 通过powershall下线设备:
Dismount-VMHostAssignableDevice -LocationPath "设备路径" -force
- 将显卡挂载到虚拟机:
Add-VMAssignableDevice -LocationPath "设备路径" -VMName 虚拟机名称 Get-VMAssignableDevice -VMName TEST #检查
- 开启虚拟机,安装驱动
- 关闭 安全启动 (否则进不了testsign 模式)
bcdedit -set testsigning on
- 安装破解版nvidia驱动
- 使用gpedit.msc 禁止安装驱动更新:依次选择计算机配置—管理模板—系统—设备安装—设备安装限制,选定禁止安装未由其他策略设置描述的设备,启用
- 配置显示器和串流(请务必使用TeamViewer连接虚拟机,并关闭其他方式的连接)
- 进入显示设置,将画面改为仅输出到连接显卡的显示器上(此时你需要一台显示器帮助进行配置,或者一个HDMI欺骗器)
- 打开GeForce Experience中的设置,开启SHIELD,添加一个游戏(随便一个exe也行)
- 使用moonlight设备进行连接
最后
其实折腾虚拟化也没什么难度了...以前用过ESXi,PVE,UNRaid,这次尝试的是Windows下的Hyper-V。总的来说体验还是可以的,但是Hyper不支持直通USB,网卡等设备,因为微软认为这样会降低虚拟机的便携性(无语)。总结了一下这几大虚拟机的优缺点如下:、
Hyper-V | ESXi | PVE | UNRaid | |
---|---|---|---|---|
类型 | Hyper-V | kvm | kvm | kvm |
兼容性 | Linux性能损耗大,Windows表现很好 | 内核虚拟化,性能很好 | 内核虚拟化,性能很好 | 磁盘管理兼容性好,NAS系统 |
虚拟化特性 | iommu | virtio | virtio | virtio(应该) |
缺点 | 虚拟UEFI,无其他硬件直通 | 对宿主机网卡有型号有奇怪的要求 | 命令行太多,记不住 | 不支持Raid直通,有万兆瓶颈 |
Comments | 0 条评论