|
|
@@ -39,79 +39,80 @@ corosync-qdevice \- QDevice daemon
|
|
|
|
|
|
.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.
|
|
|
+is a daemon running on each node of a cluster. It provides a configured
|
|
|
+number of votes to the
|
|
|
+quorum subsystem based on a third-party arbitrator's decision. Its primary use
|
|
|
+is to allow a cluster to sustain more node failures than standard quorum rules allow.
|
|
|
+It is recommended for clusters with an even number of nodes and highly recommended
|
|
|
+for 2 node clusters.
|
|
|
.SH OPTIONS
|
|
|
.TP
|
|
|
.B -d
|
|
|
-Forcefully turn on debug information without need to change corosync.conf.
|
|
|
+Forcefully turn on debug information without the need to change corosync.conf.
|
|
|
.TP
|
|
|
.B -f
|
|
|
-Do not daemonize and run on foreground.
|
|
|
+Do not daemonize, run in the foreground.
|
|
|
.TP
|
|
|
.B -h
|
|
|
-Show short help
|
|
|
+Show short help text
|
|
|
.TP
|
|
|
.B -S
|
|
|
-Set advanced settings described in it's own section. This option
|
|
|
+Set advanced settings described in its own section below. 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.
|
|
|
+reads its configuration from corosync.conf file.
|
|
|
|
|
|
-Main configuration is within
|
|
|
+The main configuration is within
|
|
|
.B quorum.device
|
|
|
-subdirective. Each model also has it's own configuration within
|
|
|
-equally named subdirective.
|
|
|
+sub-key. Each model also has its own configuration within a
|
|
|
+similarly named sub-key.
|
|
|
.TP
|
|
|
.B model
|
|
|
-Specifies model to be used. This parameter is required.
|
|
|
+Specifies the 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
|
|
|
+is modular and is able to support multiple different models. The model basically
|
|
|
+defines what type of arbitrator 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.
|
|
|
+should call the votequorum_poll function. It is also used by the net model to adjust
|
|
|
+its hearbeat timeout. It is recommended that you don't change this value.
|
|
|
Default is 10000.
|
|
|
.TP
|
|
|
.B sync_timeout
|
|
|
-Specifies how often should
|
|
|
+Specifies how often
|
|
|
.B corosync-qdevice
|
|
|
-call votequorum_poll function during sync phase. It's usually not recommended to change this value.
|
|
|
+should call the votequorum_poll function during a sync phase. It is recommended that you don't change this value.
|
|
|
Default is 30000.
|
|
|
+.TP
|
|
|
.B votes
|
|
|
-Number of votes provided to cluster by qdevice. Default is (number_of_nodes - 1) or generally
|
|
|
-sum(votes per node) - 1.
|
|
|
+The number of votes provided to the 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.
|
|
|
+holds the configuration for model 'net'.
|
|
|
.TP
|
|
|
.B tls
|
|
|
Can be one of
|
|
|
.I on, off or required
|
|
|
-values and specifies if tls should be used.
|
|
|
+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.
|
|
|
+means a connection with TLS is attempted first, but if the server doesn't advertise TLS support
|
|
|
+then non-TLS will be 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.
|
|
|
+is used then TLS is not required and it's then not even tried. This mode is the
|
|
|
+only one which doesn't need a 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.
|
|
|
+means TLS is required and if the server doesn't support TLS, qdevice will
|
|
|
+exit with error message. Default is on.
|
|
|
.TP
|
|
|
.B host
|
|
|
-Specifies IP address or host name of qnetd server to be used. This parameter
|
|
|
+Specifies the IP address or host name of the qnetd server to be used. This parameter
|
|
|
is required.
|
|
|
.TP
|
|
|
.B port
|
|
|
@@ -121,27 +122,26 @@ Specifies TCP port of qnetd server. Default is 5403.
|
|
|
Decision algorithm. Can be one of the
|
|
|
.I ffsplit
|
|
|
or
|
|
|
-.I lms
|
|
|
-values (actually there are also
|
|
|
+.I lms.
|
|
|
+(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.
|
|
|
+, both of which are mainly for developers and shouldn't be used for production clusters). For a
|
|
|
+description of what each algorithm means and how the algorithms differ see their individual sections.
|
|
|
Default value is ffsplit.
|
|
|
.TP
|
|
|
.B tie-breaker
|
|
|
can be one of
|
|
|
-.I lowest
|
|
|
-,
|
|
|
+.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.
|
|
|
+or valid_node_id (number) values. It's used as a fallback if qdevice has to decide between two or more
|
|
|
+equal partitions.
|
|
|
.I lowest
|
|
|
-means partition with lowest node id is choosen.
|
|
|
+means the partition with the lowest node id is chosen.
|
|
|
.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.
|
|
|
+means the partition with highest node id is chosen. And valid_node_id means that the partition
|
|
|
+containing the node with the given node id is chosen.
|
|
|
.TP
|
|
|
.B connect_timeout
|
|
|
Timeout when
|
|
|
@@ -153,21 +153,21 @@ host. Default is 0.8 * quorum.sync_timeout.
|
|
|
.B force_ip_version
|
|
|
can be one of
|
|
|
.I 0|4|6
|
|
|
-and allows forcing using given IP version.
|
|
|
+and forces the software to use the given IP version.
|
|
|
.I 0
|
|
|
-(default value) means IPv6 is prefered and IPv4 should be used as fallback.
|
|
|
+(default value) means IPv6 is prefered and IPv4 should be used as a fallback.
|
|
|
|
|
|
.PP
|
|
|
-Logging configuration is within
|
|
|
+Logging configuration is within the
|
|
|
.B logging
|
|
|
directive.
|
|
|
.B corosync-qdevice
|
|
|
-parses and supports most of the options with exception to
|
|
|
-.B to_logfile
|
|
|
-,
|
|
|
+parses and supports most of the options with exception of
|
|
|
+.B to_logfile,
|
|
|
.B logfile
|
|
|
and
|
|
|
.B logfile_priority.
|
|
|
+The
|
|
|
.B logger_subsys
|
|
|
sub-directive can be also used if
|
|
|
.B subsys
|
|
|
@@ -176,46 +176,45 @@ is set to QDEVICE.
|
|
|
.PP
|
|
|
For
|
|
|
.B corosync-qdevice
|
|
|
-to work correctly,
|
|
|
+to work correctly, the
|
|
|
.B nodelist
|
|
|
-directive has to be used and properly configured. Also net model require
|
|
|
+directive has to be used and properly configured. Also the net model requires that
|
|
|
.B totem.cluster_name
|
|
|
-option to be set.
|
|
|
+option is 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.
|
|
|
+For model net to work using TLS, it's necessary to create the NSS database, import Qnetd
|
|
|
+CA certificate, and get/distribute a valid client certificate.
|
|
|
|
|
|
-If pcs is used following steps are not needed because pcs does them automatically.
|
|
|
+If pcs is used (recommended) the 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
|
|
|
+is the tool to perform required actions semi-automatically. Please consult the help output of
|
|
|
+it and its man page. For a first time configuration it may make sense to start with the
|
|
|
.B -Q
|
|
|
option.
|
|
|
|
|
|
If TLS is not required just edit corosync.conf file and set
|
|
|
.B quorum.device.net.tls
|
|
|
to
|
|
|
-.I off
|
|
|
-value.
|
|
|
+.I off.
|
|
|
|
|
|
.SH MODEL NET ALGORITHMS
|
|
|
-Algorithm is used to change behavior of how
|
|
|
+Algorithms are used to change behavior of how
|
|
|
.B corosync-qnetd
|
|
|
-provides vote to given node/partition. Currently there are two algorithms supported.
|
|
|
+provides votes to a 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.
|
|
|
+This one makes sense only for clusters with even number of nodes. It provides exactly one
|
|
|
+vote to the partition with the highest number of active nodes. If there are two exactly similar partitions,
|
|
|
+it provides its vote to the partition that has the most clients connected to the qnetd
|
|
|
+server. If this number is also equal, then the tie-breaker is used. It is able to transition
|
|
|
+its vote if the currently active partition becomes partitioned and a non-active partition
|
|
|
+still has at least 50% of the active nodes. Because of this, a vote is not provided
|
|
|
+if the 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
|
|
|
+To use this algorithm it's required to set the number of votes per node to 1 (default)
|
|
|
+and the 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
|
|
|
@@ -224,9 +223,10 @@ Last-man-standing. If the node is the only one left in the cluster that can see
|
|
|
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
|
|
|
+see each other then the cluster is divided up into 'partitions' based on
|
|
|
+their ring_id and this algorithm returns a vote to the largest active partition or,
|
|
|
+if there is more than 1 equal partiton, the partition that contains the tie_breaker
|
|
|
+node (lowest, highest, etc). For LMS to work, the number
|
|
|
of qdevice votes has to be set to default (so just delete
|
|
|
.B quorum.device.votes
|
|
|
key from corosync.conf).
|
|
|
@@ -234,7 +234,7 @@ key from corosync.conf).
|
|
|
.SH ADVANCED SETTINGS
|
|
|
Set by using
|
|
|
.B -S
|
|
|
-option. At the end of description in braces is default value. Options
|
|
|
+option. The default value is shown in parentheses) Options
|
|
|
beginning with
|
|
|
.B net_
|
|
|
prefix are specific to model net.
|
|
|
@@ -249,19 +249,19 @@ Internal IPC socket file location. (/var/run/corosync-qdevice/corosync-qdevice.s
|
|
|
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)
|
|
|
+How many times to retry the call to a corosync function which has returned CS_ERR_TRY_AGAIN. (10)
|
|
|
.TP
|
|
|
.B votequorum_device_name
|
|
|
-Name used for qdevice register. (Qdevice)
|
|
|
+Name used for qdevice registration. (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)
|
|
|
+Maximum size of a message received by IPC client. (4096)
|
|
|
.TP
|
|
|
.B ipc_max_send_size
|
|
|
-Maximum size of message allowed to send to IPC client. (65536)
|
|
|
+Maximum size of a message allowed to be sent to an IPC client. (65536)
|
|
|
.TP
|
|
|
.B master_wins
|
|
|
Force enable/disable master wins. (default is model)
|
|
|
@@ -271,18 +271,18 @@ 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
|
|
|
+maximum size of the 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)
|
|
|
+Initial (used during connection parameter negotiation)
|
|
|
+maximum size of one send buffer (message) to be sent to server. (32768)
|
|
|
.TP
|
|
|
.B net_min_msg_send_size
|
|
|
-Minimum required size of one send buffer (message) to be send to server. (32768)
|
|
|
+Minimum required size of one send buffer (message) to be sent to server. (32768)
|
|
|
.TP
|
|
|
.B net_max_msg_receive_size
|
|
|
-Maximum allowed size of receive buffer for message sent by server. (16777216)
|
|
|
+Maximum allowed size of receive buffer for a message sent by server. (16777216)
|
|
|
.TP
|
|
|
.B net_max_send_buffers
|
|
|
Maximum number of send buffers. (10)
|
|
|
@@ -294,16 +294,16 @@ Canonical name of qnetd server certificate. (Qnetd Server)
|
|
|
NSS nickname of qdevice client certificate. (Cluster Cert)
|
|
|
.TP
|
|
|
.B net_heartbeat_interval_min
|
|
|
-Minimal heartbeat timeout accepted by client in ms. (1000)
|
|
|
+Minimum heartbeat timeout accepted by client in ms. (1000)
|
|
|
.TP
|
|
|
.B net_heartbeat_interval_max
|
|
|
-Maximal heartbeat timeout accepted by client in ms. (120000)
|
|
|
+Maximum heartbeat timeout accepted by client in ms. (120000)
|
|
|
.TP
|
|
|
.B net_min_connect_timeout
|
|
|
-Minimal connection timeout accepted by client in ms. (1000)
|
|
|
+Minimum connection timeout accepted by client in ms. (1000)
|
|
|
.TP
|
|
|
.B net_max_connect_timeout
|
|
|
-Maximal connection timeout accepted by client in ms. (120000)
|
|
|
+Maximum 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)
|