QNX学习笔记 [IMX6Q/TQIMX6Q]QNX HAM 高可用框架

1.HAM概念

Hign Availability Framework 类似于软件看门狗,可以检测系统任意进程的状态,并在指定的事件发生后(如进程死亡),作出特定的动作(如进程重启),从而使得关键进程失败后可以迅速恢复,保证全系统的可用性。

2.HAM基本元素

(1)Entities 实体

指的是HAM监测的具体实体,包括
Self-attached entities:即通过主动调用HA ham_attach_self() ham_detach_self() 等API 使得自身受到HAM模块
监测的进程实体。其可以自主选择加入监测 退出监测 监测动作触发条件 或者进行心跳检测。

Externally attached entities : 即外部被动监测实体,如进程A说如果进程B死亡则通知我,则进程B被动的加入监测。

Global entity: 并非一个具体的实体,指的是可以指定系统的任意感兴趣的事件,并在该事件发生时,设定特定的动作。

(2)conditions

条件与实体相关联,指定动作触发的条件,包括:
CONDDEATH : 进程消亡
CONDABNORMALDEATH:进程非正常消亡(即产生了core dump文件的非正常退出)
CONDDETACH :进程退出监测
CONDHBEATMISSEDHIGH: 进程漏发一个高严重性的心跳包
CONDHBEATMISSEDLOW:进程漏发一个低严重性的心跳包
CONDRESTART: 进程重启
CONDRAISE CONDSTATE : 外部报告的条件,并提交给HAM
CONDANY:任意条件
以上所有条件中,除CONDRAISE CONDSTATE CONDANY,其他条件均由HAM模块探测并触发。

(3)action

action 与 condition相关联,一个condition可关联多个action,当该condition发生时,与之关联的action以fifo的形式顺序执行。
action 包括:
重启,执行某个命令,产生pulse,产生signal,wait_for ,log等。

(4)action fail actions

指的是action执行失败后,可指定执行的action列表,与action基本一致,但无 restart ,heartbeat_healthy

猜你喜欢

转载自blog.csdn.net/werweqg/article/details/83214408
今日推荐