再论Citrix PVS双活系统架构设计与实现

2020-10-09 10:24王春苗刘玥
电脑知识与技术 2020年22期
关键词:负载均衡

王春苗 刘玥

摘要:本文以Citrix PVS产品应用为实例,结合H3C lRF网络虚拟化技术、双活域架构技术、双活DNS和DHCP服务技术、数据库镜像技术、分布式存储技术、万兆网络技术等,详细讲述高校数据中心在为云桌面虚拟机、各个实训室PC机提供操作系统流服务的层面上,如何低成本高效率的实现客户机操作系统在线自动故障迁移功能,以及网络、存储和服务的负载平衡功能,从而实现最大化的“双活架构”设计标准,最终为云桌面、实训室PC机等提供稳定、高速、可靠透明的操作系统和应用软件流服务,提升教学质量和实训体验。

关键词:双活;Active-Active;数据流服务;故障迁移;负载均衡;网络虚拟化

中图分类号:TP311 文献标识码:A

文章编号:1009-3044(2020)22-0028-05

开放科学(资源服务)标识码( OSID):

高校计算机机房的管理,从操作系统及软件部署的技术角度分析,可分为两种模式,即“本地存储模式”和“网络发布模式”。前者,操作系统及软件存储于客户机本地硬盘之上,启动时加载到内存中。而后者是客户机直接通过网络引导的形式,读取服务器中的虚拟磁盘文件,实现加载操作系统及软件到内存中。对于操作系统的“网络发布模式”,传统的、通俗的命名一般称作为“无盘网络”,而随着网络、虚拟化及云计算技术的发展,传统的“无盘网络”概念已经无法囊括“网络发布模式”的全部技术内涵,本文根据其应用范围和技术特征,赋予该模式一个全新的命名即“操作系统流服务”。操作系统和软件的分发,能够以数据流的形式,从服务端存储到达任何网络可达的目标,而不论该目标是物理PC机或云桌面虚拟机。

在Citrix的产品家族中,其云桌面产品“XenDesktop”的核心组件“PVS”(Provisioning Services),不但支持为云桌面虚拟机、物理PC机提供操作系统及软件的数据流服务,还能够结合镜像技术同步数据库实现故障迁移功能。本文以Citrix PVS作为操作系统流服务的应用实例,结合多项自动故障迁移和负载均衡技术,深入分析和研究基于Citrix PVS的双活系统架构方案以及部署实现。

1 网络模型:基于横向虚拟化的双活网络设计与实现

1)功能需求分析:作为“操作系统流服务”的网络承载,设计一个满足“负载均衡”和“故障迁移”功能的交换网络至关重要。以高校实训楼为例,其基本的交换网络规划需求分析:每一个实训室内需要接人几十台物理PC机构建局域网,同时每个实训室需要连接到数据中心交换网络;实训室PC机、云桌面虚拟机要求能够通过网络引导和加载服务器上的虚拟磁盘文件;当汇聚交换机、核心交换机发生故障、断电以及常规维护时,对于客户端用户应该是透明无感知的;由于机房教学和管理的需要,实训室内部应该属于同一个VLAN和配置一致的网关参数等。

2)传统网络规划及缺陷:针对上述需求,传统的规划设计可能是实训机房内部部署多个接人交换机和一个汇聚交换机,数据中心部署一个核心交换机,各个交换机之间通过单链路连接。很显然,传统规划设计存在多个“单点故障”风险,当发生线路故障、交换机负载过大、交换机硬件故障或电源故障时,会导致一个实训室或多个实训室PC机无法通过网络加载操作系统,以及在線的PC机发生宕机的现象。

3)-种简要的改进设计及缺陷分析:如图1所示,采用两台核心交换机、两台独立的PVS服务器、冗余链路以及UPS电源。在该方案中,PC-1通过网络引导,首先发送DHCP广播请求报文,经过汇聚交换机-1的广播转发,再经过核心_1和核心一2的DHCP中继转发,PVS服务器1和2都将接收到请求报文并发出响应报文,PC-1接收并选择最先到达的响应报文,使用其分配的IP地址、掩码、网关以及启动服务器地址等网络参数,后续PC-1向启动服务器发送PXE和TFTP服务请求……直至完成系统加载过程。该方案具备一定的负载均衡和故障迁移特性。当两台PVS服务器、两台核心交换机功能及性能相近的前提下,每个实训室PC机的网络引导访问请求和会话连接近似平均分布于两台PVS服务器之上;当存在一台PVS服务器关闭或故障时,或存在一台核心交换机关闭或故障时,PC机都可以通过另外一台PVS服务器实现引导和加载操作系统。

但是,仔细分析上述方案,可以发现其仍然存在一定的单点故障和缺陷:①当同时出现核心HH1和PVS服务器2故障或关闭的情况,所有实训室的客户机无法实现网络引导;②由于核心_1和核心一2相互独立,对于每个实训室来说,存在两个可选的网关,分别指向核心-1和核心一2,那么当核心- 1或核心一2故障或关闭时,将导致所有网关指向它们的、已经在线的客户机宕机,并导致数据丢失;③由于两台PVS服务器完全独立,未配置“双活”系统流服务,当某一台PVS服务器故障或关闭时,同样将导致所有连接到该PVS服务器的客户机宕机和数据丢失;④汇聚交换机关闭或故障时,整个实训室所有客户机宕机或无法引导启动。上述的改进方案中,无论是核心交换机或PVS服务器,都仅仅实现了一个简单的“后备式”故障迁移及负载均衡特性,当发生故障时,在线客户机需要被动等待连接恢复甚至必须重启,导致数据丢失和工作中断。那么,如何设计和实现一个“在线式双活”网络架构呢?接下来重点分析基于“横向虚拟化技术”的网络规划设计。

4)基于横向虚拟化的网络设计和分析:虚拟化的概念,可以简单理解为物理设备视图到虚拟设备视图的透明转换。如今的虚拟化概念范畴,已经囊括了服务器虚拟化、桌面虚拟化、存储虚拟化、网络虚拟化等技术。作为虚拟化技术的重要组成部分,网络虚拟化技术在主流网络设备上都已得到实现,例如H3C的IRF2和IRF3技术(横向和纵向虚拟化)、华为的css和SVF技术(横向和纵向虚拟化)以及锐捷的vsu技术(横向虚拟化)等。本文以H3C设备为例,分析和研究通过IRF2技术构建“在线式双活”网络架构,如图2和图3的拓扑结构所示:核心-1和核心一2两台物理交换机通过IRF双链路互连并配置IRF功能后,构成一个大的虚拟核心交换机,可以理解为具备“双主控引擎”“双业务板卡”以及统一的运行配置,原核心-1和核心一2的物理接口都属于该虚拟核心交换机,且相互之间可以进行接口聚合。每个实训室的汇聚交换机(图2)、云桌面承载服务器(图3)以及PVS服务器都通过聚合链路连接到该虚拟核心交换机的不同业务板卡接口上,对于同一个实训室的物理PC机(或同一个vlan的云桌面虚拟机),它们的网关相同,都指向该虚拟核心交换机(而在图1方案中,分别指向核心-1和核心_ -)。

负载均衡和故障迁移分析:①当所有设备状态正常、且配置了双活操作系统流服务的前提下,PC机(或虚拟机)的会话连接将平均分布于两台PVS服务器之上(具体见后续分析);②当核心-1或核心一-关闭或故障时,虚拟核心交换机继续工作,仅仅是所有的聚合链路组中的一条成员链路出现故障,性能下降,但网关不变,PC机(或虚拟机)和虚拟核心交换机以及PVS服务器之间的会话连接继续保持,如果所有链路采用万兆,那么性能下降带来的影响可以忽略不计,故障的发生对于PC机(或虚拟机)来说可以认为是透明的;③如果是某一台PVS服务器发生故障或宕机,在两台PVS服务器配置了双活操作系统流服务的前提下,PC机(或虚拟机)会话超时后,会根据引导时所下载保存的启动服务器地址列表,自动连接到其他PVS服务器,并重新建立会话,具体过程见后续分析;④如果汇聚交换机发生故障或宕机,将仍然会导致当前实训室的PC机宕机或等待恢复连接,进一步缩小故障域的方法,是采用双汇聚交换机,并配置IRF横向虚拟化功能,再通过聚合链路连接至多个接人交换机。网络配置任务(具体过程略):①IRF横向虚拟化配置,推荐通过万兆以太网接口互连核心一1和核心一-,并分别在两台物理核心交换机上完成IRF配置;②聚合链路配置,分别在汇聚交换机和虚拟核心交换机上配置相应的聚合链路。对于云桌面,则需要对虚拟机的承载服务器的多个网卡接口进行绑定;③VLAN配置,在虚拟核心交换机上为每台PVS服务器和每个实训室创建不同的VLAN,聚合链路组加入相应VLAN,并为VLAN虚拟接口配置ip地址,作为各个实训室和PVS服务器的网关。对于云桌面,还需要配置相应聚合链路组的属性为trunk,且允许相应的VIAN-ID通过,因为同一个VLAN的云桌面虚拟机,一般会均匀分布于多台承载服务器之上;④DHCPRelay配置,在各个VLAN虚拟接口视图下,配置DHCP RelaY,目标为两台PVS服务器的地址;⑤PVS双活操作系统流服务配置,见本文后续分析。网络性能设计:以上都是从网络功能的角度,分析双活网络的设计和规划。从网络性能的角度来看,客户端从初始加载操作系统镜像的核心部分至稳定运行状态(如登录用户桌面后),以及后续加载和运行应用软件,整个过程对带宽的要求较高。①客户端(物理PC机和虚拟机)网络要求为千兆速率;②接人、汇聚和核心交换机至少要求满足全千兆接口速率;③核心交换机推荐配备一定数量的万兆接口;④PVS服务器一般安装4口千兆网卡,推荐安装双口万兆网卡;⑤接人和汇聚交换机之间、汇聚和虚拟核心交换机之间通过双接口或多接口聚合链路互连;⑥虚拟核心交换机和PVS服务器之间推荐通过双口万兆聚合链路互连。

2 存储模型:对比简易分布式存储与双活NFS存储

读写功能需求分析和存储模型设计:一方面,客户端通过网络引导所加载的操作系统,是以虚拟磁盘镜像文件的形式保存于服务端存储,而服务端存储位置既可以是PVS服务器的本地存储,也可以是独立部署的基于“文件级共享”的NFS存储或基于“块级共享”的iSCSI存储。客户端加载操作系统的过程,就是从服务端存储位置读取镜像文件的过程;另一方面,客戶端加载完成后,进入一个稳定运行的阶段,此时需要一个固定的存储位置保存客户端缓存数据,该存储位置既可以是服务端存储,也可以是客户端本地存储,这是一个数据反复读写的过程。Citrix PVS产品,推荐采用“读写分离”的方案,即操作系统镜像文件和客户端缓存数据分别存储在不同的位置。为了确保实现故障迁移功能,PVS双活系统架构存储设计,一般可采用两种模型:即“简易分布式”存储模型和“独立双活NFS”存储模型。两种存储模型都能满足在功能上确保实现故障迁移,在性能上确保高速1/0,一般可根据实际情况(成本、管理复杂性等)选择合适的一种或两种方式混合使用。

1)简易分布式存储模型

该模型中,操作系统镜像文件存储于两台或更多PVS服务器的本地存储介质中(RAID阵列或PCIE SSD),即存在两个甚至多个版本一致的镜像文件副本。为了实现在线透明的故障迁移,所有PVS服务器上的镜像文件内容和绝对存储路径确保完全一致。

客户端缓存位置的选择至关重要,缓存位置既有频繁的“读操作”,又有频繁的“写操作”。当客户端是物理PC机,且安装了固态硬盘和大容量内存时,本地读写性能高,那么缓存位置一般设置为本地内存+固态硬盘。在PVS控制台中,通过设置虚拟磁盘的缓存类型为“在设备RAM中缓存并溢出到硬盘”即可实现。如果物理PC机的本地内存较小,或本地硬盘为老旧的、可能包含坏道的机械硬盘,甚至物理PC机没有安装本地硬盘,那么应该设置缓存位置为PVS服务器的本地存储,此时对PVS服务器的存储性能和整个网络性能要求较高,且必须确保“读写分离”的原则;当客户端是云桌面虚拟机时,同样要综合考虑虚拟机的内存大小和读写性能,一般情况下,云桌面虚拟机的存储承载都是高性能共享存储或类似于vmware vSAN的虚拟化存储,性能较高,所以对于云桌面虚拟机,推荐设置缓存位置为客户端本地。

当缓存位置设置在PVS服务端时,会极大地增加网络带宽负载和PVS服务器本地存储的读写压力,所以设置缓存到客户端本地,是最佳的部署方案,这也是“简易分布式”存储模型的最大优点。

该存储模型部署和维护简单,潜在的缺陷是存储介质的稳定性,当某一台PVS服务器的存储设备出现物理坏道、离线等故障时,由于此时PVS服务器的流服务保持正常,所以客户端并不会主动进行故障迁移,可能会导致连接至该PVS服务器上的所有客户端出现不稳定状态,如“严重卡顿”现象。解决此问题,推荐在PVS服务器上通过RAIDIO级别的阵列形式组织多个硬盘(机械或SSD固态硬盘),这样就同时确保了数据安全和1/0性能;另外一个推荐的存储介质,是采用两块PCIE SSD,分别用作读取设备和写入设备。PCIE SSD具备高可靠性、高耐用等级、高性能等特性,关键是彻底解决了SATA接口的SSD,其trim指令不受大部分阵列卡支持的弊端,从而大幅度提升了SSD的写人性能和使用寿命。另外一个可能的缺点,是系统镜像文件多个副本之间的同步,需要通过手动拷贝新增的虚拟磁盘版本文件来完成,效率较低。

6 电源系统模型:UPS电源群集设计与实现

中高端的UPS电源系统,普遍都支持“并机模式”,即两台UPS电源系统通过并机模块,共同为服务器、交换机、存储等设备提供电力。对于服务器、交换机、存储等重要设备,也可以通过配备双电源模块,实现电源的故障转移功能。如果存在多台普通的小型UPS电源系统的情况,它们的品牌、型号、功率都可能不一致,那么并机是难以实现的,如何才能充分高效地利用它们呢?最佳的解决方案是通过多台“双电源转换开关”构建UPS电源群集,此类设备具备双路电源输入接口和多路负载输出接口,可以同时连接两台UPS电源,但是其中有一路电源输入处于“阻断”状态,一旦正在供电的UPS电源故障或电池耗尽时,转换开关立即切换到另一路电源输入,从而确保持续和稳定的功率输出。另外,两台转换开关的输出,可以作为第三台转换开关的输入,以此类推,这样就可以将多台不同品牌型号的UPS电源组成一个群集电源系统,共同为外部负载提供电力服务。

7 综合设计部署和分析

综上所述,整个PVS系统架构达到“双活”设计标准的前提是群集中各个组件模块都达到“双活”工作状态,且任意双活组件模块内部的“单点故障”对于依赖于它的其他双活组件模块应该是透明的,对于整个PVS双活系统架构的外部服务功能也应该是透明的。所以,生产环境的实际部署过程,应当严格遵循相应的标准,具体分析如下:

1)从时间维度分析,部署流程首先是从各个组件模块开始,有些组件与组件之间会存在一定的依赖关系(如镜像数据库架构依赖于域架构),所以在部署过程中,需要遵循相应的顺序,总体部署原则是“由内而外、自底向上、层层递进”,主要的部署流程是“双活网络架构一双活域架构一双活DHCP模型一镜像数据库服务器架构一分布式阵列存储或双活NFS存储架构一双活PVS流服务架构 配置镜像数据库一模板系统制作和生成虚拟磁盘映像文件一验证测试”。

2)从空间维度分析,每一个双活组件模块既可以部署于独立的物理服务器之上,也可以和其他双活组件模块共存于相同的物理服务器之上,分别称作分布式部署和集中式部署。两种部署方式各有特点,取决于实际的应用场景和部署成本。以分布式部署为例,典型的部署方案是双活域架构、双活DHCP共同占用两台物理或虚拟服务器;双活PVS流服务架构和分布式存储共同占用两台物理或虚拟服务器;而数据库镜像架构则占用三台物理或虚拟服务器,其中见证数据库服务和许可证服务部署于同一台服务器上。分布式部署方式虽然细化了管理,但是增加了管理的复杂性和部署成本。本文推荐采用集中式部署方式,即所有的双活组件模块共同部署于两台物理服务器之上,而见证数据库服务和许可证服务共同部署于一台虚拟服务器之上。由于见证数据库服务或许可证服务,即使发生了单点故障,短期内不会影响当前的PVS整体双活系统架构,所以可以通过其他方式如虚拟服务器+离线备份+虚拟机快照等技术,确保应用的快速恢复。

8 综合拓扑和故障转移分析

1)汇聚交换机故障或接人交换机故障。很显然,这种情况仅仅影响某一个实训室或实训室的部分机器设备,导致PC机无法引导操作系统或宕机。

2)一台核心交换机故障。此时,所有的聚合链路组都有一根链路断开,基于横向网络虚拟化技术的核心网络仍然有一台核心交换机在线,整个PVS系统架构依然可以继续工作,但是整体性能下降。

3)一台物理服务器故障。连接这台服务器的客户端设备在超时后,会根据引导列表,自动查找和尝试访问另外一台PVS服务器的流服务;如果原先故障服务器上的数据库为主体数据库,见证服务器自动辅助进行数据库故障转移,另外一台物理服务器上的镜像数据库转换为主体数据库;双活域架构中的另外一台DNS服务器,域控制器,依然可以提供域名查询服务/活动目录查询服务;双活DHCP架构中,另外一台DHCP服务器,由于实时同步的原因,它存储了一致的IP地址租用信息,且继续提供DHCP服务。但是,在线的客户端切换PVS流服务的时候,可能会有短暂的卡顿现象,另外,由于只有一台PVS服务器提供流服务,所以整体性能会下降。

4)第三方虚拟服务器故障。此时,见证服务和许可证服务都将失效。见证服务的作用是辅助数据库镜像架构的数据同步和故障转移,失效后,主体数据库和镜像数据库之间的数据同步暂停,数据库故障转移失效,但主体数据库仍然可以继续提供服务。许可证服务失效后,在线客户端和刚刚启动的客户端,都会收到关于缺少许可证服务器的通知,但不影响客户端运行。如果能够在短时间内(如24小时内)解决故障,那么整个PVS系统架构将恢复到双活模式。

参考文献:

[1]李芬,数据中心网络虚拟化技术应用探析[J].中国新通信,2019(15):85-86.

[2]赵伟.基于锐捷vsu技术的交换机虚拟化技术的研究[J].信息与电脑(理论版),2014(11):185-186.

[3]韩武光.基于IRF虚拟化技术的校园网可靠性设计与实现[J].网络空间安全,2016(8):71-74.

[4]徐华宇,软件定义存储的应用与分析[J].电脑知识与技术,2017(28):26-27.

[5]徐建军,韦娟,双活存储技术在智慧校园建设中的实践及应用[J].中国教育信息化,2018(13):76-78.

[6]侍天航,基于存储虚拟化技术的双活存储系统设计与实现探讨.网络安全技术与应用,2019(6):83-84.

[7]张冬.大话存储终极版[M].清华大学出版社,2015:56-76.

[8]朱正月.混合VMware和Citrix虚拟化技术的桌面云平台设计与实现[Jl,安庆师范大学学报(自然科学版),2017(2):76-80.

[9]顾武雄.详解数据库镜像[J].网络安全和信息化,2018(2):73-78。

[10]刘景云.浅议Windows Server 2012容錯[Jl.网络安全和信息化,2017(2):47-48.

[11]孙志强.简谈地铁信号电源的双UPS并机方案[J].铁路通信信号工程技术,2016(5):76-78.

[12]邱伟杰,基于并机冗余式UPS的双总线供电系统分析和应用[J].科技创新与应用,2018(11):148-149.

【通联编辑:王力】

基金项目:安徽省教育厅2019年度高等学校人文社会科学研究项目——大数据背景下云计算技术在安徽省审计中的应用研究,项目编号:SK20198006

作者简介:王春苗(1980-),男,安徽省合肥市人,助理实验师,本科,主要研究方向为“虚拟化和基于虚拟化的云计算”“超融合架构”“软件定义存储”“软件定义数据中心”、信息安全等;刘玥(1987-),女,安徽黄山人,高级审计师,硕士,主要研究方向审计、会计信息化。

猜你喜欢
负载均衡
异构环境下改进的LATE调度算法