MENU 导航菜单

采用PCIE Pass Through解决银行USBKey兼容问题

奇正资讯 > VMware资讯 更新时间:2023/10/26

 最近我的一个客户就不断抱怨其一个业务需要使用银行的USBKey,采用的方式是最常见的方式,就是USB穿透方式(USB Pass Through),首先需要esxi主机可以识别这个设备,然后再将这个设备配置给对应的虚拟机,操作也不麻烦,先在主机上插入USB设备,然后在存储设备进行扫描识别,虚拟机需要配置好USB控制器,最后将这个设备添加给虚拟机,这时USB设备和虚拟机间是通过软件(Arbitrator)进行连接的,所以带来的好处是支持vMotion,但也存在兼容性的问题,原厂的KB就明确指出:

https://kb.vmware.com/s/article/1021345?lang=zh_CN

image.png

       这里就已经明确说明这五类设备是不支持的,而银行USBKey大多都是USB CCID  (Integrated Circuits Cards Interface Device),所以不被USB穿透支持很容易理解。

        很快我就想到,既然这种通过软件的将主机的USB设备连接到虚拟机的方式,那么就可以考虑通过硬件的连接方式来连接,就是常说的PCIE Passthrough, 利用Intel Directed I/O可以将USB控制器的PCIE插槽分配给虚拟机,这样就可以实现虚拟机的硬连接USB控制器,可以避开上述软连接的局限。

        我首先想到的是在我的HP Z440工作站上进行测试,我发现主板是是有两个USB控制器,也可以配置直通

image.png

但是测试发现虽然虚拟机可以识别USB控制器,但无法识别插入的USB设备,我试了很长时间,也不得其解,后来用google查询,发现原因是主板上的USB控制器上往往已经连接了一些esxi使用的设备,比如键,盘鼠标和光驱等,所以存在问题,这种情况下,应该为服务器配置独立的USB扩展卡,也就是USB控制器。

        于是我查询了不少资料,发现这个扩展卡价格不到百元,大部分是3个厂商,NEC, Asmedia(祥碩), VIA,NEC的瑞萨历史最久,而且在很多OS中是免驱动的,所以我就下单买了个相对便宜的双口的:

image.png

   Z440上刚好有个PCIE X1是空的,esxi的版本是7.0 u3n,这样具备了测试条件,估计朋友们也会遇到这样的情形,下面我说详细些。

1.需要在服务的BIOS中打开Intel Directed-IO,这个功能也常常简称为intel VT-d,这个是先决条件。

2.独立的USB控制器设置为pass through 模式,在我的环境中

image.pngimage.png


3.下面就是将这个直通的USB控制器分配给虚拟机,我的案例用了一个windows 2019,这个是我客户的环境

image.png

  在更早的esxi版本中,都要求将虚拟机将设置内存的100%预留,否则无法开机,在我的测试环境中并不需要这样配置,虚拟机就可以正常开机,我还没有确实是否是esxi 7.0就没有这样的要求。

4.虚拟开机后,我的环境中,windows 2019无需任何配置,就可以识别这个USB控制器

image.png

插入一个U盘,可以马上轻松识别

image.png

 为了模拟真实的场景,我找出尘封已久的工行U盾

image.png

用工行的网银助手安装我所有的软件后,就可以正常使用了

image.png


  只是证书已经过期,密码好像已经记不得了!

        当然采用这种方式也是有代价的,就是虚拟机被绑定在这台服务器上,无法迁移,不过还好,困扰多时的客户接受这个方案。



下一篇:为啥vMotion有时候那么难 上一篇:VMware 创新技术赋能客户多云之旅