通信数据中心供电系统故障影响区域分析定位

news2024/10/6 4:15:34

(华北石油通信有限公司)

摘要:供电系统对于通信机房而言至关重要,一旦供电系统发生严重故障,需要快速制定出应急预案,使故障影响可控。本文提供一种对机房供电系统故障影响区域快速定位方法。该方法的实现思路是对机房供电系统建立数据模型,当监测到某个供电节点发生严重故障后,触发对供电系统的设备关系表进行的遍历操作,检索出所有与该供电节点关联设备树,并将数据同步至机房供电系统拓扑组件,以颜色填充等效果标识出影响区域。对故障影响区域的定位实现,为快速制定通信机房供电系统故障应急预案提供了有力的数据保障,有效提升运维自动化水平。

    目前,动力环境监控系统用于实时监测机房基础设施运行状态,为机房管理自动化、运行智能化、决策科学化提供有力的技术支撑。但大部分系统基于通用性考虑,多侧重于设备监测的准确性和稳定性,但在数据库建模上,忽视了设备间的关联性。在部署阶段,被监测设备通常以空间为单位进行组织,用组态方式展示出来,这种方式有利于用户快速定位故障设备,但由于缺乏设备间的关联性描述,故障告警只能体现设备单体故障状态,无法评估或预测该故障的影响区域,而这点对于全面掌控供电系统的故障影响至关重要。

    当供电系统出现故障时,运营管理者更关心机房哪些设备会受到影响[6],而这多依赖运维人员对供电系统的熟悉程度和处理故障经验,对于不熟悉系统的维护人员多通过人工检索组网图完成,时效性很差。而如果能解决供电设备关联性问题,便可通过程序对供电系统进行分析,快速定位出终端用电设备,并关联出该故障点上下游供电设备。这样,可有效收敛故障边界,提升应急响应时间。

    由于大部分动力环境监控系统都存在封装性,这导致系统扩展性差,用户只能停留应用层面,特定需求只能通过厂家定制开发实现,这样,增加了投入成本,也限制了用户主动运维的积极性。实际上,实现该功能难度并不大,只要考虑好如何描述设备间的逻辑关系,并依此关系建立数据模型,围绕此模型进行程序开发即可。本文以某数据机房供电系统为例,为该机房供电系统设备建立数据模型,通过对故障节点的分析,快速定位出故障影响区域,并在矢量拓扑图上展示出来。

1、实现思路

1.1、建立设备间数据模型:

该运维应用以某数据机房供电系统为参考,以拓扑图方式构建出某数据机房供电系统组建结构。图1机房供电系统拓扑图的局部

3104cf04a65108b1af4bb439596e593d.png

图1机房供电系统拓扑图

Computer room power supply system topology

该供电组网的局部拓扑结构比较简单,由图可见供电设备并非一对一的链表关系,相对于可靠性要求高的机房,都存在多机并联或冗余的情况,因而实体关系描述上存在多对一或一对多的情况。基于此可用多叉树实现对整个供电系统的描述。通过数据建模,构建出供电系统的各设备的关联性。实际应用中,可从告警事件中获取到设备ID,依据设备间的关联性,可快速遍历出故障设备关联的上下游设备。表1将对依据模型建立起立表单中的主要字段进行了简要说明。图2展示了该表查询结果。

字段名称

含义

NodeID

设备在供电系统的中的节点ID

DeviceID

设备ID,和动环系统中的设备ID对应上,可以从动环数据库中导出来

DeviceName

设备名称和动环系统中的设备命名一致,可以从动环数据库中导出来

ParentID

父类设备的NodeID;但如果有多个设备共同作用于子类,该值为复合值,复合值为6位,每三位是一个设备的NodeID,如UP-2-1并机输出柜是两个UPS并机后供电,它的值为9010(9是UPS2的NodeID,10是UPS4的NodeID)。这种复合值在实际供电系统中很常见。

Groups

子类设备的ID,该缺省值为0,如果下游设备的ParentID是个复合值,改值为下游设备的ParentID

表1字段描述 Field description

8c121f972af685458a58e9001778ebcf.png

图2 记录查询Query display

1、遍历实现

遍历程序采用python语言编写,当动力环境监控系统上报某供电设备停电告警后,以告警设备为锚点分别进行上行和下行的遍历,从而获取到与之相关的完整的供电设备链的输出。假设图1-1中的UP-2-1并机输出柜出现停电,输出结果如下:

{'alarmNode': 'UP-2-1-1UPS并机输出柜', 'upSearch': ['UPS2', 'AA7馈线柜-7QF2', 'AA15市电引入柜', '2#变压器', '6609专线', '9617专线', 'UPS4', 'AA14馈线柜-7QF2'], 'downDict': ['UP-2-2输出柜', 'UP-C-2输出柜', 'UPS-2-3-1QF1', 'UPS-2-3-2QF1', 'UPS-2-3-3QF1', 'UPS-2-3-4QF1', '列头柜1', '列头柜2', '列头柜3', '列头柜4', '列头柜5', '列头柜6', '列头柜7', '列头柜8', '列头柜9', '列头柜10']}

输出结果是和故障节点相关的完整设备链,即故障影响区域。这些数据从后端传递给前端,并在矢量拓扑图上展示出来。图3 是告警触发后对机房供电系统上行的遍历代码[1][2]

e35dbe437aab5f70a6f07a18fe633d8f.png

图3 上行遍历代码Upward traversal code

2、展示的实现:

应用采用B/S架构,后端为DJANGO,前端为HTML5+JS。供电系统拓扑图采用SVG格式绘制,SVG为可缩放矢量图展示效果好,且基于XML。绘制完成的SVG图可嵌入到HTML中<embed id="powernet" src="1.svg" type="image/svg+xml">[。供电设备停电告警会触发后端进行设备遍历,并把遍历结果被发送给前端。前端根据接收数据定位SVG文件中对应元素,并通过代码对其属性进行操作(如颜色填充或闪动等特效),把故障设备及相关的上下链设备和其他设备区分开,实现了对故障边界的收敛。该处理方式对拥有庞大且组网结构复杂的供电系统而言,能显著提升应急处理的时效。

2.1后端的实现

后端主要功能是根据告警节点把遍历出数据集传递给前端。在实际应用场景中可通过动力环境监控系统的北向接口获取实时告警事件。测试阶段是通过前端发送设备名称给后端,来模拟从动环获取供电设备停电告警事件。图5 为后端主要代码[3]

5ad199836ee35d1eb5ba43fd3e36b324.png

图5 后端主要代码Back-end core code

2.2 前端的实现:

前端测试浏览器为IE。根据后端传递的数据匹配对应的SVG控件对象,并填充该控件,从而实现了对遍历结果的展示。需要注意的是当页面加载完成后才能操作SVG,程序里时延100ms后开始操作,具体时延调整根据页面的复杂程度进行调整。图六为前端主要代码[4][5]

3cdd02a5d23debff62b99e2a732b1bcc.png

图6 前端主要代码Front-end core code

2.3开发及测试环境:

Window7+Djang(2.0.5)+SQLite+IE(11.0.115)

3、结束语

    供电系统作为关键基础设施,其安全性决定了整体运营质量。为构建供电系统安全保护措施,除了设计阶段冗余保障,运维阶段需要更多的快速定位和消除故障保护措施。本文提供了一种对供电系统故障影响区域快速分析定位的实现方法,弥补了现有监控系统的不足,同时,通过投石问路,同业内从业人员共同探讨如何更多的通过自动化运维方式有效保障供电系统安全。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/185260.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

可观察性和安全性融合的紧迫性越来越高

根据一份新报告&#xff0c;融合可观察性和安全性的紧迫性越来越大。 软件情报公司 Dynatrace 公布了一项针对大型组织的 1,300 名 CIO 和高级 DevOps 经理&#xff08;包括来自澳大利亚的 100 名&#xff09;进行的独立全球调查的结果。 调查结果表明&#xff0c;随着对连…

OS 学习笔记(3) 操作系统的发展与分类

OS 学习笔记(3) 操作系统的发展与分类 这篇笔记对应的王道考研 1.2 操作系统的发展与分类&#xff0c;同时参考了 《Operating System Concepts, Ninth Edition》和 《 Operating Systems: Three Easy Pieces》&#xff08;俗称ostep&#xff09; 文章目录OS 学习笔记(3) 操作系…

【数据结构】堆的应用——TOP-K问题详解

目录 &#x1f34e;前言&#x1f34e;&#xff1a; &#x1f95d;一、TOP-K 问题概述&#x1f95d;&#xff1a; &#x1f349;二、不同解决思路实现&#x1f349;&#xff1a; ①排序法&#xff1a; ②直接建堆法&#xff1a; ③K 堆法&#xff08;最优解&#xff09;&a…

Redis简单入门

Redis简介 Redis是一个开源的使用C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value的NoSQL数据库。特点如下: 读写速度快&#xff1a;Redis官网测试读写能到10万左右每秒。速度快的原因这里简单说一下&#xff0c;第一是因为数据存储在内存中&#xff0c;我们知…

标准有效的项目开发流程

代码版本管理在项目中&#xff0c;代码的版本管理非常重要。每个需求版本的代码开发在版本控制里都应该经过以下几个步骤。在master分支中拉取该需求版本的两个分支&#xff0c;一个feature分支&#xff0c;一个release分支&#xff1b;feature分支用于接受个人分支merge过来的…

二叉树DFS、BFS

目录 1&#xff0c;DFS遍历 2&#xff0c;DFS遍历OJ实战 力扣 144. 二叉树的前序遍历 力扣 94. 二叉树的中序遍历 力扣 145. 二叉树的后序遍历 力扣 105. 从前序与中序遍历序列构造二叉树 力扣 106. 从中序与后序遍历序列构造二叉树 力扣 889. 根据前序和后序遍历构造二…

C++中的new、operator new与placement new

new operator 当我们使用了new关键字去创建一个对象时&#xff0c;你知道背后做了哪些事情吗&#xff1f; A* a new A;实际上这样简单的一行语句&#xff0c; 背后做了以下三件事情&#xff1a; 分配内存,如果类A重载了operator new&#xff0c;那么将调用A::operator new(…

TencentOS安装并运行多版本php

TencentOS版本3.1安装并运行php7&#xff0c;现在需要同时运行一个php8. php选择使用了php v8.0.27 采用编译安装的方式&#xff0c;编译命令如下&#xff1a; ./configure --prefix/application/php8 --with-config-file-path/application/php8/etc --with-mhash --with-o…

51单片机学习笔记-4矩阵键盘

4 矩阵键盘 [toc] 注&#xff1a;笔记主要参考B站江科大自化协教学视频“51单片机入门教程-2020版 程序全程纯手打 从零开始入门”。 注&#xff1a;工程及代码文件放在了本人的Github仓库。 4.1 矩阵键盘介绍 在键盘中按键数量较多时&#xff0c;为了减少I/O口的占用&#…

vuex中 this.$store.dispatch() 与 this.$store.commit()

一、理解 this.$store.dispatch 分发 actions-> 调用 mutations->改变 states 二、思考 1、为什么不直接分发 mutation mutation 有必须同步执行的限制&#xff0c;而 Action 不受约束&#xff0c;可以在 action 内部执行异步操作2、Action 通常是异步的&#xff0c;…

配置日志输出到指定位置的文件,单独报错error级别以上的日志,按日志类别打印日志

目录1.配置文件2.测试程序&#xff1a;工具&#xff1a;log4j的jar包、配置文件log4j.properties(文件名自定义)、eclipse或IDEA 更多参考&#xff1a;https://www.cnblogs.com/ITtangtang/p/3926665.html、 1.配置文件 新建一个配置文件log4j.properties&#xff08;我把它放…

区块链游戏走出一地鸡毛,元宇宙3D国风链游或成最大受益者

曾推出过《Cytus》《Deemo》《聚爆》等知名游戏的雷亚&#xff0c;其CEO游名扬在接受采访时曾谈到&#xff0c;游戏产业是文化产业加上科技产业的组合体&#xff0c;这两者是组成游戏产业的主要部分。看游戏的趋势&#xff0c;就要针对文化和科技的趋势上来看。 这话没错。 20…

flutter StreamController,ValueListenableBuilder,NotificationListener

FutureBuilder &#xff08;异步数据更新&#xff09; StreamBuilder &#xff08;异步数据更新&#xff09; 构造函数 特点 接收多个异步操作的结果class StreamBuilder<T> extends StreamBuilderBase<T, AsyncSnapshot<T>>{}单订阅&#xff1a;StreamCo…

在Linux中进行Hbase搭建

在公网IP为x.x.x.x、y.y.y.y和z.z.z.z并装有Centos8的服务器上进行hadoop集群搭建、zookeeper集群搭建和hbase搭建&#xff0c;都安装hadoop-3.1.3、server-jre-8u202-linux-x64、apache-zookeeper-3.6.4-bin和hbase-2.5.0-bin。 环境准备&#xff08;三台服务器都一样&#x…

基于javaweb宠物领养平台管理系统设计和实现

基于javaweb宠物领养平台管理系统设计和实现 博主介绍&#xff1a;5年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java毕设项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源码联系方…

C++基础——C++ 判断

C基础——C 判断C 判断判断语句C if 语句语法流程图? : 运算符C 判断 判断结构要求程序员指定一个或多个要评估或测试的条件&#xff0c;以及条件为真时要执行的语句&#xff08;必需的&#xff09;和条件为假时要执行的语句&#xff08;可选的&#xff09;。 下面是大多数编…

DAMA数据管理知识体系指南之数据管理概述

第2章 数据管理 2.1 引言 2.2 使命和目标 使命 在信息的可用性、安全性和质量方面&#xff0c;满足并超越企业中所有利益相关者的信息要求。 战略目标 &#xff08;1&#xff09;理解企业和所有利益相关者的信息需求。 &#xff08;2&#xff09;获取、存储、保护和确保数据资…

堆的结构及函数接口、堆排序,TopK

本篇内容涉及到二叉树的概念及性质&#xff0c;可参考文章 树和二叉树的概念及性质 文章目录一、堆的概念二、堆的存储结构三、堆的函数接口1. 初始化及销毁2. 打印函数3. 堆的插入4. 堆的删除5. 取堆顶、判空、数据个数四、建堆算法和时间复杂度1. 向上调整建堆2. 向下调整建堆…

CTFshow--web--红包题第二弹

查看源代码&#xff0c;按注释提示&#xff0c;构造参数试试?cmdaa<?php #error_reporting(0); ?> <html lang"zh-CN"><head><meta http-equiv"Content-Type" content"text/html; charsetUTF-8" /><meta name&quo…

MATLAB绘制爱心曲线并导出

MATLAB绘制爱心曲线并导出 爱心曲线的表达式&#xff1a; f(x)x2/3e3(π−x2)1/2sin(aπx)f(x)x^{2/3}\frac e 3(\pi-x^2)^{1/2}sin(a\pi x) f(x)x2/33e​(π−x2)1/2sin(aπx) f (x,a)x.^2.^(1/3)exp(1)/3*(pi-x.^2).^(1/2).*sin(a*pi*x); h figure(color,[1 1 1]); set(g…