赵丽娜,冯兴杰
(中国民航大学信息网络中心,天津 300300)
云计算是一项融合多项计算机技术的以数据和处理能力为中心的密集型计算模式[1],利用云端资源,如大型硬件平台、数据中心、应用服务中心等为互联网用户提供资源租用、应用托管、服务外包等服务[2-3],主要分为3个层次,即基础设施即服务(IaaS)、平台即服务(PaaS)、软件即服务(SaaS)[4-5]。云桌面是云计算的重要应用领域之一,主要通过远程接入技术,以虚拟化的形式来分享后台物理服务器提供的CPU、RAM、硬盘和计算资源[6]。
Amazon云桌面平台被称为弹性计算云,为用户或开发人员提供一个虚拟的集群环境[7]。清华大学的云桌面平台由透明客户端、透明网络、透明服务器组成,用户只需使用服务器,而不用关心后台结构[8]。侯文慧等[9]对云桌面中存在的视频播放不流畅的问题提出了视频侦测算法。Kim等[10]对云桌面中存储、硬盘、CPU等工作负载的特点进行了研究。Cao等[11]提出了一种用于云桌面服务的轻量型网络显示协议,用以减轻云桌面服务对服务负载和网络带宽的消耗。
目前,高校的实验室管理中通常存在地理位置分散、终端数量多、配置多样化、部分用户对数据安全性要求较高等问题[12-13]。通过设计并实现基于VDI技术的云桌面应用方案,将企业级服务器和虚拟化的优势进行融合,由云端服务器提供用户所需的资源,为用户提供高性能的计算和存储,有效提高了计算和存储资源部署的灵活性,实现了统一管理,满足了多样化教学需求;同时,通过合理部署防火墙和配置用户权限,保障了云桌面和用户数据的安全性。
主流的云桌面产品有 Citrix、VMware、Microsoft[14],其中,Microsoft VDI技术是一个桌面交付模型,支持将客户端桌面工作负载托管在数据中心的服务器上,用户使用终端通过远程协议进行访问,采用集中管理、云端计算、云端存储的工作模式。
VDI架构共分为4个层次,分别为用户层、应用接入层、应用交付层、存储服务层,如图1所示。
图1 VDI架构Fig.1 Architecture of VDI
用户层为用户利用实验室内现有的台式机、瘦终端、笔记本等,通过网络向云桌面平台发起连接,使用相应的服务。
应用接入层包括Web服务器和网关服务器。Web服务器负责处理用户通过浏览器发起的访问请求,根据认证结果为用户提供资源。网关服务器负责获得授权的用户连接到应用交付层,提供完整的虚拟桌面或应用,将内部所有的远程桌面协议(RDP)请求转换为安全套接层(SSL)流量,为数据传输提供加密隧道,给用户提供更加安全的虚拟桌面访问服务。
应用交付层包括连接代理服务器、目录服务器、授权服务器、RD虚拟化主机池、RD会话主机池。连接代理服务器是整个应用交付层的核心,主要负责:①Web服务器、RD虚拟化主机、RD会话主机服务器群之间的通信;②提供认证用户可用的虚拟桌面列表,并生成相应的信息使终端能够连接到虚拟桌面;③虚拟桌面服务之间的通信,进行虚拟桌面注册并保持虚拟桌面状态。目录服务器负责向服务器提供标准的LDAP(轻量目录访问协议)目录服务。授权服务器负责给用户与资源池之间连接授权,保障多并发连接的可用性。RD虚拟化主机和RD会话主机负责提供计算功能,承载虚拟机集合池和个人虚拟机集合及托管应用程序。
存储服务层提供云桌面平台存储,负责存放虚拟机文件、用户形成的个人数据文件及其他系统文件等。
云桌面平台采用32台刀片服务器和一套集中存储服务器作为硬件基础。其中,刀片服务器用作计算资源,集中存储服务器用作存储资源,实现云桌面平台计算和存储相分离的模式,同时为计算资源互为备份,存储资源统一管理奠定基础。
云桌面交付过程如图2所示。
图2 云桌面交付过程Fig.2 Cloud desktop delivery process
网络是云桌面平台的基础,用户与云桌面的交互及云桌面内部之间的通信全部依靠网络,为保障网络的高性能和安全性,采用“三网分离”原则,即管理网、业务网、存储网单独分开,具体设计如表1所示。
表1 云桌面网络设计Tab.1 Design of cloud desktop network
其中,管理网、业务网均采用双口万兆接入,存储网采用双口8GB FC接入,网络各节点均实施双节点冗余部署,消除网络上单点故障隐患。
根据微软及实际环境的测试,在VDI架构中,每个用户的需求带宽平均为400 kbps,若要满足1 000用户并发访问,则总带宽需求为400 Mbps。在校园网内部,数据中心到外部至少为1 Gbps的带宽,且内网延迟通常小于10 ms,因此可满足虚拟桌面交付的网络需求。
云桌面平台存储类型包括固态硬盘(SSD)和机械硬盘(HDD)两大类。为兼顾数据的安全性和存储性,采用RAID5技术分别组成SSD_RAID组和HDD_RAID组。存储空间采用FC-SAN方式,LUN是存储空间的标识,划分不同容量的LUN并通过LUN ID为刀片服务器挂载物理存储。
用户在使用云桌面平台时调用的数据分为3种:模板镜像数据,虚拟机差异文件数据和用户个人数据。
模板镜像数据由集合的模板文件导出,包含操作系统的主体信息。每个集合只存在一份模板镜像数据,集合中所有虚拟机的模板都从该镜像中读取。因此将该镜像放在随机存取快、功耗低的SSD层中,可提高反应速度,降低池桌面的存储负载和延迟,缓解启动风暴。
虚拟机差异文件数据是每个虚拟机都会生成一个虚拟机差异文件,主要存放该虚拟机的IP地址、SSID信息、虚拟局域网(VLAN)信息等。该部分数据量较大、存取要求不高,可放在容量大、价格低、随机存取速度一般的HDD层中,实现最优成本下的最佳性能。
虚拟机数据加载过程,如图3所示。
图3 数据加载过程Fig.3 Data loading process
用户个人数据包含所有个人文件及数据,通过采用微软SOFS可扩展文件服务器集群,以通用网络文件系统(CIFS)的方式挂载,为用户提供文件存储服务。由于Windows单个目录的子文件夹和子文件数量具有限制,为避免在达到一定数量级后,目录遍历及打开速度缓慢,同时为按特征清理用户数据打好基础,可在存储上划分不同的分区来存放不同类型用户的数据。
云桌面平台中的服务器群采用Hyper-V服务器虚拟化平台,Hyper-V采用微内核结构,在单一硬件服务器上,建立多个虚拟主机,这些虚拟主机虽然共享同一硬件资源,但操作系统各自独立、互不干扰。
云桌面平台中的服务器分为两大类,一类是基础架构服务器,包括目录服务器及VDI的各角色,所有的基础架构组件均采用高可用模式部署,由2台刀片服务器承载;另一类是RD虚拟化主机或RD会话主机服务器群,为用户提供可交付的虚拟桌面或应用,由30台刀片服务器承载。两类服务器分别纳入两个故障转移群集,每个刀片服务器成为群集中的一个节点,当群集中一个或多个节点出现故障或需要对节点进行维护时,故障转移技术能够将其运行的虚拟化资源转移到其他正常的节点上,从而保障云桌面的正常运行。服务器角色信息如表2所示。
表2 服务器角色信息Tab.2 Server role information
在云桌面平台所有角色中,目录服务器是整个平台的核心基础架构组件,承担基本用户鉴权与认证功能,同时也承担计算机管理、DNS解析等功能。
连接代理采用SQL Server作为核心数据库,3台SQL Server虚拟机配置成 SQL Server AlwaysOn的Group方式,其中,两个主副本,一个辅助副本实现三读两写。当其中一台数据库服务器宕机后,可以自动切换到其他数据库服务器,业务不中断。
Microsoft VDI提供了3种部署选择:基于会话的桌面、池化虚拟机集合、个人虚拟机集合。其中池化虚拟机集合具有可共享的虚拟机池,且具备用户注销时桌面自动回滚、用户数据文件单独存放、管理员只需管理一个映像等特点,因此选用该方式来进行部署与实验室需求最为符合。对于普通用户,采用标准化桌面,应用程序由管理员统一部署,用户无法自行安装,但用户个人文件、系统设置可以保留。
云桌面资源池中的每个虚拟桌面所有的属性均与模板保持一致,因此在制作虚拟机模板时,需将所用软件预先安装在模板上,在安装软件后要对模板文件进行碎片整理和配置调优,以保证池化资源中不含有冗余配置等影响系统性能的文件。
为保障资源的利用率,每个用户从池中选择虚拟机进行登录,注销后虚拟机资源自动释放,同时设置电源策略,当用户无会话超过30 min后,自动注销虚拟桌面。
由于VDI云桌面实际是通过调用Windows系统的远程桌面,建立一条用户个人电脑和虚拟桌面之间的3389端口连接,而该端口是微软预定义的远程端口,容易成为被攻击对象。为保证云桌面的安全,在此引入云桌面网关,为用户与虚拟桌面的连接建立一条加密隧道。在云桌面对外发布时,将网关作为进入云桌面的唯一入口,对外只开放443端口,将3389连接转换为443连接,提高了系统访问的安全性。
在部署时,将基础架构角色和提供给用户的虚拟机池划入不同的VLAN中,防止用户通过池化主机进入局域网对基础架构进行破坏。
所有用户应用程序、桌面、数据都放置于数据中心内,用户的各项执行操作均在数据中心内部完成,最终将执行的结果以屏幕变化量的方式传输给用户。向用户交付的并非真实数据,数据并不离开数据中心,保障数据管控的安全性。
在云桌面虚拟机池中下发100台虚拟机,每台虚拟机配置4核CPU,8G内存,操作系统采用Win7企业版,并根据用户需求预装了Office 2010、视频播放器、福昕阅读器、解压工具、CAXA、Solidwork,AutoCad 2007等常用软件。下发完成后,用户通过浏览器打开云桌面登陆界面,使用个人账号登陆进行连接操作,等待连接完毕后,可以看到用户能够获得一个完整的Windows桌面,且能够使用桌面上提供的完整程序。用户在云桌面中建立的文件,以用户个人文件的方式存放在存储服务器中,在不同的网络环境或不同的客户端情况下文件均已正常读取和存储,不同并发量连接结果如表3所示。
表3 不同并发量连接结果Tab.3 Different concatenation link results
除用户使用需求外,实验室管理员还需要根据特殊需求对机器的操作系统和安装软件进行更新。在云桌面中,虚拟机池文件来源于虚拟机模板的导出和复制,因此管理员只需在虚拟机模板上进行改动,然后重新分发模板即可,不需要再到各实验室进行操作,实现了统一管理。经测试,实现100个虚拟桌面操作系统和软件的完全更替大概需要15 min。
在实验室环境中,一台主机通常被多个用户使用,如果用户所做的操作全部保留会占用系统大量存储,且有可能造成病毒交叉感染,实验室管理员需要通过还原卡的方式在每次系统关机时进行还原。在云桌面中,系统会在用户注销连接时将桌面全面还原成初始状态,不再需要还原卡。通常用户对物理机具备完全的操作权限,能够进行软件卸载或修改注册表等可能危害系统运行的操作,而在云桌面中,对普通用户只分配User的权限,用户可以执行自己所需的操作,但不具有操作系统的管理权限,从而保护了云桌面的安全。
根据云桌面的特点,用户的操作和数据都运行在服务器端,数据始终不落地,有效保证用户访问数据的安全性。
搭建基于VDI技术的云桌面平台可以为用户在云端提供所需资源。由云桌面服务器提供计算和存储等相关功能,用户终端逐渐转为轻量级,实现整个中国民航大学实验室计算机终端的统一管理。建成后本地终端只用于连接使用而不进行计算,可有效提升本地终端的寿命,从而实现总拥有成本(TCO)的降低。所有池化资源场中的虚拟机由管理员集中配置和管理,控制了用户的使用权限,防止造成误操作。集中性的后端数据中心更加利于整体的升级、更新、维护,对解决当前实验室中公用计算机存在的困境具有重要意义。