CN104092747B - 虚拟化环境下usb动态连接方法及装置 - Google Patents
虚拟化环境下usb动态连接方法及装置 Download PDFInfo
- Publication number
- CN104092747B CN104092747B CN201410306560.XA CN201410306560A CN104092747B CN 104092747 B CN104092747 B CN 104092747B CN 201410306560 A CN201410306560 A CN 201410306560A CN 104092747 B CN104092747 B CN 104092747B
- Authority
- CN
- China
- Prior art keywords
- hypervisor
- usb
- address
- local
- usb device
- 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.)
- Active
Links
Landscapes
- Computer And Data Communications (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明提供一种虚拟化环境下USB动态连接方法及装置,应用于虚拟化网络中,所述虚拟化网络包括虚拟机VM、第一Hypervisor、第二Hypervisor以及USB设备,该方法包括:所述第一Hypervisor在接收到本地所述VM或所述USB设备发送的第一USB数据后,建立所述第一Hypervisor与第二Hypervisor之间的隧道连接;所述第一Hypervisor将所述第一USB数据通过已建立的所述隧道发送给所述第二Hypervisor;所述第一Hypervisor在接收到所述第二Hypervisor发送的第二USB数据后,将所述第二USB数据转发给所述VM或所述USB设备。本发明实现VM对远端物理服务器的USB设备访问,避免了资源浪费。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种虚拟化环境下USB动态连接方法及装置。
背景技术
虚拟化技术通过对物理资源和提供的服务进行抽象化,让资源使用者和系统管理者不关心对象的物理特征和服务边界的细节,从而降低资源使用和管理的复杂度,提高使用效率。同时,虚拟化的计算资源VM(Virtual Machine,虚拟机)可以在不同的物理服务器上迁移,极大增加了业务的灵活性和弹性。
通过专用的虚拟化软件Hypervisor(超级监督者)管理,一台物理服务器能虚拟出多台VM,如图1所示。VM访问USB(Universal Serial Bus,通用串行总线)时,可通过在Hypervisor上手动操作,实现本地物理服务器的USB挂接和卸载。但这种方案下,VM挂接USB后,不支持VM迁移,必须在VM上卸载USB后,VM才能迁移,迁移后的VM可以再次挂接本地物理服务器的USB,不能挂接原来的远端USB。
为了解决该问题,现有的一种解决方案是:通过专门设计的USB Server(通用串行总线服务器)接入到网络上,如图2所示,使得VM能够通过IP(Internet Protocol,互联网协议)地址来访问USB Server,并将USB Server作为共享资源在服务器集群中访问。
在这个技术方案中,每个VM需要安装USB Client(通用串行总线客户端)软件,VM通过IP访问挂接的USB Server,形成USB共享池。USB Server将自己的USB数据封装在IP隧道中送达VM,VM读取IP隧道中的USB数据,当VM在不同物理服务器之间迁移时,可以携带挂接的USB同步迁移。
专用USB Server的使用,虽然解决了USB随VM迁移的问题,但是需要额外部署USB设备,既增加了采购成本,又增加了运维负担。当USB Server发生故障时使得依赖USB的业务中断,更换USB Server既造成备件成本上升,又造成业务长时间中断。同时,物理服务器上本地USB接口荒废,造成资源浪费。
发明内容
有鉴于此,本发明提供了一种虚拟化环境下USB动态连接方法,应用于虚拟化网络中,所述虚拟化网络包括虚拟机VM、第一Hypervisor、第二Hypervisor以及USB设备,该方法包括:
所述第一Hypervisor在接收到本地所述VM或所述USB设备发送的第一USB数据后,建立所述第一Hypervisor与第二Hypervisor之间的隧道连接;
所述第一Hypervisor将所述第一USB数据通过已建立的所述隧道发送给所述第二Hypervisor;
所述第一Hypervisor在接收到所述第二Hypervisor发送的第二USB数据后,将所述第二USB数据转发给所述VM或所述USB设备。
本发明还提供了一种虚拟化环境下USB动态连接装置,应用于虚拟化网络中的物理服务器上,所述虚拟化网络包括虚拟机VM、第一Hypervisor、第二Hypervisor以及USB设备,该装置包括:
隧道建立单元,用于在接收到本地所述VM或所述USB设备发送的第一USB数据后,建立所述第一Hypervisor与第二Hypervisor之间的隧道连接;
数据发送单元,用于将所述第一USB数据通过已建立的所述隧道发送给所述第二Hypervisor;
数据接收单元,用于在接收到所述第二Hypervisor发送的第二USB数据后,将所述第二USB数据转发给所述VM或所述USB设备。
本发明通过在Hypervisor上实现USB代理功能,统一处理VM和USB设备的数据交互,实现VM对远端物理服务器的USB设备访问,因而,通过本发明,不仅使虚拟化环境VM可以使用任意物理服务器上的USB外设,避免了资源浪费;而且当VM在物理服务器之间迁移,VM所挂接的USB依然保持连接关系,逻辑上实现同步迁移。
附图说明
图1是服务器虚拟化示意图。
图2是采用专用USB server进行USB动态连接示意图。
图3是本发明一种实施方式中USB动态连接装置的逻辑结构及其基础硬件环境的示意图。
图4是本发明一种实施方式中USB动态连接方法的流程图。
图5是本发明一种实施方式中服务器虚拟化USB模型示意图。
图6是本发明一种实施方式中隧道连接示意图。
具体实施方式
以下结合附图对本发明进行详细说明。
本发明提供一种虚拟化环境下USB动态连接装置,以下以软件在计算机中实现为例进行说明,但是本发明并不排除诸如硬件或者逻辑器件等其他实现方式。如图3所示,该装置运行的计算机硬件环境包括CPU、内存、非易失性存储器以及其他硬件。该装置作为计算机上一个逻辑层面的虚拟装置,其通过计算机上的CPU来运行。该装置包括隧道建立单元、数据发送单元以及数据接收单元。请参考图4,该装置的使用和运行过程包括以下步骤:
步骤101,隧道建立单元在接收到本地所述VM或所述USB设备发送的第一USB数据后,建立所述第一Hypervisor与第二Hypervisor之间的隧道连接;
步骤102,数据发送单元将所述第一USB数据通过已建立的所述隧道发送给所述第二Hypervisor;
步骤103,数据接收单元在接收到所述第二Hypervisor发送的第二USB数据后,将所述第二USB数据转发给所述VM或所述USB设备。
图5为本发明服务器虚拟化后的USB模型,该模型包括VM、Hypervisor以及USB设备,其中,每个VM上需要安装USB client,用户通过USB client的操作界面,对本地和远端的USB设备进行挂接和卸载;Hypervisor需具备USB Proxy功能,所有USB相关数据都由USBProxy统一处理并转发;USB设备是指物理服务器上的USB接口及驱动,为VM提供USB接入。
本发明通过在Hypervisor上实现USB代理功能,统一进行USB数据管理,实现VM对远端物理服务器的USB设备访问,其处理过程如下。
首先,用户需要在VM的USB client操作界面上进行USB挂接,该挂接过程通过手动输入远端服务器的Hypervisor(即USB设备对应的Hypervisor,以下简称USB Hypervisor)的IP地址,并建立本端VM对应Hypervisor(以下简称VM Hypervisor)与该USB Hypervisor的隧道连接,如图6所示。然后,USB Hypervisor回送其对应的所有USB设备状态,供用户选择其需要挂接的USB设备。其中,对具体USB设备的挂接,是通过将该挂接操作对应的USB数据发送给VM Hypervisor进行处理,VM Hypervisor将USB数据进行隧道封装后,通过已建立的隧道发送给USB Hypervisor。USB Hypervisor接收经隧道封装的USB数据报文后,对该报文进行解封装,从解封装后的USB数据中获取被访问的USB设备名称,将USB数据转发给该USB设备。
USB设备在接收到VM的挂接请求后,将回应的USB数据发送给USB Hypervisor,USBHypervisor从USB数据中获取VM Hypervisor的IP地址,建立USB Hypervisor与VMHypervisor的隧道连接,当然,这个隧道可能已经建立,若已建立,则直接将USB数据进行隧道封装,通过已建立的隧道发送给VM Hypervisor。VM Hypervisor接收经隧道封装的USB数据报文后,对该报文进行解封装,从解封装后的USB数据中获取VM的IP地址,根据该IP地址确定接收该USB数据的VM,将USB数据转发给VM。
在上述USB挂接过程中,每一个物理服务器的Hypervisor中都会生成对应的USB挂接关系表。在USB挂接关系表中保存了物理服务器中所有VM与USB设备的挂接关系。
VM Hypervisor的IP | VM IP | USB Hypervisor的IP | USB设备名称 |
230.3.3.20 | 192.168.1.8 | 210.1.1.3 | USB1 |
230.3.3.20 | 192.168.1.9 | 210.1.1.3 | USB2 |
230.3.3.20 | 192.168.1.14 | 220.2.2.4 | USB3 |
230.3.3.20 | 192.168.1.17 | 220.2.2.4 | USB4 |
210.1.1.3 | 192.168.2.8 | 230.3.3.20 | USB5 |
210.1.1.3 | 192.168.2.9 | 230.3.3.20 | USB6 |
…… | …… | …… | …… |
表1
表1为USB挂接关系表,表中数据为示例性数据。假设一台物理服务器虚拟出4台VM和2个USB设备,VM的IP地址分别为192.168.1.8、192.168.1.9、192.168.1.14以及192.168.1.17,VM Hypervisor的IP地址为230.3.3.20;2个USB设备分别为USB5和USB6,对应的USB Hypervisor的IP地址为230.3.3.20。当VM挂接USB设备时,VM Hypervisor除了为USB数据建立隧道进行转发外,还在本地保存了此次挂接的对应关系。例如,当IP地址为192.168.1.8的VM挂接远端服务器的USB1设备时,VM Hypervisor从VM发送的USB数据中获得USB设备名称(USB1)以及USB Hypervisor的IP地址(210.1.1.3),将上述信息添加到USB挂接表中,生成此次挂接的对应关系表项。同理,本地USB设备被其它物理服务器上VM挂接时,也会在本地保存挂接关系,如表中的USB5和USB6对应的挂接关系表项。以此类推,生成物理服务器中所有VM与USB设备的挂接关系。
在挂接操作完成后,即可实现VM与其挂接的USB设备间的数据交互。其数据交互过程与挂接过程基本相同,不同之处在于,VM与VM Hypervisor建立USB服务连接后,VM向VMHypervisor请求其要访问的USB设备对应的USB Hypervisor的IP地址,VM Hypervisor查询内部的USB挂接关系表,将对应的USB Hypervisor IP发送给VM。VM将该USB Hypervisor IP地址携带在USB数据中,发送给VM Hypervisor进行数据传输,数据传输过程与挂接时的数据传输过程相同。
USB设备向VM回送数据时,同样需要向USB Hypervisor请求VM对应的VMHypervisor的IP地址,USB Hypervisor查询内部的USB挂接关系表,将对应的VMHypervisor IP发送给USB设备。USB设备将该地址携带在USB数据中,发送给USBHypervisor进行数据传输,数据传输过程与挂接时的数据传输过程相同。
VM执行挂接操作时,既可以挂接远端服务器的USB设备,也可以挂接本地服务器的USB设备。表1为挂接远端USB设备的关系表项。对于本地USB设备的挂接与远端USB设备挂接基本相同,VM Hypervisor在接收到VM发送的USB数据后,判断USB数据中的USB HypervisorIP地址是否与VM Hypervisor IP地址相同,若相同,则说明VM访问的是本地USB设备,直接进行USB数据透传即可,并将该对应关系添加到USB挂接关系表中。在此过程中,由于不对外进行数据访问,因此无需建立隧道连接。在后续USB数据交互过程中,对于本地USB数据交互的处理方式相同。
由于VM可在不同的物理服务器上迁移,为了保证迁移过程不对USB数据传输造成影响,本发明通过对VM Hypervisor信息同步以及重新建立新的隧道连接,保证USB数据的正常传输。具体过程为:当用户执行VM迁移操作时,在VM要迁移的目的物理服务器中建立一个目的VM,该目的VM与源VM(迁移之前的VM)保持信息一致。在迁移过程中,目的VM暂不被激活。利用Hypervisor的同步功能,将源VM Hypervisor的USB挂接关系同步到目的VMHypervisor和USB Hypervisor中,即更新目的VM Hypervisor和USB Hypervisor中对应的USB挂接关系表项。由于VM迁移时VM Hypervisor IP地址发生了变化,因此,需重新为该VM与USB设备建立隧道连接,以便迁移成功后,VM与USB设备在新的隧道上进行数据交互。
在VM迁移过程中,为了保证USB数据的不间断,还需将源VM Hypervisor中关于USB设备的状态信息(例如,USB设备的是否在工作、USB数据传输进度等)拷贝到目的VMHypervisor中,以便目的VM激活后,根据上述信息继续后续USB数据的传输。
在完成迁移后,撤销源VM,激活目的VM,并删除源VM Hypervisor中的USB挂接关系表项,USB数据将通过新的隧道进行传输。
本发明通过在Hypervisor上实现USB代理功能,统一处理VM和USB设备的数据交互,实现VM对远端物理服务器的USB设备访问,避免了资源浪费。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (6)
1.一种虚拟化环境下USB动态连接方法,应用于虚拟化网络中,所述虚拟化网络包括虚拟机VM、第一Hypervisor、第二Hypervisor以及USB设备,其特征在于,该方法包括:
所述第一Hypervisor根据本地VM或USB设备发送的携带有所述第二Hypervisor侧USB设备的名称或VM的IP地址的地址请求,从本地匹配的USB挂接关系表项中获取所述第二Hypervisor的IP地址并发送给本地的VM或USB设备,所述USB挂接关系表项用于记录本地VM的IP地址、所述第一Hypervisor的IP地址、所述第二Hypervisor的IP地址、所述第二Hypervisor侧USB设备的名称的对应关系,或者,用于记录本地USB设备的名称、所述第一Hypervisor的IP地址、所述第二Hypervisor的IP地址、所述第二Hypervisor侧VM的IP地址的对应关系;
所述第一Hypervisor在接收到本地VM或USB设备发送的携带所述第二Hypervisor的IP地址的第一USB数据后,建立所述第一Hypervisor与第二Hypervisor之间的隧道连接;
所述第一Hypervisor将所述第一USB数据通过已建立的所述隧道发送给所述第二Hypervisor;
所述第一Hypervisor接收所述第二Hypervisor发送的携带本地VM的IP地址或USB设备的名称的第二USB数据并转发给本地VM或USB设备。
2.如权利要求1所述的方法,其特征在于:
若所述第一Hypervisor与所述第二Hypervisor的IP地址相同,则USB数据本地透传,无需建立隧道连接。
3.如权利要求1所述的方法,其特征在于:
若所述VM发生迁移,则根据迁移后的所述VM对应的Hypervisor IP地址与所述USB设备对应的Hypervisor IP地址建立隧道连接,进行USB数据传输。
4.一种虚拟化环境下USB动态连接装置,应用于虚拟化网络中的物理服务器上,所述虚拟化网络包括虚拟机VM、第一Hypervisor、第二Hypervisor以及USB设备,其特征在于,该装置包括:
IP获取单元,用于根据本地VM或USB设备发送的携带有所述第二Hypervisor侧USB设备的名称或VM的IP地址的地址请求,从本地匹配的USB挂接关系表项中获取所述第二Hypervisor的IP地址并发送给本地的VM或USB设备,所述USB挂接关系表项用于记录本地VM的IP地址、所述第一Hypervisor的IP地址、所述第二Hypervisor的IP地址、所述第二Hypervisor侧USB设备的名称的对应关系,或者,用于记录本地USB设备的名称、所述第一Hypervisor的IP地址、所述第二Hypervisor的IP地址、所述第二Hypervisor侧VM的IP地址的对应关系;
隧道建立单元,用于在接收到本地VM或USB设备发送的携带所述第二Hypervisor的IP地址的第一USB数据后,建立所述第一Hypervisor与第二Hypervisor之间的隧道连接;
数据发送单元,用于将所述第一USB数据通过已建立的所述隧道发送给所述第二Hypervisor;
数据接收单元,用于接收所述第二Hypervisor发送的携带本地VM的IP地址或USB设备的名称的第二USB数据并转发给本地VM或USB设备。
5.如权利要求4所述的装置,其特征在于:
所述隧道建立单元进一步用于若所述第一Hypervisor与所述第二Hypervisor的IP地址相同,则USB数据本地透传,无需建立隧道连接。
6.如权利要求4所述的装置,其特征在于:
所述隧道建立单元进一步用于若所述VM发生迁移,则根据迁移后的所述VM对应的Hypervisor IP地址与所述USB设备对应的Hypervisor IP地址建立隧道连接,进行USB数据传输。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410306560.XA CN104092747B (zh) | 2014-06-30 | 2014-06-30 | 虚拟化环境下usb动态连接方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410306560.XA CN104092747B (zh) | 2014-06-30 | 2014-06-30 | 虚拟化环境下usb动态连接方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104092747A CN104092747A (zh) | 2014-10-08 |
CN104092747B true CN104092747B (zh) | 2017-08-08 |
Family
ID=51640427
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410306560.XA Active CN104092747B (zh) | 2014-06-30 | 2014-06-30 | 虚拟化环境下usb动态连接方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104092747B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105740180B (zh) * | 2014-12-10 | 2019-08-02 | 中国移动通信集团重庆有限公司 | Usb设备的虚拟机接入方法和装置 |
CN105068944A (zh) * | 2015-07-20 | 2015-11-18 | 深圳市青葡萄科技有限公司 | Usb外设在虚拟化环境下的高可用方法及其架构 |
CN105786602A (zh) * | 2016-02-29 | 2016-07-20 | 重庆工程职业技术学院 | 一种仿真实训软件的动态迁移系统和方法 |
CN107544930B (zh) * | 2016-06-27 | 2020-07-14 | 华为技术有限公司 | 一种通信端口的透传方法及装置 |
CN108304340B (zh) * | 2017-12-13 | 2020-04-14 | 厦门集微科技有限公司 | 基于usb设备的透传方法、装置和系统 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488941A (zh) * | 2008-01-18 | 2009-07-22 | 中兴通讯股份有限公司 | 一种实现usb设备共享使用的方法及系统 |
JP2009187368A (ja) * | 2008-02-07 | 2009-08-20 | Hitachi Ltd | Usbポートの共有制御方法 |
CN101533375B (zh) * | 2008-03-10 | 2011-12-07 | 联想(北京)有限公司 | 虚拟机系统中的usb设备访问方法、装置及控制系统 |
US9262194B2 (en) * | 2008-06-10 | 2016-02-16 | Apple Inc. | Virtual machine communications |
US8924965B2 (en) * | 2011-01-07 | 2014-12-30 | Red Hat Israel, Ltd. | Memory state transfer of virtual machine-controlled peripherals during migrations of the virtual machine |
US8356120B2 (en) * | 2011-01-07 | 2013-01-15 | Red Hat Israel, Ltd. | Mechanism for memory state restoration of virtual machine (VM)-controlled peripherals at a destination host machine during migration of the VM |
CN102567074B (zh) * | 2011-11-29 | 2015-01-21 | 中标软件有限公司 | 一种面向虚拟机的usb设备重定向方法 |
-
2014
- 2014-06-30 CN CN201410306560.XA patent/CN104092747B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN104092747A (zh) | 2014-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11200079B2 (en) | System and method for virtual machine live migration | |
JP6132323B2 (ja) | ライブ移行プロトコル及びクラスタサーバのフェイルオーバープロトコル | |
US11210132B2 (en) | Virtual machine migration in virtualization environment having different virtualization systems | |
WO2019007353A1 (zh) | 一种虚拟资源的分配方法及装置 | |
CN104092747B (zh) | 虚拟化环境下usb动态连接方法及装置 | |
US8806015B2 (en) | Workload-aware placement in private heterogeneous clouds | |
US20170006119A1 (en) | Integrated user interface for consuming services across different distributed networks | |
WO2018103356A1 (zh) | 一种数据库服务提供方法及服务器 | |
US10489183B2 (en) | Virtual machine migration method and apparatus | |
CN103595801B (zh) | 一种云计算系统及其虚拟机实时监控方法 | |
WO2018192478A1 (zh) | 云管理平台、虚拟机管理方法及其系统 | |
CN103530167A (zh) | 一种虚拟机内存数据的迁移方法及相关装置和集群系统 | |
CN106302663A (zh) | 经由网络分割的本地云计算 | |
CN109995814B (zh) | 云主机资源的迁移方法及装置、通信设备、存储介质 | |
CN103324532A (zh) | 虚拟机的动态迁移方法及系统 | |
CN110221910B (zh) | 用于执行mpi作业的方法和装置 | |
US20230153140A1 (en) | Live migration between hosts of a virtual machine connection to a host interface | |
CN107026875A (zh) | 多个虚拟桌面架构的融合方法及装置 | |
CN110609656A (zh) | 存储管理方法、电子设备和计算机程序产品 | |
CN112073555A (zh) | Ip地址的配置方法、电子设备和计算机可读存储介质 | |
US10887382B2 (en) | Methods, apparatuses and systems for cloud-based disaster recovery | |
CN106209445B (zh) | 一种通过网络部署的虚拟化数据中心 | |
WO2020131480A1 (en) | Methods, apparatuses and systems for configuring a network environment for a server | |
CN112565372B (zh) | 一种网络隔离时虚拟机与客户机的通信方法及系统 | |
CN112099916B (zh) | 虚拟机数据的迁移方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Applicant after: Xinhua three Technology Co., Ltd. Address before: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Applicant before: Huasan Communication Technology Co., Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |