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

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