用于矿山人员定位的双机容灾快速恢复方法与流程

摘要: 本发明涉及矿山安全监控,尤其涉及一种利用井口基站物理特性实现与人员活动无关的秒级容灾恢复的用于矿山人员定位的双机容灾快速恢复方法。背景技术:1、矿山井下人员定位...
用于矿山人员定位的双机容灾快速恢复方法与流程

本发明涉及矿山安全监控,尤其涉及一种利用井口基站物理特性实现与人员活动无关的秒级容灾恢复的用于矿山人员定位的双机容灾快速恢复方法。

背景技术:

1、矿山井下人员定位系统是保障井下作业人员安全的核心基础设施。现有典型系统采用地面主备双服务器容灾架构,井下布设若干定位基站,各基站挂载多路接收天线(接收头),依托uwb无线测距技术实现井下人员实时定位、轨迹跟踪与井下在线人数统计。井下各定位基站实时采集接收头捕获的人员标识标签信号,将原始检测数据经由工业环网上传至地面主服务器;主服务器结合巷道gis电子地图解算人员实时位置,完成人员位置可视化展示与运动轨迹存储,备服务器通过与井下基站通信获取数据或采用定时数据同步机制与主服务器保持数据副本一致,当主服务器发生单点故障时由备服务器自动接管业务,实现基础容灾。

2、然而,当出现极端故障场景时,例如:机房突发异常断电将造成主、备服务器同时掉电停机,服务器内存中维护的实时业务数据全部丢失;硬件故障如主板损坏、cpu过热、存储介质失效会直接引发服务器宕机;定位服务程序因程序漏洞、内存溢出发生异常退出时,操作系统回收进程内存,内存中实时状态数据被彻底清空。现有主备双服务器架构仍存在明显短板,实时井下人员台账完全维护在地面服务器的易失性内存中,当主备服务器同时故障时,内存数据全部灭失,而数据库仅归档历史轨迹,不存储动态实时台账。

3、更为关键的是,服务器重启后的恢复过程严重依赖井下人员的活动状态,服务器必须被动等待井下各基站逐次上报新的测距数据;若人员静止不动,基站无法生成新事件,服务器无法重建该人员状态;对于巷道规模大、基站数量多的大型矿山,重建过程长达数小时;在漫长的恢复窗口期内,调度中心陷入“盲监”状态,存在重大安全调度隐患。

4、现有技术的容灾方法存在的缺陷有:

5、(1)局限于现有工业自动化系统普遍采用的“现场设备采集→传输网络→中心服务器处理”的层级化架构,将全部业务逻辑、实时业务台账等核心状态数据的维护权限单一赋予地面中心服务器。这种架构直接造成系统业务状态容错性差、边缘实时处理能力不足,一旦出现服务器故障、网络中断等异常场景,井下边缘节点无法独立留存、维护实时业务台账,业务运行状态无法就地存续,极易引发业务中断、数据断层等问题,无法适配井下复杂工况下的高可靠、高实时业务运行需求。

6、(2)现有容灾方案默认采用“重连+重采”的单一恢复逻辑,无论是主流的轮询协议还是发布订阅协议,其底层机制设计一般以“故障后需重新采集实时数据、重建业务状态”为处理逻辑。在服务器故障等故障场景下,系统故障恢复必须从零开始重新建立通信连接、全量采集实时数据、逐层重建业务状态,导致系统故障恢复耗时久、流程繁琐。

技术实现思路

1、本发明要解决的核心技术问题是:如何在不依赖井下人员活动状态的条件下,实现主备服务器同时故障后的秒级业务恢复。具体可分解为三个方面:如何在地面服务器完全失效的情况下,确保实时人员台账不丢失。如何在服务器重启后,不依赖人员移动触发新事件即可重建完整台账。如何在恢复过程中保证台账数据与故障前完全一致,避免脏数据污染。

2、为了改善现有技术存在的问题,本发明提供一种用于矿山人员定位的双机容灾快速恢复方法,将实时人员台账下沉至主统计基站本地保存,井下基站分流传输不同粒度数据,主备服务器同时故障重启后,可直接从主统计基站获取井下人员清单重建台账,无需等待基站逐次上报,消除长时间盲监窗口,提升系统容灾能力与井下安全管控可靠性。

3、本发明解决其技术问题所采用的技术方案是:一种用于矿山人员定位的双机容灾快速恢复方法,包括以下步骤:

4、s1、配置主服务器、备服务器、井口/井下基站的网络地址,并指定位于矿井出入口的主井口基站作为主统计基站,所述主统计基站配置有独立后备电源和非易失性存储介质;所述主统计基站兼具两种物理角色:一种是作为定位基站,通过uwb无线测距采集经过井口的人员标识信号;另一种是作为容灾备份节点,通过独立精简通道汇总井下基站推送的数据并维护实时井下人员清单台账;

5、s2、所述井下基站同时向主服务器、备服务器和主统计基站发送不同粒度、不同通道的定位数据,所述主服务器和备服务器接收的定位数据为tcp全量原始测距数据,且所述备服务器与主服务器接收相同粒度的数据;所述主统计基站与井下基站之间采用自定义通信协议进行通信;所述主统计基站接收的定位数据为tcp精简事件帧;所述精简事件帧的通信通道与所述主服务器、备服务器链路完全物理独立,当所述主服务器、备服务器同时故障时,所述精简事件帧的推送不中断;

6、s3、所述主统计基站基于所述非易失性存储介质,独立统计人员的进出站信息,建立实时井下人员清单台账并进行本地储存;所述主统计基站执行独立仲裁逻辑包括:

7、接收井下基站上报的进站事件,若对应人员不在实时井下人员清单台账上,则将该人员加入实时井下人员清单台账并更新井下总人数;

8、接收井下基站上报的出站事件,不减少井下统计人数,仅更新该人员最后活跃时间;

9、接收自身或辅井口基站上报的井口信号时,启动出井反向轨迹回溯验证,判断该人员是否位于实时井下人员清单台账内,若是,则调取该人员最近一段时间内经过的基站路线,校验由矿井深部至浅部的路径是否完整;若路径完整,则将该人员从实时井下人员清单台账中移除,井下总人数减1;若路径不完整,则不处理并触发告警;

10、s4、当所述主服务器、备服务器均故障重启后,向所述主统计基站发起恢复请求;所述主统计基站利用所述独立后备电源持续运行,向主服务器、备服务器直接下发当前井下人员清单的完整数据;所述主服务器、备服务器在内存临时区加载接收的数据,加载完成后执行原子指针切换,指针切换耗时小于50ms;

11、s5、所述主服务器、备服务器根据所述实时井下人员清单台账重建井下人员信息台账并进行本地储存;其中,整体故障恢复时长为秒级,且所述恢复时长与井下人员是否移动无关。

12、进一步的,所述主统计基站的物理特性包括:位于矿井主出入口,具备uwb信号采集能力;配置独立后备电源,续航时间≥4小时,与主/备服务器市电供电完全隔离;配置非易失性存储介质,掉电后实时井下人员清单台账数据不丢失;通过工业环网与井下基站互联,但精简通道的通信不依赖地面服务器存活;

13、所述主统计基站接收到的tcp精简事件帧,包括:定位标签卡号、事件类型、事件信息和时间戳,用于独立统计井下人员清单;

14、所述事件类型包括进站事件、出站事件和心跳事件;其中,

15、所述井下基站对人员进出站的判定策略为:

16、所述井下基站在本地对连续接收到的同一定位标签的多帧测距数据进行分析,若定位标签卡号为有效且测距数据满足要求,则进行人员运动趋势的判定;

17、在连续帧中,若定位标签到井下基站的距离值持续减小,则判定为进入该基站;

18、在连续帧中,若定位标签到井下基站的距离值持续增大,则判定为出该基站。

19、进一步的,所述主统计基站与井下基站之间的自定义通信协议的架构包括:

20、传输层,采用tcp长连接,流式传输模式;

21、服务端,为主统计基站的侦听端口9002;

22、客户端,为井下基站,所述井下基站上电后主动发起tcp连接;

23、通信模式,为主动推送,采集到的定位数据立即上报,心跳周期性批量上报;

24、最大帧长度,小于或等于1460字节;

25、通信帧的结构为:帧长度2字节、帧类型1字节、载荷n字节、crc16校验2字节。

26、进一步的,所述自定义通信协议的解析状态机定义为:

27、状态state_idle,触发条件为:tcp连接建立或一帧解析完成;执行动作:清空接收缓存,等待数据;下一状态表示为state_read_len;

28、状态state_read_len,触发条件为:缓存区<2字节;执行动作:继续接收tcp流数据;下一状态表示为state_read_len;

29、状态state_read_len,触发条件为:缓存区≥2字节;执行动作:提取帧长度值l,校验l≤1460且l≥3;若校验失败,丢弃缓存区全部数据,下一状态表示为state_idle;若校验通过,下一状态表示为state_read_body;

30、状态state_read_body,触发条件为:缓存区

31、状态state_read_body,触发条件为:缓存区≥l字节;执行动作为:截取l字节,分离帧类型、载荷、crc16校验;下一状态表示为state_verify;

32、状态state_verify,触发条件为:crc16校验通过;执行动作为:交付上层处理,移除已解析字节;下一状态表示为state_idle;

33、状态state_verify,触发条件为:crc16校验失败;执行动作:丢弃整帧,记录错误计数;下一状态表示为state_idle;

34、半包处理机制:若tcp段仅包含1字节长度头,状态机停留在状态state_read_len,缓存等待后续字节,不触发任何帧处理逻辑;

35、粘包处理机制:若tcp段包含多帧,状态state_verify完成后自动回到状态state_idle,立即检查缓存区剩余数据是否满足下一帧的状态state_read_len条件,实现连续解析。

36、进一步的,所述通信帧包含的帧类型有进站事件帧0x01、出站事件帧0x02、心跳事件帧0x03、事件确认帧0x04、补发请求帧0x07、帧状态查询帧0x09、补发响应帧0x08和连接保活帧0x0a;其中,

37、帧编号回绕检测机制包括:

38、设所述主统计基站已接收到的最新连续帧的帧编号为r,当前待接收的帧编号为m,定义帧编号差值diff=(m-r)mod65536;

39、若diff=1,则该帧编号为连续帧,正常处理;

40、若2≤diff≤32767,则判定为丢帧,发送补发请求给对应的井下基站;

41、若diff=0,则该帧编号为重复帧,丢弃;

42、若32768≤diff≤65534,则判定该帧编号为回绕后的新帧,正常处理;

43、若diff=65535,即m=r-1,则判定该帧编号为回绕后的乱序旧帧,丢弃。

44、进一步的,心跳处理机制包括采用全局触发与每卡数据提取的两级架构,

45、第一级为全局层,基站维护一个30秒的全局计时器,计时到期后触发心跳打包流程;

46、第二级为每卡层,基站为每张已进站的标签卡维护独立状态机,记录标签卡的最新测距数据、测量时间戳、心跳计数器;全局定时器到期后,遍历所有存活的标签卡状态机,提取最新数据填入心跳帧。

47、进一步的,心跳处理机制还包括心跳错峰策略和空心跳处理策略,

48、所述心跳错峰策略为:各基站基于自身的id号进行初始化偏移,偏移时间=(id号%64)0.45秒,使得各基站的定时器初始相位错峰,避免所有基站同时触发心跳导致主统计基站瞬时处理拥堵;

49、所述空心跳处理策略为:若心跳时刻扫描发现当前覆盖区内无任何存活的标签卡,则基站直接静默,跳过本次心跳,不发送任何空心跳帧。

50、进一步的,所述主统计基站基于嵌入式linux系统设计,采用事件驱动io模型管理所有tcp连接;

51、针对大规模停电或工业环网瞬时中断后,所有基站同时尝试重连的极端场景,各基站采用指数退避重连策略,具体为:首次重连间隔时间为1秒,若连接失败,则将间隔时间乘以退避系数1.5,逐次递增,直至间隔时间达到上限60秒。

52、进一步的,所述出井反向轨迹回溯验证中的路径完整性的判定过程包括:调取该人员最近一段时间内经过的基站序列并按时间戳排序;提取各基站预配置的巷道深度坐标,形成深度序列;判定所述深度序列是否单调递减;判定相邻基站之间是否在巷道拓扑图中存在直接连通路径;若深度单调递减且拓扑连通,则路径完整;否则路径不完整,触发告警。

53、进一步的,所述步骤s4中原子指针切换的具体过程为:所述主服务器或备服务器在内存中维护当前业务指针和临时加载指针两个指针;接收恢复请求后,在临时加载指针指向的内存区域加载主统计基站下发的数据;加载完成后,通过cpu指令级原子操作,将当前业务指针切换为临时加载指针,切换过程不可中断;切换完成后,原当前业务指针指向的内存区域标记为可回收,等待下一次恢复时复用。

54、本发明的有益效果是:

55、本发明将实时井下人员台账下沉至主统计基站本地维护,井下基站向服务器与主统计基站分流传输不同粒度数据,主统计基站依靠精简事件帧独立完成人员进出仲裁。当主、备服务器同时发生故障丢失内存实时数据后,重启的服务器可直接从主统计基站获取最新人员清单,无需等待井下基站逐次上报信号缓慢重建台账,克服了传统双机容灾架构无法应对双服务器同时失效、恢复周期长达数小时的缺陷,大幅缩短了故障恢复时长,消除了调度中心“盲监”窗口期,提升了矿山人员定位系统的容灾能力与井下安全管控可靠性。

56、具体而言,本发明实现了以下技术效果:

57、(1)突破恢复时间对人员活动的依赖:现有技术的恢复时间t=f(人员移动速度,基站密度, 网络状况)是变量,本发明将恢复时间转化为常数t≈2-3秒,无论人员静止还是移动,恢复时间恒定,这是容灾恢复领域的质的突破。

58、(2)解决多基站覆盖重叠导致的统计冲突:通过“出站事件延迟确认+井口反向轨迹回溯”的双层仲裁机制,将减人操作从分布式基站即时判定收敛为井口节点集中仲裁,消除了人员跨基站移动时的台账波动,确保故障恢复后台账数据与故障前完全一致。

59、(3)消除盲监窗口期:从服务器故障到恢复完成的整个过程中,主统计基站持续维护准确台账,调度中心可通过备用终端直接查询主统计基站获取实时人员信息,实现“零盲监”。

60、(4)物理隔离的容灾可靠性:主统计基站的独立后备电源、非易失存储、井口位置,构成了与地面服务器完全物理隔离的容灾单元,即使发生机房级灾难仍可独立运行。

61、(5)数据一致性保障:通过原子指针切换,确保恢复后的服务器台账与主统计基站台账完全一致,无脏数据、无中间态、无重复计数。