掌桥专利:专业的专利平台
掌桥专利
首页

一种USB透传方法及装置

文献发布时间:2023-06-19 10:27:30


一种USB透传方法及装置

技术领域

本发明涉及透传技术领域,特别涉及一种USB透传方法及装置。

背景技术

USB透传指把物理的USB设备透传给虚拟机使用,主要用于硬件USB闪存设备与虚拟机直接进行数据交换,及将硬件加密狗透传给虚拟机使用。

CloudStack作为一个流行的云平台开源框架,USB透传仅支持XenServer和VMware虚拟化平台,而不支持KVM虚拟化平台。而KVM作为一个优秀的开源虚拟化平台,越来越受用户青睐。市场上有针对KVM透传USB给虚拟机的方案,但基于CloudStack云平台,KVM却不能透传USB给虚拟机使用。

发明内容

本说明书实施例提供了一种USB透传方法及装置。

本说明书实施例提供的一种USB透传方法,包括:添加物理机,并设置定时任务对所述物理机的USB信息进行收集;基于虚拟机页面,设置USB设备管理页面;基于所述USB设备管理页面,为虚拟机加载USB设备,并在为所述虚拟机选择相应的USB设备后,将被选择的USB设备透传给所述虚拟机;启动所述虚拟机,安装与所述被选择的USB设备相匹配的USB驱动。

本说明书实施例提供的一种USB透传装置,包括:USB信息定时收集模块,用于在添加物理机后,基于设置的定时任务对所述物理机的USB信息进行收集;USB设备管理页面设置模块,用于基于虚拟机页面设置USB设备管理页面;透传模块,用于基于所述USB设备管理页面,为虚拟机加载USB设备,并在为所述虚拟机选择相应的USB设备后,将被选择的USB设备透传给所述虚拟机;虚拟机启动模块,用于启动所述虚拟机;USB驱动安装模块,用于安装与所述被选择的USB设备相匹配的USB驱动。

本发明实施例可基于CloudStack云平台结合KVM虚拟化平台实现USB透传,能解决许多使用CloudStack云平台和KVM虚拟化平台的用户需要将硬件USB闪存设备与虚拟机直接进行数据交换,及将硬件加密狗透传给虚拟机使用的需求,此外本发明实施例同时解决了USB3.0透传问题及鼠标漂移问题。

附图说明

图1为本说明书一些实施例的USB透传方法的流程图。

图2为本说明书一些实施例的USB透传装置的组成图。

具体实施方式

为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。

如图1所示,本说明书一些实施例中提供了一种USB透传方法,包括添加物理机,并设置定时任务对所述物理机的USB信息进行收集;基于虚拟机页面,设置USB设备管理页面;基于所述USB设备管理页面,为虚拟机加载USB设备,并在为所述虚拟机选择相应的USB设备后,将被选择的USB设备透传给所述虚拟机;启动所述虚拟机,安装与所述被选择的USB设备相匹配的USB驱动,进而虚拟机就可以使用被选择的USB设备了,由此满足了用户对于硬件USB设备与虚拟机直接进行数据交换,以及将硬件加密狗透传给虚拟机使用的场景需求。

进一步地,在本说明书一些实施例中,所述对所述物理机的USB信息进行收集的步骤,具体为,设置定时任务;当所述定时任务启动时,调用命令收集所述物理机的所有的USB设备信息并进行过滤处理;将过滤处理后的USB设备信息保存到数据库。具体而言,可以包括下述步骤及对应的命令实现:

第一步,新增定时任务,对应命令如下:

updateHostDeviceStats(hosts)

第二步,调用命令收集物理机的所有USB设备信息,并使用算法过滤处理有用的USB设备,对应命令如下:

_resourceMgr.getHostDeviceStatistics(host.getId()

execShell("lsusb",Device.Type.USB)

第三步,将收集的USB设备信息保存到数据库,对应命令如下:

_deviceDao.persist(deviceVo)。

进一步地,在本说明书一些实施例中,所述将被选择的USB设备透传给所述虚拟机的步骤,具体为,基于为所述虚拟机设置的附加设备应用程序接口和所述虚拟机的关联配置文件,将所述虚拟机和所述被选择的USB设备进行关联。更进一步地,在本说明书一些实施例中,所述虚拟机的关联配置文件包括下述参数的一种或任意组合:设备模式、设备类型、厂商id、设备id、设备地址,所述虚拟机的关联配置文件还设置有驱动类型为nec-xhci和piix3-uhci的USB驱动参数。具体而言,在一个具体实施例中,可以为与所选择的USB设备关联的虚拟机配置文件增加如下的配置参数:设备模式、设备类型、厂商id、设备id和设备地址,并可以通过如下的方式来增加设置设备模式、设备类型、厂商id、设备id和设备地址等配置参数:

devicesBuilder.append("\n");

devicesBuilder.append("\n");

devicesBuilder.append("\n");

devicesBuilder.append("\n");

devicesBuilder.append("

");

devicesBuilder.append("\n");

devicesBuilder.append("

");

devicesBuilder.append("\n");

此外,可以为和USB设备关联的虚拟机配置文件增加设置如下USB驱动参数,用于解决USB3.0透传问题及鼠标漂移问题,USB驱动参数如下所示:

final LibvirtVMDef.ControllerDef usbController=newLibvirtVMDef.ControllerDef("usb","nec-xhci");

devices.addDevice(usbController);

controllerBuilder.append("

model='piix3-uhci'>\n");

controllerBuilder.append("\n");

controllerBuilder.append("\n");

controllerBuilder.append("

model='nec-xhci'>\n");

controllerBuilder.append("\n");

controllerBuilder.append("\n");

其中,驱动类型nec-xhci可以用于解决USB3.0透传问题,驱动类型piix3-uhci可以用于解决鼠标漂移问题。

进一步地,在本说明书的一些实施例中,当所述虚拟机不需要使用USB设备时,基于所述USB设备管理页面将与所述虚拟机相关联的USB设备进行卸载。

更进一步地,在本说明书的一些实施例中,所述将与所述虚拟机相关联的USB设备进行卸载的步骤,具体为,基于为所述虚拟机设置的解除附加设备应用程序接口,删除所述虚拟机与已关联的USB设备之间的关联。

结合图2,本发明实施例还提供了一种USB透传装置,包括,USB信息定时收集模块,用于在添加物理机后,基于设置的定时任务对所述物理机的USB信息进行收集;USB设备管理页面设置模块,用于基于虚拟机页面设置USB设备管理页面;透传模块,用于基于所述USB设备管理页面,为虚拟机加载USB设备,并在为所述虚拟机选择相应的USB设备后,将被选择的USB设备透传给所述虚拟机;虚拟机启动模块,用于启动所述虚拟机;USB驱动安装模块,用于安装与所述被选择的USB设备相匹配的USB驱动。

在本说明书一些实施例中,所述USB信息定时收集模块,具体用于基于设置的定时任务,当所述定时任务启动时,调用命令收集所述物理机的所有的USB设备信息并进行过滤处理;并将过滤处理后的USB设备信息保存到数据库。

在本说明书一些实施例中,所述透传模块,具体用于基于为所述虚拟机设置的附加设备应用程序接口和所述虚拟机的关联配置文件,将所述虚拟机和所述被选择的USB设备进行关联,所述虚拟机的关联配置文件包括下述参数的一种或任意组合:设备模式、设备类型、厂商id、设备id、设备地址,所述虚拟机的关联配置文件还设置有驱动类型为nec-xhci和piix3-uhci的USB驱动参数。

在本说明书一些实施例中还提供了一种电子设备和计算机可读存储介质,电子设备包括存储器,用于存储计算机软件程序;处理器,用于运行所述计算机软件程序时实现所述USB透传方法的步骤。计算机可读存储介质存储有计算机软件程序,所述计算机软件程序被运行时实现USB透传方法的步骤。

综上,本发明实施例解决了CloudStack云平台结合KVM虚拟化平台不能透传USB设备给虚拟机使用的问题以及解决了USB3.0透传问题及鼠标漂移问题,便于在CloudStack云平台和KVM虚拟化平台上将硬件USB设备与虚拟机直接进行数据交换,满足了使用CloudStack云平台和KVM虚拟化平台的用户对于硬件USB设备与虚拟机直接进行数据交换,以及将硬件加密狗透传给虚拟机使用的场景需求。

虽然上文描述的过程流程包括以特定顺序出现的多个操作,但是,应当清楚了解,这些过程可以包括更多或更少的操作,这些操作可以顺序执行或并行执行(例如使用并行处理器或多线程环境)。本发明是参照根据本发明实施例的方法的流程图和/或方框图来描述的。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于方法实施例而言,由于其基本相似于装置实施例,所以描述的比较简单,相关之处参见装置实施例的部分说明即可。以上仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

相关技术
  • 一种用于远程数据透传的透传云系统及其透传方法
  • 一种USB透传方法及装置
技术分类

06120112554224