cmap_keys - Overview of keys stored in the Configuration Map
There are 3 main types of keys stored in CMAP:
* Mapping of values stored in the config file.
* Runtime statistics.
* Other user created values.
In this man page, wild-cards have the usual meaning.
These keys are in the icmap (default) map
- internal_configuration.*
- Internal configuration data. All keys in this prefix are
read only. It's only useful for getting a list of loaded services.
- logging.*
- Values read from the configuration file. It's possible to
change them at runtime. If subsystem specific configuration is needed, the
key must be in the form logging.logger_subsys.SERVICE.key, where SERVICE
is upper case name of the service and key is same as in the configuration
file. All values are of string type.
- nodelist.*
- Values are read from the configuration file only (dynamic
updates are not allowed). Each node element in the configuration file gets
assigned its position starting from zero. So the first node from the
config file has nodelist.node.0. prefix. To be a valid entry, each node
must have ring0_addr key. To change the nodeid key, use a
u32 data type.
Local node position is stored in local_node_pos key (RO), so it's
easy to find out nodeid/ring addresses of the local node directly from
cmap.
- runtime.blackbox.*
- Trigger keys for storing fplay data. It's recommended that
you use the corosync-blackbox command to change keys in this prefix.
- runtime.force_gather
- Set to 'yes' to force the processor to move into the GATHER
state. This operation is dangerous and is not recommended.
- runtime.config.*
- Contains the values actually in use by the totem membership
protocol. Values here are either taken from the Corosync configuration
file, defaults or computed from entries in the config file. For
information on individual keys please refer to the man page
corosync.conf(5).
- runtime.services.*
- Prefix with statistics for service engines. Each service
has its own service_id key in the prefix with the name
runtime.services.SERVICE., where SERVICE is the lower case name of the
service. Inside the service prefix is the number of messages received and
sent by the corosync engine in the format
runtime.services.SERVICE.EXEC_CALL.rx and
runtime.services.SERVICE.EXEC_CALL.tx, where EXEC_CALL is the internal id
of the service call (so for example 3 in cpg service is receive of
multicast message from other nodes).
- runtime.totem.members.*
- Prefix containing members of the totem single ring
protocol. Each member keys has format runtime.totem.members.NODEID.KEY,
where key is one of:
config_version Config version of the member node.
- resources.process.PID.*
- Prefix created by applications using SAM with CMAP
integration. It contains the following keys:
recovery Recovery policy of the process. Can be one of quit or
restart.
poll_period Value passed in sam_initialize as a time_interval.
last_updated Last time SAM received a heartbeat from the client.
state State of the client. Can be one of failed, stopped, running and
waiting for quorum.
- uidgid.*
- Information about users/groups which are allowed to make
IPC connections to corosync. Entries loaded from configuration file are
stored with uidgid.config.* prefix and are pruned on configuration file
reload. Dynamic entries has uidgid.* prefix and a configuration file
reload doesn't affect them.
- quorum.cancel_wait_for_all
- Tells votequorum to cancel waiting for all nodes at cluster
startup. Can be used to unblock quorum if notes are known to be down. For
pcs use only.
- cfg.shutdown_timeout
- Sets the timeout within which daemons that are registered
for cfg callbacks must respond to a corosync_cfg_try_shutdown() request.
the default is 5000 mS
- config.reload_in_progress
- This value will be set to 1 (or created) when a
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.
- config.totemconfig_reload_in_progress
- This key is similar to
config.totemconfig_reload_in_progress but changed after the totem
config trigger is processed. It is useful (mainly) for situations when
nodelist.local_node_pos must be correctly reinstated before
anything else.
These keys are in the stats map. All keys in this map are read-only.
Modification tracking of individual keys is supported in the stats map, but
not prefixes. Add/Delete operations are supported on prefixes though so you
can track for new ipc connections or knet interfaces.
- stats.srp.*
- Prefix containing statistics about totem. Typical key
prefixes:
commit_entered Number of times the processor entered COMMIT state.
commit_token_lost Number of times the processor lost token in COMMIT
state.
consensus_timeouts How many times the processor timed out forming a
consensus about membership.
continuous_gather How many times the processor was not able to reach
consensus.
firewall_enabled_or_nic_failure Set to 1 when processor was not able
to reach consensus for long time. The usual reason is a badly configured
firewall or connection failure.
gather_entered Number of times the processor entered GATHER state.
gather_token_lost Number of times the processor lost token in GATHER
state.
mcast_retx Number of retransmitted messages.
mcast_rx Number of received multicast messages.
mcast_tx Number of transmitted multicast messages.
memb_commit_token_rx Number of received commit tokens.
memb_commit_token_tx Number of transmitted commit tokens.
memb_join_rx Number of received join messages.
memb_join_tx Number of transmitted join messages.
memb_merge_detect_rx Number of received member merge messages.
memb_merge_detect_tx Number of transmitted member merge messages.
orf_token_rx Number of received orf tokens.
orf_token_tx Number of transmitted orf tokens.
recovery_entered Number of times the processor entered recovery.
recovery_token_lost Number of times the token was lost in recovery
state.
rx_msg_dropped Number of received messages which were dropped because
they were not expected (as example multicast message in commit state).
token_hold_cancel_rx Number of received token hold cancel messages.
token_hold_cancel_tx Number of transmitted token hold cancel
messages.
mtt_rx_token Mean transit time of token in milliseconds. In other
words, time between two consecutive token receives.
avg_token_workload Average time in milliseconds of holding time of
token on the current processor.
avg_backlog_calc Average number of not yet sent messages on the
current processor.
- stats.knet.nodeX.linkY.*
- Statistics about the network traffic to and from each node
and link when using tke kronosnet transport
connected Whether the link is connected or not
up_count Number of times this link has changed state to UP
down_count Number of times this link has changed state to DOWN
latency_ave / latency_max / latency_max Calculated latencies of this
link. Note that if there has been no traffic on the link then latency_min
will show a very large number.
latency_samples The number of samples used to calculate the latency
figures, so you have some idea of their precision.
rx_data_packets / tx_data_packets The number of packets sent/received
on this link
rx_data_bytes / tx_data_bytes The number of bytes sent/received on
this link
rx_pmtu_packets / tx_pmtu_packets The number of packets sent/received
by the PMTUd subsystem
rx_pmtu_bytes / tx_pmtu_bytes The number of bytes sent/received by
the PMTUd subsystem
rx_ping_packets / tx_ping_packets The number of packets sent/received
as pings
rx_ping_bytes / tx_ping_bytes The number of bytes sent/received as
pings
rx_pong_packets / tx_pong_packets The number of packets sent/received
as pongs
rx_pong_bytes / tx_pong_bytes The number of bytes sent/received as
pongs
rx_total_packets / tx_total_packets The total number of packets
sent/received. The aggregate of all of the above packet stats
rx_total_bytes / tx_total_bytes The total number of bytes
sent/received. The aggregate of all of the above bytes stats
tx_data_retries / tx_pmtu_retries / tx_ping_retries / tx_pong_retries /
tx_total_retries Number of times a transmit operation had to be
retried due to the socket returning EAGAIN
- stats.ipcs.*
- There is information about total number of active
connections from client programs at the time the request was made.
active number of closed connections during whole runtime of
corosync closed Total number of connections that have been made
since corosync was started
- stats.ipcs.ID.*
- Each IPC connection has a unique ID. This is in the form
[[serviceX:][PID:]internal_id.
Typical keys in this prefix are:
proc_name process name of connected process (unavailable on some
platforms)
dispatched number of dispatched messages.
invalid_request number of requests made by IPC which are invalid
(calling non-existing call, ...).
name contains short name of the IPC connection (unavailable on some
platforms).
overload is number of requests which were not processed because of
overload.
queue_size contains the number of messages in the queue waiting for
send.
recv_retries is the total number of interrupted receives.
requests contains the number of requests made by IPC.
responses is the number of responses sent to the IPC client.
send_retries contains the total number of interrupted sends.
service_id contains the ID of service which the IPC is connected to.
- stats.schedmiss.<n>.*
- If corosync is not scheduled after the required period of
time it will log this event and also write an entry to the stats cmap
under this key. There can be up to 10 entries (0..9) in here, when an 11th
event happens the earliest will be removed.
These events will always be in reverse order, so stats.schedmiss.0.* will
always be the latest event kept and 9 the oldest. If you want to listen
for notifications then you are recommended to listen for changes to
stats.schedmiss.0.timestamp or stats.schedmiss.0.delay.
timestamp The time of the event in ms since the Epoch (ie time_t *
1000 but with valid milliseconds).
delay The time that corosync was paused (in ms, float value).
- stats.clear.*
- These are write-only keys used to clear the stats for
various subsystems
totem Clears the pg & srp totem stats.
knet Clears the knet stats
ipc Clears the ipc stats
schedmiss Clears the schedmiss stats
all Clears all of the above stats
Is the same as in the configuration file. eg: to add UID 500 use
# corosync-cmapctl -s uidgid.uid.500 u8 1
GID is similar, so to add a GID use
# corosync-cmapctl -s uidgid.gid.500 u8 1
For removal of permissions, simply delete the key
# corosync-cmapctl -d uidgid.gid.500
corosync_overview(7),
corosync.conf(5),
corosync-cmapctl(8)