吴坤喜,冯 广,卢志祥,方道坤
(广东工业大学自动化学院,广东广州510006)
随着计算机深入到人们生活、工作的各个方面,人们对计算机的性能、安全和服务能力等指标提出了新的要求,如何提高计算机的处理速度、减少耗能、共享资源、有效管理软件变得越来越重要.目前对计算机机房的建设,通常需要配置多达百台的独立PC机,不仅建设费用大、耗能高,而且管理这些计算机也比较复杂,而虚拟云桌面采用分布式服务器为处理中心和存储媒介[1],使用瘦客户端远程登录虚拟桌面的方式,对解决这些问题具有明显的优势.
近年来国内桌面虚拟化设备厂商如雨后春笋般出现,其中占市场份额最高的和信、方物和深信服等厂商大部分采用VMWare和Citrix的解决方案.选择虚拟化产品的机构数量正快速增加,其中虚拟云桌面应用中,学校实验室机房所占份额达到了64%以上,企业应用达到了25%[2].目前广东省已有多所高校采用了虚拟云桌面的解决方案[3],在这些高校实际应用中,发现了一系列的新问题,如大量虚拟桌面同时启动时,往往出现虚拟桌面网速变慢和响应速度迅速下降;并且商用瘦客户端的成本高、系统繁重、启动速度慢和网络传输效率低,很难满足实际应用的需求.
针对这些问题,本文将利用分布式服务器建立资源池,精简瘦客户端外围设备和操作系统,优化网络传输等方案加以解决.
虚拟云桌面犹如一台个人电脑,面向用户的是瘦客户端,具有硬件系统和操作系统,将用户和虚拟云桌面联系起来.
现有瘦客户端在响应速度和网络传输方面还不能很好地满足用户需求,如何通过自身硬件资源达到用户对网络传输、响应速度等性能要求,这对瘦客户端的硬件设计提出了更高的要求.同时由于虚拟云桌面与瘦客户端之间通过局域网连接,实现虚拟云桌面与用户的交互操作,将实际的计算处理过程完全集中到分布式服务器中实现,大大减轻了瘦客户端的计算量[4].在经过大量实践操作并考虑成本的情况下,我们采用了ARM cortex a8作为瘦客户端的处理核心,不仅运算速度快,而且支持1 000 M网络传输和1 080 p@30 fps高清视频输出等高性能[5],用户还可以根据自身需要添加各种外设接口,支持多种操作系统,具有高性能低功耗的特点,能够很好地满足虚拟云桌面瘦客户端的要求,瘦客户端组成模块如图1所示.
图1 瘦客户端模块图Fig.1 The thin client module diagram
计算机机房建设对客户端的功耗和价格比较敏感,而现行PC机和商用瘦客户端大部分采用intel架构,成本高、功耗大,而我们瘦客户端采用的ARM架构很好地解决了这个问题.将瘦客户端与传统PC机和商用客户端之间的参数进行了对比,如表1所示.
表1 客户端参数对比Tab.1 Comparison of the clients parameters
虚拟云桌面与瘦客户端之间采用VDI传输模式,分布式服务器接收瘦客户端的数据并处理,再将处理数据结果推送到瘦客户端供用户使用.因此在选择瘦客户端系统时必须重点考虑网络传输效率和精简系统,使瘦客户端硬件资源得到最大程度的应用,满足用户需求[6].为此,采用了当前被广泛使用的Android系统,该系统架构由5部分组成:应用层、应用框架构、运行库层、Android执行环境层和系统内核层,Android系统架构如图2所示.
图2 Android系统架构Fig.2 Android system
在原有系统的基础上对系统进行精简,在应用层中去除了多余的应用程序,在运行库层剪除部分没有利用的函数库,根据瘦客户端的外围设备,在内核层剪裁掉不需要的内核驱动程序,根据ICA传输协议重新编写网卡驱动,优化了网络传输效率.
在计算机机房部署虚拟云桌面过程中,为了解决大量虚拟桌面同时启动时出现启动时间过长、响应时间过慢的问题,将多台服务器组成资源池,提高云端的响应速度和空间资源.
2.1.1 建立资源池
根据客户端用户数量和应用需求,选择服务器数量,将每台服务器安装XenServer系统,并选择一台计算机作为XenCenter用户管理界面[7].通过网络将多台服务器组成分布式资源池,并添加虚拟存储资源,为建立虚拟云桌面做准备.
2.1.2 建设虚拟机
利用虚拟池中的本地映像安装虚拟机系统,或在虚拟存储资源中添加New Storage虚拟存储[8],从网络中共享映像文件.
通过XenCenter管理界面,将所有虚拟机安装在分布式资源池中.首先,建立多台虚拟机系统,采用Windows 2008 R2系统作为域管理和虚拟云桌面管理服务器并部署Windows7作为用户虚拟云桌面映像系统,域管理和虚拟云桌面管理服务器分别命名为AD服务器和DDC服务器,通过Windows7虚拟机映像大量部署用户虚拟云桌面系统[9],云桌面的拓朴结构如图3所示.
图3 云桌面的拓朴结构Fig.3 The topology of cloud desktop
根据用户需求部署虚拟云桌面,选择操作系统模板并安装用户需求专业软件.下面以Windows7系统为例说明安装过程,通过在AD服务器中配置域,在域控制器中添加DNS服务器[10],分别将DDC服务器和Windows7系统加入到AD域中,在DDC服务器建立数据库以保存用户数据,并部署虚拟云桌面XenDesktop[11],最后在Windows7系统中安装用户需求的软件做成虚拟云桌面父映像模板,为用户创建虚拟云桌面,使用DDC服务器作为用户的管理平台.
以广东某大学自动化学院为例进行分析,该学院有研究生200名,而实验室只有140个座位.按照传统方式安排座位,将有60名研究生无法使用实验室.鉴于所有研究生不会在同一时间使用实验室,学院决定为实验室部署虚拟云桌面,为每个同学建立独立虚拟云桌面,当同学进入实验室时,通过瘦客户端登录自己的虚拟云桌面,这样就较好地解决了实验室空间不足的问题,并且极大地节省了能源.
根据测试经验,将机房瘦客户端数与CPU内核数设置为5∶4的比例,目前机房瘦客户端数是140台,需要112个CPU内核[12].本方案采用5台服务器,每台服务器配置两路E5-2695 CPU,每路12个内核,总共120个内核,预留8个内核,采用内存总数为640 G,能够很好地满足需求.
在瘦客户端方面,采用了性能卓越的ARM cortex a8作为瘦客户端的处理器,不仅支持1 000 M网络传输和1 080 p@30 fps高清视频输出,并且根据用户需求扩展出丰富的外设接口[13].
具体部署实现如图4所示,图中包括服务器、显示器、瘦客户端和鼠标、键盘等外围器件.
图4 虚拟桌面部署图Fig.4 The configuration of virtual destktop
通过DDC服务器中的XenCenter管理界面,以Windows7系统为镜像模板,同时部署200个虚拟桌面,用户可通过瘦客户端CitrixReceiver进入到虚拟云桌面登录界面[14],输入DDC服务器IP地址、管理员分发的用户账号和DC服务器域名地址即可成功登陆到用户虚拟云桌面[15],使用户体验到使用独立PC机的效果.
在测试中为瘦客户端安装3种操作系统:Android、Ubuntu和优化后的Android,它们在瘦客户端中的启动时间分别为45、52和38 s.
从测试中可以看出优化后的Android系统能够很好地缩短瘦客户端启动时间,同时瘦客户端性能较好和丰富的外设接口使虚拟云桌面系统能够很好地满足用户需求.由于云桌面与瘦客户端通过网络交互的特点,虽然音频能够达到同步传输,但在传输高清视频时画面稍有一点延时现象,至此完成了实验室部署虚拟云桌面的全部操作.
通过部署分布式服务器资源池,优化瘦客户端软、硬件系统,建立虚拟云桌面,使计算机机房建设成本和功耗降低、管理更加简单、瘦客户端更加实用,在学校计算机机房建设中,很好地弥补了以往出现的不足.在以后工作中将针对高效管理虚拟桌面和应用程序方面做进一步研究.
[1]谢峰.数字化校园桌面虚拟化系统的设计与实现[D].广州:华南理工大学软件学院,2012.
[2]刘云新.面向新一代移动计算平台的系统虚拟化研究与应用[D].上海:上海交通大学电子信息与电气工程学院,2011.
[3]王溥希,冯广.带有随机时延和丢包的网络控制系统最优控制策略研究[J].广东工业大学学报,2014,31(1):32-35.Wang P X,Feng G.A study of optimal control strategy of networked control systems with stochastic delay and packet losses[J].Journal of Guangdong University of Technology.2014,31(1):32-35.
[4]胡嘉玺.企业级虚拟机应用实战[M].北京:电子工业出版社,2009.
[5]郑萌.Android系统移植和驱动开发[M].北京:电子工业出版社,2013.
[6]韩晓山.运用Citrix实现桌面虚拟化管理[J].中国科技信息,2012,33(22):72-75.Han X S.Using citrix realization of desktop virtualization management[J].China Science and Technology Information,2012,33(22):72-75.
[7]王庆波,何乐.虚拟化与云计算[M].北京:电子工业出版社,2009.
[8]李军,鲍鸿,程院莲,等.单片机网络控制系统[J].广东工业大学学报,2004,21(1):8-12.Li J,Bao H,Cheng Y L,et al.The distributed network control system with technique of monolithic computer[J].Journal of Guangdong University of Technology,2004,21(1):8-12.
[9]石磊,邹德清,金海.Xen虚拟化技术[M].武汉:华中科技大学出版社,2009.
[10]倪旭翔.ARM Cortex-A8嵌入式系统开发与实践[M].北京:中国水利水电出版社,2011.
[11]宋宝华.Linux设备驱动开发详解[M].北京:人 民邮电出版社,2008.
[12]Lawrence R.Rabiner.A tutorial on hidden Markov models and selected applications in speech recognition[J].Proceddings of the IEEE,1989,77(2):257-286.
[13]王向辉,张国印,赖明珠.Android应用程序开发[M].北京:清华大学出版社,2012.
[14]高洪岩.Android学习精要[M].北京:清华大学出版社,2012.
[15]张洪素.基于Xen的虚拟交换技术的研究与设计[M].天津:天津大学,2011.