mirror of
https://git.proxmox.com/git/mirror_corosync-qdevice
synced 2025-08-12 21:13:51 +00:00

This patch adds qdevice-net part of keep active partition tie breaker functionality. It's enabled by default. When tie happens prefer partition with members of previously active (quorate) partition. This is hard-coded behavior of LMS algorithm so this setting affects only FFSplit algorithm. By default it is disabled for backwards compatibility. This solves problem with FFSplit when node A (with lowest id) is killed, node B gets vote and then node A starts up and creates single node membership and gets vote. Signed-off-by: Jan Friesse <jfriesse@redhat.com>
132 lines
4.4 KiB
Groff
132 lines
4.4 KiB
Groff
.\"/*
|
|
.\" * Copyright (C) 2016-2020 Red Hat, Inc.
|
|
.\" *
|
|
.\" * All rights reserved.
|
|
.\" *
|
|
.\" * Author: Jan Friesse <jfriesse@redhat.com>
|
|
.\" *
|
|
.\" * This software licensed under BSD license, the text of which follows:
|
|
.\" *
|
|
.\" * Redistribution and use in source and binary forms, with or without
|
|
.\" * modification, are permitted provided that the following conditions are met:
|
|
.\" *
|
|
.\" * - Redistributions of source code must retain the above copyright notice,
|
|
.\" * this list of conditions and the following disclaimer.
|
|
.\" * - Redistributions in binary form must reproduce the above copyright notice,
|
|
.\" * this list of conditions and the following disclaimer in the documentation
|
|
.\" * and/or other materials provided with the distribution.
|
|
.\" * - Neither the name of Red Hat, Inc. nor the names of its
|
|
.\" * contributors may be used to endorse or promote products derived from this
|
|
.\" * software without specific prior written permission.
|
|
.\" *
|
|
.\" * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
.\" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
.\" * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
.\" * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
.\" * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
.\" * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
.\" * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
.\" * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
.\" * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
.\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
|
.\" * THE POSSIBILITY OF SUCH DAMAGE.
|
|
.\" */
|
|
.TH COROSYNC-QDEVICE-TOOL 8 2020-10-27
|
|
.SH NAME
|
|
corosync-qdevice-tool \- corosync-qdevice control interface.
|
|
.SH SYNOPSIS
|
|
.B "corosync-qdevice-tool [-Hhsv] [-p qdevice_ipc_socket_path]"
|
|
.SH DESCRIPTION
|
|
.B corosync-qdevice-tool
|
|
is a frontend to the internal corosync-qdevice IPC. Its main purpose is to show important
|
|
information about the current internal state of
|
|
.B corosync-qdevice.
|
|
.SH OPTIONS
|
|
.TP
|
|
.B -H
|
|
Properly shutdown the
|
|
.B corosync-qdevice
|
|
process
|
|
.TP
|
|
.B -h
|
|
Display a short usage text
|
|
.TP
|
|
.B -s
|
|
Display the status of the
|
|
.B corosync-qdevice
|
|
process. The output is described in its own section below.
|
|
.TP
|
|
.B -v
|
|
Display more verbose output for the
|
|
.B -s
|
|
option.
|
|
.TP
|
|
.B -p
|
|
Path to the
|
|
.B corosync-qdevice
|
|
communication socket.
|
|
|
|
.SH STATUS COMMAND OUTPUT
|
|
.nf
|
|
Qdevice information
|
|
-------------------
|
|
Model: Net
|
|
Node ID: 1
|
|
HB interval: 10000ms
|
|
Sync HB interval: 30000ms
|
|
Configured node list:
|
|
0 Node ID = 1
|
|
Heuristics: Enabled
|
|
Ring ID: 1.a00000000021b48
|
|
Membership node list: 1
|
|
Quorate: Yes
|
|
Quorum node list:
|
|
0 Node ID = 1, State = member
|
|
Expected votes: 2
|
|
Last poll call: 2016-06-24T17:05:20 (cast vote)
|
|
|
|
Qdevice-net information
|
|
----------------------
|
|
Cluster name: Cluster
|
|
QNetd host: localhost:5403
|
|
Connect timeout: 8000ms
|
|
HB interval: 8000ms
|
|
VQ vote timer interval: 5000ms
|
|
TLS: Supported
|
|
Algorithm: Fifty-Fifty split
|
|
Tie-breaker: Node with lowest node ID
|
|
KAP Tie-breaker: Enabled
|
|
Poll timer running: Yes (cast vote)
|
|
State: Connected
|
|
Heuristics result: Pass (regular: Pass, membership: Fail, connect: Fail)
|
|
TLS active: Yes (client certificate sent)
|
|
Connected since: 2016-06-24T17:02:35
|
|
Echo reply received: 2016-06-24T17:05:15
|
|
.fi
|
|
|
|
The output is split into a generic qdevice section and a model specific section.
|
|
Most of the items are just taken from corosync.conf file. It's helpful to note that the
|
|
.I Membership node list
|
|
is the membership list of the current node and should match the quorum node list.
|
|
.I Last poll call
|
|
is the timestamp (in iso format) of the last call to the votequorum_qdevice_poll
|
|
function.
|
|
|
|
For model net, it's good to check the
|
|
.I Poll timer running
|
|
state. Internally, model net supports 3 states. Not voting (when
|
|
.I Poll timer running
|
|
is No, which means
|
|
.B corosync-qdevice
|
|
is waiting for
|
|
.B corosync-qnetd
|
|
to reply), voting (without cast vote, it means that the
|
|
.B corosync-qnetd
|
|
algorithm decides that the current node shouldn't get a vote) and voting (with cast vote).
|
|
.SH SEE ALSO
|
|
.BR corosync-qnetd (8)
|
|
.BR corosync-qdevice (8)
|
|
.SH AUTHOR
|
|
Jan Friesse
|
|
.PP
|