mirror of
				https://git.proxmox.com/git/mirror_corosync
				synced 2025-11-03 23:40:06 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			347 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			347 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
.\"/*
 | 
						|
.\" * Copyright (c) 2012-2013 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 "10/10/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.
 | 
						|
 | 
						|
.B config_version
 | 
						|
Config version of member node.
 | 
						|
 | 
						|
.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.
 | 
						|
 | 
						|
.TP
 | 
						|
config.reload_in_progress
 | 
						|
This value will be set to 1 (or created) when corosync.conf reload is started,
 | 
						|
and set to 0 when the reload is completed. This allows interested subsystems
 | 
						|
to do atomic reconfiguration rather than changing each key. Note that 
 | 
						|
individual add/change/delete notifications will still be sent during a reload.
 | 
						|
 | 
						|
.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)
 |