基于OpenStack的私有云桌面在高校中的实现
2018-02-25常正超
常正超
摘要 桌面的虚拟化技术可以在高校PC数量众多、软硬件系统升级困难、位置分散等复杂环境中进行集中化配置管理,随着云计算的兴起,将桌面虚拟化技术与云计算技术相结合,能够有效的提高计算资源利用率、增强传统虚拟桌面系统弹性。本文提出了一种基于开源云计算OpenStack的私有云桌面实现方案。
【关键词】OpenStack 私有云 虚拟桌面 云计算
在传统高校环境应用PC的过程中,人员的流动和持续发展的软硬件技术一直影响着PC的实际部署。其中一个重要的因素就是为了能够跟上主流操作系统和常用软件的升级,IT和资产部门必须不断的为用户升级PC机。而且用户所具备的计算机相关知识参差不齐,这些现象除增加了大量的人力和财力成本之外,也带来了巨大的桌面安全隐患。例如关键数据丢失、各种恶意病毒的传播等。随着云计算技术的发展,其与虚拟桌面的结合,能够有效的对虚拟PC进行统一的维护与管理,可以解决信息安全等问题,实现弹性扩展、迅速部署,具有移动办公便捷、节能、资源利用率高等优点。
1 虚拟化与云计算介绍
1.1 虚拟化技术
虚拟化技术( Virtualization)是一种资源管理技术,是将计算机的各种实体资源(CPU、内存、磁盘空间、网络适配器等),予以抽象、转换后呈现出来并可供分区、组合为一个或多个电脑配置环境。由此,打破实体结构间的不可切割的障碍,使用户可以比原本的配置更好的方式来应用这些电脑硬件资源。这些资源的虚拟部分是不受现有资源的架设方式、地域或物理配置所限制。一般所指的虚拟化资源包括计算能力和数据存储。
1.2 云计算技术
云计算( cloud computing),是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需求提供给计算机各种终端和其他设备。美国国家标准和技术研究院的云计算定义中明确了三种服务模式:软件即服务(SaaS,Software as aService)、平台即服务(PaaS,Platform as a Service)和基础设施即服务(IaaS,Infrastructure as aService);其也涉及了关于云计算的部署模型:公用云(Public Cloud)、私有云(Private Cloud)、社区云( Community Cloud)和混合云(HybridCloud)。其中私有云具备许多公用云环境的优点,例如弹性、适合提供服务,两者差别在于私有云服务中,数据与程序皆在组织内管理,且与公用云服务不同,不会受到网络带宽、安全疑虑、法规限制影响;此外,私有云服务让供应者及用户更能掌控云基础架构、改善安全与弹性,因为用户与网络都受到特殊限制。
现有的私有云桌面解决方案大都是商用软件,构建企业或高校虚拟桌面成本较高。因此本文采用开源的OpenStack应用于虚拟桌面中,提出了基于OpenStack的私有云桌面实现方案。
2 0penStack概述
2.1 0penStack起源
OpenStack是一个美国宇航局和Rackspace合作研发的云计算软件,以Apache授权条款授权,并且是一个自由软件和开放源代码项目。OpenStack是基础设施即服务(IaaS)软件,让任何人都可以自行创建和提供云计算服务。此外,OpenStack也用作创建防火墙内的“私有云”(Private Cloud),提供机构或企业内各部门共享资源。如图1所示。
2.2 0penStack架构
如图2所示,OpenStack采用模块化设计理念,全平台系统有多个模块项目构成,每个项目实现独自的功能,同时项目之间采用消息队列进行通信,将项目之间的耦合性将到最低,每个项目都可以单独的安装和測试,因此在采用OpenStack部署云平台的时候,我们可以根据自己的需要选择相应的模块项目进行部署。
Nova,为整个云计算架构的Controller,提供计算服务。Keystone,为OpenStack的认证服务中心,为其他模块之间的请求提供认证服务。Glance,提供镜像服务,创建虚拟机时需要通过Glance服务选择镜像模板。Neutron,提供OpenStack的网络服务,负责Nova创建虚拟机时配置IP地址等网络功能。Horizon,是管理OpenStack各个模块的web平台,大部分模块都可以通过Dashboard进行图形化操作。Swift、Cinder,提供对象存储、块存储服务,将虚拟机上的数据进行持久化存储。
3 基于OpenStack私有云桌面系统实现
3.1 系统架构
一个虚拟桌面系统需要虚拟桌面服务器、资源池管理器、终端客户端以及桌面传输协议等几个部分组成。将私有云结合到虚拟桌面技术中,可以利用如图3所示的架构实现私有云桌面。利用私有云的弹性计算、安全可靠等天然优势来实现虚拟桌面服务器以及资源池的管理。用户通过运行一些低成本的客户端软件,通过认证服务器的认证获取到操作虚拟机资源池的权限,客户端得到授权后通过相应的虚拟桌面传输协议连接到虚拟资源池里的虚拟机,这些虚拟机放置在学校的IDC数据中心,通过OpenStack进行创建和管理。用户可以像使用PC机一样使用虚拟机。
3.2 系统部署
本文中OpenStack所有节点均使用Centos7.4,内核版本为Linux3.10,数据库为MariaDBl0.1,OpenStack版本为Ocata。CPU使用AMDRyzen17003.OGHz8核16线程,内存为16GBDDR43000Hz,存储为RAID磁盘阵列。当用户通过运行在终端客户机上的客户端程序(浏览器或专用APP)输入正确的用户名和密码信息向后台服务器发出连接虚拟机的请求。请求信息发送到认证服务器,经过Keystone的认证返回一个token,客户端得到合法的token后由Nova-schedule选择一台部署了Nova-compute服务的节点,分配该节点上的一台虚拟机给相应的用户,客户端软件与虚拟机之间相连,相应的虚拟桌面返回到用户的客户端上。
OpenStack是一种分布式系统,它需要提供弹性水平扩展、计算、控制分离的功能。OpenStack主要分为控制节点(Controller)和计算节点( Compute)两种不同功能的节点。在实际应用中,OpenStack会采用多节点的部署方式以实现云平台的弹性。
(1) Controller负责整个系统的管理和控制,是控制整个平台访问的中心节点,所有的外部请求都必须通过Controller节点进行处理。同时它需要对所有的Compute节点进行管理和调度。而且一般Keystone(认证节点)也部署于Controller节点之上,KeyStone的认证信息一般存储在Maria DB数据库中。习惯中我们也将Glance(镜像服务)部署在Controller节点之上,所以一旦Controller不能正常运行时,整个OpenStack云平台都将瘫痪。在服务器集群中很有可能会发生由于硬件故障或人为操作的原因而造成单个或者多个节点故障,即便是不出现故障,服务器集群运行一段时间后也是需要做物理节点或者软件的维护升级,这时也是需要暂时停止某些物理节点。因此一个可靠的服务器集群系统必须要做好解决单点故障的方案,良好的集群系統应该能够承受单过或多个物理节点产生故障。所以,为了提高系统的可用性,在Linux系统下我们有多种解决方法,如:HAproxy. keepalived、heartbeat、pacemaker等。
(2) Compute节点是虚拟机最终跑在的节点,主要通过虚拟技术创建一些可用的VM。此节点需要虚拟CPU与内存给虚拟机使用,因此部署Compute节点的物理主机的CPU需要尽可能的支持多核心多线程、内存尽可能的大一些,这样一个Compute节点才可以虚拟出较多的VM,并且保证VM的性能。单个虚拟机的资源配额以及Compute节点上虚拟机的数量都会影响用户的使用体验。所以OpenStack支持Compute节点的动态水平扩展,一般一个云平台包含多个Compute节点。
(3) Glance节点通常是部署在Controller之上的,创建虚拟机是需要通过它选择镜像模板,并且在上次镜像时可以指定镜像的属性、位置等相关权限。需要特别注意的是,OpenStack在实际中大多数情况下是为企业搭建公有云或私有云平台使用的,而企业中的服务器绝大多数使用的都是Linux操作系统,所以OpenStack官方并没有给出创建Windows系列虚拟机镜像的方法。而在高校中,大部分用户是习惯使用Windows的。OpenStack管理虚拟机需要virrio驱动,但是Windows默认不支持virtio驱动,所以至少需要手动添加两个最基本的vlrtio驱动,一个是硬盘驱动一个是网卡驱动,即:virtio-win-1.1.16.vfd和virrio-win-0.1-30.iso。并通过VNC手动安装Windows系统以加载virtio驱动。
(4) Neuron节点,提供各种网络服务和网络模型,并根据实际使用情况创建安全组规则。在使用Windows系列的虚拟机时,需要开放ICMP协议和RDP协议,以供网络测试和远程桌面连接。
(5) Cinder节点,通过逻辑卷的方式为虚拟机提供动态的磁盘容量扩展,并且可以实现网络云盘的功能,方便用户间数据共享。
3.3 验证测试
用户可使用Web界面通过身份认证后根据自身权限和需求申请虚拟机,申请成功后通过浏览器或者专用客户端软件连接至虚拟机。连接成功之后即可像使用本地PC -样使用虚拟机。
4 总结展望
本文根据目前高校PC机实际部署中出现的各种问题,提出了基于开源云平台OpenStack实现私有云桌面系统的解决方案,实现了统一管理、信息安全、节能减排等目标。根据统计数据,一台传统的PC机配上显示器后平均功耗在200w左右,而一台云终端配上显示器再加上服务器的均摊功耗平均在30w左右,就其节能效果而言是非常显著的。
制约云主机性能的因素是多种多样的,如CPU规格、内存速率、网络带宽等,未来需要对不同的物理服务器设定合理的评价指标和进一步性能优化,但是云计算因其独特的优势,其于桌面虚拟化技术的融合一定是未来研究和应用的重要方向。
参考文献
[1]邓倩妮,陈全.云计算及其关键技术[J],计算机应用,2009,29: 71-73.
[2]杨智楠,虚拟桌面技术应用与研究[J].信息安全与技术,2011,12: 75-77.
[3]云计算白皮书[R],工业和信息化部电信研究院,2012.