]> git.proxmox.com Git - mirror_corosync.git/commitdiff
Qdevice: Add corosync-qdevice man page
authorJan Friesse <jfriesse@redhat.com>
Wed, 29 Jun 2016 16:31:27 +0000 (18:31 +0200)
committerJan Friesse <jfriesse@redhat.com>
Wed, 29 Jun 2016 16:35:37 +0000 (18:35 +0200)
Signed-off-by: Jan Friesse <jfriesse@redhat.com>
corosync.spec.in
man/Makefile.am
man/corosync-qdevice.8 [new file with mode: 0644]
man/corosync-qnetd.8

index 6ff3e227975fba207a8ef12086375e45248e5a4a..282ef2bc110077d458adeb03d60aa904e17b9c0d 100644 (file)
@@ -429,6 +429,7 @@ fi
 %endif
 %{_mandir}/man8/corosync-qdevice-tool.8*
 %{_mandir}/man8/corosync-qdevice-net-certutil.8*
+%{_mandir}/man8/corosync-qdevice.8*
 %endif
 
 # optional qnetd
index cff2a563d4f6cc3e88ad0246d1fdc184aa78664a..d9c94919fb199830f0a74759b2762807a2fa5928 100644 (file)
@@ -150,7 +150,8 @@ endif
 
 if BUILD_QDEVICES
 dist_man_MANS          += corosync-qdevice-tool.8 \
-                           corosync-qdevice-net-certutil.8
+                           corosync-qdevice-net-certutil.8 \
+                           corosync-qdevice.8
 endif
 
 HTML_DOCS              = $(dist_man_MANS:%=%.html) $(man_MANS:%=%.html)
diff --git a/man/corosync-qdevice.8 b/man/corosync-qdevice.8
new file mode 100644 (file)
index 0000000..6d89051
--- /dev/null
@@ -0,0 +1,317 @@
+.\"/*
+.\" * Copyright (C) 2016 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 8 2016-06-29
+.SH NAME
+corosync-qdevice \- QDevice daemon
+.SH SYNOPSIS
+.B "corosync-qdevice [-dfh] [-S option=value[,option2=value2,...]]"
+
+.SH DESCRIPTION
+.B corosync-qdevice
+is daemon running on each node of of cluster and being able to provide configured
+number of votes to
+quorum subsystem based on third-party arbiter decision. It's primary use
+is to allow sustain more node failures than standard quorum would allow. It's
+recommended for even-node clusters and very recommended for 2 node cluster.
+.SH OPTIONS
+.TP
+.B -d
+Forcefully turn on debug information without need to change corosync.conf.
+.TP
+.B -f
+Do not daemonize and run on foreground.
+.TP
+.B -h
+Show short help
+.TP
+.B -S
+Set advanced settings described in it's own section. This option
+shouldn't be generally used because most of the options are
+not safe to change.
+.SH CONFIGURATION
+.B corosync-qdevice
+reads it's configuration from corosync.conf file.
+
+Main configuration is within
+.B quorum.device
+subdirective. Each model also has it's own configuration within
+equally named subdirective.
+.TP
+.B model
+Specifies model to be used. This parameter is required.
+.B corosync-qdevice
+is modular and it's able to support multiple different models. Model basically
+defines what type of arbiter is used. Currently only
+.I net
+is supported.
+.TP
+.B timeout
+Specifies how often should
+.B corosync-qdevice
+call votequorum_poll function. It's also used by net model to adjust
+hearbeat timeout. It's usually not recommended to change this value.
+Default is 10000.
+.TP
+.B sync_timeout
+Specifies how often should
+.B corosync-qdevice
+call votequorum_poll function during sync phase. It's usually not recommended to change this value.
+Default is 30000.
+.B votes
+Number of votes provided to cluster by qdevice. Default is (number_of_nodes - 1) or generally
+sum(votes per node) - 1.
+.PP
+Within
+.B quorum.device.net
+subdirective is configuration for model net.
+.TP
+.B tls
+Can be one of
+.I on, off or required
+values and specifies if tls should be used.
+.I on
+value means connection should be tried with TLS but it's not fatal
+error if server doesn't advertise TLS support and then non tls is used.
+.I off
+is used when TLS is not required and it's then not even tried. This is also
+only one mode which doesn't need properly initialized NSS database.
+.I required
+means TLS is absolutelly required and if server doesn't support TLS, qdevice
+exits with error message. Default is on.
+.TP
+.B host
+Specifies IP address or host name of qnetd server to be used. This parameter
+is required.
+.TP
+.B port
+Specifies TCP port of qnetd server. Default is 5403.
+.TP
+.B algorithm
+Decision algorithm. Can be one of the
+.I ffsplit
+or
+.I lms
+values (actually there are also
+.I test
+and
+.I 2nodelms
+, both of them mainly for developers and shouldn't be generally used). Description of
+what algorithm means and how algorithms differs is in it's own section.
+Default value is ffsplit.
+.TP
+.B tie-breaker
+can be one of
+.I lowest
+,
+.I highest
+or valid_node_id (number) values. It's used as a fallback if qdevice has to solve two
+exactly same quality partitions.
+.I lowest
+means partition with lowest node id is choosen.
+.I highest
+means partition with highest node is choosen. And valid_node_id means partition
+where node with given node id is member is choosen.
+.TP
+.B connect_timeout
+Timeout when
+.B corosync-qdevice
+is trying to connect to
+.B corosync-qnetd
+host. Default is 0.8 * quorum.sync_timeout.
+.TP
+.B force_ip_version
+can be one of
+.I 0|4|6
+and allows forcing using given IP version.
+.I 0
+(default value) means IPv6 is prefered and IPv4 should be used as fallback.
+
+.PP
+Logging configuration is within
+.B logging
+directive.
+.B corosync-qdevice
+parses and supports most of the options with exception to
+.B to_logfile
+,
+.B logfile
+and
+.B logfile_priority.
+.B logger_subsys
+sub-directive can be also used if
+.B subsys
+is set to QDEVICE.
+
+.PP
+For
+.B corosync-qdevice
+to work correctly,
+.B nodelist
+directive has to be used and properly configured. Also net model require
+.B totem.cluster_name
+option to be set.
+
+.SH MODEL NET TLS CONFIGURATION
+For model net to make TLS work it's required to create NSS database, import Qnetd
+CA certificate, and get/distribute valid client certificate.
+
+If pcs is used following steps are not needed because pcs does them automatically.
+
+.B corosync-qdevice-net-certutil
+is tool to perform required actions semi-automatically. Please consult help output of
+it and its man page. For first time configuration it may make sense to start with
+.B -Q
+option.
+
+If TLS is not required just edit corosync.conf file and set
+.B quorum.device.net.tls
+to
+.I off
+value.
+
+.SH MODEL NET ALGORITHMS
+Algorithm is used to change behavior of how
+.B corosync-qnetd
+provides vote to given node/partition. Currently there are two algorithms supported.
+.TP
+.B ffsplit
+Make sense only for clusters with even number of nodes. It provides exactly one
+vote to partition with higher number of active nodes. If there are two exactly same partitions,
+it provides it's vote to partition where more clients are connected to qnetd
+server. If also this number equals, tie-breaker is used. It's able to transition
+it's vote if currently active partition partitioned and non-active partition
+still has at least 50% of active nodes. Because of this, vote is not provided
+if qnetd connection is not active.
+
+For use this algorithm it's required to set number of votes per node to 1 (default)
+and qdevice number of votes has to be also 1. This is achieved by setting
+.B quorum.device.votes
+key in corosync.conf file to 1.
+.TP
+.B lms
+Last-man-standing. If the node is the only one left in the cluster that can see the
+qnetd server then we return a vote.
+
+If more than one node can see the qnetd server but some nodes can't
+see each other then we divide the cluster up into 'partitions' based on
+their ring_id and return a vote to nodes in the partition that contains
+a nominated nodeid. (lowest, highest, etc). For LMS to work, number
+of qdevice votes has to be set to default (so just delete
+.B quorum.device.votes
+key from corosync.conf).
+
+.SH ADVANCED SETTINGS
+Set by using
+.B -S
+option. At the end of description in braces is default value. Options
+beginning with
+.B net_
+prefix are specific to model net.
+.TP
+.B lock_file
+Lock file location. (/var/run/corosync-qdevice/corosync-qdevice.pid)
+.TP
+.B local_socket_file
+Internal IPC socket file location. (/var/run/corosync-qdevice/corosync-qdevice.sock)
+.TP
+.B local_socket_backlog
+Parameter passed to listen syscall. (10)
+.TP
+.B max_cs_try_again
+How many times retry to call corosync function which returned CS_ERR_TRY_AGAIN. (10)
+.TP
+.B votequorum_device_name
+Name used for qdevice register. (Qdevice)
+.TP
+.B ipc_max_clients
+Maximum allowed simultaneous IPC clients. (10)
+.TP
+.B ipc_max_receive_size
+Maximum size of message received by IPC client. (4096)
+.TP
+.B ipc_max_send_size
+Maximum size of message allowed to send to IPC client. (65536)
+.TP
+.B master_wins
+Force enable/disable master wins. (default is model)
+.TP
+.B net_nss_db_dir
+NSS database directory. (/etc/corosync/qdevice/net/nssdb)
+.TP
+.B net_initial_msg_receive_size
+Initial (used during connection parameters negotiation)
+maximum size of receive buffer for message (maximum
+allowed message size received from qnetd). (32768)
+.TP
+.B net_initial_msg_send_size
+Initial (used during connection parameters negotiation)
+maximum size of one send buffer (message) to be send to server. (32768)
+.TP
+.B net_min_msg_send_size
+Minimum required size of one send buffer (message) to be send to server. (32768)
+.TP
+.B net_max_msg_receive_size
+Maximum allowed size of receive buffer for message sent by server. (16777216)
+.TP
+.B net_max_send_buffers
+Maximum number of send buffers. (10)
+.TP
+.B net_nss_qnetd_cn
+Canonical name of qnetd server certificate. (Qnetd Server)
+.TP
+.B net_nss_client_cert_nickname
+NSS nickname of qdevice client certificate. (Cluster Cert)
+.TP
+.B net_heartbeat_interval_min
+Minimal heartbeat timeout accepted by client in ms. (1000)
+.TP
+.B net_heartbeat_interval_max
+Maximal heartbeat timeout accepted by client in ms. (120000)
+.TP
+.B net_min_connect_timeout
+Minimal connection timeout accepted by client in ms. (1000)
+.TP
+.B net_max_connect_timeout
+Maximal connection timeout accepted by client in ms. (120000)
+.TP
+.B net_test_algorithm_enabled
+Enable test algorithm. (if built with --enable-debug on, otherwise off)
+.SH SEE ALSO
+.BR corosync-qdevice-tool (8)
+.BR corosync-qdevice-certutil (8)
+.BR corosync-qnetd (8)
+.BR corosync.conf (5)
+.SH AUTHOR
+Jan Friesse
+.PP
index cc32383f2abef03549641a1513ead17342bd6674..06d46db1296e2c82bbb44c599648a555826091b4 100644 (file)
@@ -31,7 +31,7 @@
 .\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
 .\" * THE POSSIBILITY OF SUCH DAMAGE.
 .\" */
-.TH COROSYNC-QNETD 8 2016-06-28
+.TH COROSYNC-QNETD 8 2016-06-29
 .SH NAME
 corosync-qnetd \- QNet daemon
 .SH SYNOPSIS
@@ -63,6 +63,9 @@ up priority use
 .B -d
 parameter twice.
 .TP
+.B -f
+Do not daemonize and run on foreground.
+.TP
 .B -h
 Show short help
 .TP
@@ -147,7 +150,9 @@ is not already installed, use one provided in corosync source code
 corosync-qnetd.service unit file and uncomment/change "User=" directive.
 
 .SH TLS CONFIGURATION
-For TLS to work it's required to create NSS database.
+For TLS to work it's required to create NSS database. If pcs is used following
+steps are not needed because pcs does them automatically.
+
 .B corosync-qnetd-certutil
 is tool to perform required actions automatically. Just execute: