基于桌面云的USB设备重定向系统设计与实现工程分析

发布时间:2020-07-21 20:18:57 论文编辑:vicky
本文是一篇工程硕士论文,本文详细阐述了基于“基于桌面云的 USB 设备重定向系统”的设计与实现。在设计此系统之前,桌面云的传输协议 SPICE 协议,只能实现部分 USB 设备映射到虚拟云桌面,经常发生 USB 设备丢失的情况;对部分 USB 设备识别不了,兼容性差;无法识别两个相同型号的 USB 设备;无法同时映射不同的 USB 设备到不同云桌面;反复加载驱动、卸载驱动,耗时长;严重影响日常办公对桌面云系统的正常使用。因此基于实际应用情况,设计了基于桌面云的 USB 设备重定向系统。

第一章  绪论

1.1  研究背景
云计算技术在近几年飞速发展,广泛应用于商业、购物、公益等方面,遍布日常生活的各个角落。虚拟化技术作为云计算的关键支撑技术,已成为未来计算机技术发展的必然趋势。桌面云虚拟化技术可以实现用户在任何时间任意地方通过任何终端设备访问自己的桌面,在用户体验上感觉不到物理桌面与虚拟桌面的差别;可以实现在同一台物理终端上同时运行多个独立的计算机操作系统,且每个操作系统上都可运行多个独立应用软件;可统一对不同的云桌面按需配置不同的资源。从而简化了运维工作、降低了运维成本,同时安全性更高,更容易对桌面及数据进行备份与容灾,大大提升资源利用率、系统可靠性以及动态伸缩性。
在桌面云虚拟化系统中,技术资源集中在服务器上,一台服务器可运行多个云桌面,每个云桌面虚拟机的配置都需要通过服务器的操作配置来实现。当人们需要从外部接入外设设备时,服务器大多分布在机房,在日常使用中无法满足需要进入机房将外设设备直接插入服务器从而进行资源的分配,而在物理终端接入的 USB 设备通过桌面云虚拟化技术直接重定向到云桌面,将会丧失部分 USB 设备的性能与功能,且 USB 设备与系统兼容性较差。当多个云桌面需要同时接入外部设备时,服务器无法满足直接插入数量众多的外设设备来分配给云端桌面使用;且部分外设需要直接在物理终端进行使用,比如音频设备,视频设备,指纹仪、高拍仪等,无法在服务器端进行使用。那么在外设方面,人们要想获得跟物理计算机上使用外设一样的体验,就需要能在物理终端接入外设设备,在云桌面上对本地物理终端接入的外设设备进行识别、读取,操作,且不影响外设设备的功能和性能。
........................

1.2  研究意义
在过去几年中,虚拟化一直是数据中心和企业技术的重点,大量企业已经使用云计算和其他解决方案实现了虚拟化,已被市场广泛接受认可。随着信息化的发展,党政机关、企业的硬件设备及各项业务系统越来越多,部分服务器长期空闲,部分服务器超负荷运转,导致系统资源利用率不高,管理难度大。通过虚拟化技术可把孤立的服务器形成虚拟化资源池进行统一配备,可自行添加虚拟机,更改虚拟机的资源配置,实现动态迁移,在不中断用户工作的情况下对系统进行更新,大大提高资源利用率,以及可靠性。通过虚拟化平台能够清晰的查看到服务器的运行情况,硬件健康状况等各项信息,易于对其维护,降低企业的维护成本。同时数据集中存储在数据,降低了数据安全风险。因为虚拟化在运维管理、安全性、备份容灾、资源利用率,可靠性方面的优势,使之在日
常办公中得到广泛应用。虚拟化的成熟催生了虚拟桌面的发展,在虚拟桌面中外设重定向是远程桌面协议的重要组成部分,而其中 USB 是目前应用最为广泛的接口,而现有的 USB 重定向子系统功能相对单一,USB 数据传输速率慢,映射缓慢,兼容性差,无法同时识别两个相同的 USB 设备等,因此目前桌面云虚拟化无法满足日常办公使用外设的需求。
本课题基于以上原因,提出了全新的 USB 重定向模型,能够大大的提高 USB重定向的兼容性、稳定性以及传输效率,为在云桌面虚拟化系统中开发外设重定向子系统提供可行性参考。
.......................

 第二章  基础技术研究

2.1  虚拟化技术
虚拟化技术[1]是将 CPU、内存、硬盘等物理资源模拟成多台可供同时操作运行的虚拟计算机资源。模拟出来的虚拟机可以运行不同的 OS(Operating System).,每个虚拟机可以相互隔离,独立运行不同的应用软件及各项业务系统,从而提高物理资源利用率。
虚拟化技术按照实现方式分为全虚拟化(FullVirtualization)和半虚拟化(ParaVirtualization)。全虚拟化技术在虚拟机和底层硬件之间加入一个软件层,所有虚拟机发出的指令都通过软件层捕获并处理,为指令访问硬件控制器和外设充当中介,因此操作系统不用改动可直接安装到虚拟服务器上。半虚拟化,需要修改操作系统内核来共享宿主机底层硬件,因此修改操作系统后可以获得与原生系统相近的性能,缺点是安装实施较为复杂。
2.1.1 KVM 虚拟化
KVM[2](Kernel Virtual Machine)是基于 Linux 内核的虚拟机,是一种全虚拟化技术。KVM 是基于内核的虚拟化技术,实际是嵌入系统的一个虚拟化模块,通过优化内核来使用虚拟化技术,该内核模块使得 Linux 变成了一个 Hypervisor,虚拟机使用 Linux 自身的调度器进行管理。
KVM 通过加载内核模块将 Linux 内核转换为 VMM,VMM 负责虚拟机调度、内存管理。通过工具在 Linux 内核上加载客户端操作系统,KVM 本身不模拟任何硬件,有一个用于管理 VCPU 和虚拟内存的内核模块 KVM.ko,KVM 通过/dev/kvm 设备进行内存虚拟化,给客户端操作系统提供地址空间,创建实例化的客户端操作系统时映射提供了属于每个客户端操作系统的地址空间。映射给客户端操作系统的物理内存实际上是 VMM 中相应进程的虚拟内存。
...........................

2.2 SPICE 协议
桌面虚拟化传输协议[12],指的是一组特殊的数据传输规则,可以使云服务器和终端之间的数据进行通信。云服务器和终端之间传输的数据包括图像、音视频数据、键鼠输入等外设输入数据。目前主流的桌面虚拟化传输协议有四种,包括微软的 RDP 协议、VMware 的 PCoIP、Citrix 的 ICA 以及开源的 Spice 协议[33]。
本文主要讨论基于 Spice 协议下的 USB 重定向。SPCIE 协议具有自适应能力的远程桌面协议,能够提供与物理桌面完全相同的最终用户体验。用户可以访问自己的虚拟桌面。 Spice 协议采用独特架构能够直接运行在虚拟机服务器中,通过 KVM 虚拟化技术让云桌面用户可以直接访问远程服务器的硬件资源,从而提高虚拟桌面的传输性能及资源利用率。
基于 Spice 协议的云桌面具有如下优势:
(1)支持跨平台运行:在 Windows、Linux、Mac OS 平台中都可以兼容;
(2)支持外部接入设备,可创建多个接口,在不同的平台使用。比如:音视频播放功能、USB 设备、打印机和扫描仪等设备;
(3)Spice 客户端的 USB 设备能够远程附属到虚拟机;
(4 )丰富的媒体支持,支持在客户端播放音频、图像文件等;
(5)Spice 协议开源:客户端软件可扩展,只要硬件支持,已于软件扩展和定制功能的开发。
(6)更安全的数据传输:Spice 可以使用 OpenSSL 加密传输数据。 基于 Spice 协议的云桌面的不足之处,SPICE 只有部分功能实现,部分有缺陷,需要经过第三方再次开发,如 USB 支持。
图 2-2 Spice 协议基本框架图
...........................
 
第三章 需求分析 ......................... 15
3.1 桌面云的发展现状 .............................. 15
3.2 SPICE 中 USB 映射现状 ......................... 15
3.3 USB 重定向系统需求分析 ........................... 16
第四章 系统设计 .................. 19
4.1 系统关键技术 ............................. 19
4.1.1 USB 重定向技术 ........................... 19
4.1.2 USB 驱动替换技术 ............................. 21
第五章 系统实现 .................................................... 37
5.1 基础环境设置 ............................ 37
5.2 系统实现 ............................ 37
5.2.1 USB 客户端实现 ................................... 37
5.2.2 USB 管理端实现 ........................................ 40

第六章  系统测试

6.1  桌面云运行环境
USB 重定向系统需要在桌面云运行环境中进行测试,因此在公司自主研发的桌面云系统中搭建测试环境。其桌面云运行硬件环境及软件环境如表 6-1 及 6-2 所示:
表 6-1  硬件环境
.........................

第七章  总结与展望

7.1  总结
本文详细阐述了基于“基于桌面云的 USB 设备重定向系统”的设计与实现。在设计此系统之前,桌面云的传输协议 SPICE 协议,只能实现部分 USB 设备映射到虚拟云桌面,经常发生 USB 设备丢失的情况;对部分 USB 设备识别不了,兼容性差;无法识别两个相同型号的 USB 设备;无法同时映射不同的 USB 设备到不同云桌面;反复加载驱动、卸载驱动,耗时长;严重影响日常办公对桌面云系统的正常使用。因此基于实际应用情况,设计了基于桌面云的 USB 设备重定向系统。本论文的工作主要包含如下几个方面:
1、学习桌面云基础技术及 USB 设备的基础知识,包括 USB 设备结构、通信及枚举过程,传输方式,USB 设备驱动技术等。
2、采用 USB 设备模拟技术,根据真实物理设备属性而动态设置,实现设备数量的动态添加或删除;采用 USB 驱动替换技术修改 USB 设备属性来匹配通用驱动,预先将通用设备驱动安装到一组自定义的设备属性里,通过修改 USB 属性,实现驱动只安装一次就可以永久使用,并且可以在通用驱动和功能驱动之间进行快速切换。采用异步传输的机制来实现同步传输,避免重点网络延迟。
3、在整体方案确定的情况下对方案进行工程实现:将本地终端的 USB 设备列表重定向到远端虚拟机上展示,用户可以在 USB 列表中勾选具体的 USB 设备,将本地终端上对应的 USB 设备映射到远端虚拟机中使用,也可以在 USB 列表中取消勾选 USB 设备,解除映射,将设备从远端虚拟机中移除。实现 USB 设备的即插即用,使系统能有效、快速、安全、可靠和无误的完成上述操作。
4.在整体方案实现后,在 Windows 虚拟桌面下测试 USB 重定向子系统的功能及性能。
目前此 USB 重定向系统是成都网安科技发展有限公司的云桌面虚拟化系统产品的一个子系统,云桌面虚拟化系统不仅公司内部使用,也销售给多位客户。USB设备重定向系统的使用在日常办公中大大提升了数据导入导出的效率,提升了工作效率。
参考文献(略)