CN112596859A - 一种usb透传方法及装置 - Google Patents

一种usb透传方法及装置 Download PDF

Info

Publication number
CN112596859A
CN112596859A CN202011566078.1A CN202011566078A CN112596859A CN 112596859 A CN112596859 A CN 112596859A CN 202011566078 A CN202011566078 A CN 202011566078A CN 112596859 A CN112596859 A CN 112596859A
Authority
CN
China
Prior art keywords
usb
virtual machine
equipment
usb equipment
transparent transmission
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011566078.1A
Other languages
English (en)
Inventor
陈奕环
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Innovation Technology Co ltd
Original Assignee
Innovation Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Innovation Technology Co ltd filed Critical Innovation Technology Co ltd
Priority to CN202011566078.1A priority Critical patent/CN112596859A/zh
Publication of CN112596859A publication Critical patent/CN112596859A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0042Universal serial bus [USB]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Systems (AREA)

Abstract

本发明公开了一种USB透传方法及装置,该方法包括:添加物理机,并设置定时任务对所述物理机的USB信息进行收集;基于虚拟机页面,设置USB设备管理页面;基于所述USB设备管理页面,为虚拟机加载USB设备,并在为所述虚拟机选择相应的USB设备后,将被选择的USB设备透传给所述虚拟机;启动所述虚拟机,安装与所述被选择的USB设备相匹配的USB驱动。本发明解决了CloudStack云平台结合KVM虚拟化平台不能透传USB设备给虚拟机使用的问题以及解决了USB3.0透传问题及鼠标漂移问题,便于在CloudStack云平台和KVM虚拟化平台上将硬件USB设备与虚拟机直接进行数据交换。

Description

一种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("<hostdev mode='subsystem'type='usb'>\n");
devicesBuilder.append("<source startupPolicy='optional'>\n");
devicesBuilder.append("<vendor id='0x"+vid+"'/>\n");
devicesBuilder.append("<product id='0x"+pid+"'/>\n");
devicesBuilder.append("<address bus='"+bus+"'device='"+device+"'/>");
devicesBuilder.append("</source>\n");
devicesBuilder.append("<address type='usb'bus='1'/>");
devicesBuilder.append("</hostdev>\n");
此外,可以为和USB设备关联的虚拟机配置文件增加设置如下USB驱动参数,用于解决USB3.0透传问题及鼠标漂移问题,USB驱动参数如下所示:
final LibvirtVMDef.ControllerDef usbController=newLibvirtVMDef.ControllerDef("usb","nec-xhci");
devices.addDevice(usbController);
controllerBuilder.append("<controller type='"+_controllerType+"'index='0'
model='piix3-uhci'>\n");
controllerBuilder.append("<alias name='"+_controllerType+"'/>\n");
controllerBuilder.append("</controller>\n");
controllerBuilder.append("<controller type='"+_controllerType+"'index='1'
model='nec-xhci'>\n");
controllerBuilder.append("<alias name='"+_controllerType+"'/>\n");
controllerBuilder.append("</controller>\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设备与虚拟机直接进行数据交换,以及将硬件加密狗透传给虚拟机使用的场景需求。
虽然上文描述的过程流程包括以特定顺序出现的多个操作,但是,应当清楚了解,这些过程可以包括更多或更少的操作,这些操作可以顺序执行或并行执行(例如使用并行处理器或多线程环境)。本发明是参照根据本发明实施例的方法的流程图和/或方框图来描述的。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于方法实施例而言,由于其基本相似于装置实施例,所以描述的比较简单,相关之处参见装置实施例的部分说明即可。以上仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

Claims (11)

1.一种USB透传方法,其特征在于,所述方法包括:
添加物理机,并设置定时任务对所述物理机的USB信息进行收集;
基于虚拟机页面,设置USB设备管理页面;
基于所述USB设备管理页面,为虚拟机加载USB设备,并在为所述虚拟机选择相应的USB设备后,将被选择的USB设备透传给所述虚拟机;
启动所述虚拟机,安装与所述被选择的USB设备相匹配的USB驱动。
2.根据权利要求1所述的USB透传方法,其特征在于,
所述对所述物理机的USB信息进行收集的步骤,具体为,
设置定时任务;
当所述定时任务启动时,调用命令收集所述物理机的所有的USB设备信息并进行过滤处理;
将过滤处理后的USB设备信息保存到数据库。
3.根据权利要求1所述的USB透传方法,其特征在于,
所述将被选择的USB设备透传给所述虚拟机的步骤,具体为,
基于为所述虚拟机设置的附加设备应用程序接口和所述虚拟机的关联配置文件,将所述虚拟机和所述被选择的USB设备进行关联。
4.根据权利要求3所述的USB透传方法,其特征在于,
所述虚拟机的关联配置文件包括下述参数的一种或任意组合:设备模式、设备类型、厂商id、设备id、设备地址,所述虚拟机的关联配置文件还设置有驱动类型为nec-xhci和piix3-uhci的USB驱动参数。
5.根据权利要求1所述的USB透传方法,其特征在于,
当所述虚拟机不需要使用USB设备时,基于所述USB设备管理页面将与所述虚拟机相关联的USB设备进行卸载。
6.根据权利要求1所述的USB透传方法,其特征在于,
所述将与所述虚拟机相关联的USB设备进行卸载的步骤,具体为,
基于为所述虚拟机设置的解除附加设备应用程序接口,删除所述虚拟机与已关联的USB设备之间的关联。
7.一种USB透传装置,其特征在于,包括:
USB信息定时收集模块,用于在添加物理机后,基于设置的定时任务对所述物理机的USB信息进行收集;
USB设备管理页面设置模块,用于基于虚拟机页面设置USB设备管理页面;
透传模块,用于基于所述USB设备管理页面,为虚拟机加载USB设备,并在为所述虚拟机选择相应的USB设备后,将被选择的USB设备透传给所述虚拟机;
虚拟机启动模块,用于启动所述虚拟机;
USB驱动安装模块,用于安装与所述被选择的USB设备相匹配的USB驱动。
8.根据权利要求7所述的USB透传装置,其特征在于,
所述USB信息定时收集模块,具体用于基于设置的定时任务,当所述定时任务启动时,调用命令收集所述物理机的所有的USB设备信息并进行过滤处理;并将过滤处理后的USB设备信息保存到数据库。
9.根据权利要求7所述的USB透传装置,其特征在于,
所述透传模块,具体用于基于为所述虚拟机设置的附加设备应用程序接口和所述虚拟机的关联配置文件,将所述虚拟机和所述被选择的USB设备进行关联,所述虚拟机的关联配置文件包括下述参数的一种或任意组合:设备模式、设备类型、厂商id、设备id、设备地址,所述虚拟机的关联配置文件还设置有驱动类型为nec-xhci和piix3-uhci的USB驱动参数。
10.一种电子设备,其特征在于,包括
存储器,用于存储计算机软件程序;
处理器,用于运行所述计算机软件程序时实现根据权利要求1至6任一项所述USB透传方法的步骤。
11.一种计算机可读存储介质,其特征在于,
所述计算机可读存储介质上存储有计算机软件程序,所述计算机软件程序被运行时实现根据权利要求1至6任一项USB透传方法的步骤。
CN202011566078.1A 2020-12-25 2020-12-25 一种usb透传方法及装置 Pending CN112596859A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011566078.1A CN112596859A (zh) 2020-12-25 2020-12-25 一种usb透传方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011566078.1A CN112596859A (zh) 2020-12-25 2020-12-25 一种usb透传方法及装置

Publications (1)

Publication Number Publication Date
CN112596859A true CN112596859A (zh) 2021-04-02

Family

ID=75202576

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011566078.1A Pending CN112596859A (zh) 2020-12-25 2020-12-25 一种usb透传方法及装置

Country Status (1)

Country Link
CN (1) CN112596859A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113282376A (zh) * 2021-07-22 2021-08-20 北京关键科技股份有限公司 应用于云平台架构的UKey虚机穿透方法
CN114090186A (zh) * 2021-11-26 2022-02-25 中国科学院自动化研究所 基于Openstack平台管理PCIE设备的系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015084140A1 (en) * 2013-12-03 2015-06-11 Mimos Berhad A system and method for emulating multiple independent wireless client devices in the cloud
CN109918320A (zh) * 2019-03-13 2019-06-21 北京淳中科技股份有限公司 一种usb设备的控制方法、装置及kvm控制系统
CN110245000A (zh) * 2019-04-09 2019-09-17 长飞光纤光缆股份有限公司 一种在OpenStack中为KVM虚拟机配置USB设备的方法与装置
CN111209080A (zh) * 2019-12-30 2020-05-29 深圳创新科软件技术有限公司 一种图形处理器透传的方法
CN111857961A (zh) * 2020-07-28 2020-10-30 山东超越数控电子股份有限公司 一种显卡透传方法、虚拟桌面管理系统及计算机设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015084140A1 (en) * 2013-12-03 2015-06-11 Mimos Berhad A system and method for emulating multiple independent wireless client devices in the cloud
CN109918320A (zh) * 2019-03-13 2019-06-21 北京淳中科技股份有限公司 一种usb设备的控制方法、装置及kvm控制系统
CN110245000A (zh) * 2019-04-09 2019-09-17 长飞光纤光缆股份有限公司 一种在OpenStack中为KVM虚拟机配置USB设备的方法与装置
CN111209080A (zh) * 2019-12-30 2020-05-29 深圳创新科软件技术有限公司 一种图形处理器透传的方法
CN111857961A (zh) * 2020-07-28 2020-10-30 山东超越数控电子股份有限公司 一种显卡透传方法、虚拟桌面管理系统及计算机设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113282376A (zh) * 2021-07-22 2021-08-20 北京关键科技股份有限公司 应用于云平台架构的UKey虚机穿透方法
CN114090186A (zh) * 2021-11-26 2022-02-25 中国科学院自动化研究所 基于Openstack平台管理PCIE设备的系统

Similar Documents

Publication Publication Date Title
EP2840495B1 (en) Container-based processing method and apparatus
US9552168B2 (en) Virtual machine backup from storage snapshot
US9600369B2 (en) Operating system recovery method and apparatus, and terminal device
US10977062B2 (en) System for starting virtual machine using mirror image file stored in units of a distributed block storage system mapped to units of a logical volume
EP2905700B1 (en) Operating system recovery method, apparatus and terminal device
CN112596859A (zh) 一种usb透传方法及装置
CN108363552B (zh) 虚拟机磁盘空间回收方法和系统
CN107423301B (zh) 一种数据处理的方法、相关设备及存储系统
CN111209080A (zh) 一种图形处理器透传的方法
US11768719B2 (en) Selectively filtering applications from an application volume
CN104598170A (zh) 确定读写路径的方法和装置
CN105867962A (zh) 系统升级的方法和装置
JP6266008B2 (ja) 仮想マシン・イメージをコンピュータ・システムに適用する方法、情報処理システム、コンピュータ・プログラム
CN107329802B (zh) 一种虚拟机创建方法及电子设备
WO2014012361A1 (zh) 一种创建外部设备控制界面的方法及装置
CN103019847B (zh) 对虚拟机数据进行迁移的方法及系统
US11263082B2 (en) Data recovery of guest virtual machines
CN109271543B (zh) 缩略图的显示方法、装置、终端及计算机可读存储介质
CN113986471A (zh) 虚拟机镜像文件安全删除方法、装置、设备及存储介质
CN106155479A (zh) 锁屏应用设置方法及系统
CN107357674B (zh) 一种信息处理方法、设备和存储介质
US20080195734A1 (en) Method of using portable network-attached storage
CN103678047B (zh) 一种数据处理方法及电子设备
CN102163168A (zh) 计算机系统的恢复方法和装置
CN109670294B (zh) 移动终端多文件分类处理方法、移动终端及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination