露天矿山智能调度管理系统可靠性研究

时间:2023-06-25 14:20:02 来源:网友投稿

邱子贤,徐月云,王晓伟,3,胡满江,3,秦洪懋,3

(1.湖南大学 机械与运载工程学院,湖南 长沙 410082;
2.国汽(北京)智能网联汽车研究院有限公司,北京 100176;
3.湖南大学 无锡智能控制研究院,江苏 无锡 214115)

当前,我国露天矿山开采的机械化程度较高。为减少人力投入,提高作业安全性和效率,智能化与数字化发展已成为露天矿山开采的一种趋势。云服务技术是信息化时代的主要管理方式,已成为企业信息集成、信息资源开发和决策支持系统建立的最佳解决方案。利用云服务平台整合矿山资源已然成为一种新模式[1],其中露天矿山智能调度管理系统[2-3]就是基于云应用技术背景所建立的;
然而由于结构的复杂性和部署方式的多样性,其可靠性指标[4-6]难以被获得。可靠性是保证系统正常运行的重要指标,在露天矿山自动驾驶场景中,调度系统的不可靠可能会导致其获取不到无人矿用卡车(简称“矿卡”)的实时工作状态信息,同时无人矿卡也可能无法收到调度指令,这将会严重影响作业效率。

与可靠性改进相关的研究有很多。文献[7]提出了基于任务复制的高可靠性调度(HRSA)算法和基于多任务复制的多有向无环图(direct acyclic graph,DAG)任务高可靠性调度(HRSAMD)算法,通过主动复制的方式,将任务及其多个备份任务公平地映射到多个处理机上,从而提高执行过程的可靠性。文献[8]针对多DAG可靠性调度问题,提出了一种考虑虚拟机之间链路通信竞争的动态多DAG分层调度算法,解决了当多个DAG中任务的权值相差较大时之前到达的DAG因剩余任务迟迟得不到调度而导致执行时间跨度增大的问题。文献[9]在给定DAG节点分配给处理器的条件下,分别提出了齐次系统和异构系统的能量最优分配(OEA)方法和基于搜索的OEA(SOEA)方法,可以在满足可靠性要求的情况下,使能耗最小化。以上传统DAG调度虽然在一定程度上能提升任务可靠性,但对处理机的描述和研究较为抽象。

本文对露天矿山智能调度管理系统(简称“智能调度系统”)进行了深入研究,通过分析系统架构,将其部署栈建模为考虑相对全面的组件及其依赖关系的分层依赖关系图,并通过蒙特卡罗方法[5]对各个组件进行仿真,最终根据分层依赖关系图,确定调度系统的状态及其接近真实状态下的可靠性。同时,为获得调度系统的最佳可靠性,本文提出一种露天矿山智能调度系统可靠性高效评估方法,深入研究了服务实例部署方式对系统可靠性的影响,并提出了一种逐步遍历算法以获取最佳的服务实例部署方式。

由于露天矿山智能调度管理技术与传统云应用技术具有相似之处,因此露天矿山智能调度系统模型的研究可以基于云应用的研究而开展。

1.1 云应用组件结构

在云上部署应用程序时,使用者通常将应用程序划分为多个子模块,每个子模块代表一个微服务。在容错方面,一个微服务通常部署多个服务实例(service instance,SI),根据不同的容错需求来确定需部署的服务实例数量。服务实例由虚拟机(virtual machine,VM)或容器(Container)所承载。容器既可被部署在虚拟机中,也可被直接部署在物理服务器(physical server,PS)上;
同时虚拟机也可被直接部署在物理服务器上。根据所执行功能的性质,虚拟机或容器可被部署在位于不同地理位置的物理服务器上。例如,在私有云中,部署包含用户隐私信息的容器或虚拟机;
在公有云中,部署包含对处理可靠性要求较高的任务的容器或虚拟机。如图1所示,服务、容器、虚拟机和物理服务器是构成云应用程序分层部署栈的主要组件。

图1 混合云应用的分层部署栈Fig.1 Layered deployment stack of hybrid-cloud applications

值得注意的是,组件和组件之间存在依赖关系。本文将依赖关系定义为一个组件需要另一个组件来完成其自身功能的关系。例如,如果一个服务需要根据另一个服务的计算结果来完成任务,则认为前者依赖于后者。同样,虚拟机的正常运行需要物理服务器的正常运行,所以虚拟机组件依赖于物理服务器组件,容器与承载它们的虚拟机和物理服务器之间也存在依赖关系。

本文将一个应用程序划分成若干微服务,并用实线箭头表示2个服务之间的依赖关系。图2展示了一个应用示例。图中,S0~S6代表服务,其中S0依赖于S1、S2和S3,且S4和S5都依赖于S6。

图2 应用程序和子服务的实例Fig.2 An instance of application program and sub-services

S5的状态由其本身的状态和S6的状态共同决定,即S5=S5ΛS6;
相似地,该应用程序的状态由所有子服务的状态共同决定。因此,该应用程序的状态(Sapp)可表示为

本文使用分层依赖关系图(layered dependency graph,LDG)[10]对部署栈建模,并通过添加容器作为新组件对其进行改进。如图3所示,LDG自上而下包含4层,即服务层、容器层、VM层和PS层,其中PS包括公有云、私有云和边缘云中的服务器。假设每个PS可以同时承载多个VM和多个容器,则每个VM可以托管多个服务或容器,而每个容器只能托管一个服务。根据4层依赖关系,LDG可被定义为DAG G(V,E)。其中,V代表组件集合,V={v1,v2,v3,…,va},a代表节点数;
E代表组件间的依赖关系集合,E={e1,e2,e3,…,eb},b为边数。

图3 4层依赖关系图Fig.3 LDG of four layers

图3中,任意一个组件可以被定义为一个节点v(t,m,k,n)。其中,t为节点类型,其可以是物理服务器、虚拟机、容器、服务;
m为组件的名称;
k和n代表一个微服务拥有n个服务实例,并且该微服务至少需要k个服务实例才能成功,可表示为“k-out-of-n”。图中,任意一种依赖关系可以被定义为一条边e(p,s,d,w),其中p和s分别代表头和尾,d代表类型,w代表所依赖的权重。类型d可以是“k-out-of-n”,表示一个微服务与其服务实例间的依赖关系,或者是“normal”,表示其他类型的依赖关系。本文假设权重w为1,这意味着如果一个组件发生故障,则依赖于该组件的其他组件也会出现故障。

1.2 露天矿山智能调度管理系统架构

露天矿山作业是通过大量、多类型的工程车辆实时配合完成的[11],如无人矿卡时常需要与有人驾驶的挖掘机配合作业。为保障生产效率,无人矿卡需要与云平台上的调度系统进行实时的数据接收和发送,调度系统可依此对无人矿卡进行实时监控和故障诊断;
在对关键数据进行实时流计算[12]后,将计算结果存储到时序数据库与关系型数据库中。同时,调度系统还负责露天矿山地图的管理,并依据高精度地图和矿上实时作业情况对无人矿卡进行调度管理与运营管理。图4示出露天矿山智能调度管理系统的架构。

图4 露天矿山智能调度管理系统架构Fig.4 Architecture of the mine intelligent dispatching system

1.3 露天矿山智能调度管理系统组件结构

如上所述,每个微服务都有多个服务实例,并且有容错需求“k-out-of-n”。如图5所示,数据收发、监控和故障诊断、地图管理、作业调度、运营管理、实时流计算均具有多个部署在不同容器的服务实例;
而容器又被部署在虚拟机中。因此,为了避免单点故障,让隶属于同一个服务的容器散布在不同的虚拟机中,这有利于提升系统的可靠性。然而,随着技术的发展,如今的容器编排技术已能满足虚拟机负载均衡的要求,因此不用再考虑单点故障和虚拟机负载不均对系统可靠性的影响。同时,对服务实例被直接部署在虚拟机中的时序数据库服务和关系型数据库服务而言,同样可以应用类似的编排技术,使得隶属于同一服务的实例得到合理的散布。

图5 露天矿山智能调度管理系统组件结构-公有云Fig.5 Component structure of the mine intelligent dispatching system with public cloud

此外,本文还考虑了3种物理服务器的选择。由于公有云具有可靠性高且价格低廉的优点,图5所示组件结构将所有虚拟机均部署在公有云中;
而私有云的安全性高,图6所示组件结构将所有虚拟机都部署在私有云中,同时本文假设一个私有云物理服务器中最多部署2个虚拟机;
图7将数据库这类安全性要求较高的服务部署在私有云中,而将其他服务部署在公有云中来获取较高的可靠性。

图6 露天矿山智能调度管理系统组件结构-私有云Fig.6 Component structure of the mine intelligent dispatching system with private clouds

图7 露天矿山智能调度管理系统组件结构-混合云Fig.7 Component structure of the mine intelligent dispatching system with hybrid clouds

在设计蒙特卡罗仿真(Monte Carlo simulation,MCS)时,必须考虑2个主要规则:输入规则和停止规则。本文根据组件的故障分布来设计输入,并且根据可变精度要求来设计停止规则。

2.1 输入规则

在进行仿真之前,本文必须确定获取各类型部件初始可靠性的方法。

根据组件的历史故障信息,可以分析得到单位时间内的故障率λ和可靠性r,其中取单位时间为一天。例如,如果一个组件平均每天发生a次故障,那么其单位时间的故障率λ=a。本文假设非服务组件(物理服务器、虚拟机、容器)的故障率λ为常数,则可以用指数可靠性模型计算非服务组件的可靠度r,即r=e-λt,其中t代表时间。如果考虑一个单位时间,即t=1,则组件的可靠性为e-λ;
相应地,该组件处于故障状态的概率为(1-e-λ)。

不同类型组件的失败率并不完全相同:一个软件组件的故障率可通过分析其在一段时间内的运行日志中的单位时间故障次数得到,其中软件组件是指除了PS组件的其他组件。对于硬件组件,除了分析其运行日志外,还可以根据其理论MTTF(修复前平均时间,用tMTTF表示)计算故障率,即

在仿真过程中,当故障率已经给定时,可以根据r=e-λt确定单位时间后的组件状态。本文假设经过单位时间后的组件状态为正常(用1表示)或者故障(用0表示),并且处于每个状态的概率分别等于r和(1-r),则对于每个单位时间,可以随机抽取一个(0,1]间的小数并且通过式(2)确定组件的状态Si:

式中:di——第i个组件的可靠度;
λi——单位时间第i个组件的故障率。

在获得每个组件的仿真状态后,可以根据DAG模型中每个组件的状态来确定调度系统的状态。从下到上,如果一个PS组件处于故障状态,则该组件上的所有VM组件也都处于故障状态;
当一个VM组件处于故障状态时,则该VM组件上的所有容器组件或SI组件也都处于故障状态;
当一个容器组件处于故障状态时,则部署在该容器上的SI组件也处于故障状态。此外,每个微服务的状态是根据它所依赖的SI组件而确定的。具体来说,每个微服务对应一个容错需求,表示为k-out-of-n,即一个微服务有n个服务实例,且需要至少k个服务实例处于正常状态,才能保障微服务处于正常状态;
否则将会处于故障状态。

对于第j个微服务,本文将其容错需求表示为kjout-of-nj,并将其状态表示为Sj,Sj∈{0,1}。假设正常的服务实例个数为gj,则:

在确定每个服务的状态之后,可以根据服务之间的依赖关系确定应用程序的状态。以图2为例,根据式(1),在任意一轮仿真中,如果有任何服务处于故障状态,则应用处于失败状态;
如果所有服务都处于成功状态,则应用处于成功状态。

2.2 停止规则

取一个单位时间作为一轮仿真的时间并进行n轮MCS仿真,则调度系统的仿真可靠度-----Rsim等于所有轮仿真可靠度的平均值为

式中:n——总轮数;
i——轮数,i=2,3,…,n;
Rsimi——应用程序第i轮仿真的状态,且该状态只能为0或1。

轮数由MCS的停止规则决定。本文定义了停止MCS的3个条件:置信区间、小数点后的有效数字位数和最小失效次数。当仿真结果同时满足这3个约束条件时,仿真结束。

2.2.1 置信区间

置信区间约束保证了仿真结果的可信度。正如文献[11]中所提到的,对于置信水平α,-----Rsim的置信区间应满足以下条件:

式中:s——仿真结果的标准差,s=;
Rreal——应用程序的真实可靠度;
∅——标准正态分布累积分布函数(CDF)。

为了减少计算量,本文定义[13]:

依据式(8),每一轮仿真后,s值均被更新,避免了的重复计算。

2.2.2 有效数字位数

有效位数的限制保证了仿真结果的准确性。本文将模拟结果的小数点后的有效位数用β表示。对于n轮MCS,β应该满足如下要求:

2.2.3 最小失效次数

最小失效次数约束保证了仿真结果的有效性。一些高可靠性的硬件和软件,其单位时间可靠度可能达到99.999%,此时的值非常小,使得模拟结果在几轮后就满足了第一和第二约束要求,而这却与MCS使用大量随机实验来近似真实概率的基本思想相违背。

本文用F表示应用程序失败次数的约束。F可以是一个经验值,每一轮模拟根据应用的状态更新累积失败次数f。在模拟结束时,f需要不小于F,即f≥F。

结合以上3个约束条件同时满足式(10)要求时,MCS停止。式(10)中,α为置信水平,α,β和F可以根据特定的精度要求进行调整。

基于输入规则和停止规则,本文提出了一种MCS算法,如算法1(表1)所示,其用于在一个单位时间内模拟应用的可靠性。应用程序状态的模拟步骤如下:

表1 算法1Tab.1 Algorithm 1

(1)非服务组件的状态是根据它们的可靠性和依赖关系来确定的。例如,当一个PS故障时,该PS上的所有VM也会故障。

(2)根据成功服务实例的数量来确定微服务状态,根据微服务状态来确定应用程序状态。

由于不同服务具有不同的复杂程度和重要性,不同服务的容错需求也并不完全相同。例如,当露天矿山中需要调度的无人矿卡数量较多或作业情况较复杂时,作业调度服务则需要更多的资源,故满足作业调度服务需求的最低服务实例个数k应比其他服务需求的最低服务实例个数k"要高。同理,关系型数据库作为存储无人矿卡运行日志文件以及其他关键数据的重要服务,其要求的k值也应较高。因此,本文采取一种逐步遍历算法来找寻最佳的服务实例部署方式,如算法2(表2)所示。在分配给每一个服务所需的最低实例数量后,从剩余的服务实例集合中,每次取出一个服务实例就尝试将其部署在每一个服务上;
通过MCS算法探寻使得系统可靠性获得最大增量时这一实例所部署的位置,并将这一位置确定为该实例的最终部署位置;
然后,逐个将剩余的服务实例依次按照该方案部署完毕。

表2 算法2Tab.2 Algorithm 2

本文使用的仿真软件是在Java(JDK 1.8和IntelliJ IDEA 2021.2.3)中实现的,并运行在带有64位版本的Windows 10、Intel Core i7@2.80 GHz和8 GB RAM的笔记本电脑上。

4.1 实验设置

本文提出了两种对比方法来验证上述服务实例部署方法:

(1)随机部署方式。为保证该对比方法的参考价值,应在保证所有服务都被分配了其需要的最少服务实例的前提下,将剩余服务实例随机分配给各个服务;
并且取10次随机结果的平均值代表该方式获取的可靠性。

(2)均布部署方式。其将所有服务实例均匀分配给各个服务。由于本文设定的作业调度服务最小需求实例数量为5,总服务数量为8,故均布部署方式将从总服务实例为40起进行实验,而其他两种方法将从最小需求服务实例总数的1.5倍起开始实验。

实验参数根据分析组件运行日志以及经验设置。由于公有云的特性,可以将其可靠性设为1。容器和虚拟机的失效率设置为0.005。停止规则方面,本文将置信水平α设为0.99,小数点后有效位数β设为4。对于最小失效次数约束,设置其为100,即可确保MCS仿真不会过早结束。根据前文所讨论的,本文设定数据收发、监控与故障管理、地图管理、作业调度、运营管理、实时流计算、关系型数据库、时序数据库的最少服务实例数量需求分别为2、2、2、5、2、2、3、2。总服务实例数量由最少服务实例总需求的1.5倍起开始设定,虚拟机数量设为8。

4.2 实验结果与分析

图8~图10分别示出3种云系统下露天矿山智能调度管理系统经过3种不同方式的服务实例部署后的单位时间可靠性。可以观察到,遍历部署方式整体优于随机和均布部署方式。以公有云作为物理服务器的调度系统为例,其经过遍历部署后,在总服务实例为40时,就可以获得99.99%以上的可靠度;
而随机部署方式需要总服务实例达到47时,才能达到99.99%以上的可靠性;
并且在总资源较少时,遍历部署的调度系统最多可比随机部署的调度系统高出3.87%的可靠性数值。

图8 公有云系统不同总服务实例下可靠性Fig.8 Reliability of public cloud system under different total SIs

图9 私有云系统不同总服务实例下可靠性Fig.9 Reliability of private cloud system under different total SIs

图10 混合云系统不同总服务实例下可靠性Fig.10 Reliability of hybrid clouds system under different total SIs

作业调度服务的最少服务实例需求量为5;
为保证均布部署方式的有效性,均布部署实验从总服务实例为40开始。然而,相比前面两种部署方式,均布部署方式的表现最差,这是因为不同服务的最少服务实例需求不一样,盲目均匀分配忽视了不同服务的不同需求,导致系统总体可靠性不高。

不难发现,以公有云、私有云、混合云作为物理服务器的调度系统在单位时间内的可靠性差距都不大。因此,本文考虑对不同时间下3种云系统的可靠性进行研究。图11展示了遍历部署方式下3种云系统在不同天数内的可靠性数值。可以看出,在任意天数下,公有云系统可靠性最高,而混合云系统可靠性其次,私有云系统可靠性最低,这一结果符合客观事实;
而且,随着时间的推移,三者的可靠性都逐渐降低,且三者之间的差距越来越大,以15天内的可靠性为例,公有云系统的比混合云系统的以及私有云系统的分别高出1.65%和3.18%。

图11 不同天数下各类云系统的可靠性Fig.11 Reliability of various cloud systems in different days

本文提出了一种用于评估露天矿山智能调度管理系统可靠性的MCS算法。其考虑硬件和软件故障,通过使用基于调度系统部署栈中的组件图和依赖关系对调度系统进行建模;
并且在LDG模型的基础上,设计了输入规则和停止规则。同时,通过利用该算法的评估结果,提出了一种寻求最优服务实例部署方式的逐步遍历算法。实验结果表明,用该MCS算法可以有效地评估出具有一定精度的调度系统可靠性,并且通过逐步遍历算法获得的服务实例部署方式,可以显著提升系统可靠性。

本文提出的方法主要针对在确定云服务器以及确定调度系统组件结构的条件下的可靠性评估以及提升方法。未来,可以考虑更加多样的组件结构以及搜索范围更广的进化算法来探寻调度系统的最佳全局部署策略。

猜你喜欢露天矿实例容器容器倒置后压力压强如何变中学生数理化·八年级物理人教版(2022年4期)2022-04-26备战铁矿露天矿与挂帮矿同时开采稳定性研究有色金属(矿山部分)(2021年4期)2021-08-30露天矿山土石方量的测量及计算电子乐园·上旬刊(2021年8期)2021-05-16难以置信的事情读者·校园版(2019年24期)2019-12-10基于Delphi-TOPSIS法的露天矿采区接续方案优选中国煤炭(2016年9期)2016-06-15河北将对1881个露天矿山开展环境治理河北地质(2016年1期)2016-03-20取米小朋友·聪明学堂(2015年8期)2015-11-30完形填空Ⅱ高中生学习·高三版(2014年3期)2014-04-29完形填空Ⅰ高中生学习·高三版(2014年3期)2014-04-29

推荐访问:管理系统 调度 露天