虛擬化環境下usb動態連接方法及裝置製造方法
2023-10-08 07:39:39 1
虛擬化環境下usb動態連接方法及裝置製造方法
【專利摘要】本發明提供一種虛擬化環境下USB動態連接方法及裝置,應用於虛擬化網絡中,所述虛擬化網絡包括虛擬機VM、第一Hypervisor、第二Hypervisor以及USB設備,該方法包括:所述第一Hypervisor在接收到本地所述VM或所述USB設備發送的第一USB數據後,建立所述第一Hypervisor與第二Hypervisor之間的隧道連接;所述第一Hypervisor將所述第一USB數據通過已建立的所述隧道發送給所述第二Hypervisor;所述第一Hypervisor在接收到所述第二Hypervisor發送的第二USB數據後,將所述第二USB數據轉發給所述VM或所述USB設備。本發明實現VM對遠端物理伺服器的USB設備訪問,避免了資源浪費。
【專利說明】虛擬化環境下USB動態連接方法及裝置
【技術領域】
[0001] 本發明涉及通信【技術領域】,尤其涉及一種虛擬化環境下USB動態連接方法及裝 置。
【背景技術】
[0002] 虛擬化技術通過對物理資源和提供的服務進行抽象化,讓資源使用者和系統管理 者不關心對象的物理特徵和服務邊界的細節,從而降低資源使用和管理的複雜度,提高使 用效率。同時,虛擬化的計算資源VM(Virtual Machine,虛擬機)可以在不同的物理伺服器 上遷移,極大增加了業務的靈活性和彈性。
[0003] 通過專用的虛擬化軟體Hypervisor (超級監督者)管理,一臺物理伺服器能虛擬 出多臺VM,如圖1所示。VM訪問USB(Universal Serial Bus,通用串行總線)時,可通過在 Hypervisor上手動操作,實現本地物理伺服器的USB掛接和卸載。但這種方案下,VM掛接 USB後,不支持VM遷移,必須在VM上卸載USB後,VM才能遷移,遷移後的VM可以再次掛接 本地物理伺服器的USB,不能掛接原來的遠端USB。
[0004] 為了解決該問題,現有的一種解決方案是:通過專門設計的USB Server(通用串 行總線伺服器)接入到網絡上,如圖2所示,使得VM能夠通過IP (Internet Protocol,互聯 網協議)地址來訪問USB Server,並將USB Server作為共享資源在伺服器集群中訪問。
[0005] 在這個技術方案中,每個VM需要安裝USB Client (通用串行總線客戶端)軟體, VM通過IP訪問掛接的USB Server,形成USB共享池。USB Server將自己的USB數據封裝 在IP隧道中送達VM,VM讀取IP隧道中的USB數據,當VM在不同物理伺服器之間遷移時, 可以攜帶掛接的USB同步遷移。
[0006] 專用USB Server的使用,雖然解決了 USB隨VM遷移的問題,但是需要額外部署 USB設備,既增加了採購成本,又增加了運維負擔。當USB Server發生故障時使得依賴USB 的業務中斷,更換USB Server既造成備件成本上升,又造成業務長時間中斷。同時,物理服 務器上本地USB接口荒廢,造成資源浪費。
【發明內容】
[0007] 有鑑於此,本發明提供了一種虛擬化環境下USB動態連接方法,應用於虛擬化網 絡中,所述虛擬化網絡包括虛擬機VM、第一 Hypervisor、第二Hypervisor以及USB設備,該 方法包括:
[0008] 所述第一 Hypervisor在接收到本地所述VM或所述USB設備發送的第一 USB數據 後,建立所述第一 Hypervisor與第二Hypervisor之間的隧道連接;
[0009] 所述第一 Hypervisor將所述第一 USB數據通過已建立的所述隧道發送給所述第 二 Hypervisor ;
[0010] 所述第一 Hypervisor在接收到所述第二Hypervisor發送的第二USB數據後,將 所述第二USB數據轉發給所述VM或所述USB設備。
[0011] 本發明還提供了一種虛擬化環境下USB動態連接裝置,應用於虛擬化網絡中的物 理伺服器上,所述虛擬化網絡包括虛擬機VM、第一 Hypervisor、第二Hypervisor以及USB 設備,該裝置包括:
[0012] 隧道建立單元,用於在接收到本地所述VM或所述USB設備發送的第一 USB數據 後,建立所述第一 Hypervisor與第二Hypervisor之間的隧道連接;
[0013] 數據發送單元,用於將所述第一 USB數據通過已建立的所述隧道發送給所述第二 Hypervisor ;
[0014] 數據接收單元,用於在接收到所述第二Hypervisor發送的第二USB數據後,將所 述第二USB數據轉發給所述VM或所述USB設備。
[0015] 本發明通過在Hypervisor上實現USB代理功能,統一處理VM和USB設備的數據 交互,實現VM對遠端物理伺服器的USB設備訪問,因而,通過本發明,不僅使虛擬化環境VM 可以使用任意物理伺服器上的USB外設,避免了資源浪費;而且當VM在物理伺服器之間遷 移,VM所掛接的USB依然保持連接關係,邏輯上實現同步遷移。
【專利附圖】
【附圖說明】
[0016] 圖1是伺服器虛擬化示意圖。
[0017] 圖2是採用專用USB server進行USB動態連接示意圖。
[0018] 圖3是本發明一種實施方式中USB動態連接裝置的邏輯結構及其基礎硬體環境的 示意圖。
[0019] 圖4是本發明一種實施方式中USB動態連接方法的流程圖。
[0020] 圖5是本發明一種實施方式中伺服器虛擬化USB模型示意圖。
[0021] 圖6是本發明一種實施方式中隧道連接示意圖。
【具體實施方式】
[0022] 以下結合附圖對本發明進行詳細說明。
[0023] 本發明提供一種虛擬化環境下USB動態連接裝置,以下以軟體在計算機中實現為 例進行說明,但是本發明並不排除諸如硬體或者邏輯器件等其他實現方式。如圖3所示, 該裝置運行的計算機硬體環境包括CPU、內存、非易失性存儲器以及其他硬體。該裝置作為 計算機上一個邏輯層面的虛擬裝置,其通過計算機上的CPU來運行。該裝置包括隧道建立 單元、數據發送單元以及數據接收單元。請參考圖4,該裝置的使用和運行過程包括以下步 驟:
[0024] 步驟101,隧道建立單元在接收到本地所述VM或所述USB設備發送的第一 USB數 據後,建立所述第一 Hypervisor與第二Hypervisor之間的隧道連接;
[0025] 步驟102,數據發送單元將所述第一 USB數據通過已建立的所述隧道發送給所述 第二 Hypervisor ;
[0026] 步驟103,數據接收單元在接收到所述第二Hypervisor發送的第二USB數據後,將 所述第二USB數據轉發給所述VM或所述USB設備。
[0027] 圖5為本發明伺服器虛擬化後的USB模型,該模型包括VM、Hypervisor以及USB 設備,其中,每個VM上需要安裝USB client,用戶通過USB client的操作界面,對本地和遠 端的USB設備進行掛接和卸載;Hypervisor需具備USB Proxy功能,所有USB相關數據都 由USB Proxy統一處理並轉發;USB設備是指物理伺服器上的USB接口及驅動,為VM提供 USB接入。
[0028] 本發明通過在Hypervisor上實現USB代理功能,統一進行USB數據管理,實現VM 對遠端物理伺服器的USB設備訪問,其處理過程如下。
[0029] 首先,用戶需要在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設備。
[0030] USB設備在接收到VM的掛接請求後,將回應的USB數據發送給USB Hypervisor, USB Hypervisor 從 USB 數據中獲取 VM Hypervisor 的 IP 地址,建立 USB Hypervisor 與 VM Hypervisor的隧道連接,當然,這個隧道可能已經建立,若已建立,貝U直接將USB數據進行 隧道封裝,通過已建立的隧道發送給VM Hypervisor Hypervisor接收經隧道封裝的USB 數據報文後,對該報文進行解封裝,從解封裝後的USB數據中獲取VM的IP位址,根據該IP 地址確定接收該USB數據的VM,將USB數據轉發給VM。
[0031] 在上述USB掛接過程中,每一個物理伺服器的Hypervisor中都會生成對應的USB 掛接關係表。在USB掛接關係表中保存了物理伺服器中所有VM與USB設備的掛接關係。
[0032]
【權利要求】
1. 一種虛擬化環境下USB動態連接方法,應用於虛擬化網絡中,所述虛擬化網絡包括 虛擬機VM、第一 Hypervisor、第二Hypervisor以及USB設備,其特徵在於,該方法包括: 所述第一 Hypervisor在接收到本地所述VM或所述USB設備發送的第一 USB數據後, 建立所述第一 Hypervisor與第二Hypervisor之間的隧道連接; 所述第一 Hypervisor將所述第一 USB數據通過已建立的所述隧道發送給所述第二 Hypervisor ; 所述第一 Hypervisor在接收到所述第二Hypervisor發送的第二USB數據後,將所述 第二USB數據轉發給所述VM或所述USB設備。
2. 如權利要求1所述的方法,其特徵在於: 所述第一 Hypervisor從所述第一 USB數據中獲取所述第二Hypervisor的IP位址,建 立所述第一 Hypervisor與所述第二Hypervisor的隧道連接。
3. 如權利要求1所述的方法,其特徵在於: 所述第一 Hypervisor從所述第二USB數據中獲取所述VM的IP位址或所述USB設備 的名稱,將所述第二USB數據轉發給所述VM或所述USB設備。
4. 如權利要求1所述的方法,其特徵在於: 若所述第一 Hypervisor與所述第二Hypervisor的IP位址相同,貝U USB數據本地透傳, 無需建立隧道連接。
5. 如權利要求1所述的方法,其特徵在於: 若所述VM發生遷移,則根據遷移後的所述VM對應的Hypervisor IP位址與所述USB 設備對應的Hypervisor IP位址建立隧道連接,進行USB數據傳輸。
6. -種虛擬化環境下USB動態連接裝置,應用於虛擬化網絡中的物理伺服器上,所述 虛擬化網絡包括虛擬機VM、第一 Hypervisor、第二Hypervisor以及USB設備,其特徵在於, 該裝置包括: 隧道建立單元,用於在接收到本地所述VM或所述USB設備發送的第一 USB數據後,建 立所述第一 Hypervisor與第二Hypervisor之間的隧道連接; 數據發送單元,用於將所述第一 USB數據通過已建立的所述隧道發送給所述第二 Hypervisor ; 數據接收單元,用於在接收到所述第二Hypervisor發送的第二USB數據後,將所述第 二USB數據轉發給所述VM或所述USB設備。
7. 如權利要求6所述的裝置,其特徵在於: 所述隧道建立單元具體通過從所述第一 USB數據中獲取所述第二Hypervisor的IP地 址,建立所述第一 Hypervisor與所述第二Hypervisor的隧道連接。
8. 如權利要求6所述的裝置,其特徵在於: 所述數據接收單元具體通過從所述第二USB數據中獲取所述VM的IP位址或所述USB 設備的名稱,將所述第二USB數據轉發給所述VM或所述USB設備。
9. 如權利要求6所述的裝置,其特徵在於: 所述隧道建立單元進一步用於若所述第一 Hypervisor與所述第二Hypervisor的IP 地址相同,則USB數據本地透傳,無需建立隧道連接。
10. 如權利要求6所述的裝置,其特徵在於: 所述隧道建立單元進一步用於若所述VM發生遷移,則根據遷移後的所述VM對應的 Hypervisor IP位址與所述USB設備對應的Hypervisor IP位址建立隧道連接,進行USB數 據傳輸。
【文檔編號】H04L12/46GK104092747SQ201410306560
【公開日】2014年10月8日 申請日期:2014年6月30日 優先權日:2014年6月30日
【發明者】劉新民 申請人:杭州華三通信技術有限公司