From: Zhang Chen <chen.zhang@intel.com>
Advanced Watch Dog is an universal monitoring module on VMM side, it can be used to detect network down(VMM to guest, VMM to VMM, VMM to another remote server) and do previously set operation.
for example: send message to admin, notify another VMM, send qmp command to qemu do some operation like restart the VM, build VMM heartbeat system, etc.
It make user have basic VM/Host network monitoring tools and basic false tolerance and recovery solution.
Demo usage(for COLO heartbeat):
In primary node:
-chardev socket,id=h1,host=3.3.3.3,port=9009,server,nowait
-chardev socket,id=heartbeat0,host=3.3.3.3,port=4445
-object iothread,id=iothread2
-object advanced-watchdog,id=heart1,server=on,awd_node=h1,notification_node=heartbeat0,opt_script=colo_opt_script_path,iothread=iothread1,pulse_interval=1000,timeout=5000
In secondary node:
-monitor tcp::4445,server,nowait
-chardev socket,id=h1,host=3.3.3.3,port=9009,reconnect=1
-chardev socket,id=heart1,host=3.3.3.8,port=4445
-object iothread,id=iothread1
-object advanced-watchdog,id=heart1,server=off,awd_node=h1,notification_node=heart1,opt_script=colo_secondary_opt_script,iothread=iothread1,timeout=10000
Zhang Chen (4):
net/awd.c: Introduce Advanced Watch Dog module framework
net/awd.c: Initailize input/output chardev
net/awd.c: Load advanced watch dog worker thread job
vl.c: Make Advanced Watch Dog delayed initialization
net/Makefile.objs | 1 +
net/awd.c | 486 ++++++++++++++++++++++++++++++++++++++++++++++
qemu-options.hx | 6 +
vl.c | 7 +
4 files changed, 500 insertions(+)
create mode 100644 net/awd.c
--
2.17.1