]> git.proxmox.com Git - mirror_corosync.git/commit
qdevice: Add support for heuristics
authorJan Friesse <jfriesse@redhat.com>
Thu, 10 Nov 2016 17:49:09 +0000 (18:49 +0100)
committerJan Friesse <jfriesse@redhat.com>
Fri, 20 Oct 2017 12:39:13 +0000 (14:39 +0200)
commit42ee89329b3afd4553959eb44652c8214835dbee
treedf2714703588251f75b6f449841054ec0e0cc705
parentc8c257eed6bc2c92d9124abf06dc18fa68100cec
qdevice: Add support for heuristics

Heuristics are set of commands executed locally on startup, cluster
membership change, successful connect to corosync-qnetd and optionally
also at regular times. When all commands finish successfully
(their return error code is zero) on time, heuristics have passed,
otherwise they have failed. The heuristics result is sent to
corosync-qnetd and there it's used in calculations to determine which
partition should be quorate.

Right know, there are some problems (bugs):
- Regular heuristics is supported only by ffsplit. This is not a
problem for clusters with power fencing, but deployments where
non-quorate partition continues to operate may see this as a problem.
- Qdevice-tool status doesn't contain detailed information about
heuristics.
- Qdevice-tool doesn't have a possibility to trigger heuristics
re-execute.

Thanks Chrissie Caulfield for Englishify the man pages.

Signed-off-by: Jan Friesse <jfriesse@redhat.com>
Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
102 files changed:
man/corosync-qdevice-tool.8
man/corosync-qdevice.8
qdevices/Makefile.am
qdevices/corosync-qdevice-tool.c
qdevices/corosync-qdevice.c
qdevices/corosync-qnetd-tool.c
qdevices/dynar-str.c
qdevices/dynar.c
qdevices/dynar.h
qdevices/msg.c
qdevices/msg.h
qdevices/process-list.c [new file with mode: 0644]
qdevices/process-list.h [new file with mode: 0644]
qdevices/qdevice-advanced-settings.c
qdevices/qdevice-advanced-settings.h
qdevices/qdevice-cmap.c
qdevices/qdevice-cmap.h
qdevices/qdevice-config.h
qdevices/qdevice-heuristics-cmd-str.h [new file with mode: 0644]
qdevices/qdevice-heuristics-cmd.c [new file with mode: 0644]
qdevices/qdevice-heuristics-cmd.h [new file with mode: 0644]
qdevices/qdevice-heuristics-exec-list.c [new file with mode: 0644]
qdevices/qdevice-heuristics-exec-list.h [new file with mode: 0644]
qdevices/qdevice-heuristics-exec-result.c [new file with mode: 0644]
qdevices/qdevice-heuristics-exec-result.h [new file with mode: 0644]
qdevices/qdevice-heuristics-instance.c [new file with mode: 0644]
qdevices/qdevice-heuristics-instance.h [new file with mode: 0644]
qdevices/qdevice-heuristics-io.c [new file with mode: 0644]
qdevices/qdevice-heuristics-io.h [new file with mode: 0644]
qdevices/qdevice-heuristics-log.c [new file with mode: 0644]
qdevices/qdevice-heuristics-log.h [new file with mode: 0644]
qdevices/qdevice-heuristics-mode.c [new file with mode: 0644]
qdevices/qdevice-heuristics-mode.h [new file with mode: 0644]
qdevices/qdevice-heuristics-result-notifier.c [new file with mode: 0644]
qdevices/qdevice-heuristics-result-notifier.h [new file with mode: 0644]
qdevices/qdevice-heuristics-worker-cmd.c [new file with mode: 0644]
qdevices/qdevice-heuristics-worker-cmd.h [new file with mode: 0644]
qdevices/qdevice-heuristics-worker-instance.h [new file with mode: 0644]
qdevices/qdevice-heuristics-worker-log.c [new file with mode: 0644]
qdevices/qdevice-heuristics-worker-log.h [new file with mode: 0644]
qdevices/qdevice-heuristics-worker.c [new file with mode: 0644]
qdevices/qdevice-heuristics-worker.h [new file with mode: 0644]
qdevices/qdevice-heuristics.c [new file with mode: 0644]
qdevices/qdevice-heuristics.h [new file with mode: 0644]
qdevices/qdevice-instance.c
qdevices/qdevice-instance.h
qdevices/qdevice-ipc-cmd.c
qdevices/qdevice-model-net.c
qdevices/qdevice-model-net.h
qdevices/qdevice-model.c
qdevices/qdevice-model.h
qdevices/qdevice-net-algo-2nodelms.c
qdevices/qdevice-net-algo-2nodelms.h
qdevices/qdevice-net-algo-ffsplit.c
qdevices/qdevice-net-algo-ffsplit.h
qdevices/qdevice-net-algo-lms.c
qdevices/qdevice-net-algo-lms.h
qdevices/qdevice-net-algo-test.c
qdevices/qdevice-net-algo-test.h
qdevices/qdevice-net-algorithm.c
qdevices/qdevice-net-algorithm.h
qdevices/qdevice-net-cast-vote-timer.c
qdevices/qdevice-net-cast-vote-timer.h
qdevices/qdevice-net-disconnect-reason.h
qdevices/qdevice-net-heuristics.c [new file with mode: 0644]
qdevices/qdevice-net-heuristics.h [new file with mode: 0644]
qdevices/qdevice-net-instance.c
qdevices/qdevice-net-instance.h
qdevices/qdevice-net-ipc-cmd.c
qdevices/qdevice-net-msg-received.c
qdevices/qdevice-net-poll-array-user-data.h
qdevices/qdevice-net-poll.c
qdevices/qdevice-net-send.c
qdevices/qdevice-net-send.h
qdevices/qdevice-net-votequorum.c
qdevices/qdevice-votequorum.c
qdevices/qnetd-algo-2nodelms.c
qdevices/qnetd-algo-2nodelms.h
qdevices/qnetd-algo-ffsplit.c
qdevices/qnetd-algo-ffsplit.h
qdevices/qnetd-algo-lms.c
qdevices/qnetd-algo-lms.h
qdevices/qnetd-algo-test.c
qdevices/qnetd-algo-test.h
qdevices/qnetd-algo-utils.c
qdevices/qnetd-algo-utils.h
qdevices/qnetd-algorithm.c
qdevices/qnetd-algorithm.h
qdevices/qnetd-client-msg-received.c
qdevices/qnetd-client.h
qdevices/qnetd-ipc-cmd.c
qdevices/qnetd-log-debug.c
qdevices/qnetd-log-debug.h
qdevices/test-process-list.c [new file with mode: 0644]
qdevices/timer-list.c
qdevices/timer-list.h
qdevices/tlv.c
qdevices/tlv.h
qdevices/unix-socket-client.c
qdevices/unix-socket.c
qdevices/utils.c
qdevices/utils.h