mirror_corosync/qdevices
Jan Friesse 42ee89329b 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>
2017-10-20 14:39:13 +02:00
..
.gitignore Qdevice: Add IPC clients 2016-06-28 13:58:42 +02:00
corosync-qdevice-net-certutil.sh Qdevice: Handle /var/run on tmpfs 2016-06-28 13:58:43 +02:00
corosync-qdevice-tool.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
corosync-qdevice.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
corosync-qnetd-certutil.sh Qdevice: Handle /var/run on tmpfs 2016-06-28 13:58:43 +02:00
corosync-qnetd-tool.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
corosync-qnetd.c Qdevice: Add advanced settings 2016-06-28 13:58:42 +02:00
dynar-getopt-lex.c Qdevice: Remove unused variable 2016-06-28 13:58:43 +02:00
dynar-getopt-lex.h Qnetd: Add advanced settings 2016-06-28 13:58:42 +02:00
dynar-simple-lex.c Qnetd: Add advanced settings 2016-06-28 13:58:42 +02:00
dynar-simple-lex.h Qdevice: Improve simple lex and add unit test 2016-06-28 13:58:41 +02:00
dynar-str.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
dynar-str.h Qnetd: Add local IPC 2016-06-28 13:58:42 +02:00
dynar.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
dynar.h qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
Makefile.am qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
msg.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
msg.h qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
msgio.c qnetd: Factorize qnetd-poll-array to generic unit 2016-06-28 13:58:41 +02:00
msgio.h Improve qdevice 2016-06-28 13:58:39 +02:00
node-list.c Qnetd: Implement cluster algorithm data 2016-06-28 13:58:42 +02:00
node-list.h Qnetd: Implement cluster algorithm data 2016-06-28 13:58:42 +02:00
nss-sock.c Qdevice: Send ring id in more messages 2016-06-28 13:58:43 +02:00
nss-sock.h Refactor qdevice-net 2016-06-28 13:58:40 +02:00
pr-poll-array.c Qdevice: Fix errors found by coverity 2016-06-28 13:58:43 +02:00
pr-poll-array.h qnetd: Factorize qnetd-poll-array to generic unit 2016-06-28 13:58:41 +02:00
process-list.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
process-list.h qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-advanced-settings.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-advanced-settings.h qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-cmap.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-cmap.h qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-config.h qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-heuristics-cmd-str.h qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-heuristics-cmd.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-heuristics-cmd.h qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-heuristics-exec-list.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-heuristics-exec-list.h qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-heuristics-exec-result.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-heuristics-exec-result.h qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-heuristics-instance.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-heuristics-instance.h qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-heuristics-io.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-heuristics-io.h qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-heuristics-log.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-heuristics-log.h qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-heuristics-mode.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-heuristics-mode.h qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-heuristics-result-notifier.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-heuristics-result-notifier.h qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-heuristics-worker-cmd.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-heuristics-worker-cmd.h qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-heuristics-worker-instance.h qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-heuristics-worker-log.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-heuristics-worker-log.h qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-heuristics-worker.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-heuristics-worker.h qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-heuristics.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-heuristics.h qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-instance.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-instance.h qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-ipc-cmd.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-ipc-cmd.h Qdevice: Implement status command 2016-06-28 13:58:41 +02:00
qdevice-ipc.c Qdevice: Fix errors found by coverity 2016-06-28 13:58:43 +02:00
qdevice-ipc.h qdevice: Ensure to exit if ipc socket is closed 2016-06-28 13:58:42 +02:00
qdevice-log-debug.c Qdevice: Send ring id in more messages 2016-06-28 13:58:43 +02:00
qdevice-log-debug.h Refactor qdevice-net 2016-06-28 13:58:40 +02:00
qdevice-log.c qdevice: Add support for daemonize 2016-06-28 13:58:40 +02:00
qdevice-log.h qdevice: Add support for daemonize 2016-06-28 13:58:40 +02:00
qdevice-model-net.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-model-net.h qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-model-type.h Refactor qdevice-net 2016-06-28 13:58:40 +02:00
qdevice-model.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-model.h qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-net-algo-2nodelms.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-net-algo-2nodelms.h qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-net-algo-ffsplit.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-net-algo-ffsplit.h qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-net-algo-lms.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-net-algo-lms.h qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-net-algo-test.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-net-algo-test.h qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-net-algorithm.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-net-algorithm.h qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-net-cast-vote-timer.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-net-cast-vote-timer.h qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-net-disconnect-reason.h qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-net-echo-request-timer.c qdevice: Force send of heartbeat 2016-06-28 13:58:40 +02:00
qdevice-net-echo-request-timer.h qdevice: Force send of heartbeat 2016-06-28 13:58:40 +02:00
qdevice-net-heuristics.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-net-heuristics.h qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-net-instance.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-net-instance.h qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-net-ipc-cmd.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-net-ipc-cmd.h Qdevice: Support for IPC status cmd in net model 2016-06-28 13:58:41 +02:00
qdevice-net-msg-received.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-net-msg-received.h Refactor qdevice-net 2016-06-28 13:58:40 +02:00
qdevice-net-nss.c Qdevice: Send ring id in more messages 2016-06-28 13:58:43 +02:00
qdevice-net-nss.h Refactor qdevice-net 2016-06-28 13:58:40 +02:00
qdevice-net-poll-array-user-data.h qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-net-poll.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-net-poll.h Refactor qdevice-net 2016-06-28 13:58:40 +02:00
qdevice-net-send.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-net-send.h qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-net-socket.c Qdevice: Add advanced settings 2016-06-28 13:58:42 +02:00
qdevice-net-socket.h Refactor qdevice-net 2016-06-28 13:58:40 +02:00
qdevice-net-votequorum.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-net-votequorum.h Refactor qdevice-net 2016-06-28 13:58:40 +02:00
qdevice-votequorum.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qdevice-votequorum.h Qdevice: Allow master_wins 2016-06-28 13:58:43 +02:00
qnet-config.h Qdevice: Enhance delay before reconnect 2016-06-28 13:58:43 +02:00
qnetd-advanced-settings.c Qdevice: Add more man pages 2016-06-29 18:35:37 +02:00
qnetd-advanced-settings.h Qnetd: Add advanced settings 2016-06-28 13:58:42 +02:00
qnetd-algo-2nodelms.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qnetd-algo-2nodelms.h qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qnetd-algo-ffsplit.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qnetd-algo-ffsplit.h qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qnetd-algo-lms.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qnetd-algo-lms.h qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qnetd-algo-test.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qnetd-algo-test.h qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qnetd-algo-utils.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qnetd-algo-utils.h qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qnetd-algorithm.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qnetd-algorithm.h qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qnetd-client-algo-timer.c Qnetd: ffsplit: Enhance ffsplit 2016-06-28 13:58:43 +02:00
qnetd-client-algo-timer.h qnetd: Add support for qnetd algo timer 2016-06-28 13:58:40 +02:00
qnetd-client-list.c Qnetd: Log client in IP address:port format 2016-06-28 13:58:41 +02:00
qnetd-client-list.h Qnetd: Log client in IP address:port format 2016-06-28 13:58:41 +02:00
qnetd-client-msg-received.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qnetd-client-msg-received.h Improve qdevice 2016-06-28 13:58:39 +02:00
qnetd-client-net.c Qdevice: Send ring id in more messages 2016-06-28 13:58:43 +02:00
qnetd-client-net.h Improve qdevice 2016-06-28 13:58:39 +02:00
qnetd-client-send.c Qnetd: ffsplit: Enhance ffsplit 2016-06-28 13:58:43 +02:00
qnetd-client-send.h Qnetd: ffsplit: Enhance ffsplit 2016-06-28 13:58:43 +02:00
qnetd-client.c Qnetd: Log client in IP address:port format 2016-06-28 13:58:41 +02:00
qnetd-client.h qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qnetd-cluster-list.c Qdevice: Send ring id in more messages 2016-06-28 13:58:43 +02:00
qnetd-cluster-list.h Qnetd: Implement cluster algorithm data 2016-06-28 13:58:42 +02:00
qnetd-cluster.c Qnetd: ffsplit: Enhance ffsplit 2016-06-28 13:58:43 +02:00
qnetd-cluster.h Qnetd: ffsplit: Enhance ffsplit 2016-06-28 13:58:43 +02:00
qnetd-dpd-timer.c Qnetd: Add advanced settings 2016-06-28 13:58:42 +02:00
qnetd-dpd-timer.h qnetd: Add dead peer (client) detection 2016-06-28 13:58:40 +02:00
qnetd-instance.c Qdevice: Add advanced settings 2016-06-28 13:58:42 +02:00
qnetd-instance.h Qdevice: Add advanced settings 2016-06-28 13:58:42 +02:00
qnetd-ipc-cmd.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qnetd-ipc-cmd.h qnetd: Add support for IPC list command 2016-06-28 13:58:42 +02:00
qnetd-ipc.c Qdevice: Fix errors found by coverity 2016-06-28 13:58:43 +02:00
qnetd-ipc.h qdevice: Ensure to exit if ipc socket is closed 2016-06-28 13:58:42 +02:00
qnetd-log-debug.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qnetd-log-debug.h qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
qnetd-log.c Fix various typos 2016-09-12 09:50:11 +02:00
qnetd-log.h Qnetd: Add local IPC 2016-06-28 13:58:42 +02:00
qnetd-poll-array-user-data.h Qnetd: Add local IPC 2016-06-28 13:58:42 +02:00
send-buffer-list.c Refactor qdevice-net 2016-06-28 13:58:40 +02:00
send-buffer-list.h Refactor qdevice-net 2016-06-28 13:58:40 +02:00
test-dynar-getopt-lex.c Qnetd: Add advanced settings 2016-06-28 13:58:42 +02:00
test-dynar-simple-lex.c Qdevice: Quote str func compatible with simple_lex 2016-06-28 13:58:41 +02:00
test-dynar.c qdevice: Add dynar prepend 2016-06-28 13:58:41 +02:00
test-process-list.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
test-qnetd-cluster-list.c Qdevice: Improve simple lex and add unit test 2016-06-28 13:58:41 +02:00
timer-list.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
timer-list.h qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
tlv.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
tlv.h qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
unix-socket-client-list.c qdevice: Add preliminary version of IPC 2016-06-28 13:58:40 +02:00
unix-socket-client-list.h qdevice: Add preliminary version of IPC 2016-06-28 13:58:40 +02:00
unix-socket-client.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
unix-socket-client.h qdevice: Sending error (output) in IPC 2016-06-28 13:58:41 +02:00
unix-socket-ipc.c qdevice: Ensure to exit if ipc socket is closed 2016-06-28 13:58:42 +02:00
unix-socket-ipc.h qdevice: Ensure to exit if ipc socket is closed 2016-06-28 13:58:42 +02:00
unix-socket.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
unix-socket.h Qdevice: Add IPC clients 2016-06-28 13:58:42 +02:00
utils.c qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00
utils.h qdevice: Add support for heuristics 2017-10-20 14:39:13 +02:00