CN107943560A - 一种通用串行总线设备的挂载方法及挂载装置 - Google Patents
一种通用串行总线设备的挂载方法及挂载装置 Download PDFInfo
- Publication number
- CN107943560A CN107943560A CN201711209097.7A CN201711209097A CN107943560A CN 107943560 A CN107943560 A CN 107943560A CN 201711209097 A CN201711209097 A CN 201711209097A CN 107943560 A CN107943560 A CN 107943560A
- Authority
- CN
- China
- Prior art keywords
- usb device
- carry
- virtual machine
- bags
- target
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
Abstract
本发明实施例公开了一种通用串行总线设备的挂载方法及挂载装置,包括:第一物理机获取第一挂载指令;根据第一挂载指令获取与目标USB设备对应的互联网协议IP包:其中,IP包是用于实现目标USB设备挂载的驱动包封装后的数据包;根据获得的第一挂载指令和IP包在第一虚拟机上挂载目标USB设备。从本发明实施例可见,由于IP包是用于实现目标USB设备挂载的驱动包封装后的数据包,因此,当第一物理机中的虚拟机需要挂载目标USB设备时,第一物理机获取与目标USB设备对应的IP包,进而根据获得的IP包就可以在自身的虚拟机上挂载目标USB设备,从而极大程度地提高了虚拟机挂载USB设备的效率。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种通用串行总线(Universal Serial Bus,USB)设备的挂载方法及挂载装置。
背景技术
随着云计算时代的来临,虚拟化技术越来越受到人们的重视,虚拟机的应用不仅能提高物理资源的利用率,还便于维护和管理。在虚拟机实际的应用中,往往需要挂载USB设备。
相关技术中,当虚拟机将要挂载USB设备时,虚拟机所在的物理机会将USB总线映射给虚拟机,以使得虚拟机根据所映射的USB总线实现USB设备的挂载。
然而,由于USB总线的映射过程较为复杂,映射过程所耗费的时间较长,因此导致虚拟机挂载USB设备的效率低下。
发明内容
为了解决上述技术问题,本发明提供一种USB设备的挂载方法及挂载装置,能够有效提高虚拟机挂载USB设备的效率。
为了达到本发明目的,本发明提供了一种USB设备的挂载方法,包括:
第一物理机获取第一挂载指令;其中,所述第一挂载指令用于指示将属于所述第一物理机的目标通用串行总线USB设备挂载于所述第一物理机的第一虚拟机上;
根据所述第一挂载指令获取与目标USB设备对应的互联网协议IP包;其中,所述与目标USB设备对应的IP包是用于实现所述目标USB设备挂载的驱动包封装后的数据包;
根据获得的第一挂载指令和IP包在所述第一虚拟机上挂载所述目标USB设备。
所述第一物理机获取第一挂载指令之前,还包括:
所述第一物理机识别插入自身的所述目标USB设备,并获取用于实现所述目标USB设备挂载的驱动包;
对获得的驱动包进行封装,获得所述与目标USB设备对应的IP包。
所述根据获得的第一挂载指令和IP包在第一虚拟机上挂载目标USB设备之后,还包括:
获取第二挂载指令;其中,所述第二挂载指令用于指示将属于所述第一物理机的目标USB设备挂载于第二物理机的第二虚拟机上;
根据所述第二挂载指令解除所述目标USB设备在所述第一虚拟机上的挂载状态;
将获得的与目标USB设备对应的IP包发送给所述第二物理机,以使得所述第二物理机根据接收到的IP包在所述第二虚拟机上挂载所述目标USB设备。
所述根据获得的第一挂载指令和IP包在第一虚拟机上挂载目标USB设备,包括:
根据所述第一挂载指令获取所述第一虚拟机;
对获得的IP包进行解封装,获得用于实现所述目标USB设备挂载的驱动包;
控制所述第一虚拟机运行获得的驱动包,以实现所述目标USB设备的挂载。
所述对获得的IP包进行解封装,获得用于实现目标USB设备挂载的驱动包,包括:
利用自身预先安装的USB后端驱动对获得的IP包进行解封装,获得用于实现所述目标USB设备挂载的驱动包;
所述控制第一虚拟机运行获得的驱动包,以实现目标USB设备的挂载,包括:
控制所述第一虚拟机利用所述第一迁移虚拟机预先安装的USB前端驱动运行获得的驱动包,以实现在所述第一虚拟机上挂载所述目标USB设备。
本发明还提供了一种USB设备的挂载方法,包括:
第二物理机获取第二挂载指令;其中,所述第二挂载指令用于指示将属于第一物理机的目标USB设备挂载于所述第二物理机的第二虚拟机上;
接收第一物理机发送的与目标USB设备对应的IP包;其中,所述与目标USB设备对应的IP包是用于实现所述目标USB设备挂载的驱动包封装后的数据包;
根据获得的第二挂载指令和IP包在所述第二虚拟机上挂载所述目标USB设备。
所述根据获得的第二挂载指令和IP包在第二虚拟机上挂载目标USB设备,包括:
根据获得的第二挂载指令获取所述第二虚拟机;
对接收到的IP包进行解封装,获得用于实现目标USB设备挂载的驱动包;
控制所述第二虚拟机运行获得的驱动包,以实现在所述第二虚拟机上挂载所述目标USB设备。
所述对接收到的IP包进行解封装,获得用于实现目标USB设备挂载的驱动包,包括:
利用自身预先安装的USB后端驱动对接收到的IP包进行解封装,获得用于实现目标USB设备挂载的驱动包;
所述控制所述第二虚拟机运行获得的驱动包,以实现在所述第二虚拟机上挂载所述目标USB设备,包括:
控制所述第二虚拟机利用所述第二虚拟机预先安装的USB前端驱动运行获得的驱动包,以实现在所述第二虚拟机上挂载所述目标USB设备。
本发明还提供了一种第一物理机,包括:
第一获取模块,用于获取第一挂载指令;其中,所述第一挂载指令用于指示将属于所述第一物理机的目标通用串行总线USB设备挂载于所述第一物理机的第一虚拟机上;
第二获取模块,用于根据所述第一挂载指令获取与目标USB设备对应的互联网协议IP包;其中,所述与目标USB设备对应的IP包是用于实现所述目标USB设备挂载的驱动包封装后的数据包;
第一处理模块,用于根据获得的第一挂载指令和IP包在所述第一虚拟机上挂载所述目标USB设备。
还包括:
第三获取模块,用于获取第二挂载指令;其中,所述第二挂载指令用于指示将属于所述第一物理机的目标USB设备挂载于第二物理机的第二虚拟机上;
解除模块,用于根据所述第二挂载指令解除所述目标USB设备在所述第一虚拟机上的挂载状态;
发送模块,用于将获得的与目标USB设备对应的IP包发送给所述第二物理机,以使得所述第二物理机根据接收到的IP包在所述第二虚拟机上挂载所述目标USB设备。
本发明还提供了一种第二物理机,包括:
第四获取模块,用于获取第二挂载指令;其中,所述第二挂载指令用于指示将属于第一物理机的目标USB设备挂载于所述第二物理机的第二虚拟机上;
接收模块,用于接收第一物理机发送的与目标USB设备对应的IP包;其中,所述与目标USB设备对应的IP包是用于实现所述目标USB设备挂载的驱动包封装后的数据包;
第二处理模块,用于根据获得的第二挂载指令和IP包在所述第二虚拟机上挂载所述目标USB设备。
与现有技术相比,本发明至少包括第一物理机获取第一挂载指令;其中,第一挂载指令用于指示将属于第一物理机的目标USB设备挂载于第一物理机的第一虚拟机上;根据第一挂载指令获取与目标USB设备对应的互联网协议(Internet Protocol,IP)包:其中,IP包是用于实现目标USB设备挂载的驱动包封装后的数据包;根据获得的第一挂载指令和IP包在第一虚拟机上挂载目标USB设备。从本发明提供的技术方案可见,由于IP包是用于实现目标USB设备挂载的驱动包封装后的数据包,因此当第一物理机中的虚拟机需要挂载目标USB设备时,第一物理机直接获取与目标USB设备对应的IP包,进而根据获得的IP包就可以在自身的虚拟机上挂载目标USB设备,从而极大程度地提高了虚拟机挂载USB设备的效率。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为本发明实施例提供的一种USB设备挂载方法的流程示意图;
图2为本发明实施例提供的另一种USB设备挂载方法的流程示意图;
图3为本发明实施例提供的又一种USB设备挂载方法的流程示意图;
图4为本发明实施例提供的一种将USB设备挂载于一个主机中的虚拟机的示意图;
图5为本发明实施例提供的一种将USB设备挂载于另一个主机中的虚拟机的示意图;
图6为本发明实施例提供的一种第一物理机的结构示意图;
图7为本发明实施例提供的另一种第一物理机的结构示意图;
图8为本发明实施例提供的一种第二物理机的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
本发明实施例提供一种USB设备的挂载方法,如图1所示,该方法包括:
步骤101、第一物理机获取第一挂载指令。
其中,第一挂载指令用于指示将属于第一物理机的目标USB设备挂载于第一物理机的第一虚拟机上的。
需要说明的是,第一物理机中的“第一”仅仅是为区分第二物理机起到标识作用,并不实际对物理机本身产生限制,第一虚拟机是属于第一物理机的虚拟机,其中的“第一”仅仅是为区分第二虚拟机起到标识作用,并不实际对虚拟机本身产生限制。
具体的,第一挂载指令可以是用户在云平台中输入的,然后由云平台发送给第一物理机以使得第一物理机获取的,还可以是通过其他方式获取的,本发明对此不作限制。
步骤102、根据第一挂载指令获取与目标USB设备对应的IP包。
其中,与目标USB设备对应的IP包是用于实现目标USB设备挂载的驱动包封装后的数据包。
需要说明的是,驱动包用于实现目标USB设备的挂载,IP包是封装驱动包后生成的数据包。
具体的,由于USB设备对应的IP包可能有多个,而第一挂载指令中包含有目标的USB设备,因此需要根据第一挂载指令获取目标USB设备所对应的IP包。举例来说,第一物理机中存在USB设备A、USB设备B和USB设备C,那么USB设备对应的IP包包括USB设备A对应的IP包、USB设备B对应的IP包和USB设备C对应的IP包,第一挂载指令用于指示将属于第一物理机的USB设备C挂载于第一物理机的第一虚拟机上,那么根据第一挂载指令可知目标USB设备是USB设备C,进而在USB设备对应的IP包中选择并获取USB设备C对应的IP包。
步骤103、根据获得的第一挂载指令和IP包在第一虚拟机上挂载目标USB设备。
具体的,步骤103可以通过步骤103a~103c实现:
步骤103a、根据第一挂载指令获取第一虚拟机。
具体的,由于第一挂载指令用于指示将属于第一物理机的目标USB设备挂载于第一物理机的第一虚拟机上,因此根据第一挂载指令可以获取所要挂载目标设备的虚拟机,即第一虚拟机。
步骤103b、对获得的IP包进行解封装,获得用于实现目标USB设备挂载的驱动包。
需要说明的是,由于IP包是用于实现目标USB设备挂载的驱动包封装后的数据包,因此对IP包解封装后获得的就是用于实现目标USB设备挂载的驱动包。
步骤103c、控制第一虚拟机运行获得的驱动包,以实现目标USB设备的挂载。
具体的,第一虚拟机是第一物理机中的虚拟机,因此第一物理机可以控制自身中的第一虚拟机进行任何有关虚拟机自身的操作。控制第一虚拟机运行获得的驱动包,使得第一虚拟机能够识别目标USB设备,而目标USB设备的成功识别就意味着实现了目标USB设备的挂载。
本发明实施例提供的USB设备的挂载方法,第一物理机获取第一挂载指令;其中,第一挂载指令用于指示将属于第一物理机的目标USB设备挂载于第一物理机的第一虚拟机上;根据第一挂载指令获取与目标USB设备对应的IP包:其中,IP包是用于实现目标USB设备挂载的驱动包封装后的数据包;根据获得的第一挂载指令和IP包在第一虚拟机上挂载目标USB设备。从本发明提供的技术方案可见,由于IP包是用于实现目标USB设备挂载的驱动包封装后的数据包,因此当第一物理机中的虚拟机需要挂载目标USB设备时,第一物理机直接获取与目标USB设备对应的IP包,进而根据获得的IP包就可以在自身的虚拟机上挂载目标USB设备,从而极大程度地提高了虚拟机挂载USB设备的效率。
本发明实施例提供另一种USB设备的挂载方法,如图2所示,该方法包括:
步骤201、第一物理机识别插入自身的目标USB设备,并获取用于实现目标USB设备挂载的驱动包。
具体的,用于实现目标USB设备挂载的驱动包存在于目标USB设备中,因此当目标USB设备插入第一物理机中,第一物理机在识别所插入的USB设备的过程中,就会检测并获取USB设备中用于实现挂载的驱动包。
步骤202、对获得的驱动包进行封装,获得与目标USB设备对应的IP包。
具体的,第一物理机中预先安装有USB后端驱动,利用USB后端驱动通过能够将USB驱动包封装成在IP网络中传输的IP数据包的USB over IP技术对获得的驱动包进行封装,从而获得USB设备对应的IP包,所获得的IP包是与与目标USB设备对应的IP包。
需要说明的是,获得了与目标USB设备对应的IP包后,将获得的与目标USB设备对应的IP包进行存储,以备后续步骤需要挂载目标USB设备时获取。
步骤203、获取第一挂载指令。
其中,第一挂载指令用于指示将属于第一物理机的目标USB设备挂载于第一物理机的第一虚拟机上。
步骤204、根据第一挂载指令获取与目标USB设备对应的IP包。
其中,与目标USB设备对应的IP包是用于实现目标USB设备挂载的驱动包封装后的数据包。
步骤205、根据第一挂载指令获取第一虚拟机。
步骤206、对获得的IP包进行解封装,获得用于实现目标USB设备挂载的驱动包。
具体的,该步骤可以通过利用自身预先安装的USB后端驱动对获得的IP包进行解封装,从而获得用于实现目标USB设备挂载的驱动包。
步骤207、控制第一虚拟机运行获得的驱动包,以实现目标USB设备的挂载。
具体的,该步骤可以通过控制第一虚拟机利用第一迁移虚拟机预先安装的USB前端驱动运行获得的驱动包,以实现在第一虚拟机上挂载目标USB设备。
本发明实施例提供的USB设备的挂载方法,第一物理机获取第一挂载指令;其中,第一挂载指令用于指示将属于第一物理机的目标USB设备挂载于第一物理机的第一虚拟机上;根据第一挂载指令获取与目标USB设备对应的IP包:其中,IP包是用于实现目标USB设备挂载的驱动包封装后的数据包;根据获得的第一挂载指令和IP包在第一虚拟机上挂载目标USB设备。从本发明提供的技术方案可见,由于IP包是用于实现目标USB设备挂载的驱动包封装后的数据包,因此当第一物理机中的虚拟机需要挂载目标USB设备时,第一物理机直接获取与目标USB设备对应的IP包,进而根据获得的IP包就可以在自身的虚拟机上挂载目标USB设备,从而极大程度地提高了虚拟机挂载USB设备的效率。
本发明实施例提供又一种USB设备的挂载方法,如图3所示,该方法包括:
步骤301、第一物理机识别插入自身的目标USB设备,并获取用于实现目标USB设备挂载的驱动包。
步骤302、第一物理机对获得的驱动包进行封装,获得与目标USB设备对应的IP包。
步骤303、第一物理机获取第一挂载指令。
其中,第一挂载指令用于指示将属于第一物理机的目标USB设备挂载于第一物理机的第一虚拟机上。
步骤304、第一物理机根据第一挂载指令获取与目标USB设备对应的IP包。
其中,IP包是用于实现目标USB设备挂载的驱动包封装后的数据包。
步骤305、第一物理机根据获得的第一挂载指令和IP包在第一虚拟机上挂载目标USB设备。
步骤306、第一物理机获取第二挂载指令。
其中,第二挂载指令用于指示将属于第一物理机的目标USB设备挂载于第二物理机的第二虚拟机上。
需要说明的是,第一物理机与第二物理机不同,第一虚拟机与第二虚拟机可能相同,也可能不同。
具体的,如果挂载有目标设备的第一虚拟机迁移至第二物理中,而第二挂载指令用于指示将属于第一物理机的目标USB设备挂载于第二物理机中新迁移的第二虚拟机(即第一虚拟机)上时,第一虚拟机和第二虚拟机就是同一个虚拟机,此时属于挂载有USB设备的虚拟机的迁移,即将第一物理机上挂载有USB设备的虚拟机迁移至第二物理机上。现有技术中,当要将第一物理机上挂载有USB设备的虚拟机迁移至第二物理机上时,首先需要解除USB设备在虚拟机上的挂载状态,然后在第一物理机上将USB设备弹出,接着将虚拟机迁移至新的物理机(虚拟机的迁移属于现有技术,在此不再赘述),再接着将USB设备插入第二物理机,由第二物理机重新将USB总线映射给虚拟机,以使得虚拟机实现USB设备的挂载。由此可以看出,现有技术在将第一物理机上挂载有USB设备的虚拟机迁移至第二物理机上的过程十分繁琐。
步骤307、第一物理机根据第二挂载指令解除目标USB设备在第一虚拟机上的挂载状态。
具体的,所解除的只是USB设备挂载在第一虚拟机上的挂载状态,而并没有解除USB设备挂载在第一物理机上的挂载状态,也就是说,USB设备不再挂载在第一虚拟机上,但仍然挂载在第一物理机上。
步骤308、第一物理机将获得的与目标USB设备对应的IP包发送给第二物理机。
具体的,第一物理机可以通过有线传输或无线传输将获得的与目标USB设备对应的IP包发送给第二物理机,其中,有线传输可以是有线网络,无线传输可以是无线网络、蓝牙等。
步骤309、第二物理机获取第二挂载指令。
具体的,由于第二挂载指令涉及第一物理机和与第一物理机不同的第二物理机,因此,第二挂载指令可以是用户在云台中输入的,第一物理机和第二物理机同时获取的。
步骤310、第二物理机接收第一物理机发送的与目标USB设备对应的IP包。
步骤311、第二物理机根据获得的第二挂载指令和IP包在第二虚拟机上挂载目标USB设备。
具体的,步骤311可以通过步骤311a~311c实现:
步骤311a、根据获得的第二挂载指令获取第二虚拟机。
步骤311b、对接收到的IP包进行解封装,获得用于实现目标USB设备挂载的驱动包。
具体的,该步骤可以通过利用自身预先安装的USB后端驱动对接收到的IP包进行解封装,从而获得用于实现目标USB设备挂载的驱动包。
步骤311c、控制第二虚拟机运行获得的驱动包,以实现在第二虚拟机上挂载目标USB设备。
具体的,该步骤可以通过控制第二虚拟机利用第二虚拟机预先安装的USB前端驱动运行获得的驱动包,以实现在第二虚拟机上挂载目标USB设备。
本发明实施例提供的USB设备的挂载方法,第一物理机获取第二挂载指令并根据第二挂载指令解除目标USB设备在第一虚拟机上的挂载状态,然后将获得的与目标USB设备对应的IP包发送给第二物理机;第二物理机根据获得的第二挂载指令和IP包在第二虚拟机上挂载目标USB设备。从本发明提供的技术方案可见,由于IP包是用于实现目标USB设备挂载的驱动包封装后的数据包,因此当第二物理机中的虚拟机需要挂载目标属于第一物理机USB设备时,第一物理机直接将获得的与目标USB设备对应的IP包发送给第二物理机,使得第二物理机可以根据获得的IP包就可以对自身的虚拟机进行USB设备的挂载,从而极大程度地提高了虚拟机挂载USB设备的效率。
下面提供一个具体的应用场景:先将USB设备挂载于主机1的虚拟机1中,然后在虚拟机1迁移至主机2后,再将USB设备挂载于主机2的虚拟机1中,以说明本发明实施例提供的USB设备的挂载方法,包括以下步骤:
步骤1、在预先安装了USB控制服务端和USB后端驱动的主机1中运行预先安装了USB控制客户端和USB前端驱动的虚拟机1。
步骤2、待USB设备插入主机1后,主机1通过USB控制器和USB驱动识别该USB设备。
步骤3、主机1通过USB控制服务端获取该USB设备的驱动包,并将获得的驱动包通过USB后端驱动(利用USB over ip技术)封装为IP包并进行保存。
步骤4、当要将USB设备挂载于主机1的虚拟机1中时,主机1通过USB后端驱动将IP包解封装为驱动包,虚拟机1通过USB前端驱动运行驱动包,从而实现在主机1的虚拟机1中挂载USB设备。
需要说明的是,步骤1~步骤4的示意图可以如图4所示。
步骤5、当执行虚拟机1迁移动作时(虚拟机1从主机1迁移至主机2),USB控制客户端对虚拟机1执行USB弹出命令同时通过网络通知USB控制服务端需要迁移,USB控制服务端会将此USB设备标示为等目标状态;
步骤6、虚拟机1在线迁移;
步骤7、迁移完成后,主机1将IP包发送给预先安装了USB控制服务端和USB后端驱动的主机2。
步骤8、主机2通过USB后端驱动将IP包解封装为驱动包,虚拟机1通过USB前端驱动运行驱动包,从而实现在主机2的虚拟机1中挂载USB设备。
需要说明的是,步骤5~步骤8的示意图可以如图5所示。
本发明实施例还提供一种计算机可读存储介质,存储有计算机可执行指令,计算机可执行指令用于执行上述任一项USB设备的挂载方法。
本发明实施例还提供一种第一物理机,如图6所示,该第一物理机4包括:
第一获取模块41,用于获取第一挂载指令;其中,第一挂载指令用于指示将属于第一物理机的目标USB设备挂载于第一物理机的第一虚拟机上。
第二获取模块42,用于根据第一挂载指令获取与目标USB设备对应的IP包;其中,与目标USB设备对应的IP包是用于实现目标USB设备挂载的驱动包封装后的数据包。
第一处理模块43,用于根据获得的第一挂载指令和IP包在第一虚拟机上挂载目标USB设备。
进一步,在图6对应的实施例的基础上,本发明实施例提供另一种第一物理机,如图7所示,该第一物理机4还包括:
识别模块44,用于识别插入自身的目标USB设备,并获取用于实现目标USB设备挂载的驱动包。
封装模块45,用于对获得的驱动包进行封装,获得与目标USB设备对应的IP包。
第三获取模块46,用于获取第二挂载指令;其中,第二挂载指令用于指示将属于第一物理机的目标USB设备挂载于第二物理机的第二虚拟机上。
解除模块47,用于根据第二挂载指令解除目标USB设备在第一虚拟机上的挂载状态。
发送模块48,用于将获得的与目标USB设备对应的IP包发送给第二物理机,以使得第二物理机根据接收到的IP包在第二虚拟机上挂载目标USB设备。
进一步,第一处理模块43具体用于:
根据第一挂载指令获取第一虚拟机。
对获得的IP包进行解封装,获得用于实现目标USB设备挂载的驱动包。
控制第一虚拟机运行获得的驱动包,以实现目标USB设备的挂载。
进一步,第一处理模块43具体还用于:
利用自身预先安装的USB后端驱动对获得的IP包进行解封装,获得用于实现目标USB设备挂载的驱动包。
控制第一虚拟机利用第一迁移虚拟机预先安装的USB前端驱动运行获得的驱动包,以实现在第一虚拟机上挂载目标USB设备。
本发明实施例提供的第一物理机,获取第一挂载指令;其中,第一挂载指令用于指示将属于第一物理机的目标USB设备挂载于第一物理机的第一虚拟机上;根据第一挂载指令获取与目标USB设备对应的IP包:其中,IP包是用于实现目标USB设备挂载的驱动包封装后的数据包;根据获得的第一挂载指令和IP包在自身的第一虚拟机上挂载目标USB设备。从本发明提供的技术方案可见,由于IP包是用于实现目标USB设备挂载的驱动包封装后的数据包,因此当第一物理机中的虚拟机需要挂载目标USB设备时,第一物理机直接获取与目标USB设备对应的IP包,进而根据获得的IP包就可以在自身的虚拟机上挂载目标USB设备,从而极大程度地提高了虚拟机挂载USB设备的效率。
在实际应用中,所述第一获取模块41、第二获取模块42、第一处理模块43、识别模块44、封装模块45、第三获取模块46、解除模块47和发送模块48均可由位于第一物理机中的中央处理器(Central Processing Unit,CPU)、微处理器(Micro Processor Unit,MPU)、数字信号处理器(Digital Signal Processor,DSP)或现场可编程门阵列(FieldProgrammable Gate Array,FPGA)等实现。
本发明实施例还提供一种第二物理机,如图8所示,该第二物理机5包括:
第四获取模块51,用于获取第二挂载指令;其中,第二挂载指令用于指示将属于第一物理机的目标USB设备挂载于第二物理机的第二虚拟机上。
接收模块52,用于接收第一物理机发送的与目标USB设备对应的IP包;其中,与目标USB设备对应的IP包是用于实现目标USB设备挂载的驱动包封装后的数据包。
第二处理模块53,用于根据获得的第二挂载指令和IP包在第二虚拟机上挂载目标USB设备。
进一步,第二处理模块53具体用于:
根据获得的第二挂载指令获取第二虚拟机。
对接收到的IP包进行解封装,获得用于实现目标USB设备挂载的驱动包。
控制第二虚拟机运行获得的驱动包,以实现在第二虚拟机上挂载目标USB设备。
进一步,第二处理模块53具体还用于:
利用自身预先安装的USB后端驱动对接收到的IP包进行解封装,获得用于实现目标USB设备挂载的驱动包。
控制第二虚拟机利用第二虚拟机预先安装的USB前端驱动运行获得的驱动包,以实现在第二虚拟机上挂载目标USB设备。
本发明实施例提供的第一物理机,获取第二挂载指令;其中,第二挂载指令用于指示将属于第一物理机的目标USB设备挂载于第二物理机的第二虚拟机上;接收第一物理机发送的与目标USB设备对应的IP包;其中,与目标USB设备对应的IP包是用于实现目标USB设备挂载的驱动包封装后的数据包;根据获得的第二挂载指令和IP包在第二虚拟机上挂载目标USB设备。从本发明提供的技术方案可见,由于IP包是用于实现目标USB设备挂载的驱动包封装后的数据包,因此当第二物理机中的虚拟机需要挂载目标属于第一物理机USB设备时,第一物理机直接将获得的与目标USB设备对应的IP包发送给第二物理机,使得第二物理机可以根据获得的IP包就可以对自身的虚拟机进行USB设备的挂载,从而极大程度地提高了虚拟机挂载USB设备的效率。
在实际应用中,所述第四获取模块51、接收模块52、和第二处理模块53均可由位于第二物理机中的CPU、MPU、DSP或FPGA等实现。
本发明实施例还提供一种用于实现USB设备挂载的装置,包括第一存储器和第一处理器,其中,第一存储器中存储有以下可被第一处理器执行的指令:
获取第一挂载指令;其中,第一挂载指令用于指示将属于第一物理机的目标USB设备挂载于第一物理机的第一虚拟机上。
根据第一挂载指令获取与目标USB设备对应的IP包;其中,与目标USB设备对应的IP包是用于实现目标USB设备挂载的驱动包封装后的数据包。
根据获得的第一挂载指令和IP包在第一虚拟机上挂载目标USB设备。
进一步,第一存储器中还存储有以下可被第一处理器执行的指令:
识别插入自身的目标USB设备,并获取用于实现目标USB设备挂载的驱动包。
对获得的驱动包进行封装,获得与目标USB设备对应的IP包。
进一步,第一存储器中还存储有以下可被第一处理器执行的指令:
获取第二挂载指令;其中,第二挂载指令用于指示将属于第一物理机的目标USB设备挂载于第二物理机的第二虚拟机上。
根据第二挂载指令解除目标USB设备在第一虚拟机上的挂载状态。
将获得的与目标USB设备对应的IP包发送给第二物理机,以使得第二物理机根据接收到的IP包在第二虚拟机上挂载目标USB设备。
进一步,第一存储器中具体还存储有以下可被第一处理器执行的指令:
根据第一挂载指令获取第一虚拟机。
对获得的IP包进行解封装,获得用于实现目标USB设备挂载的驱动包。
控制第一虚拟机运行获得的驱动包,以实现目标USB设备的挂载。
进一步,第一存储器中具体还存储有以下可被第一处理器执行的指令:
利用自身预先安装的USB后端驱动对获得的IP包进行解封装,获得用于实现目标USB设备挂载的驱动包。
控制第一虚拟机利用第一迁移虚拟机预先安装的USB前端驱动运行获得的驱动包,以实现在第一虚拟机上挂载目标USB设备。
本发明实施例还提供一种用于实现USB设备挂载的装置,包括第二存储器和第二处理器,其中,第二存储器中存储有以下可被第二处理器执行的指令:
获取第二挂载指令;其中,第二挂载指令用于指示将属于第一物理机的目标USB设备挂载于第二物理机的第二虚拟机上。
接收第一物理机发送的与目标USB设备对应的IP包;其中,与目标USB设备对应的IP包是用于实现目标USB设备挂载的驱动包封装后的数据包。
根据获得的第二挂载指令和IP包在第二虚拟机上挂载目标USB设备。
进一步,第二存储器中具体存储有以下可被第二处理器执行的指令:
根据获得的第二挂载指令获取第二虚拟机。
对接收到的IP包进行解封装,获得用于实现目标USB设备挂载的驱动包。
控制第二虚拟机运行获得的驱动包,以实现在第二虚拟机上挂载目标USB设备。
进一步,第二存储器中还具体存储有以下可被第二处理器执行的指令:
利用自身预先安装的USB后端驱动对接收到的IP包进行解封装,获得用于实现目标USB设备挂载的驱动包。
控制第二虚拟机利用第二虚拟机预先安装的USB前端驱动运行获得的驱动包,以实现在第二虚拟机上挂载目标USB设备。
虽然本发明所揭露的实施方式如上,但的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (11)
1.一种通用串行总线设备的挂载方法,其特征在于,包括:
第一物理机获取第一挂载指令;其中,所述第一挂载指令用于指示将属于所述第一物理机的目标通用串行总线USB设备挂载于所述第一物理机的第一虚拟机上;
根据所述第一挂载指令获取与目标USB设备对应的互联网协议IP包;其中,所述与目标USB设备对应的IP包是用于实现所述目标USB设备挂载的驱动包封装后的数据包;
根据获得的第一挂载指令和IP包在所述第一虚拟机上挂载所述目标USB设备。
2.根据权利要求1所述的挂载方法,其特征在于,所述第一物理机获取第一挂载指令之前,还包括:
所述第一物理机识别插入自身的所述目标USB设备,并获取用于实现所述目标USB设备挂载的驱动包;
对获得的驱动包进行封装,获得所述与目标USB设备对应的IP包。
3.根据权利要求1或2所述的挂载方法,其特征在于,所述根据获得的第一挂载指令和IP包在第一虚拟机上挂载目标USB设备之后,还包括:
获取第二挂载指令;其中,所述第二挂载指令用于指示将属于所述第一物理机的目标USB设备挂载于第二物理机的第二虚拟机上;
根据所述第二挂载指令解除所述目标USB设备在所述第一虚拟机上的挂载状态;
将获得的与目标USB设备对应的IP包发送给所述第二物理机,以使得所述第二物理机根据接收到的IP包在所述第二虚拟机上挂载所述目标USB设备。
4.根据权利要求1所述的挂载方法,其特征在于,所述根据获得的第一挂载指令和IP包在第一虚拟机上挂载目标USB设备,包括:
根据所述第一挂载指令获取所述第一虚拟机;
对获得的IP包进行解封装,获得用于实现所述目标USB设备挂载的驱动包;
控制所述第一虚拟机运行获得的驱动包,以实现所述目标USB设备的挂载。
5.根据权利要求4所述的挂载方法,其特征在于,所述对获得的IP包进行解封装,获得用于实现目标USB设备挂载的驱动包,包括:
利用自身预先安装的USB后端驱动对获得的IP包进行解封装,获得用于实现所述目标USB设备挂载的驱动包;
所述控制第一虚拟机运行获得的驱动包,以实现目标USB设备的挂载,包括:
控制所述第一虚拟机利用所述第一迁移虚拟机预先安装的USB前端驱动运行获得的驱动包,以实现在所述第一虚拟机上挂载所述目标USB设备。
6.一种通用串行总线设备的挂载方法,其特征在于,包括:
第二物理机获取第二挂载指令;其中,所述第二挂载指令用于指示将属于第一物理机的目标USB设备挂载于所述第二物理机的第二虚拟机上;
接收第一物理机发送的与目标USB设备对应的IP包;其中,所述与目标USB设备对应的IP包是用于实现所述目标USB设备挂载的驱动包封装后的数据包;
根据获得的第二挂载指令和IP包在所述第二虚拟机上挂载所述目标USB设备。
7.根据权利要求6所述的挂载方法,其特征在于,所述根据获得的第二挂载指令和IP包在第二虚拟机上挂载目标USB设备,包括:
根据获得的第二挂载指令获取所述第二虚拟机;
对接收到的IP包进行解封装,获得用于实现目标USB设备挂载的驱动包;
控制所述第二虚拟机运行获得的驱动包,以实现在所述第二虚拟机上挂载所述目标USB设备。
8.根据权利要求7所述的挂载方法,其特征在于,所述对接收到的IP包进行解封装,获得用于实现目标USB设备挂载的驱动包,包括:
利用自身预先安装的USB后端驱动对接收到的IP包进行解封装,获得用于实现目标USB设备挂载的驱动包;
所述控制所述第二虚拟机运行获得的驱动包,以实现在所述第二虚拟机上挂载所述目标USB设备,包括:
控制所述第二虚拟机利用所述第二虚拟机预先安装的USB前端驱动运行获得的驱动包,以实现在所述第二虚拟机上挂载所述目标USB设备。
9.一种第一物理机,其特征在于,包括:
第一获取模块,用于获取第一挂载指令;其中,所述第一挂载指令用于指示将属于所述第一物理机的目标通用串行总线USB设备挂载于所述第一物理机的第一虚拟机上;
第二获取模块,用于根据所述第一挂载指令获取与目标USB设备对应的互联网协议IP包;其中,所述与目标USB设备对应的IP包是用于实现所述目标USB设备挂载的驱动包封装后的数据包;
第一处理模块,用于根据获得的第一挂载指令和IP包在所述第一虚拟机上挂载所述目标USB设备。
10.根据权利要求9所述的第一物理机,其特征在于,还包括:
第三获取模块,用于获取第二挂载指令;其中,所述第二挂载指令用于指示将属于所述第一物理机的目标USB设备挂载于第二物理机的第二虚拟机上;
解除模块,用于根据所述第二挂载指令解除所述目标USB设备在所述第一虚拟机上的挂载状态;
发送模块,用于将获得的与目标USB设备对应的IP包发送给所述第二物理机,以使得所述第二物理机根据接收到的IP包在所述第二虚拟机上挂载所述目标USB设备。
11.一种第二物理机,其特征在于,包括:
第四获取模块,用于获取第二挂载指令;其中,所述第二挂载指令用于指示将属于第一物理机的目标USB设备挂载于所述第二物理机的第二虚拟机上;
接收模块,用于接收第一物理机发送的与目标USB设备对应的IP包;其中,所述与目标USB设备对应的IP包是用于实现所述目标USB设备挂载的驱动包封装后的数据包;
第二处理模块,用于根据获得的第二挂载指令和IP包在所述第二虚拟机上挂载所述目标USB设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711209097.7A CN107943560A (zh) | 2017-11-27 | 2017-11-27 | 一种通用串行总线设备的挂载方法及挂载装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711209097.7A CN107943560A (zh) | 2017-11-27 | 2017-11-27 | 一种通用串行总线设备的挂载方法及挂载装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107943560A true CN107943560A (zh) | 2018-04-20 |
Family
ID=61949193
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711209097.7A Pending CN107943560A (zh) | 2017-11-27 | 2017-11-27 | 一种通用串行总线设备的挂载方法及挂载装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107943560A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109597775A (zh) * | 2018-12-11 | 2019-04-09 | 郑州云海信息技术有限公司 | 一种使用usb设备的方法及装置 |
CN112486579A (zh) * | 2020-11-20 | 2021-03-12 | 中国人寿保险股份有限公司 | 自助终端设备驱动调用标准化方法及相关设备 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101751274A (zh) * | 2008-12-18 | 2010-06-23 | 联想(北京)有限公司 | 一种虚拟机系统及其通用串行总线设备的卸载方法 |
JP2010250620A (ja) * | 2009-04-16 | 2010-11-04 | Fujitsu Ltd | プログラム、コンピュータ、仮想マシン制御方法及び仮想マシン制御システム |
US8387043B2 (en) * | 2008-02-07 | 2013-02-26 | Hitachi, Ltd. | USB port shared control method in a plurality of virtual machines |
CN104317759A (zh) * | 2014-10-15 | 2015-01-28 | 国云科技股份有限公司 | 一种支持虚拟机usb存储设备热插拔的方法 |
CN104657690A (zh) * | 2013-11-20 | 2015-05-27 | 中兴通讯股份有限公司 | 外部设备控制方法及装置 |
CN105183674A (zh) * | 2015-08-26 | 2015-12-23 | 深圳市深信服电子科技有限公司 | Usb虚拟化网络映射方法、装置以及usb集线器 |
CN106168903A (zh) * | 2016-06-30 | 2016-11-30 | 国云科技股份有限公司 | 一种管理usb和自动挂载到虚拟机的方法 |
CN106383796A (zh) * | 2016-10-18 | 2017-02-08 | 广州视睿电子科技有限公司 | 一种主机操作系统类型的识别方法及系统 |
CN107341039A (zh) * | 2016-04-28 | 2017-11-10 | 中兴通讯股份有限公司 | 一种虚拟环境下对usb设备进行管理的方法、主机和系统 |
-
2017
- 2017-11-27 CN CN201711209097.7A patent/CN107943560A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8387043B2 (en) * | 2008-02-07 | 2013-02-26 | Hitachi, Ltd. | USB port shared control method in a plurality of virtual machines |
CN101751274A (zh) * | 2008-12-18 | 2010-06-23 | 联想(北京)有限公司 | 一种虚拟机系统及其通用串行总线设备的卸载方法 |
JP2010250620A (ja) * | 2009-04-16 | 2010-11-04 | Fujitsu Ltd | プログラム、コンピュータ、仮想マシン制御方法及び仮想マシン制御システム |
CN104657690A (zh) * | 2013-11-20 | 2015-05-27 | 中兴通讯股份有限公司 | 外部设备控制方法及装置 |
CN104317759A (zh) * | 2014-10-15 | 2015-01-28 | 国云科技股份有限公司 | 一种支持虚拟机usb存储设备热插拔的方法 |
CN105183674A (zh) * | 2015-08-26 | 2015-12-23 | 深圳市深信服电子科技有限公司 | Usb虚拟化网络映射方法、装置以及usb集线器 |
CN107341039A (zh) * | 2016-04-28 | 2017-11-10 | 中兴通讯股份有限公司 | 一种虚拟环境下对usb设备进行管理的方法、主机和系统 |
CN106168903A (zh) * | 2016-06-30 | 2016-11-30 | 国云科技股份有限公司 | 一种管理usb和自动挂载到虚拟机的方法 |
CN106383796A (zh) * | 2016-10-18 | 2017-02-08 | 广州视睿电子科技有限公司 | 一种主机操作系统类型的识别方法及系统 |
Non-Patent Citations (2)
Title |
---|
孙玉伟等: "云桌面中USB设备重定向技术研究", 《理论研究》 * |
林继民等: "基于 Linux 嵌入式系统开发平台的构建及应用", 《现代电子技术》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109597775A (zh) * | 2018-12-11 | 2019-04-09 | 郑州云海信息技术有限公司 | 一种使用usb设备的方法及装置 |
CN112486579A (zh) * | 2020-11-20 | 2021-03-12 | 中国人寿保险股份有限公司 | 自助终端设备驱动调用标准化方法及相关设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105159753B (zh) | 加速器虚拟化的方法、装置及集中资源管理器 | |
CN111490949B (zh) | 用于转发数据包的方法、网卡、主机设备和计算机系统 | |
CN104486234B (zh) | 一种将业务交换机卸载到物理网卡的方法及服务器 | |
CN111656336B (zh) | 一种pcie发送、接收方法及装置、设备和系统 | |
CN104346229B (zh) | 一种用于嵌入式操作系统进程间通讯优化的处理方法 | |
CN108228309B (zh) | 基于虚拟机的数据包发送和接收方法及装置 | |
CN106605399A (zh) | 用于将虚拟服务端点卸载到网络接口卡的技术 | |
CN104424033B (zh) | 一种电子设备及数据处理方法 | |
JP2015514270A5 (zh) | ||
US11586575B2 (en) | System decoder for training accelerators | |
CN105162674A (zh) | 一种物理机访问虚拟网络的方法及网卡 | |
CN105335211B (zh) | 一种基于Xen虚拟化集群的FPGA加速器调度系统及方法 | |
CN107193499A (zh) | 一种容器数据卷的迁移方法及装置 | |
US10810024B2 (en) | Redirection method and apparatus, and system | |
US20230185732A1 (en) | Transparent encryption | |
CN104270362B (zh) | 请求处理方法和装置 | |
CN109639446A (zh) | Fpga设备、基于fpga设备的云系统 | |
CN107943560A (zh) | 一种通用串行总线设备的挂载方法及挂载装置 | |
CN105049464A (zh) | 用于加速网络虚拟化的技术 | |
CN103885840A (zh) | 一种基于AXI4总线的FCoE协议加速引擎IP核 | |
CN103501295B (zh) | 一种基于虚拟机迁移的远程访问方法和设备 | |
CN107770031A (zh) | 一种可扩展虚拟局域网vxlan报文处理方法和装置 | |
CN103092676A (zh) | 虚拟机集群的模拟输入输出方法、装置及系统 | |
CN105323236B (zh) | 用于经由多态安全代理来检查在线通信会话的系统、方法和装置 | |
CN106230632A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180420 |
|
RJ01 | Rejection of invention patent application after publication |