欢迎光临散文网 会员登陆 & 注册

Hyper-V PCIE设备直通教程

2020-10-15 12:59 作者:进栈检票  | 我要投稿

注:本文是为了已经咕了将近半年的LTO磁带使用教程而作,之前一直有时间和各方面条件的限制。最近还在进行试验,以后不仅会写教程,还会将LTO磁带存储用于直播录像的上传后留档等。

0202了还在用17年配的E5 v2,以后这VCA2测试咋做下去啊。。

环境:Intel S2400SC2平台,HP的HBA卡和LTO4磁带机。host系统是Windows Server 2019 Datacenter w/ GUI,虚拟机系统是刚装的Debian testing。

目的:将HBA卡挂载至虚拟机,以方便在GNU/Linux环境下使用LTO磁带设备。但理论上本文方法适用于所有支持的PCIE设备,包括显卡。之后也会测试其他类型的设备,测试结果更新在动态。


首先在host系统中,按下Win + X -> M打开设备管理器,找到要挂载的PCIE设备。

找到要挂载的PCIE设备

先点击上方工具栏的向下的白色箭头(禁用设备),将目标设备从host上禁用

禁用目标设备

确认禁用后,我们发现接在HBA卡上的"磁带驱动器"也一并消失了,说明操作成功。同时设备图标上显示向下箭头,工具栏对应位置图标变为向上的绿色箭头(启用设备)。

禁用操作成功

接下来我们双击打开目标设备的属性对话框,定位到"详细信息"选项卡,选择属性"位置路径"以查看其内容。

查询目标设备的位置路径

复制以"PCIEROOT"开头的一项备用。

复制位置路径

接下来打开Hyper-V管理器,打开目标虚拟机的设置。将"自动停止操作"由默认的"保存"(保存虚拟机状态)改为"关闭"(关闭来宾操作系统),当然你非要改成"关闭电源"(强行关闭虚拟机)应该也可以,就是。。

修改目标虚拟机的设置

接下来以管理员身份打开PowerShell,执行两条cmdlet

Dismount-VMHostAssignableDevice -LocationPath "{目标设备的位置路径}" -Force

Add-VMAssignableDevice -LocationPath "{目标设备的位置路径}" -VMName "{目标虚拟机名}"

执行cmdlet,将目标设备挂载到虚拟机

注意不要漏掉参数的半角双引号,因为`#`在PowerShell中代表注释。执行过程中应该没有任何输出,“没有消息就是好消息”。

这两条cmdlet的作用可从字面意思得知:将目标设备从host上强制卸载,然后挂载在指定虚拟机上。PowerShell的cmdlet设计上真的很不错,有RESTful API内味了。(就是命令太长对手动输入不友好。。

接下来回到Hyper-V管理器,启动目标虚拟机。然后可以ssh上去检查一下。

ssh登录目标虚拟机,检查挂载效果

可以看到HBA卡、磁带机、磁带均被正确识别。


接下来是将设备挂载回host的步骤。

关闭目标虚拟机。以管理员身份打开PowerShell,执行两条cmdlet

Remove-VMAssignableDevice -LocationPath "{目标设备的位置路径}" -VMName "{目标虚拟机名}"

Mount-VMHostAssignableDevice -LocationPath "{目标设备的位置路径}"

执行cmdlet,将目标设备挂载到host

作用不言而喻:将目标设备从指定虚拟机上卸载,然后挂载在host上。

接下来回到设备管理器,启用目标设备即可。


Hyper-V PCIE设备直通教程的评论 (共 条)

分享到微博请遵守国家法律