(作者:胡耀东,河南工程学院副教授)

虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的资源利用率。

目前主流的虚拟化厂商主要有Citrix、VMware和Microsoft三大巨头。开源体系的XEN和KVM也有后来居上的意思。2014年河南工程学院基于HP公司C7000刀片机箱部署了330个云桌面,早期基于KVM的架构部署,因并发I/O不是很理想,后升级为Citrix公司的XenDestop共享桌面,采用PVS方式部署,很好地满足了并发I/O的需求。因部署和应用方面的脱节,最初的部署在应用上不太适应学校机房,最后在需求明确、熟悉了虚拟化软件情况、收集各类资料后笔者重新进行了部署,较好地满足了学校机房的需求,下面将一些经验分享如下:
一、部署

在所有资料中,较为权威的Citrix虚拟桌面和虚拟应用测试操作手册,是由北京四通管理软件技术有限公司、新太科技、联强国际、群柏数码科技有限公司几家联合提供的《POC标准化实施指南》。笔者拿到三个版本,内容大致一样,以版本1.0最具指导意义,基本按照章节可以部署实施完成。

在物理机器上安装完XenServer系统之后,所有的管理机都在虚拟机上安装,主要管理服务器有以下几个(括号内是主要运行的服务):

(1)活动目录域控制器(AD,DNS,DHCP);

(2)DDC控制器(StoreFront,Director,File Server);

(3)DB、License服务器(DataBase,License);

(4)PVS服务器(无盘启动服务器);

(5)NetScaler Gateway(对外发布,高校机房不需要)。

安装需要的光盘镜像除了需要的各类系统光盘外,需要从Citrix官方下载XenServer-6.5.0-install-cd.iso、XenApp_and_XenDesktop7_6.iso、ProvisioningServices7_6.iso等几个光盘镜像,另外需要下载管理工具安装文件XenServer-6.5.0-SP1-XenCenterSetup.exe,以方便管理。

HP BladeSystem Onboard Administrator功能是超赞的,通过iLO口可以在远程完整控制物理机、挂载光盘镜像文件、安装操作系统,基本类似IPMI服务接口。

安装完XenServer系统后,安装XenCenter就可以在图形界面下面管理了。首先安装管理服务器,做好必要的优化后,进行Sysprep,创建管理服务器模板。个人经验:Windows Server2012并没有Windows Server 2008好用,建议使用后者。

从服务器模板创建服务器:

首先安装好(1)域控制器,配置好活动目录、DNS服务、DHCP服务,在活动目录里创建组织单元、组、用户,大量部署时需要借助一些脚本,以快速创建大批用户。

安装完(1)活动目录域控制器后,建议安装(3)DB、License服务器,如果没有正式的License,可以在Cirtrix官网申请临时的,然后安装(2)DDC控制器,安装XenDesktop的时候,可以选择先前安装的DB服务器,配置完成StoreFront服务、Director服务,作为阶段测试,这个时候可以发布已有桌面的虚拟桌面,远程连接一下,检验前阶段的配置。

检验通过后,可以安装(4)PVS服务器。配置完PVS服务后,需要抓取客户端镜像,这是最不容易成功的位置,建议安装完客户操作系统后,不要更新序列号,不做优化,仅仅安装Provisioning Services目标程序。等抓取镜像成功后,进行更新,如果抓取镜像没有问题,则可以批量交付PVS桌面。

学校机房,没有必要进行(5) NetScaler Gateway的安装,在此略过。
二、管理经验

对于PVS方式交付的虚拟桌面,其实质是基于流技术的无盘桌面,一个镜像,统一管理,发布到众多的虚拟桌面,除了天然的安全性外,极大的节省了存储资源,虚拟桌面是将单一的镜像缓存到本地的内存中,使用了Citrix独家的RAM cache with disk overflow技术,磁盘I/O将会保持在一个非常低的指标而使用体验与运行在高性能存储上相近。

基于PVS的这种特征,一个镜像,发布多少个桌面都是一致的,提供的有效磁盘空间也是有限的。虚拟桌面重启后,所存个人信息全部丢失,这对于防病毒、统一桌面环境、保障系统安全是有利的。在政府、企业的应用中,可以根据用户,结合Windows域,在存储中划分适合空间给每一个用户。但是在高校中,机房是公共的,用户使用的计算机不固定且不需要输入用户名和密码进入系统,所以这种方式不适合高校公共机房。针对高校机房,笔者采用以下三种方式满足高校需求:
1.共享存储                    

对所有虚拟桌面用户,通过域共享磁盘空间,可以设置一个只读的共享盘、一个可以读写的共享盘。对于只读共享盘,可以给管理人员写入权限,虚拟桌面用户即学生只能读取,这样保证了资源的共享和安全。对于读写的公共盘,虚拟桌面用户即学生用户可以读写,没有了机器的限制,别人也删除不掉在用文件,如果想保存在用文件,也可在任意机器上拷贝到U盘或网络空间上。

这种方式牺牲了文件的保密性,换来了更灵活的方式,对于没有高保密性的学生练习用文件还是适用的。具体的设置域共享文件夹方法:

首先在登录到域的服务器上共享文件夹,根据需要设置对域用户的读写权限;然后在域控制器中,进入“组策略管理”,点击“林-->域名-->组策略对象”,右击“编辑”,出现“组策略管理编辑器”,点击“用户配置-->首选项-->Windows设置-->驱动器映射”,在右侧右击“新建”,出现“驱动器映射属性”对话框,“操作”选择“更新”,选择服务器共享的位置,选合适的盘符,其余保持默认,最后“确认”即可。根据需要可以设置多个共享盘。  
 
  图1 设置共享磁盘
2.设置凌晨重启已经登录的虚拟机

对于学校公共机房,无法做到在终端使用虚拟桌面结束后关机。有时管理人员会在课程结束后统一断电以促使学生下课,但是一些学生随意更改桌面并安装一些软件,影响了下节课同学的使用,当然我们可以通过管理界面统一进行虚拟桌面的重启,只是这样的重启代价有点高,也影响使用。因此笔者采用的策略是在凌晨重启已经登录的虚拟机,这样保证每天上午第一次上机是统一的环境。对于确实很凌乱的桌面,可以自己选择重启虚拟桌面。

具体的设置方法:仍然是在组策略管理编辑器中,在用户配置-->首选项-->控制面板设置-->计划任务,在右侧右击“新建计划任务”,在“属性”对话框中,在“常规”中“安全选项”选择“只在用户登录时运行”,在触发器中新建一个每天2:00:00的触发器,在操作中新建一个shutdown -s的操作,其余默认,点击“确定”即可创建一个每天凌晨2点对于已经登录的虚拟桌面执行一个重启的计划任务。

 

图2 设置计划任务
3.更改预先启动虚拟桌面的数量
在部署完XenDesktop虚拟桌面后,为了保证良好的用户使用体验,可以在用户登录之前,启动一定比例的虚拟桌面到已注册状态,以便于用户在使用高峰期可以立即登陆虚拟桌面,减少在高峰期的启动风暴。

这个默认的预先启动数量,通常是部署数量的10%,这个值对于非高并发的环境是适合的,但对于高校机房这个值就太小了,高校机房的终端数量通常在100台以上。对于我们的环境来说,部署的有330个虚拟桌面,系统默认的预启动数量是10%即33个虚拟桌面,机房终端上电是自动进入的,虚拟桌面在PVS方式下部署启动过程大概需要3、4分钟,这样就会导致上电后有大批量的终端等待进入桌面,感受较差。因此需要更改这个预先启动的终端数量。

首先,更改高峰时间段。打开XenDesktop Studio控制台,找到需要修改的交付组,点击“编辑交付组”, 在电源管理视图定义高峰期时间范围(可根据工作日和非工作日分别定义,建议设置为用户上班前1-2小时——用户下班后1-2小时)与高峰期执行的电源策略。

第二,更改高峰时期虚拟桌面预留数量百分比。在DDC服务器中使用管理员身份打开PowerShell,输入asnp Citrix* 导入Citrix管理CMDLET ,输入get-brokerdesktopgroup -name "Pool-PVS-Win7"。Pool-PVS-Win7为交付组名称,可以查看某个域中所有交付组的信息。交付组信息中OffpeakBufferSizePercent表示非高峰时期虚拟桌面预留数量百分比,PeakBufferSizePercent表示高峰时期虚拟桌面预留百分比(默认均为10%)。

我们需要修改高峰时期的百分比来确保用户并发使用之前就预先启动一定数量的虚拟机,具体通过设定PeakBufferSizePercent来改变:输入Get-BrokerDesktop –Name “Pool-PVS-Win7” | Set-BrokerDesktopGroup –PeakBufferSizePercent “50”来设置要使用的百分比(如果是池化虚拟桌面,建议设定并发前预启动百分比超过50%用来避免并发时的启动风暴),设置完成后再次执行Get-BrokerDesktop –Name “Pool-PVS-Win7”,就 可以看到数值已经被修改了。
三、改进建议和探讨

Citrix作为桌面虚拟化的领军解决方案,庞大的市场占有率是有道理的,特别是其PVS部署模式,非常适合高校机房的需求,高安全性、高效管理,最重要的是独家的对并发I/O的处理方式,堪称完美。据资料介绍,用户也可以基于PVS部署Linux虚拟桌面。作为一个具有悠久历史的虚拟化软件,拥有良好的软件基础,Citrix客户端几乎涵盖所有的智能终端。如结合XenApp实现应用虚拟化,我们可以实现在安卓智能手机、安卓智能电视使用Internet Explorer浏览器,进而直接取代VPN服务等应用虚拟化。

在Citrix管理服务器中,大量的使用了微软产品,几乎是微软全家桶。但是毕竟XenDestop是建立在XenServer基础之上的,XenServer是Linux系统。在高负荷的环境下,特别是在文件I/O上,Linux的效率是远远高于Windows的。

在PVS的部署方式上,虚拟机采用了iPXE方式启动, Citrix采用了TFTP协议。而iPXE是支持HTTP、FTP、iSCSI、AoE等网络协议的,众多的实验数据显示, iPXE使用HTTP协议的效率是使用TFTP协议的10倍,为何不采用更高效率的协议呢?

为提高可靠性和效率,在PVS服务器部署上,一些使用手册介绍了对PVS服务器进行集群部署,以提高无盘站启动速度的方法。据笔者了解,无论是Windows系统还是Linux系统,都有办法实现大容量的内存盘,而虚拟机镜像更新完成后,几乎不变动,如果将虚拟机镜像放在内存盘上,那存取速度将超越硬盘(即使是SSD固态盘)的数10倍以上,这样岂不是效率更高吗?

声 明 :本网站转载文章出于非商业性的教育和科研目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请立即联系我们,我们会予以更改或删除相关文章,保证您的权利。