| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368 |
- .\"/*
- .\" * Copyright (c) 2012-2014 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 3 main types of keys stored in CMAP:
- .PP
- * Mapping of values stored in the config file.
- .PP
- * Runtime statistics.
- .PP
- * Other user created values.
- In this man page, wild-cards have the usual meaning.
- .SH KEYS
- .TP
- internal_configuration.*
- Internal configuration data. All keys in this prefix are read only.
- It's only useful for getting a list of loaded services.
- .TP
- 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.
- .TP
- nodelist.*
- Values read from the configuration file. Each node element in the configuration file gets
- assigned it's 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
- .B ring0_addr
- key.
- To change the
- .B nodeid
- key, use a 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 the local node directly from cmap.
- .TP
- runtime.blackbox.*
- Trigger keys for storing fplay data. It's recommended that you the corosync-blackbox command
- to change keys in this prefix.
- .TP
- runtime.connections.*
- There is information about total number of active connections in given moment in the
- .B active
- key, number of closed connections during whole runtime of corosync in the
- .B closed
- key and information about each active IPC connection. All keys in this prefix are read-only.
- .TP
- runtime.connections.ID.*
- Each IPC connection has a unique ID. This is in the 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 this prefix are:
- .B client_pid
- containing PID of IPC connection (unavailable on some platforms).
- .B dispatched
- number of dispatched messages.
- .B invalid_request
- number of requests made by IPC which are invalid (calling non-existing call, ...).
- .B name
- contains short name of the IPC connection (unavailable on some platforms).
- .B overload
- is number of requests which were not processed because of overload.
- .B queue_size
- contains the number of messages in the queue waiting for send.
- .B recv_retries
- is the total number of interrupted receives.
- .B requests
- contains the number of requests made by IPC.
- .B responses
- is the number of responses sent to the IPC client.
- .B send_retries
- contains the total number of interrupted sends.
- .B service_id
- contains the ID of service which the IPC is connected to.
- .TP
- 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
- .BR corosync.conf (5).
- .TP
- runtime.services.*
- Prefix with statistics for service engines. Each service has it's own
- .B 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).
- .TP
- runtime.totem.pg.mrp.srp.*
- Prefix containing statistics about totem. All keys here are read only.
- Typical key prefixes:
- .B commit_entered
- Number of times the processor entered COMMIT state.
- .B commit_token_lost
- Number of times the processor lost token in COMMIT state.
- .B consensus_timeouts
- How many times the processor timed out forming a consensus about membership.
- .B continuous_gather
- How many times the processor was 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. The usual
- reason is a badly configured firewall or connection failure.
- .B gather_entered
- Number of times the processor entered GATHER state.
- .B gather_token_lost
- Number of times the 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 the processor entered recovery.
- .B recovery_token_lost
- Number of times the token was lost in recovery state.
- .B rx_msg_dropped
- Number of received messages which were 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 the current processor.
- .B avg_backlog_calc
- Average number of not yet sent messages on the current processor.
- .TP
- runtime.totem.pg.mrp.srp.members.*
- Prefix containing members of the 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 the processor joined membership with local cluster. When
- processor fails and rejoins again, this value is incremented.
- .B status
- Status of the processor. Can be one of joined and left.
- .B config_version
- Config version of the member node.
- .TP
- resources.process.PID.*
- Prefix created by applications using SAM with CMAP integration.
- It contains the following keys:
- .B recovery
- Recovery policy of the process. Can be one of quit or restart.
- .B poll_period
- Value passed in sam_initialize as a time_interval.
- .B last_updated
- Last time SAM received a heartbeat from the client.
- .B state
- State of the client. Can be one of failed, stopped, running and waiting for quorum.
- .TP
- uidgid.*
- Information about users/groups which are allowed to make IPC connections to
- corosync.
- .TP
- 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.
- .TP
- 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.
- .TP
- config.totemconfig_reload_in_progress
- This key is similar to
- .B config.totemconfig_reload_in_progress
- but changed after the totem config trigger is processed. It is useful (mainly)
- for situations when
- .B nodelist.local_node_pos
- must be correctly reinstated before anything else.
- .SH DYNAMIC CHANGE USER/GROUP PERMISSION TO USE COROSYNC IPC
- Is the same as in the configuration file. eg: to add UID 500 use
- .br
- # corosync-cmapctl -s uidgid.uid.500 u8 1
- GID is similar, so to add a GID use
- .br
- # corosync-cmapctl -s uidgid.gid.500 u8 1
- For removal of permissions, simply delete the key
- .br
- # corosync-cmapctl -d uidgid.gid.500
- .SH DYNAMIC ADD/REMOVE OF UDPU NODE
- Eg. To add the 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 the node list which is not used yet. It's recommended that you
- 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 the 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 the ring0_addr key last. The 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 the configuration file on all nodes so that it
- will survive a restart of corosync.
- .PP
- * Copy and edit configuration file to the NEW node.
- .PP
- * Start corosync on the NEW node.
- Removal of a UDPU node is a very similar, slightly reversed action, so
- .PP
- * Stop corosync on the OLD node.
- .PP
- * Remove the relevant entries from cmap on all nodes.
- .PP
- * Change the configuration file on all nodes.
- .SH "SEE ALSO"
- .BR corosync_overview (8),
- .BR corosync.conf (5),
- .BR corosync-cmapctl (8)
|