mirror of
https://git.proxmox.com/git/mirror_corosync
synced 2025-10-06 10:12:24 +00:00

Signed-off-by: Jan Friesse <jfriesse@redhat.com> Reviewed-by: Steven Dake <sdake@redhat.com>
337 lines
9.6 KiB
Groff
337 lines
9.6 KiB
Groff
.\"/*
|
|
.\" * Copyright (c) 2012 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 the 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 "CMAP_KEYS" 8 "05/04/2012" "corosync Man Page" "Corosync Cluster Engine Programmer's Manual"
|
|
|
|
.SH NAME
|
|
.P
|
|
cmap_keys \- Overview of keys stored in the Configuration Map
|
|
|
|
.SH OVERVIEW
|
|
.P
|
|
There are roughly 3 types of keys stored in CMAP:
|
|
.PP
|
|
* Mapping of values stored in config file.
|
|
.PP
|
|
* Runtime statistics.
|
|
.PP
|
|
* Other user created values.
|
|
|
|
In this man page, wild-cards are used with usual meaning.
|
|
|
|
.SH KEYS
|
|
.TP
|
|
internal_configuration.*
|
|
Internal configuration data. This keys (whole prefix) is read only.
|
|
It's only useful for getting list of loaded services.
|
|
|
|
.TP
|
|
logging.*
|
|
Values read from configuration file. It's possible to change them at runtime.
|
|
If subsystem specific configuration is needed, key must be in form
|
|
logging.logger_subsys.SERVICE.key, where SERVICE is upper case name of service and
|
|
key is same as in configuration file. All values are of string type.
|
|
|
|
.TP
|
|
nodelist.*
|
|
Values read from configuration file. Each node element in configuration file gets
|
|
assigned it's position starting from zero. So first node from config file has
|
|
nodelist.node.0. prefix. To be valid entry, each node must have
|
|
.B ring0_addr
|
|
key.
|
|
For change of
|
|
.B nodeid
|
|
key, use u32 data type.
|
|
|
|
Local node position is stored in
|
|
.B local_node_pos
|
|
key (RO), so it's easy to find
|
|
out nodeid/ring addresses of local node directly from cmap.
|
|
|
|
.TP
|
|
runtime.blackbox.*
|
|
Trigger keys for store fplay data. It's recommended to use corosync-blackbox command
|
|
to change keys in this prefix.
|
|
|
|
.TP
|
|
runtime.connections.*
|
|
There are informations about total number of active connections in given moment in
|
|
.B active
|
|
key, number of closed connections during whole runtime of corosync in
|
|
.B closed
|
|
key and informations about each active IPC connection. All keys in this prefix are read-only.
|
|
|
|
.TP
|
|
runtime.connections.ID.*
|
|
Each IPC connection has unique ID. This is in form [[short_name:][PID:]internal_id. On some
|
|
platforms, short_name and PID are not filled and only internal_id is used.
|
|
|
|
Typical keys in prefix are:
|
|
|
|
.B client_pid
|
|
containing PID of IPC connection (unavailable on some platforms).
|
|
|
|
.B dispatched
|
|
with number of dispatched messages.
|
|
|
|
.B invalid_request
|
|
is number of requests made by IPC which are invalid (calling non-existing call, ...).
|
|
|
|
.B name
|
|
containing short name of IPC connection (unavailable on some platforms).
|
|
|
|
.B overload
|
|
is number of requests which were not processed because of overload.
|
|
|
|
.B queue_size
|
|
contains number of messages in queue waiting for send.
|
|
|
|
.B recv_retries
|
|
is total number of interrupted receives.
|
|
|
|
.B requests
|
|
contains number of requests made by IPC.
|
|
|
|
.B responses
|
|
is number of responses sent to IPC client.
|
|
|
|
.B send_retries
|
|
contains total number of interrupted sends.
|
|
|
|
.B service_id
|
|
contains ID of service which IPC is connected to.
|
|
|
|
.TP
|
|
runtime.services.*
|
|
Prefix with statistics for service engines. Each service has it's own
|
|
.B service_id
|
|
key in prefix with name runtime.services.SERVICE., where SERVICE is lower case
|
|
name of service. Inside service prefix is number of received and send messages
|
|
by corosync engine in format runtime.services.SERVICE.EXEC_CALL.rx and
|
|
runtime.services.SERVICE.EXEC_CALL.tx, where EXEC_CALL is internal id of service
|
|
call (so for example 3 in cpg service is receive of multicast message from other
|
|
nodes).
|
|
|
|
.TP
|
|
runtime.totem.pg.mrp.srp.*
|
|
Prefix with statistics about totem. All keys there are read only.
|
|
Typical key prefixes:
|
|
|
|
.B commit_entered
|
|
Number of times processor entered COMMIT state.
|
|
|
|
.B commit_token_lost
|
|
Number of times processor lost token in COMMIT state.
|
|
|
|
.B consensus_timeouts
|
|
How many times processor timeouted making consensus about membership.
|
|
|
|
.B continuous_gather
|
|
How many times was processor not able to reach consensus.
|
|
|
|
.B firewall_enabled_or_nic_failure
|
|
Set to 1 when processor was not able to reach consensus for long time. Usual
|
|
reason is badly configured firewall or connection failure.
|
|
|
|
.B gather_entered
|
|
Number of times processor entered GATHER state.
|
|
|
|
.B gather_token_lost
|
|
Number of times processor lost token in GATHER state.
|
|
|
|
.B mcast_retx
|
|
Number of retransmitted messages.
|
|
|
|
.B mcast_rx
|
|
Number of received multicast messages.
|
|
|
|
.B mcast_tx
|
|
Number of transmitted multicast messages.
|
|
|
|
.B memb_commit_token_rx
|
|
Number of received commit tokens.
|
|
|
|
.B memb_commit_token_tx
|
|
Number of transmitted commit tokens.
|
|
|
|
.B memb_join_rx
|
|
Number of received join messages.
|
|
|
|
.B memb_join_tx
|
|
Number of transmitted join messages.
|
|
|
|
.B memb_merge_detect_rx
|
|
Number of received member merge messages.
|
|
|
|
.B memb_merge_detect_tx
|
|
Number of transmitted member merge messages.
|
|
|
|
.B orf_token_rx
|
|
Number of received orf tokens.
|
|
|
|
.B orf_token_tx
|
|
Number of transmitted orf tokens.
|
|
|
|
.B recovery_entered
|
|
Number of times processor entered recovery.
|
|
|
|
.B recovery_token_lost
|
|
Number of times token was lost in recovery state.
|
|
|
|
.B rx_msg_dropped
|
|
Number of received messages which was dropped because they were not expected
|
|
(as example multicast message in commit state).
|
|
|
|
.B token_hold_cancel_rx
|
|
Number of received token hold cancel messages.
|
|
|
|
.B token_hold_cancel_tx
|
|
Number of transmitted token hold cancel messages.
|
|
|
|
.B mtt_rx_token
|
|
Mean transit time of token in milliseconds. In other words, time between
|
|
two consecutive token receives.
|
|
|
|
.B avg_token_workload
|
|
Average time in milliseconds of holding time of token on current processor.
|
|
|
|
.B avg_backlog_calc
|
|
Average number of not yet sent messages of current processor.
|
|
|
|
.TP
|
|
runtime.totem.pg.mrp.srp.members.*
|
|
Prefix containing members of totem single ring protocol. Each member
|
|
keys has format runtime.totem.pg.mrp.srp.members.NODEID.KEY, where key is
|
|
one of:
|
|
|
|
.B ip
|
|
IP address of member. It's stored in format r(RING_ID) ip(IP_ADDRESS).
|
|
|
|
.B join_count
|
|
Number of times processor joined membership with local processor. When
|
|
processor fails and rejoins again, this value is incremented.
|
|
|
|
.B status
|
|
Status of processor. Can be one of joined and left.
|
|
|
|
.TP
|
|
resources.process.PID.*
|
|
Prefix created by applications using SAM with CMAP integration.
|
|
It contains following keys:
|
|
|
|
.B recovery
|
|
Recovery policy of process. Can be one of quit or restart.
|
|
|
|
.B poll_period
|
|
Value passed in sam_initialize as time_interval.
|
|
|
|
.B last_updated
|
|
Last time when SAM received heartbeat from client.
|
|
|
|
.B state
|
|
State of client. Can be one of failed, stopped, running and waiting for quorum.
|
|
|
|
.TP
|
|
uidgid.*
|
|
Informations about users/groups which are allowed to do IPC connection to
|
|
corosync.
|
|
|
|
.SH DYNAMIC CHANGE USER/GROUP PERMISSION TO USE COROSYNC IPC
|
|
Is very same as in configuration file. To add UID 500 use
|
|
|
|
.br
|
|
# corosync-cmapctl -s uidgid.uid.500 u8 1
|
|
|
|
GID is similar, so to add GID use
|
|
|
|
.br
|
|
# corosync-cmapctl -s uidgid.gid.500 u8 1
|
|
|
|
For removal of permission, simply delete key
|
|
|
|
.br
|
|
# corosync-cmapctl -d uidgid.gid.500
|
|
|
|
.SH DYNAMIC ADD/REMOVE OF UDPU NODE
|
|
We will need to add node with address 10.34.38.108
|
|
and nodeid 3. This node is called NEW and it's not running corosync yet.
|
|
|
|
.PP
|
|
* Find a node position in node list which is not used yet. It's recommended to
|
|
use highest_number + 1. Let's say output of corosync-cmapctl looks like:
|
|
|
|
.br
|
|
nodelist.local_node_pos (u32) = 1
|
|
.br
|
|
nodelist.node.0.nodeid (u32) = 1
|
|
.br
|
|
nodelist.node.0.ring0_addr (str) = 10.34.38.106
|
|
.br
|
|
nodelist.node.1.nodeid (u32) = 2
|
|
.br
|
|
nodelist.node.1.ring0_addr (str) = 10.34.38.107
|
|
|
|
So next node position will be 2.
|
|
.PP
|
|
* Add all entries needed for node on all running nodes, as:
|
|
|
|
.br
|
|
# corosync-cmapctl -s nodelist.node.2.nodeid u32 3
|
|
.br
|
|
# corosync-cmapctl -s nodelist.node.2.ring0_addr str 10.34.38.108
|
|
|
|
Always add ring0_addr key as last. Corosync engine on all nodes should reply
|
|
with
|
|
.I notice [TOTEM ] adding new UDPU member {10.34.38.108}
|
|
message.
|
|
.PP
|
|
* Add node information to configuration file on all nodes so it
|
|
will survive restart of corosync.
|
|
.PP
|
|
* Copy and edit configuration file to NEW node.
|
|
.PP
|
|
* Start corosync on NEW node.
|
|
|
|
Removal of UDPU node is very similar slightly reversed action, so
|
|
.PP
|
|
* Stop corosync old OLD node.
|
|
.PP
|
|
* Remove relevant entries from cmap on all nodes.
|
|
.PP
|
|
* Change configuration file on all nodes.
|
|
|
|
.SH "SEE ALSO"
|
|
.BR corosync_overview (8),
|
|
.BR corosync.conf (5),
|
|
.BR corosync-cmapctl (8)
|