由于意外更新了装有 Windows Server 2008 SP2 的 VM,HASP USB 密钥不再被识别。密钥在我的笔记本电脑上可用,所以看起来没问题。我有一个基于 XenServer 6.5 构建的 VM 池。Windows Server 位于其中一个节点上。因此,我需要为特定 VM 上的特定 USB 端口设置直通。由于 HASP 密钥不是存储设备,我不确定此处描述的方法是否真的有效,而且 Xen 的版本有点不同:
https://discussions.citrix.com/topic/351605-xenserver-62-passtrough-from-usb-to-windows-7-vm/
此外,lspci | grep USB
在 XenServer 命令行中输入时,无法获得该设备。如何列出所有虚拟机 USB 端口(而不仅仅是安装 Xen 的端口)连接的设备?基本上,问题是,如何使 HASP 密钥对所述虚拟机可见?
答案1
我的客户大多使用 USB over IP 设备来满足这种需求。例如;https://www.digi.com/products/usb-and-serial-connectivity/usb-over-ip-hubs/anywhereusb
它适用于加密狗。如果您有多个主机,它尤其有用,因为即使在 HA 或负载平衡模式下,VM 也始终能够读取加密狗。
答案2
感谢您的提议。我按照此指南成功解决了该问题 https://medium.com/@alexander.bazhenov/%D0%BF%D1%80%D0%BE%D0%B1%D1%80%D0%BE%D1%81-usb-%D1%83%D1%81%D1%82%D1%80%D0%BE%D0%B9%D1%81%D1%82%D0%B2-%D0%B2-xenserver-50a9b4e8a80a
基本上,您可以在XenServer上按照以下命令操作:
lspci | grep USB
您将获得一个 USB 控制器及其 ID 的列表,然后00:1d.0
您可以通过以下方式检查哪些控制器用于加密狗:
lsusb
请注意,您可能需要安装 USB 实用程序,方法如下:
yum install --enablerepo=base usbutils
之后列出虚拟机,其中 test 是机器的名称
xe vm-list name-label=test
这将向您显示机器的 uuid。然后使用所有信息将其传递
xe vm-param-set other-config:pci=0/000:00:1d.0 uuid=cd9c4255-d28a-c086–113c-c1716293449d
就这样。您可以通过以下方式检查是否成功
xe vm-param-list uuid=cd9c4255-d28a-c086–113c-c1716293449d | grep other-config