基于开源虚拟桌面的嵌入式实验平台
2017-09-28吴阕陈云芳
吴阕++陈云芳
摘 要:伴随着云计算的推广,教育私有云逐渐成为一种满足更多教学需求的主要手段。文章在分析教育云应用的基础上,提出一种基于开源虚拟桌面的嵌入式实验平台,并具体说明平台的架构和系统的实现过程。
关键词:教育云;虚拟桌面;嵌入式开发板
1 云计算及其教育价值
云计算将计算机、服务器以及运行在此类设备上的应用程序、服务组成一个可以依托互联网来访问的资源池。用户可以利用各种终端请求资源池中的软硬件资源。
云计算技术的发展带动了分布式计算、并行计算和网格计算的发展。现阶段,涉及云计算领域的厂商分成两种,第一种是只提供固有技术的云环境或云计算技术的部分技术支持的厂商,我们称之为云服务引擎商。另一类则是诸如Google、Microsoft、Amazon、IBM、Yahoo这样的IT企业,它们是真正意义上的云服务供应商,可以提供操作系统、数据库等许多功能性服务。虽然不同厂商的产品在结构上差异较大,但它们都按照IaaS(基础设施即服务)、PaaS(平台即服务)以及SaaS(软件即服务)3种层次标准区分。
1.1 云计算的教育价值
云计算技术和教育系统的有机结合,诞生了教育云这一独特的新型IT服务。传统教育资源的界限也在不断模糊,除了传统的教学楼、师资、课本,更多像是计算机、平台、经验、数据等新兴的或实体或抽象的概念也被纳入了教育资源的范畴。未来,在信息化教育建设上,此类元素将获得更高的权重。伴随着越来越多的高校和教育机构对教育云模式的认可,不同的平台、数据、计算资源、存储资源将会按照科学的方式重新组合升级,依托于云计算技术、虚拟化技术服务于学生。信息化教育的发展意味着未来会出现更多的教育系统互联、教育资源共享以及更高效的教学活动。
虚拟化方案方面,教学场景与传统的企业场景有许多不同之处。首先,教育系统中,虚拟化的规模不大,适用于企业的数百或数千台机器的虚拟化方案对于教育系统不是必要的;其次,教学实验中底层需要接入的外设种类繁杂,企业级虚拟化对底层外设的兼容性和扩展性较差,很难满足特定的教学需求;最后,现有的解决方案对于教育系统而言价格过高且不开源,高校或教育机构的IT团队难以通过二次开发设计符合教学场景的特性。
1.2 教育云的应用
机房实验室虚拟化是教育云的一项主要运用,许多高校的课程安排需要机房实验室根据教学需求在短时间内切换到不同的实验系统甚至设备上。
1.2.1 虚拟化方案
机房实验室虚拟化最重要的两点就是虚拟化和云桌面的实现,这两者可以统一纳入虚拟桌面基础架构,目前最具代表性的厂商是VMware和Citrix。此外,Microsoft、Redhat、Oracle等厂商也有包含各自特点的产品或解决方案[1-4]。总的来说,相对成熟的虚拟化解决方案均集中在VMware的vSphere和Citrix的XenServer套件上。各厂商采用的技术见表1。
VMware公司的vSphere平台从硬件中提取出系统、应用和数据,统一存放在数据中心里,这些元素彼此隔离,独立存在,企业的IT团队可以单独对它们进行管理和调整。系统方面,VMware支持目前最流行的Windows和Linux的各种发行版;存储方面,VMware系列产品同时具备本地和网络存储(NAS或SAN)能力,格式上会将数据保存为VMware公司特有的虚拟机文件系统;备份和恢复方面,“vSphere数据恢复(Data Recovery in vSphere)”部件为虚拟机提供了备份功能,用户可以利用此功能为虚拟机保存周期性的快照,这个工具的缺点是无法嗅探到应用[1]。
Citrix公司的XenServer平台是由开源虚拟机项目Xen发展而来的,许多业界领先IT厂商参与其中,发展迅速,技术架构也非常领先。XenServer充分利用了Intel VT和AMD-V這类CPU厂商开发的硬件辅助虚拟化,它拥有更快捷、更高效的虚拟化计算能力。所以,XenServer平台上的虚拟机在性能上几乎可以与物理机相抗衡,管理上却比相同数量级的物理机要容易得多,效率更高[2]。
1.2.2 远程桌面协议方案
在虚拟桌面基础架构中,核心的部分是远程桌面协议。协议规定了用户输入的信息按照何种格式打包压缩、如何加密等。这些信息封装完毕后通过网络传给虚拟机,以约定的同种协议解析、输入,虚拟机以相同的方式将信息传回给用户。当前主流的远程桌面协议包括RDP、ICA、PCoIP、SPICE以及VNC。
其中,RDP、ICA和PCoIP协议都是企业私有的,SPICE和VNC则是开源的协议,开源的优势之一在于可以支持多种操作系统。SPICE协议对于底层KVM的依赖较高, VNC协议的工作原理是客户端与服务端之间互相传输用户的输入和远程桌面的变化,它底层建立在远程帧缓冲协议(remote frame buffer protocol)之上。VNC基础架构简单,其跨平台兼容性能十分优秀,可以连接不同的操作系统进行远程控制访问,这也是我们采用它作为远程访问协议方案的主要原因。
2 基于开源桌面的嵌入式实验平台
2.1 系统架构
本文提出的“基于开源虚拟桌面的嵌入式实验平台”是一种不同于传统教学系统的虚拟机房实验室。该系统依托学校内的局域网隔离真实机房,将服务器、嵌入式开发板等实验室设备以学生用户为单位分配,学生在原机房内以远程桌面的形式访问实验环境。虚拟实验平台架构如图1所示。
服务器虚拟化套件Xen在服务器端建立资源池,创建计算资源池和存储池,在池中创建若干个Ubuntu和 Windows系统的虚拟机,为学生用户提供实验环境,还包括架设远程桌面服务器以及为运维团队提供管理窗口。
实验环境的虚拟机安装嵌入式开发板的教学软件,本地部署VNC服务端,与校园网隔离,建立与远程桌面服务器的单一网络连接,通过telnet访问局域网内的开发板进行开发,同时浏览器提供网络摄像头监控开发板的窗口。endprint
远程桌面服务器的虚拟机安装Guacamole,Guacamole是一个由不同Java程序构成的Web应用,它被设计成一个API,允许二次开发[5]。可通过部署在Tomcat的war包修改Web页面的样式和参数。具体实现过程如图2所示。
远程桌面服务器通过Web容器为用户提供远程访问。当连接建立时,Web页面的http协议自动接管与服务端之间的通信。命令行支持telnet和ssh两种协议。图形桌面支持RDP和VNC两种协议,分别用于与Windows平台和Linux平台建立远程控制连接。远程桌面协议由一个称为Guacd的中间层服务转换为Guacamole Protocol,使客户端和Web应用程序根据协议传输,服务端的Web应用程序解析协议,代替用户完成客户端的工作,连接到远程机器。远程桌面服务器虚拟机同时连接校园网和机房局域网,将局域网中的云桌面分发给校园网环境内的学生用户。
2.2 系统的优点
2.2.1 操作机与云桌面系统隔离
学生用户只需要登录云桌面系统账号,就可以远程访问教学所需的实验环境和软件。这些部署已经在服务器的虚拟机上完成,学生用户可以在不同的机房实验室通过PC或手机登录和操作自己的实验环境,这样,提高了教学的灵活性、实验环境的安全性以及管理效率,实验环境的复制与备份工作也变得更为简单高效。
2.2.2 科学部署
系统中需要解决的一个问题就是把开发板以云桌面和视频监控的形式提供给学生用户。由于维护、管理等因素,以开发板为例的各种特定的实验设备以云桌面和服务的形式交付给学生则更加高效、安全。采用这种架构,在扩展性上也有独特的优势,由于学生用户接触到的只是远程桌面,在更改系统架构的时候,只需要在后台就可以完成。
2.2.3 实验环境与传统机房兼容
传统的机房实验室绝大多数都部署了Windows操作系统,而Linux平台的实验通常只能在虚拟机上完成,采用该系统可以通过云桌面将实验环境与Windows平台隔离,解决了应用的依赖以及驱动等问题,减少不同实验环境发生冲突的几率。
3 系统实现
部署本系统时主要涉及的技术是服务器虚拟化和开源的远程虚拟桌面的实现。
3.1 实验平台
服务器通过光纤交换机连接到网络存储、嵌入式开发板和网络摄像头。虚拟机部署如图3所示。
开源的虚拟桌面由Guacamole服务器实现,依赖于Web应用提供给学生。Ubuntu虚拟机设置桌面共享后允许VNC客户端的远程访问请求。Web网页相当于VNC的客户端,由具备WebSocket、Canvas、JavaScript特性的HTML5浏览器将云桌面输出给学生用户。虚拟桌面提供一切学生需要的应用程序和依赖,同时,网络摄像头查看的嵌入式开发板也通过虚拟桌面的Web网页提供给学生。虚拟桌面如图4所示。
3.2 性能分析
与其他场景下的虚拟化方案相比,该方案开销低,外设兼容性满足各种利用串口和网口通信的嵌入式开发板,更适合教学场景规模。利用Xen与网络存储的设计,物理上使用多服务器以实现多层次的高可用性、灾难恢复和动态迁移的特性。虚拟桌面的设计只传输键鼠事件,减少网络带宽开销,同时实现系统的隔离,真实的实验机、嵌入式开发板、网络拓扑都隐藏起来,只对学生呈现一个虚拟桌面。
使用该方案,学生按照权限远程获得仿真桌面,产生不同的计算资源需求可以按需分配在多台物理机上,实现负载均衡。真实的操作在虚拟机上完成,高可用性和动态迁移保证了即使一台机器宕机,也可以在另一台机器上继续运行操作,这样就保证了数据安全和教学流畅性。统一后台部署的实验环境为学生省去了许多工作量,同时避免开发过程中出现其他错误。VNC服务器允许根据带宽设置桌面传输帧率、分辨率、色彩位数等参数来保证使用流畅性。与传统教学环境或是其他场景的虚拟化方案相比,本平台设计显示出更强的实用性。
3.3 未来展望
未来,可以使用更加轻量级的Docker技术完成虚拟化需求,部署本文系统中的实验环境。Docker技术是Linux平台的一个开源引擎,用于实现操作系统级别的虚拟化,它可以为应用程序创建一个可移植的容器封装,这些根据镜像所创建的容器可以高效便捷地发布[6]。通过这种方式打包发布Web应用的优势在于启动快、资源占用小、隔离性好、安全性高。具体实施可以将VNC加入到Docker的镜像中去实现通信功能模块,完成镜像创建后只要修改容器中的VNC Server就可以把封装的应用发布出去,实现用户可以在任何平台通过VNC客户端或Web网页访问。
4 结 语
基于开源虚拟桌面的实验平台主要运用云计算技术和虚拟化的技术,改进了传统机房实验室的组织架构,利用计算资源的时间和空间需求差异满足实际教学需求,降低了高校对基础设施的持有成本和管理成本,具备良好的实用价值。该系统的设计提出了以云桌面远程交付实验环境和设备的思路,符合国家教育信息化的规划,将促进教育信息化的发展,具有良好的发展前景。
参考文献:
[1] Citrix官方网站[EB/OL]. [2017-04-24]. http://www.citrix.com.
[2] VMware官方网站[EB/OL]. [2017-04-24]. http://www.vmware.com.
[3] 红帽子虚拟化官方网站[EB/OL]. [2017-04-24]. http://www.redhat.com/products/virtualization.
[4] 微软虚拟化官方网站[EB/OL]. [2017-04-24]. http://www.microsoft.com/china/CIO/virtualization/overall.mspx.
[5] Guacamole官方网站[EB/OL]. [2017-04-24]. http://guacamole.incubator.apache.org.
[6] 马越, 黄刚. 基于Docker的应用软件虚拟化研究[J]. 软件, 2015, 36(3): 10-14.
(編辑:彭远红)endprint