计算机实验室虚拟桌面设计

2019-11-19 06:40金永霞朱金秀
微型电脑应用 2019年11期
关键词:桌面虚拟化客户端

金永霞, 朱金秀

(河海大学 物联网工程学院, 常州 213022)

0 引言

虚拟桌面是一种重要的云资源交付手段,它利用虚拟化技术将用户的桌面环境存放于云平台,用户使用终端设备通过网络和远程桌面协议访问云端的客户桌面和应用程序。桌面虚拟化技术能够对用户桌面进行统一调度和管理,合理分配资源,降低维护成本,提升机房和实验室应用和管理水平,为高校计算机实验室的部署和管理提供了全新的解决思路。目前有代表性的商业化虚拟桌面产品如XenDesktop、VmwareView等已非常成熟但成本较高,因此研究者们对教学用虚拟桌面系统的架构、关键技术、热点算法等方面做了大量的研究[1-3],如文献[1]设计了基于QEMU-KVM虚拟化框架的虚拟化资源池及其管理系统,对虚拟桌面服务端的构建有一定的借鉴作用。文献[2]应用Vmware虚拟化技术实现用于实验教学的桌面云环境,提高了IT资源管理的水平和效率,但由于Vmware并不是开源的,在系统优化方面会带来成本上升。文献[3]提出了基于VDI技术的虚拟桌面管理平台解决方案,侧重于系统的可靠性和安全性设计并进行了测试分析。各高校也相继建立了符合自身需求的虚拟桌面管理平台[4-6]。

本文从高校计算机实验教学的特点和需求出发,设计基于OpenStack开源云框架的桌面虚拟化方案。由于OpenStack只提供了IaaS云平台的基础环境,并不具备对虚拟桌面应用的统一管控,本方案利用OpenStack提供虚拟桌面的资源池,在此基础上对桌面虚拟化的环境进行改进,设计虚拟桌面管理平台把OpenStack基础架构和桌面虚拟化技术相结合,使系统更适用于虚拟桌面应用的需求。以OpenStack云平台作为虚拟桌面的服务端,充分利用云平台自身强大的计算能力和安全性,有效整合各专业实验教学资源,提供资源共享、按需分配的实验环境支持。

1 桌面虚拟化设计方案

1.1 实验室桌面虚拟化需求

计算机实验教学机房需要根据不同专业不同课程的实验要求,配置多种实验环境,具有批量部署、集中管理的特点。从教学应用的实际需求考虑,实验教学机房的桌面虚拟化设计应该要满足以下几点:

(1) 支持个性化教学环境设置

要求根据不同课程的教学和实验要求,创建不同的虚拟桌面并进行个性化定制。用户可以随时通过校园网以浏览器、客户端的方式登录虚拟桌面系统,使用属于自己的桌面环境。

(2) 集中管控,提高管理和维护效率

解决传统桌面系统部署、软件更新效率低的问题,要求对操作系统和应用软件实现一次操作、统一部署;对客户机的运行状况、服务状态以及CPU使用率、内存使用率、网络负载等性能进行实时监控,并提供异常通知功能。

(3) 保证教学数据的安全性

解决开放式环境下的数据安全问题,要求对操作系统和应用软件进行及时更新和升级;实现对数据的备份,能将桌面环境快速恢复到某个可用的时间点状态。

(4) 负载均衡,资源利用率高

要求根据师生需求动态并合理地分配资源,提高资源利用率,维持系统的负载均衡,使系统保持相对稳定,提升桌面服务性能和工作效率。

1.2 桌面虚拟化架构设计

基于实验教学应用的需求,桌面虚拟化系统是通过网络、服务器、存储的虚拟化整合计算资源,对虚拟桌面部署和使用进行统一管理的虚拟桌面解决方案,能够提供多层次、多种类的实验资源,支持用户远程桌面访问。桌面虚拟化系统架构如图1所示。

图1 桌面虚拟化系统架构图

主要包括4个部分:

(1) 硬件资源:由高性能服务器、存储设备、网络及其他硬件设备组成,是桌面虚拟化系统的基础设施。

(2) 虚拟化平台:基于OpenStack云平台构建的虚拟化资源池,其将CPU、内存、硬盘、网络等物理资源通过KVM虚拟化技术形成统一的虚拟资源池,并以API的形式向外提供服务,供虚拟桌面管理平台调度和使用。

(3) 虚拟桌面管理平台:是系统的核心和调度中心,负责OpenStack云平台与虚拟桌面的交互,提供用户登录认证服务、虚拟机的调度安排和策略控制、对计算资源(CPU、内存、存储、网络)的性能数据进行监测、并发处理客户端的连接请求。

(4) 客户端:用于显示和操作虚拟桌面的终端设备,用户通过特定的客户端程序登录虚拟桌面系统,申请虚拟资源并定制个性化实验环境,使用远程访问协议获取虚拟桌面。

2 桌面虚拟化部署和实施

2.1 系统拓扑结构

根据实验教学需求分析和桌面虚拟化基础架构设计,虚拟桌面系统由服务端IaaS云平台(包括控制节点、计算节点、存储节点)、Web应用服务器、云终端以及网络通信设备、网络安全系统等组成。其拓扑结构如图2所示。

图2 桌面虚拟化拓扑结构

系统采用高性能服务器构成物理服务器集群,包括一个控制节点,一个存储节点和多个计算节点。控制节点负责对各项资源进行统一调度和管理,计算节点负责运行虚拟机,存储节点负责为系统提供存储功能。基于实际教学中网络数据传输和并发访问的要求,各物理服务器之间采用光纤交换机连接,保证服务器和存储系统之间通信畅通。机房终端接入采用全千兆以太网交换机,可满足机房集中实验100个用户并发访问虚拟桌面的需求。根据多用户条件下吞吐性能和存储容量需求,选择IP-SAN构建存储网络,支持多存储容量整合,实现对存储设备的集中管理、状态监控以及容量的动态扩展,提供虚拟化平台数据存储、备份空间和数据缓存功能。

Web服务器提供桌面应用程序和系统数据库服务,实现以浏览器方式访问云桌面。管理员和终端用户分别可以对权限范围内的资源进行访问和操作,管理员还可以在服务端通过控制命令方式对整个集群进行管理和维护。

桌面虚拟化系统服务端主要硬件配置参数如表1所示。

表1 服务端主要硬件配置参数

2.2 系统功能模块部署

系统采用OpenStack作为桌面虚拟化的基础服务架构,对实验资源和实验环境进行统一管理,提供基本的用户管理、镜像模板管理、虚拟机实例管理、存储空间服务等。为便于虚拟桌面应用的定制和统一管控,在IaaS基础架构之上部署了虚拟桌面管理平台,把桌面虚拟化技术和OpenStack基础架构相融合[7],实现更合理的资源配置和更简便的云桌面交付方式。桌面虚拟化系统功能模块部署的基本结构如图3所示。

图3 系统功能模块部署示意图

(1) 虚拟化平台

基于OpenStack构建的虚拟化平台提供了虚拟桌面应用的各项资源。平台的控制节点部署了数据库服务和消息队列服务等基础组件,以及OpenStack的计算服务Nova、镜像服务Glance、网络服务Neutron、认证服务Keystone。计算节点主要部署Nova组件提供计算服务,用来承载全部的桌面虚拟机实例。

(2) 虚拟桌面管理平台

虚拟桌面管理平台是虚拟桌面系统的核心,通过与虚拟化资源池、客户端之间的交互实现虚拟桌面的管理。利用OpenStack提供的丰富的API编写控制脚本,实现虚拟桌面应用环境的集成配置和统一部署,满足实验教学的功能需求。该平台主要部署以下功能模块:

云平台代理:是连接OpenStack云平台和虚拟桌面的桥梁,它对所管理的OpenStack平台发起API调用,也为客户端用户提供对虚拟桌面的管理和访问功能。

用户验证:通过在Keystone中集成 LDAP(轻量级目录访问协议)来实现。用户信息存储在LDAP服务器中,用户登录时,客户端将用户信息直接提交到云平台代理,由云平台代理调用相应API进行验证。若验证通过,则在云平台中生成用户会话,响应客户端的请求。

连接服务:基于SocketServer框架实现的异步通信模块,用以并发处理多个客户端的连接请求。通过配置监听端口和包过滤规则,侦听并接受客户端请求,根据用户名、密码发送该用户所拥有的虚拟桌面列表。

资源监测:系统采用开源的网络资源监控工具Ganglia对物理节点和虚拟机集群的CPU、内存和硬盘利用率等性能数据进行实时监控。为了给调度管理模块提供系统性能度量参数,监测服务将Ganglia采集的监控数据封装为特定格式的文件存储在物理服务器,通过定时读取该数据文件并进行解析,将获取的监测数据写入数据库并共享给调度管理模块。

调度管理:提供以负载均衡为目标的虚拟桌面调度策略。在创建虚拟桌面时,根据获取到的云平台性能监测数据,结合虚拟桌面的资源需求,将虚拟桌面实例部署到合适的物理节点上,避免系统使用时由于负载不均而导致虚拟机的频繁迁移。

(3) 客户端

客户端应用程序是终端用户的直接操作模块,基于Spice协议进行开发和设计。根据实验室终端机的配置情况和实验教学的需求,生成针对Windows用户的虚拟桌面客户端安装文件,并在本地安装该文件得到客户端应用程序。用户在客户端提出访问申请,验证成功后会看到自己所拥有的所有虚拟桌面,并可以对虚拟桌面进行操作。

2.3 关键模块实现

虚拟桌面管理平台各功能模块基于 OpenStack 提供的API接口,使用Python语言编程实现,并通过对OpenStack配置文件进行参数设置,将相关管理控制功能集成到云平台中。下面介绍云平台代理和调度管理这两个模块的具体功能和实现方法。

(1) 云平台代理模块

为提高系统的安全性,云桌面管理平台在与其之外的模块进行通信或API调用时,要通过云平台代理模块实现。云平台代理为客户端提供访问OpenStack云平台的接口,也为用户验证提供与LDAP服务器交互的接口。在该模块中基于面向对象技术设计实现以上接口功能的关键类,采用Python 拓展技术封装而成。这些类的交互关系如图4所示。

图4 云平台代理模块关键类图

LDAPProxy类是云平台用户验证的代理,负责向LDAP服务器认证,其中封装了auth、modify等方法实现对用户的验证和修改操作。

LDAPConnect类封装了connect等方法,主要功能是通过与LDAP服务器的交互,判断用户提交的信息是否可以通过认证。当客户端将用户名和密码提交到云平台后,由云平台代理委托给LDAPProxy的auth方法。在auth方法中生成LDAPConnect,调用其connect方法执行搜索、匹配、绑定LDAP服务器等操作,若绑定成功则验证通过,否则验证失败。

ServerAPI类提供对云平台进行远程API调用的函数,客户端用户通过该接口实现获取虚拟桌面以及改变虚拟桌面状态的功能,包括启动、停止、删除、挂起、唤醒虚拟桌面等操作。

(2) 调度管理模块

调度管理模块的主要功能是为创建的虚拟桌面寻找合适的计算节点,同时使得各个计算节点负载尽量平衡。结合OpenStack默认的调度策略FilterScheduler,该模块的调度管理也分为两个步骤:① 自定义json 格式的过滤器脚本,根据用户配置的硬件需求、用户指定的实例类型和计算节点当前的可用资源判断计算节点是否符合要求,得到满足条件的所有可用节点的集合。② 按照负载均衡策略实现权值计算。根据计算节点的性能监控数据,评估各节点的负载状态(即计算权值),选取权值最小的节点为目标节点。

调度管理算法对虚拟资源r(r∈{cpu,memory})进行综合考量,具体实现流程如下:

Step1 提交创建虚拟桌面的请求,确定该请求对虚拟资源r的需求Rr(r∈{cpu,memory});

Step2 若集群的虚拟资源足够分配该请求, 获取满足过滤条件的可用节点列表{H1,H2,…Hn};

Step3 根据各节点的性能监控数据,获取节点中虚拟资源r的已分配量Ur,节点所提供的虚拟资源r的总量Tr;

Step4 对每个可用节点Hi,评估Hi的负载状态Li

Step5 选取Li最小的节点Hi做为部署虚拟桌面的目标机。

在具体实现时继承OpenStack的filter类和weighter类,自定义过滤器和权值计算器,重写对主机的过滤方法和权值计算函数。然后将过滤器的脚本文件集成到OpenStack控制节点nova安装目录的scheduler包中,同时在云平台的nova.conf文件中配置参数,指定过滤器列表和权值计算函数,从而实现对OpenStack调度机制的扩展。过滤器和权值计算关键类如图5所示。

图5 调度管理模块关键类图

3 桌面虚拟化在实验教学中的应用效能

计算机相关专业课程所涉及的软件类型多、更新快,对运行环境要求也较高。将桌面虚拟化技术应用在实验教学中,实现对资源的集中管理、统一配置,提供简便灵活的访问方式,满足了教学应用的多样化服务需求。具体表现在以下几个方面:

(1) 提供多样化、个性化实验教学资源

随着我校实践教学内涵建设的不断推进,学生对实验资源的需求表现出多样化、多层次的特点。基于桌面虚拟化技术的实验教学机房提供多种实验资源支撑,包括基础课程资源和创新训练平台,用户可按照个人需求定制个性化虚拟桌面,根据实验需求部署相应的软件开发环境,建立自己专有的桌面环境。虚拟桌面系统配置了包括主流操作系统、数据库管理系统、软件开发语言环境、分布式数据处理以及移动应用程序开发等在内的多种实验资源,满足不同专业课程的实验需要。此外,根据学生创新实践项目和学科竞赛活动的要求,还部署了适用于大数据项目实践、云计算应用训练、移动流媒体应用开发等项目的创新实践训练平台,支持学生开展自主创新实践活动。

(2) 开放的实验方式

与传统实验方式相比,桌面虚拟化提供了时间、空间和资源的便利,学生通过校园网可以随时随地登录到虚拟桌面系统,申请分配实验所需的软硬件资源,体验主动学习的新型实验环境,大大提高了实验过程的连续性和开放性。

(3) 提高机房运维效率

采用桌面虚拟化技术,实验教学的所有数据和应用软件都运行在云端,由虚拟桌面管理平台对资源进行统一认证和管理,便于硬件资源的扩展和软件资源的升级、更新,实现有效的教学管理、资源配置和实验部署。借助OpenStack云平台提供的独立虚拟网络环境实现了应用程序的隔离,保障了多用户环境下的数据安全。桌面虚拟化系统中的实验环境具有快速部署、易于备份和恢复的优点,大大提高了实验机房的运维效率。

4 总结

通过把桌面虚拟化技术应用于高校实验教学机房,在虚拟化资源之上提供新型的定制应用环境,既满足了不同的实验教学需求,也实现了对资源的最大化利用和最优化管理。云平台本身具有高性能、高可用性和易用等特点,基于OpenStack的桌面虚拟化方案的实施改变了传统实验教学方式,提高了实验维护管理工作的效率,也为深化高校教育教学改革和创新提供了很好的技术支持。

猜你喜欢
桌面虚拟化客户端
你的手机安装了多少个客户端
“人民网+客户端”推出数据新闻
——稳就业、惠民生,“数”读十年成绩单
基于OpenStack虚拟化网络管理平台的设计与实现
桌面装忙
用好Windows 10虚拟桌面
媒体客户端的发展策略与推广模式
服务器虚拟化的安全威胁及防范分析
新华社推出新版客户端 打造移动互联新闻旗舰
当灰尘厚厚地落满了桌面
浅谈虚拟化工作原理