APP下载

桌面虚拟化软件服务器冗余故障自修复仿真

2021-11-17孙慕华

计算机仿真 2021年3期
关键词:瞬态桌面虚拟化

王 宇,孙慕华

(北京交通大学,北京 100093)

1 引言

科技水平的不断提升,以云计算为核心的应用已变成网络信息化发展的必然走向。通过把计算机桌面实施虚拟化,用户能够采用不同终端设施,例如笔记本电脑、智能手机等访问自身桌面环境,操作安全灵活性好。因其成本少、低功耗等优势,在电力、办公领域得到大量运用[1]。

服务器在计算机网络内具备重要地位,是保障网络正常运转的实时设备。确保服务器高效可靠运转是桌面虚拟化软件使用的前提条件。服务器冗余设计要借助多个相同部件实现单个部件功能,提升全局系统完整性,使用冗余设计的系统要比传统方法下的系统结构至少高出一个数量级,安全性能也得到质的飞跃。

为了更好地维护冗余系统安全性,文献[2]采用粗粒度三模冗余结构和细粒度三模冗余结构对系统功能模块采取容错设计,将细粒度故障检测单元嵌入各冗余模块中,故障检测冗余模块,综合动态部分重构技术在不妨碍系统正常工作基础上完成故障实时修复。但面对较为庞大的系统时,此方案的容错设计模式精度不高。文献[3]通过人工整理方式总结错误模式及其对应的修复方法,使用重写规则表达错误模式,获得程序中可能的缺陷位置;使用修复选项生成方法得到缺陷的修复选项,运用深度学习预测错误程序错误点语句结构,提高程序修复率。但该方法人工整理模式速率较慢,即时性很差。

针对上述方法欠缺之处,本文提出一种基于连续时间马尔可夫链(Continuous Time Markov Chain,CTMC)的服务器冗余故障自修复方法。通过剖析桌面虚拟化软件及服务器冗余内部结构,明确各部分核心任务,诊断服务器冗余系统是否发生故障,利用CTMC方法计算系统可用性,算出瞬态故障节点分配情况,达到故障节点自修复目的。

2 桌面虚拟化软件结构与服务器冗余设计

桌面虚拟化软件采用集中式数据管理策略,增强网络信息的连续性与平稳性。软件从全局结构入手,对物理服务器、网络链路和有关软硬件资源都使用冗余设计理念[4],为了方便控制,把资源池逻辑分成资源管理池和资源负载池。

虚拟化软件资源管理池与资源负载池设计参变量如表1所示。

表1 虚拟化软件设计参数

针对各子部PC机,为统一操控,要在服务器最底端安设VMware vSphere,利用平台物理层模式将数据信息汇集到数据中心,便于集中管理。高可用和动态资源分配功能,可达到集群中主机的自主资源分配,把虚拟机从负载高的主机上自动迁移至负载低的主机上,确保每个主机资源的适当使用。

从总体层面而言,桌面虚拟化软件会根据Block将全部虚拟桌面划分到8个C类网络的VLAN内。虚拟化服务器通过汇聚层与中心交换机维持信息联系,从服务器IP设计角度来看,依照详细用途划分为虚拟桌面、虚拟服务器和物理终端等,并把全部服务器IP地址根据C类地址段进行描述。融合软件PC机数量巨大特征,将桌面资源池内每4台物理服务器分割为一个集合,用集合模式让软件界面管理更加清楚明了。

把view采用的8组浪潮服务器分成9个逻辑单元。各个逻辑单元涵盖完整的view环境[5],通过管理服务器、虚拟桌面和物理服务器共同构成。安排9套view环境的核心要素是运用该方法缓和过程故障,有效分解故障,不会产生全局失控。

服务器冗余技术为一种软硬件相互融合、具备极强容错能力的使用方案,若某台服务器产生故障,其余服务器无需人工干预就能执行服务任务,确保软件可以连续提供服务。服务器冗余方案通常要使用共享的储存设施与专业冗余软件,此种方案已广泛应用在金融、电信等领域,但建设成本昂贵。针对设备运维平台,使用低成本并符合全部时段服务的策略更加适宜,也就是在没有共享储存设施基础上完成多个服务器错误视观察与数据同步。

桌面虚拟化软件服务器冗余策略中,数据库使用高等保护模式,将4台计算机当作数据库服务器,其中一台是主用数据库服务器,一台是备用数据库服务器,两台是数据库见证服务器。主、备两台数据库服务器内,无论哪个数据路产生故障,可在短时间内实现故障迁移[6],仅需保障主备中一台数据库服务器正常运转,就能提供用户所需的数据操作。

将见证服务器和应用代理服务器安排在相同主机内,测验主备数据服务器能否正常运转,同时具备故障自主迁移功能。考虑虚拟化软件遭受恶意攻击情况,服务器保障策略还要包含一台应急服务器。桌面虚拟化软件服务器冗余结构如图1所示。

图1 服务器冗余结构示意图

冗余服务器关键装设WINDOWS SERVER 2008 R2、IIS7等软件,其硬件配置如表2所示。

表2 软件服务器冗余配置

3 服务器冗余故障诊断

服务器冗余技术是增强桌面虚拟化软件系统可靠性的方法之一,但也给故障勘测工作带来很大难度。系统具备冗余技术后,故障单元与测试之间变成了多对一模式,让冗余系统单元故障在数据流可达测试点上的测量精度变得极不稳定[7]。利用服务器冗余故障与测试之间的特殊性,通过以下过程完成故障策略优化。

把服务器冗余系统诊断规划为六元组(S,P,T,Q,C,D),P为系统形态的先验概率向量,T为可用测验有限集,Q为系统内节点有限集,C为将时间、人力需求或经济指标衡量的测试成本向量,D为故障测试有关性矩阵,描述了系统故障形态和测试之间的耦合性。其中S代表和服务器冗余系统状况有关的有限集,将其记作

S={s1,s2,…,sm,sm+1,…,sm+mmin}

(1)

式中,si(1≤i≤m)是单故障情况,si(m+1≤i≤m+mmin)是系统内的最小故障情况。

服务器冗余最佳诊断模式,即搜寻让系统状态隔绝到单个故障形态或故障组合的最佳测试序列,此序列符合测试成本均值最小条件。测试成本均值最小的优化目标函数是

(2)

式中,H(i)为诊断树H内隔绝出的故障si的测试序列,|H(i)|是序列长度,cH(i)[j]是序列H(i)内第j个测试所耗费的金额。

依照上述内容分析,服务器冗余系统的有关性矩阵共有m+mmin行,m是单故障形态数量,mmin是最小故障数量。使用符号X=Θ(L;F1,…,FL;G)定义在各个OR节点内的多故障模糊集合,G为S有限集内的子集,是一个无故障形态集合[8],Fi(i=1,2,…,L)是故障形态集合,其中包含正常、单故障与多重故障,将其描述成

Θ(L;F1,…,FL;G)=

{X⊆S,X∩Fi≠φ,i=1,…,L,X∩G=φ}

(3)

实施服务器冗余诊断过程中,在多故障诊断前提下,考虑系统与方法复杂性之间的指数增长关联,使用最优AO*方法作为基本决策树,利用以下过程完成诊断决策树:

设定原始状态为

S0={s0}∪S={s0,s1,…,sm,sm+1,…,sm+mc}

(4)

X=Θ(L;F1=S0;G=φ)

(5)

将式(6)作为原始状态构成的最佳单故障诊断决策树,并把最小故障当作一个整体。

F1=S0={s0,s1,…,sm,sm+1,…,sm+mc}

(6)

针对决策树内各个没有处理的叶节点,假如具备|Fi|=1,那么替换|Fi|=1的单元si,把si引入到G内。若拥有一个最小故障sj∈G,且m+1≤j≤m+mc,得到|sj-si|=1且sk=|sj-si|,则sk没有产生故障,引入到G中。

针对决策树上全部没有处理的叶节点,倘若不具备|Fi|=1,计算此叶节点内Fi的最小碰集,产生全新的最优单故障策略。

观察新决策树内所有未处理的叶节点[9],如果系统无故障,替换F内全部单元,标记此节点已经处理,完成服务器冗余故障诊断。

4 基于CTMC的服务器冗余故障自修复方法

明确服务器冗余产生故障后,采用CTMC方法完成器故障自修复,提升桌面虚拟化软件实用性,让用户得到满意的操作体验。

可用性是实际服务时长与需求服务时长的比值[10],设定平均无故障时间(mean time to failure,MTTF)和平均故障修复时间(mean time to recovery,MTTR),将可用性计算公式记作

(7)

要提升服务器冗余系统可靠性,就要让MTTF尽可能地长,MTTR为最短。MTTR是故障产生到故障修复的时间间隔,涵盖如下解决时间:故障检测、告警分析、保护与恢复等。

桌面虚拟化软件服务器冗余系统状态空间有限,类属于连续时间状态离散随机过程,是一种连续时间的马尔可夫链,所以使用CTMC方法完成故障自修复分析,具体如图2所示。

图2 桌面虚拟化软件服务器冗余系统的CTMC模型

图2(a)是虚拟化软件的服务器冗余系统可用性的马尔可夫模型,图内虚线代表可选,覆盖元素与故障自修复是互相独立的[11]。设定系统覆盖元素是1。如图2(b)所示,在使用协议拓展方案过程中,备用系统切换至主系统,不用造成服务中断;图2(c)使用完全同步时,主系统故障,备用系统故障率从λ上升至λs。状态0是正常状态,主备系统都能有效运转;状态1是单点故障状态;状态2是主备系统都出现故障;状态3是切换形态,备用系统代替主系统;A(t)是可用性时间函数;F(t)是虚拟化软件故障时间函数,顺从λ指数分布,λ代表故障率;R(t)是故障修复时间函数,顺从μ指数分布,μ为修复率;Pi(t)是虚拟化软件在i状态下的概率时间函数;e是覆盖元素;λf是主软件产生故障后,备用系统的故障率;λs是软件从状态3变成状态1的切入时间分布率。

稳态服务器冗余系统可用性为:

(8)

以瞬时故障为核心,将服务器冗余系统节点因能量衰退,对瞬态故障实施诊断的函数解析式描述为

(9)

其中,xj′表示瞬态故障节点,ET是节点能量衰退临界阈值,E(xj′)是节点xj的邻近节点,ζ是节点能量半衰退系数。若运算得到的f(xj)值低于0,证明此节点已经产生瞬态故障。

按照式(16)可明确系统瞬态故障缘由,在系统能量总值有限状况下,恰当分配给系统瞬态故障节点部分能量,让其恢复正常运作[12]。设定可分配能量总值是E(X),瞬态故障节点个数是k,则E(xj)剩余能量就是瞬态故障节点所需能量,计算过程为

(10)

算出瞬态故障节点分配情况,即可完成故障节点自修复目标,将瞬态故障节点分配的能量公式表示成

(11)

5 仿真研究

使用NS2仿真系统评价本文方法实用性。服务器冗余系统网络内随机分布60个节点,分布范围是1600m×400m,使用Random Waypoint移动模型,节点在分布范围中任意挑选一个目标地点,使用最高12m/s速率转移到该地,驻留一段时间后,再随机选择下个目标点。

为模拟真实服务器冗余系统内节点状态的改变情况,节点在一定几率下随机产生状态变化,包含节点开启、闭合与异常故障。对本文方法与文献[2]、[3]方法依次进行仿真,验证故障修复时间、故障控制开销和故障修复数据丢包率三个指标。

(12)

(13)

假设异常故障节点占30%,正常闭合节点占70%,通过调整节点最高停留时长呈现系统拓扑变化水平,如图3和图4所示。

图3 故障修复时间对比示意图

图4 故障控制分组开销对比示意图

由图3、图4中可知,本文方法在不同网络拓扑改变状况下的故障修复性能良好,故障修复时间平均降低约8%,控制开销也显著低于文献方法。出现这种现象的原因为,所提方法创建了六元组下的多故障模糊集合,很好地囊括了极易产生的故障类型,从本质上提升故障诊断效率,减少了故障修复时间与控制开销。

表3 对比了三种方法故障修复数据丢包率,即修复质量。

表3 故障修复数据丢包率对比

由表3可知,本文方法可以动态调整节点权值,完成修复过程的负载均衡,并且对系统可用性采取全方面评估,确保用户使用桌面虚拟化软件时,产生操作故障时的修复质量。

6 结论

服务器冗余系统可保证桌面虚拟化软件处于故障状态下的正常运行,为妥善处理服务器冗余故障问题,设计一种基于连续时间马尔可夫链的服务器冗余故障自修复方法。该方法故障修复精度高、速率快,鲁棒性强,为桌面虚拟化今后的持续发展注入新的发展动力。

猜你喜欢

瞬态桌面虚拟化
周向拉杆转子瞬态应力分析与启动曲线优化
基于开放边界条件的离心泵自吸过程瞬态流动数值模拟
桌面装忙
百万千瓦核电机组瞬态工况除氧器压力和水位控制
用好Windows 10虚拟桌面
当灰尘厚厚地落满了桌面
浅谈虚拟化工作原理
用户怎样选择虚拟化解决方案
虚拟化整合之势凸显
虚拟化技术:绿色IT的希望