APP下载

基于SPICE协议的USB设备重定向设计与实现

2015-09-22杨飞朱志祥梁小江

物联网技术 2015年9期

杨飞+朱志祥+梁小江

摘 要:基于SPICE协议的虚拟桌面无法自动完成USB重定向功能,提出了一种USB设备的自动重定向实现方法。该方法首先对远程服务器资源进行虚拟化,以提高服务器的资源利用率,然后设计和实现基于SPICE协议的虚拟桌面客户端,使用户可以通过客户端访问远程虚拟资源池,在虚拟桌面的客户端插入USB设备,然后自动重定向到远程虚拟服务器,实现对远程服务器资源的管理和操作。经过实验测试证明,本设计方法能够实现虚拟桌面的USB设备自动重定向功能。

关键词:SPICE协议;虚拟桌面;USB重定向;远程虚拟服务器

中图分类号:TP302.1          文献标识码:A         文章编号:2095-1302(2015)09-00-02

0  引  言

随着云计算和虚拟化技术的发展,虚拟桌面也不断应用到各行各业中。桌面虚拟化技术通过虚拟化技术和云计算技术相结合,将用户桌面环境和计算环境分离,不仅可为用户提供便捷的桌面办公环境和较好的用户体验,还能将用户的虚拟资源进行集中化管理,提高远程服务器虚拟资源的利用率[1]。

基于SPICE协议的虚拟桌面不支持USB设备的自动重定向,限制了用户在客户端对远程服务器资源的操作,包括数据的拷贝、上传等功能。

本文基于OpenStack平台设计和实现的远程虚拟资源服务器,然后设计和部署了基于SPICE协议的虚拟桌面客户端,用户通过客户端灵活访问远程服务器的虚拟资源集群[2]。用户在客户端插入USB设备,就可以对远程服务器资源池进行访问和控制。通过大量对比测试,本设计方案可以实现基于SPICE协议的虚拟桌面的USB设备自动重定向功能。

1  虚拟桌面设计框架

基于SPICE协议的虚拟桌面是基于KVM虚拟机实现的,在SPICE框架中,VDI后端在QEMU中实现,提供对虚拟设备的模拟,VDI前端在服务端中实现,通过VDI接口与虚拟设备进行交互[3]。

虚拟化技术能够在一台计算机上运行多个操作系统[4],在每个操作系统上运行自己独立的应用软件,可以对这些系统进行有效隔离,对资源进行按需分配,从而保证每一个操作系统的安全性和性能。对服务器进行扩展,实现服务器的虚拟化[5]。

在OpenStack云平台上构建云桌面系统的服务端,采用OpenStack作为虚拟桌面的基础服务,在OpenStack中采用KVM虚拟化技术,实现本地用户对物理服务器的远程访问,使用户能够共享相同的物理服务设备[6]。图1为虚拟桌面的整体设计框架。

图1  虚拟桌面整体设计框架

来自客户端、台式机、笔记本的用户发出连接请求,通过对应的SPICE服务连接云实验室的客户端,客户端首先向服务端建立一个主要接口的连接请求,创建工作线程并等待远程服务端的消息,云实验室服务端完成初始化后,客户端继续进行后面的初始化工作[7]。

在虚拟桌面的服务端,能够满足用户的多种资源申请需求,管理员能够统一管理和分配虚拟资源。管理员根据用户的请求分配虚拟机资源,在分配过程中附带虚拟资源的地址和端口,方便客户端用户直接使用地址和端口登录虚拟桌面[8]。图2所示为服务器虚拟资源分布图。

用户在虚拟桌面的登陆界面中输入在远程服务器中分配的地址和端口,即可进入到远程服务器进行虚拟桌面的操作和管理。认证成功的用户能访问远程服务器的虚拟资源,保证整个虚拟桌面的安全。用户通过虚拟桌面客户端的用户操作界面实现对远程服务器集群资源的访问和操作[9]。图3为虚拟桌面客户端登录界面。

图2  服务器虚拟资源分布图

图3  虚拟桌面客户端登录界面

2  USB重定向实现

针对基于SPICE协议的虚拟桌面无法自动完成USB设备重定向功能,提出一种USB设备重定向实现方法。首先设计和实现基于SPICE协议的虚拟桌面,通过客户端用户能够访问远程虚拟资源池,提高服务器的利用率[10]。用户在终端设备插入优盘,能够自动重定向到远程虚拟服务器,实现数据的管理操作。图4所示为USB重定向设计框架。

图4  USB重定向设计框架

首先在制作虚拟桌面客户端的Fedora系统中,编译安装Usbredir软件,它通过网络连接发送USB设备流量的网络协议,spice-gtk是为SPICE远程桌面服务提供数据库和图形工具包的软件,在编译安装过程中,需要添加Usbredir功能,最后通过安装和编译virt-viewer,完成虚拟桌面的客户端。

在服务器远程资源中,通过WDK软件重新编译libwdi、libusbk和libusb-win32-bin,产生libwdi.dll,将libwdi.dll文件拷贝到windows虚拟机中的c:\windows\system32位置。重新启动虚拟机,使用虚拟机客户端重新连接,插入USB设备后能实现自动重定向到远程虚拟机。

3  测试

当插入USB设备后,会自动识别USB驱动,图5为选择USB设备。

图5  选择USB设备

选择对应的USB设备后,出现对应的设备驱动。图6所示为USB设备驱动界面,图7为USB的磁盘管理界面。

图6  USB设备驱动

图7  USB磁盘管理

4  结  语

基于SPICE协议的虚拟桌面不能实现USB设备的重定向,用户不能对远程服务器虚拟资源进行复制粘贴等功能,影响用户体验QoS。本文的设计方案能够实现USB设备的自动重定向功能。

参考文献

[1] 李博.基于SPICE协议的桌面虚拟化客户端的设计与实现[D].广州:华南理工大学, 2012.

[2] 马强, 艾中良.面向云计算环境的访问控制模型[J]. 计算机工程与设计, 2012, 33(12):4487-4492.

[3] 张庆萍.虚拟桌面基础架构(VDI)安全研究[J].计算机安全, 2011 (4):72-74.

[4]江南, 俞高宇.桌面虚拟现实技术研究及其应用[J]. 国土资源遥感, 2002, 14(3):37-40.

[5]王庆波. 虚拟化与云计算[M].北京:电子工业出版社, 2009.

[6] 张建勋,古志民,郑超.云计算研究进展综述[J]. 计算机应用研究, 2010, 27(2):429-433.

[7] 徐浩, 兰雨晴. 基于SPICE协议的桌面虚拟化技术研究与改进方案[J]. 计算机工程与科学, 2013, 35(12):20-25.

[8] 鄢涛, 李丹. 虚拟云桌面技术的研究与实现[J]. 成都大学学报(自然科学版), 2013, 32(2):145-147.

[9] 王峰,江峰,李朝阳.虚拟桌面及关键技术分析[J].电信技术, 2011 (1):.24-26.

[10] 赖孙荣. 虚拟桌面框架Spice剖析及其客户端的设计与实现[D].广州:华南理工大学, 2012.