一种电力系统仿真的云化方法及系统与流程

文档序号:23628395发布日期:2021-01-12 10:41阅读:100来源:国知局
一种电力系统仿真的云化方法及系统与流程

本发明涉及电力系统仿真、云计算,并特别涉及一种电力系统仿真的云化方法及系统。



背景技术:

为了保证电网安全经济运行,电力调度运行部门需要经常性地开展电网分析计算工作,对各种不同的运行方式、故障形态以及电力系统的稳定性进行研究,目前主流的方法为依托电力系统仿真软件开展分析计算工作。电力系统仿真是根据真实电力系统或过程建立模型进行模拟,通过在计算机上建立适当的数学模型来模拟电力系统物理过程的一种研究方法,具体可以分为机电暂态仿真、电磁暂态仿真以及混合仿真等。根据所仿真的电力系统元件或动态物理过程特性的不同,采用不同的数学模型,如线性、非线性、定长、时变、连续、离散、集中参数、分布参数、确定性、随机性等多种不同的数学模型。进一步地,根据仿真速度又可以分为离线仿真、在线仿真两种,其中,离线仿真的仿真速度与实际物理系统的动态过程不相同,在线仿真的仿真速度则与实例物理系统动态过程完全相同,二者面向不同的应用场景。在国家电网公司以及其他电力规划调度部门,电力系统仿真都是重要的决策支持平台,由于运行目标的多样化,往往要部署多套不同的电力系统仿真平台,以完成各自的计算任务。

目前,在电力系统仿真方面存在以下两个方面的突出问题:

首先,在电力运行调度部门,多套独立部署电力系统仿真系统并存,每一套系统用于满足不同的仿真目标,如用于离线仿真和用于在线仿真的系统部署在相互独立的计算集群上,在线系统对实时性要求非常高,比如10秒钟物理过程,必须在8秒钟内完成计算,一般都采用实时操作系统支撑运行,尽量避免与计算无关的干扰。从生产的角度,一般都是用不同的集群服务器来分别运行离线仿真和在线仿真,避免对在线计算的干扰。。这增加了建设成本,对机房基础环境如空间、制冷、供电等方面提出了更高的要求,需要购置更多的计算、存储、网络等硬件设备。同时,也增加运行管理维护的成本,随着计算集群规模的扩大,管理维护的门槛大幅增加,需要有专业的管理维护人员才能保障大规模计算平台的正常运转。

其次,随着电力系统仿真软件多年的发展进步,以及大数据、人工智能等新一代信息技术的应用,仿真软件本身已经演变为一个庞大的体系,包括了多个不同专业的软件系统,具有极大的复杂性、多元化与异构性,给部署、维护、升级等工作带来了空前挑战。在工程实施过程中,需要多个专业的工程人员共同协作完成,耗时耗力。此外,由于每一个软件都有特定的安装部署环境要求,例如各个组件对操作系统内核版本、glibc等运行时环境版本等环境均提出了不同程度的要求,不同软件之间的环境冲突时有发生;在部署完成后,软件之间协同交互的正确性调试、测试等也需要大量的细致的人工工作投入。据实际测算,完成一次电力系统在线超实时仿真并行计算平台的部署实施需要5个人、15个工作日,效率十分低下,严重影响了电力系统仿真的应用。



技术实现要素:

本发明的目的是解决上述现有电力系统仿真软件在部署、维护、升级等工程实施过程中存在的硬件与基础设施投资大、实施效率低下、需要大量人力和时间投入的问题,提出了一种面向电力系统仿真的云化方法与系统,充分利用云计算的资源共享复用、隔离性、封装性、资源高效编排等方面的能力,在同一套计算集群硬件设备上灵活部署、调度多套不同的电力系统仿真软件,提高资源利用率,降低硬件与基础环境投资,将该仿真软件的实施过程缩短到分钟级,极大提升软件的实施效率,对仿真软件各个独立运行组件实施自动化的全生命周期管理,通过监控软件组件运行、进行故障处置和恢复等功能,降低电力系统仿真平台的运行维护门槛与人力成本。

具体来说,本发明提出了一种电力系统仿真的云化方法,其中包括:

步骤1、从计算集群中选择一个计算节点作为主节点,在该主节点上安装容器云管理服务,并将该计算集群除该主节点以外的计算节点作为从节点,在每一个从节点上安装容器云管理代理和容器引擎;

步骤2、将电力系统仿真任务中各个独立运行的组件及其运行环境封装为容器镜像,将所有容器镜像注册并上传到容器云平台的镜像库中,根据该电力系统仿真任务的约束条件,编写容器编排文件;

步骤3、建立该电力系统仿真任务中组件与当前计算集群中可用从节点的映射关系,根据该映射关系和该编排文件中的调度需求,将该镜像库中容器镜像映射到对应从节点上以启动容器运行;

步骤4、在容器运行过程中,定期采集容器的监控数据并汇总到主节点,通过数据库进行统一存储,并通过容器云平台界面统一展示。

所述的电力系统仿真的云化方法,其中该电力系统仿真任务的运行模式包括离线仿真和在线仿真。

所述的电力系统仿真的云化方法,其中该容器云平台包括:

集群管理组件,登记计算节点硬件资源并监控计算节点的可用性和资源利用率;

容器调度组件,根据电力系统仿真任务的资源需求以及电力系统仿真任务的组成结构,为电力系统仿真任务的运行调度容器,作为容器调度结果;

容器编排组件,通过编排文件描述容器的数量、资源配额、容器镜像、网络配置、容器之间的共生关系,以作为容器调度和部署的依据;

镜像管理组件,基于分层存储策略对容器镜像进行存储,基于元数据对容器镜像管理,以提供容器镜像检索、上传下载和版本管理;

容器监控组件,对容器的运行情况进行监控,包括容器的健康状况、容器的资源使用情况;

容器部署组件,根据编排文件和容器调度结果,在计算节点上动态部署容器,部署包括从镜像库中下载拉取镜像,对容器网络进行配置;

副本管理组件,以容器为单位配置实例副本的数量,容器云平台主动监测相应容器实例的副本数量,当副本数量少于配置实例副本的数量时,启动相应数量的容器实例以满足副本数量的要求。

所述的电力系统仿真的云化方法,其中将电力系统仿真任务中各个独立运行的组件及其运行环境封装为容器镜像时包括:为该电力系统仿真任务创建作业调度容器、作业触发容器和作业监控容器;

作业调度容器,根据容器云平台分配给电力系统仿真任务的容器资源、电力系统仿真任务各个组件的资源需求以及电力系统仿真任务的运行性能指标,确定电力系统仿真任务的各个组件与容器云平台分配给该仿真软件的各容器之间的映射关系;

作业触发容器,根据仿真软件各个组件的运行方式,设置对应的触发方式,并根据相应的条件触发各个组件所在的容器启动运行,对于触发方式为周期性运行式或事件触发式的组件对应的容器,在运行完成后即结束并销毁以向容器云平台中释放资源;

作业监控容器,监控仿真软件的组件及其所在的容器的运行情况以及资源利用情况,若运行异常,则重启该容器。

所述的电力系统仿真的云化方法,其中该编排文件包括容器的资源需求、限额和容器之间的约束条件,并在该编排文件中指定容器的副本数量,以通过该副本管理组件配置实例副本。

本发明还提出了一种电力系统仿真的云化系统,其中包括:

初始化模块,用于从计算集群中选择一个计算节点作为主节点,在该主节点上安装容器云管理服务,并将该计算集群除该主节点以外的计算节点作为从节点,在每一个从节点上安装容器云管理代理和容器引擎;

镜像库建立模块,用于将电力系统仿真任务中各个独立运行的组件及其运行环境封装为容器镜像,将所有容器镜像注册并上传到容器云平台的镜像库中,根据该电力系统仿真任务的约束条件,编写容器编排文件;

容器启动模块,用于建立该电力系统仿真任务中组件与当前计算集群中可用从节点的映射关系,根据该映射关系和该编排文件中的调度需求,将该镜像库中容器镜像映射到对应从节点上以启动容器运行;

监控模块,用于在容器运行过程中,定期采集容器的监控数据并汇总到主节点,通过数据库进行统一存储,并通过容器云平台界面统一展示。

所述的电力系统仿真的云化系统,其中该电力系统仿真任务的运行模式包括离线仿真和在线仿真。

所述的电力系统仿真的云化系统,其中该容器云平台包括:

集群管理组件,登记计算节点硬件资源并监控计算节点的可用性和资源利用率;

容器调度组件,根据电力系统仿真任务的资源需求以及电力系统仿真任务的组成结构,为电力系统仿真任务的运行调度容器,作为容器调度结果;

容器编排组件,通过编排文件描述容器的数量、资源配额、容器镜像、网络配置、容器之间的共生关系,以作为容器调度和部署的依据;

镜像管理组件,基于分层存储策略对容器镜像进行存储,基于元数据对容器镜像管理,以提供容器镜像检索、上传下载和版本管理;

容器监控组件,对容器的运行情况进行监控,包括容器的健康状况、容器的资源使用情况;

容器部署组件,根据编排文件和容器调度结果,在计算节点上动态部署容器,部署包括从镜像库中下载拉取镜像,对容器网络进行配置;

副本管理组件,以容器为单位配置实例副本的数量,容器云平台主动监测相应容器实例的副本数量,当副本数量少于配置实例副本的数量时,启动相应数量的容器实例以满足副本数量的要求。

所述的电力系统仿真的云化系统,其中将电力系统仿真任务中各个独立运行的组件及其运行环境封装为容器镜像时包括:为该电力系统仿真任务创建作业调度容器、作业触发容器和作业监控容器;

作业调度容器,根据容器云平台分配给电力系统仿真任务的容器资源、电力系统仿真任务各个组件的资源需求以及电力系统仿真任务的运行性能指标,确定电力系统仿真任务的各个组件与容器云平台分配给该仿真软件的各容器之间的映射关系;

作业触发容器,根据仿真软件各个组件的运行方式,设置对应的触发方式,并根据相应的条件触发各个组件所在的容器启动运行,对于触发方式为周期性运行式或事件触发式的组件对应的容器,在运行完成后即结束并销毁以向容器云平台中释放资源;

作业监控容器,监控仿真软件的组件及其所在的容器的运行情况以及资源利用情况,若运行异常,则重启该容器。

所述的电力系统仿真的云化系统,其中该编排文件包括容器的资源需求、限额和容器之间的约束条件,并在该编排文件中指定容器的副本数量,以通过该副本管理组件配置实例副本。

本发明与现有技术相比具有三个方面的优势:

第一,能够大幅度降低电力系统仿真软件部署和运行的硬件、基础环境以及人力成本,能够在多套不同的电力系统仿真软件之间高效地共享复用相同的计算集群资源,并提供良好的性能、安全性以及可靠性等方面的隔离性。具体包括利用容器将不同的电力系统仿真软件封装起来,并给予适当的资源配额,如cpu核数、运行时间片比例、内存容量、i/o带宽等,从而实现容器之间(即不同的软件之间)的性能隔离。至于安全性与可靠性则是通过容器自身的隔离能力来实现的。

第二,能够通过容器为不同的软件及其组件封装所需的运行时环境,避免不同语言开发的软件组件对不同操作系统、不同运行时环境等的要求在混合部署到同一台计算节点上时发生冲突,于此同时,通过容器封装后的软件组件具有标准化的运行接口和发布规范,大幅度提高了电力系统仿真软件的部署实施效率。

第三,能够通过自动化的容器云编排技术有序地集成分布式仿真系统的各个软件组件,清晰地表达各个组件的资源需求,描述组件之间的依赖关系,实现大规模分布式软件系统的自动化部署。首先,目前的容器编排技术比如k8s所提供的编排能力仅适用于互联网应用的场景,比如web负载均衡集群,它的服务是无状态的,当扩展或者故障恢复的时候,只需要启动一个相同的容器即可。但对于电力系统仿真软件来说,他并不是web服务,比如,在线超实时仿真可以分为数据整合系统、数据分发系统、并行仿真计算系统、分布式存储系统、ai智能故障筛选系统等,每一个系统都是有状态、且自身也是一个多组件分布式系统。所以,对于电力系统仿真软件的部署,本发明提出了一套容器编排模板的格式,并开发了相应的自动化部署工具,通过对模板的解析来完成该软件的自动化部署。

第四,能够通过容器云应用生命周期管理技术,根据电力系统仿真软件不同的组件、子系统的运行特点进行运行监控、自动化故障恢复等管理维护工作,进一步降低仿真软件的运行维护成本。

附图说明

图1为本发明系统结构图;

图2为本发明提出的云化方案的部署案例图;

图3为本发明在计算集群主节点和从节点部署的容器云平台组件示意图;

图4为镜像分层存储策略示意图。

具体实施方式

本发明为了实现上述技术效果,具体涉及以下关键点:

关键点1,面向多套电力系统仿真软件混合运行的云化资源调度框架与技术。技术效果:能够在同一套计算集群硬件环境下高效地同时运行多套电力系统仿真软件,通过容器虚拟化技术对硬件资源进行细粒度分配,采用两级调度架构为仿真软件动态、按需分配资源,如cpu、内存、存储等。基于该云化资源调度框架与技术,能够在一台计算节点上同时运行属于多套仿真软件的组件,且相互之间具有良好的隔离性,避免在运行性能、安全性和稳定性等方面相互影响。

关键点2,面向复杂、多约束、分布式架构大型电力系统仿真软件的容器云编排技术。技术效果:电力系统仿真软件集成了多款由不同语言开发的、自身采用分布式或并行架构的、相互之间采用多样化方式交互的软件,平台总体运行规模在上百台节点以上。对于这类复杂架构大型软件的部署实施,采用容器云编排技术实现自动化以提升部署实施、更新升级以及管理维护的效率。

关键点3,基于容器云的电力系统仿真软件生命周期管理技术。技术效果:组成电力系统仿真软件的各子系统或组件有着不同的运行生命周期,例如,有的组件以常驻服务的形式运行,有的组件周期性地运行,有的任务在一定条件触发下运行,等等,本发明中的生命周期管理技术能够允许对软件运行生命周期进行定义和管理,通过不同类型的触发器和运行监控器,自动化地管理着大规模组件的运行。

为让本发明的上述特征和效果能阐述的更明确易懂,下文特举实施例,并配合说明书附图作详细说明如下。

本发明中的面向电力系统仿真的云化方法技术方案(以下简称“云化方案”)如图1所示。

本方案中的云化技术方案依托于通用的计算集群,如x86架构的高性能计算节点构成的集群,每个计算节点具有cpu、内存、磁盘、万兆以太网或infiniband高速网络,计算节点上安装能够支持容器技术的linux操作系统发行版和相应的内核,如centos7.6(linuxkernel5.0.0)等,也可以支持其他处理器体系结构,如arm等,本方案中以x86架构为例。

在计算集群硬件资源基础上,通过容器云平台软件对计算集群硬件资源进行统一管理、调度和池化(虚拟化),支持集群硬件资源动态伸缩,支持对异构的硬件资源统一纳管。基于容器虚拟化技术,对计算集群硬件资源进行细粒度灵活划分,如,可以将一个cpu核处理能力的50%分配给一个容器。基于容器对资源和电力系统仿真软件的运行环境进行封装,在容器中安装、部署仿真软件的各个子系统或组件。

容器云平台软件主要包括以下功能组件,每个组件的功能如下:

集群管理:登记计算节点硬件资源、监控计算节点的可用性和资源利用率。

容器调度:根据电力系统仿真软件的资源需求(cpu、内存、存储、网络等方面),以及仿真软件的组成结构,即一套仿真软件往往是由多个运行在独立的容器中的子系统或组件组成的分布式系统,并且组件之间具有依赖或交互关系,通过某种通信方式如网络、共享内存、文件等进行通信,为仿真软件的运行分配资源,资源的分配以容器实例为单位,此处容器实例就是一个运行中的进程组,这其中包括了仿真软件进程;以容器实例为单位的意思,就是把计算机资源,比如cpu、内存、i/o等分配给容器实例。

容器编排:通过编排配置文件描述容器的数量、资源配额、镜像、网络配置、容器之间的共生关系等,以作为容器调度和部署的依据。

镜像管理:基于分层存储策略对容器镜像进行存储,基于镜像元数据对镜像进行高效管理,提供镜像查询检索、上传下载、版本管理等功能。镜像元数据为对镜像基本信息进行描述的数据,包括镜像的名称、大小、格式、存储路径、镜像对应的命令等。

容器监控:对容器的运行情况进行监控,包括容器的健康状况、容器的资源使用情况等。

容器部署:根据容器编排配置文件和容器调度结果,在计算节点上动态部署容器,部署时需要从镜像仓库中下载拉取所需的镜像,对容器网络等进行配置。

副本管理:以容器为单位配置实例副本的数量,容器云平台会主动监测相应容器实例的副本数量,当副本数少于配置的副本数时,会自动启动所需数量的容器实例以满足副本数量的要求,例如,可以将任务调度软件所运行的容器的副本数量设置为1,当该软件运行所在的容器故障时,容器云平台将会自动启动一个相应的容器实例,避免因任务调度软件故障而导致平台整体不可用。

在部署电力系统仿真软件(电力系统仿真任务)时,为仿真软件自动创建作业管理相关容器,以进行仿真软件的生命周期管理。主要包括:作业调度器、作业触发器、作业监控器等,功能如下:

作业调度器:根据容器云平台分配给仿真软件的容器资源和仿真软件各个组件或子系统的资源需求,以及仿真软件的运行性能指标,进行作业调度,即由作业调度器来决定仿真软件(仿真任务)的各个组件/子系统与容器云平台分配给该仿真软件的各容器之间的映射关系,并根据调度决策将各个组件/子系统对应的容器镜像传输到对应容器所在的计算节点上以启动容器运行。

作业触发器:根据仿真软件各个组件/子系统各自的运行方式,如常驻式、周期性运行式、事件触发式等,设置对应的触发方式,由作业触发器负责根据相应的条件触发各个组件/子系统所在的容器启动运行。对于周期性运行式或事件触发式的任务来说,相应的容器在任务运行完成后即结束并销毁以向容器云平台中释放资源。

作业监控器:监控仿真软件的组件/子系统及其所在的容器的运行情况以及资源利用情况,如果任务或容器运行异常,则根据预定义的处置策略进行相应的处理,如重启该容器。

一个基于本发明提出的云化方案的部署案例如图2所示。基于本发明提出的电力系统仿真软件云化方案的实施流程如下:

第一步:在计算集群上部署容器云平台组件。计算集群节点分为两类,一类是master节点(主节点),另一类是slave节点(从节点),在master节点上安装容器云管理服务,在slave节点上安装容器云管理代理和容器引擎,容器运行在slave节点上,如图3所示。

第二步:制作并上传容器镜像。将电力系统软件的各个独立运行的组件或子系统及其所依赖的运行时环境封装为容器镜像,其中电力系统仿真软件从运行模式上划分包括离线仿真和在线仿真两类。在具体操作层面,为了减少容器镜像所占用的存储空间,利用镜像分层存储策略,首先制作通用的基础镜像,如linux操作系统基础镜像,再逐层提炼共性镜像需求,按照“能共享则共享”的原则自底向上逐层构建容器镜像,如图4所示,每一种灰度的矩形都代表一个容器镜像,由该矩形及其下各层镜像(矩形)叠加组成。在构建完所需的各种容器镜像后,将镜像注册并上传到容器云平台的镜像仓库中。通过这种方式,可以最大化地利用镜像仓库的存储空间。

第三步,进行容器编排。根据电力系统仿真软件的资源需求、运行特性及性能指标等约束条件,编写容器编排文件。在编排文件中,应根据容器中运行的组件或子系统的负载特性给出相应容器的资源需求和限额,资源需求是容器调度的主要参考依据,资源限额能够避免由于软件漏洞等原因造成资源滥用、耗尽系统资源而影响系统稳定。编排文件中还应指明容器之间的亲和性、互斥性、共生性等调度约束条件,说明运行在容器中的软件之间的协同关系,以便于在容器部署过程中能够按照编排文件中的参数项进行自动化配置。此外,还可以在编排文件中指定容器的副本数量并显式地开启自动化维护副本数功能,在不指定副本数量的情况下,默认的容器副本数量为1,且不开启自动化维护副本数量功能。

第四步,根据容器编排文件进行容器调度和部署。容器云平台基于编排文件中所描述的调度需求,根据从集群管理服务获取的当前可用slave节点及其可用资源情况进行性能最优化调度,使得调度后的容器能够获得最优的性能表现。在完成调度以后,按照调度策略在相关的slave节点上部署并启动容器运行。

第五步,容器(仿真软件)运行监控与管理。在容器运行过程中,容器的监控数据会被定期采集并汇总到master节点,通过数据库进行统一存储,并通过容器云平台界面统一展示。容器调度服务会根据编排文件中指定的容器副本数量自动维护容器副本的可用性,当容器因故障等原因退出进而导致容器副本数量少于期望值时,容器调度服务会为该容器自动启动所需数量的副本运行。此外,在容器运行过程中,还可以接受由master节点下发的生命周期管理指令,如强行重启某个容器、关闭并删除某个容器等。

以下为与上述方法实施例对应的系统实施例,本实施方式可与上述实施方式互相配合实施。上述实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在上述实施方式中。

本发明还提出了一种电力系统仿真的云化系统,其中包括:

初始化模块,用于从计算集群中选择一个计算节点作为主节点,在该主节点上安装容器云管理服务,并将该计算集群除该主节点以外的计算节点作为从节点,在每一个从节点上安装容器云管理代理和容器引擎;

镜像库建立模块,用于将电力系统仿真任务中各个独立运行的组件及其运行环境封装为容器镜像,将所有容器镜像注册并上传到容器云平台的镜像库中,根据该电力系统仿真任务的约束条件,编写容器编排文件;

容器启动模块,用于建立该电力系统仿真任务中组件与当前计算集群中可用从节点的映射关系,根据该映射关系和该编排文件中的调度需求,将该镜像库中容器镜像映射到对应从节点上以启动容器运行;

监控模块,用于在容器运行过程中,定期采集容器的监控数据并汇总到主节点,通过数据库进行统一存储,并通过容器云平台界面统一展示。

所述的电力系统仿真的云化系统,其中该电力系统仿真任务的运行模式包括离线仿真和在线仿真。

所述的电力系统仿真的云化系统,其中该容器云平台包括:

集群管理组件,登记计算节点硬件资源并监控计算节点的可用性和资源利用率;

容器调度组件,根据电力系统仿真任务的资源需求以及电力系统仿真任务的组成结构,为电力系统仿真任务的运行调度容器,作为容器调度结果;

容器编排组件,通过编排文件描述容器的数量、资源配额、容器镜像、网络配置、容器之间的共生关系,以作为容器调度和部署的依据;

镜像管理组件,基于分层存储策略对容器镜像进行存储,基于元数据对容器镜像管理,以提供容器镜像检索、上传下载和版本管理;

容器监控组件,对容器的运行情况进行监控,包括容器的健康状况、容器的资源使用情况;

容器部署组件,根据编排文件和容器调度结果,在计算节点上动态部署容器,部署包括从镜像库中下载拉取镜像,对容器网络进行配置;

副本管理组件,以容器为单位配置实例副本的数量,容器云平台主动监测相应容器实例的副本数量,当副本数量少于配置实例副本的数量时,启动相应数量的容器实例以满足副本数量的要求。

所述的电力系统仿真的云化系统,其中将电力系统仿真任务中各个独立运行的组件及其运行环境封装为容器镜像时包括:为该电力系统仿真任务创建作业调度容器、作业触发容器和作业监控容器;

作业调度容器,根据容器云平台分配给电力系统仿真任务的容器资源、电力系统仿真任务各个组件的资源需求以及电力系统仿真任务的运行性能指标,确定电力系统仿真任务的各个组件与容器云平台分配给该仿真软件的各容器之间的映射关系;

作业触发容器,根据仿真软件各个组件的运行方式,设置对应的触发方式,并根据相应的条件触发各个组件所在的容器启动运行,对于触发方式为周期性运行式或事件触发式的组件对应的容器,在运行完成后即结束并销毁以向容器云平台中释放资源;

作业监控容器,监控仿真软件的组件及其所在的容器的运行情况以及资源利用情况,若运行异常,则重启该容器。

所述的电力系统仿真的云化系统,其中该编排文件包括容器的资源需求、限额和容器之间的约束条件,并在该编排文件中指定容器的副本数量,以通过该副本管理组件配置实例副本。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1