基于SPICE協(xié)議的USB設備重定向設計與實現(xiàn)
引 言
隨著云計算和虛擬化技術的發(fā)展,虛擬桌面也不斷應用到各行各業(yè)中。桌面虛擬化技術通過虛擬化技術和云計算技術相結合,將用戶桌面環(huán)境和計算環(huán)境分離,不僅可為用戶提供便捷的桌面辦公環(huán)境和較好的用戶體驗,還能將用戶的虛擬資源進行集中化管理,提高遠程服務器虛擬資源的利用率[1]。
基于SPICE 協(xié)議的虛擬桌面不支持USB 設備的自動重定向,限制了用戶在客戶端對遠程服務器資源的操作,包括數(shù)據(jù)的拷貝、上傳等功能。
本文基于 OpenStack 平臺設計和實現(xiàn)的遠程虛擬資源服務器,然后設計和部署了基于SPICE 協(xié)議的虛擬桌面客戶端, 用戶通過客戶端靈活訪問遠程服務器的虛擬資源集群[2]。用戶在客戶端插入USB 設備,就可以對遠程服務器資源池進行訪問和控制。通過大量對比測試,本設計方案可以實現(xiàn)基于SPICE 協(xié)議的虛擬桌面的USB 設備自動重定向功能。
1 虛擬桌面設計框架
基于SPICE 協(xié)議的虛擬桌面是基于KVM 虛擬機實現(xiàn)的, 在SPICE 框架中,VDI 后端在QEMU 中實現(xiàn),提供對虛擬設備的模擬,VDI 前端在服務端中實現(xiàn),通過VDI 接口與虛擬設備進行交互[3]。
虛擬化技術能夠在一臺計算機上運行多個操作系統(tǒng) [4], 在每個操作系統(tǒng)上運行自己獨立的應用軟件,可以對這些系統(tǒng)進行有效隔離,對資源進行按需分配,從而保證每一個操作系統(tǒng)的安全性和性能。對服務器進行擴展,實現(xiàn)服務器的虛擬化[5]。
在OpenStack云平臺上構建云桌面系統(tǒng)的服務端,采用KVM 虛擬化技術,實現(xiàn)本地用戶對物理服務器的遠程訪問, 使用戶能夠共享相同的物理服務設備[6]。圖 1 為虛擬桌面的整體設計框架。
來自客戶端、臺式機、筆記本的用戶發(fā)出連接請求,通 過對應的 SPICE 服務連接云實驗室的客戶端,客戶端首先向 服務端建立一個主要接口的連接請求,創(chuàng)建工作線程并等待 遠程服務端的消息,云實驗室服務端完成初始化后,客戶端 繼續(xù)進行后面的初始化工作 [7]。
在虛擬桌面的服務端,能夠滿足用戶的多種資源申請需 求,管理員能夠統(tǒng)一管理和分配虛擬資源。管理員根據(jù)用戶 的請求分配虛擬機資源,在分配過程中附帶虛擬資源的地址 和端口,方便客戶端用戶直接使用地址和端口登錄虛擬桌面 [8]。 圖 2 所示為服務器虛擬資源分布圖。
用戶在虛擬桌面的登陸界面中輸入在遠程服務器中分配 的地址和端口,即可進入到遠程服務器進行虛擬桌面的操作 和管理。認證成功的用戶能訪問遠程服務器的虛擬資源,保證整個虛擬桌面的安全。用戶通過虛擬桌面客戶端的用戶操作 界面實現(xiàn)對遠程服務器集群資源的訪問和操作 [9]。圖 3 為虛 擬桌面客戶端登錄界面。
2 USB 重定向實現(xiàn)
針對基于 SPICE 協(xié)議的虛擬桌面無法自動完成 USB 設備 重定向功能,提出一種 USB 設備重定向實現(xiàn)方法。首先設計 和實現(xiàn)基于 SPICE 協(xié)議的虛擬桌面,通過客戶端用戶能夠訪 問遠程虛擬資源池,提高服務器的利用率 [10]。用戶在終端設 備插入優(yōu)盤,能夠自動重定向到遠程虛擬服務器,實現(xiàn)數(shù)據(jù) 的管理操作。圖 4 所示為 USB 重定向設計框架。

首先在制作虛擬桌面客戶端的 Fedora 系統(tǒng)中,編譯安裝 Usbredir軟件,它通過網絡連接發(fā)送USB設備流量的網絡協(xié)議, spice-gtk 是為 SPICE 遠程桌面服務提供數(shù)據(jù)庫和圖形工具包 的軟件,在編譯安裝過程中,需要添加 Usbredir 功能,最后 通過安裝和編譯 virt-viewer,完成虛擬桌面的客戶端。
在服務器遠程資源中,通過 WDK 軟件重新編譯 libwdi、 libusbk 和 libusb-win32-bin,產生 libwdi.dll,將 libwdi.dll 文件拷貝到 windows 虛擬機中的 c :\windows\system32 位置。 重新啟動虛擬機,使用虛擬機客戶端重新連接,插入USB 設 備后能實現(xiàn)自動重定向到遠程虛擬機。
3 測試
當插入USB 設備后,會自動識別 USB 驅動,圖 5 為選擇 USB 設備。
選擇對應的 USB 設備后,出現(xiàn)對應的設備驅動。圖 6 所 示為 USB 設備驅動界面,圖 7 為 USB 的磁盤管理界面。
4 結 語
基于SPICE協(xié)議的虛擬桌面不能實現(xiàn)USB設備的重定向, 用戶不能對遠程服務器虛擬資源進行復制粘貼等功能,影響 用戶體驗 QoS。本文的設計方案能夠實現(xiàn) USB 設備的自動重 定向功能。