diff --git a/corosync.spec.in b/corosync.spec.in index 7539c32e..0be79212 100644 --- a/corosync.spec.in +++ b/corosync.spec.in @@ -1,291 +1,292 @@ %global alphatag @alphatag@ %global numcomm @numcomm@ %global dirty @dirty@ # Conditionals # Invoke "rpmbuild --without " or "rpmbuild --with " # to disable or enable specific features %bcond_with testagents %bcond_with watchdog %bcond_with monitoring %bcond_with snmp %bcond_with dbus %bcond_with rdma %bcond_with systemd %bcond_with xmlconf Name: corosync Summary: The Corosync Cluster Engine and Application Programming Interfaces Version: @version@ Release: 1%{?numcomm:.%{numcomm}}%{?alphatag:.%{alphatag}}%{?dirty:.%{dirty}}%{?dist} License: BSD Group: System Environment/Base URL: http://ftp.corosync.org Source0: ftp://ftp:user@ftp.corosync.org/downloads/%{name}-%{version}/%{name}-%{version}%{?numcomm:.%{numcomm}}%{?alphatag:-%{alphatag}}%{?dirty:-%{dirty}}.tar.gz # Runtime bits Requires: corosynclib = %{version}-%{release} Requires(pre): /usr/sbin/useradd Requires(post): /sbin/chkconfig Requires(preun): /sbin/chkconfig Conflicts: openais <= 0.89, openais-devel <= 0.89 # Build bits %define buildtrunk 0 %{?_with_buildtrunk: %define buildtrunk 1} BuildRequires: libqb-devel BuildRequires: nss-devel %if %{buildtrunk} BuildRequires: autoconf automake %endif %if %{with rdma} BuildRequires: libibverbs-devel librdmacm-devel %endif %if %{with snmp} BuildRequires: net-snmp-devel %endif %if %{with dbus} BuildRequires: dbus-devel %endif %if %{with systemd} BuildRequires: systemd-units %endif %if %{with xmlconf} Requires: libxslt %endif BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) %prep %setup -q -n %{name}-%{version}%{?numcomm:.%{numcomm}}%{?alphatag:-%{alphatag}}%{?dirty:-%{dirty}} %build %if %{buildtrunk} ./autogen.sh %endif %if %{with rdma} export ibverbs_CFLAGS=-I/usr/include/infiniband \ export ibverbs_LIBS=-libverbs \ export rdmacm_CFLAGS=-I/usr/include/rdma \ export rdmacm_LIBS=-lrdmacm \ %endif %{configure} \ %if %{with testagents} --enable-testagents \ %endif %if %{with watchdog} --enable-watchdog \ %endif %if %{with monitoring} --enable-monitoring \ %endif %if %{with snmp} --enable-snmp \ %endif %if %{with dbus} --enable-dbus \ %endif %if %{with rdma} --enable-rdma \ %endif %if %{with systemd} --enable-systemd \ %endif %if %{with xmlconf} --enable-xmlconf \ %endif --with-initddir=%{_initrddir} make %{_smp_mflags} %install rm -rf %{buildroot} make install DESTDIR=%{buildroot} %if %{with dbus} mkdir -p -m 0700 %{buildroot}/%{_sysconfdir}/dbus-1/system.d install -m 644 %{_builddir}/%{name}-%{version}/conf/corosync-signals.conf %{buildroot}/%{_sysconfdir}/dbus-1/system.d/corosync-signals.conf %endif ## tree fixup # drop static libs rm -f %{buildroot}%{_libdir}/*.a # drop docs and html docs for now rm -rf %{buildroot}%{_docdir}/* %clean rm -rf %{buildroot} %description This package contains the Corosync Cluster Engine Executive, several default APIs and libraries, default configuration files, and an init script. %post if [ $1 -eq 1 ]; then /sbin/chkconfig --add corosync || : fi %preun if [ $1 -eq 0 ]; then /sbin/service corosync stop &>/dev/null || : /sbin/chkconfig --del corosync || : fi %files %defattr(-,root,root,-) %doc LICENSE SECURITY %{_sbindir}/corosync %{_sbindir}/corosync-keygen %{_sbindir}/corosync-cmapctl %{_sbindir}/corosync-cfgtool %{_sbindir}/corosync-fplay %{_sbindir}/corosync-cpgtool %{_sbindir}/corosync-quorumtool %{_sbindir}/corosync-notifyd %{_bindir}/corosync-blackbox %if %{with xmlconf} %{_bindir}/corosync-xmlproc %config(noreplace) %{_sysconfdir}/corosync/corosync.xml.example %dir %{_datadir}/corosync %dir %{_datadir}/corosync/xml2conf.xsl %{_mandir}/man8/corosync-xmlproc.8* %{_mandir}/man5/corosync.xml.5* %endif %dir %{_sysconfdir}/corosync %dir %{_sysconfdir}/corosync/uidgid.d %config(noreplace) %{_sysconfdir}/corosync/corosync.conf.example %config(noreplace) %{_sysconfdir}/corosync/corosync.conf.example.udpu %if %{with dbus} %{_sysconfdir}/dbus-1/system.d/corosync-signals.conf %endif %if %{with snmp} %{_datadir}/snmp/mibs/COROSYNC-MIB.txt %endif %if %{with systemd} %{_unitdir}/corosync.service %{_unitdir}/corosync-notifyd.service %else %{_initrddir}/corosync %{_initrddir}/corosync-notifyd %endif %dir %{_localstatedir}/lib/corosync %dir %{_localstatedir}/log/cluster %{_mandir}/man8/corosync_overview.8* %{_mandir}/man8/corosync.8* %{_mandir}/man8/corosync-blackbox.8* %{_mandir}/man8/corosync-cmapctl.8* %{_mandir}/man8/corosync-keygen.8* %{_mandir}/man8/corosync-cfgtool.8* %{_mandir}/man8/corosync-cpgtool.8* %{_mandir}/man8/corosync-fplay.8* %{_mandir}/man8/corosync-notifyd.8* %{_mandir}/man8/corosync-quorumtool.8* %{_mandir}/man5/corosync.conf.5* %{_mandir}/man5/votequorum.5* +%{_mandir}/man8/cmap_keys.8* # optional testagent rpm # %if %{with testagents} %package -n corosync-testagents Summary: The Corosync Cluster Engine Test Agents Group: Development/Libraries Requires: %{name} = %{version}-%{release} %description -n corosync-testagents This package contains corosync test agents. %files -n corosync-testagents %defattr(755,root,root,-) %{_datadir}/corosync/tests/mem_leak_test.sh %{_datadir}/corosync/tests/net_breaker.sh %{_datadir}/corosync/tests/cmap-dispatch-deadlock.sh %{_datadir}/corosync/tests/shm_leak_audit.sh %{_bindir}/cpg_test_agent %{_bindir}/sam_test_agent %{_bindir}/votequorum_test_agent %endif # library # %package -n corosynclib Summary: The Corosync Cluster Engine Libraries Group: System Environment/Libraries Requires: %{name} = %{version}-%{release} %description -n corosynclib This package contains corosync libraries. %files -n corosynclib %defattr(-,root,root,-) %doc LICENSE %{_libdir}/libcfg.so.* %{_libdir}/libcpg.so.* %{_libdir}/libcmap.so.* %{_libdir}/libtotem_pg.so.* %{_libdir}/libquorum.so.* %{_libdir}/libvotequorum.so.* %{_libdir}/libsam.so.* %{_libdir}/libcorosync_common.so.* %post -n corosynclib -p /sbin/ldconfig %postun -n corosynclib -p /sbin/ldconfig %package -n corosynclib-devel Summary: The Corosync Cluster Engine Development Kit Group: Development/Libraries Requires: corosynclib = %{version}-%{release} Requires: pkgconfig Provides: corosync-devel = %{version} Obsoletes: corosync-devel < 0.92-7 %description -n corosynclib-devel This package contains include files and man pages used to develop using The Corosync Cluster Engine APIs. %files -n corosynclib-devel %defattr(-,root,root,-) %doc LICENSE %dir %{_includedir}/corosync/ %{_includedir}/corosync/corodefs.h %{_includedir}/corosync/cfg.h %{_includedir}/corosync/cmap.h %{_includedir}/corosync/corotypes.h %{_includedir}/corosync/cpg.h %{_includedir}/corosync/hdb.h %{_includedir}/corosync/sam.h %{_includedir}/corosync/quorum.h %{_includedir}/corosync/votequorum.h %dir %{_includedir}/corosync/totem/ %{_includedir}/corosync/totem/totem.h %{_includedir}/corosync/totem/totemip.h %{_includedir}/corosync/totem/totempg.h %{_libdir}/libcfg.so %{_libdir}/libcpg.so %{_libdir}/libcmap.so %{_libdir}/libtotem_pg.so %{_libdir}/libquorum.so %{_libdir}/libvotequorum.so %{_libdir}/libsam.so %{_libdir}/libcorosync_common.so %{_libdir}/pkgconfig/*.pc %{_mandir}/man3/cpg_*3* %{_mandir}/man3/quorum_*3* %{_mandir}/man3/votequorum_*3* %{_mandir}/man3/sam_*3* %{_mandir}/man8/cpg_overview.8* %{_mandir}/man8/votequorum_overview.8* %{_mandir}/man8/sam_overview.8* %{_mandir}/man3/cmap_*3* %{_mandir}/man8/cmap_overview.8* %{_mandir}/man8/quorum_overview.8* %changelog * @date@ Autotools generated version - @version@-1-@numcomm@.@alphatag@.@dirty@ - Autotools generated version diff --git a/man/Makefile.am b/man/Makefile.am index b4be1c6a..28936b9f 100644 --- a/man/Makefile.am +++ b/man/Makefile.am @@ -1,168 +1,169 @@ # Copyright (c) 2004 MontaVista Software, Inc. # Copyright (c) 2009, 2012 Red Hat, Inc. # # Authors: Steven Dake (sdake@redhat.com) # Fabio M. Di Nitto (fdinitto@redhat.com) # # All rights reserved. # # 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 MontaVista Software, 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. MAINTAINERCLEANFILES = Makefile.in xml_man = corosync-xmlproc.8 \ corosync.xml.5 INDEX_HTML = index.html autogen_man = cpg_context_get.3 \ cpg_context_set.3 \ cpg_dispatch.3 \ cpg_fd_get.3 \ cpg_finalize.3 \ cpg_initialize.3 \ cpg_join.3 \ cpg_leave.3 \ cpg_local_get.3 \ cpg_mcast_joined.3 \ cpg_model_initialize.3 \ cpg_zcb_mcast_joined.3 \ cpg_zcb_alloc.3 \ cpg_zcb_free.3 \ cpg_membership_get.3 \ cpg_iteration_finalize.3 \ cpg_iteration_initialize.3 \ cpg_iteration_next.3 \ quorum_initialize.3 \ quorum_finalize.3 \ quorum_fd_get.3 \ quorum_dispatch.3 \ quorum_context_get.3 \ quorum_context_set.3 \ quorum_getquorate.3 \ quorum_trackstart.3 \ quorum_trackstop.3 \ votequorum_dispatch.3 \ votequorum_fd_get.3 \ votequorum_context_get.3 \ votequorum_context_set.3 \ votequorum_finalize.3 \ votequorum_getinfo.3 \ votequorum_initialize.3 \ votequorum_setexpected.3 \ votequorum_setvotes.3 \ votequorum_trackstart.3 \ votequorum_trackstop.3 \ sam_data_getsize.3 \ sam_data_restore.3 \ sam_data_store.3 \ sam_finalize.3 \ sam_hc_callback_register.3 \ sam_hc_send.3 \ sam_initialize.3 \ sam_mark_failed.3 \ sam_register.3 \ sam_start.3 \ sam_stop.3 \ sam_warn_signal_set.3 \ cmap_context_get.3 \ cmap_dec.3 \ cmap_iter_init.3 \ cmap_get.3 \ cmap_inc.3 \ cmap_set.3 \ cmap_iter_next.3 \ cmap_delete.3 \ cmap_iter_finalize.3 \ cmap_finalize.3 \ cmap_dispatch.3 \ cmap_initialize.3 \ cmap_track_add.3 \ cmap_context_set.3 \ cmap_fd_get.3 \ cmap_track_delete.3 autogen_common = ipc_common.sh.errors EXTRA_DIST = $(INDEX_HTML) \ $(xml_man) \ $(autogen_man:%=%.in) \ $(autogen_common) man_MANS = $(autogen_man) dist_man_MANS = corosync.conf.5 \ votequorum.5 \ corosync.8 \ corosync-cmapctl.8 \ corosync-blackbox.8 \ corosync-keygen.8 \ corosync-cfgtool.8 \ corosync-cpgtool.8 \ corosync-fplay.8 \ corosync-notifyd.8 \ corosync-quorumtool.8 \ corosync_overview.8 \ cpg_overview.8 \ quorum_overview.8 \ votequorum_overview.8 \ sam_overview.8 \ - cmap_overview.8 + cmap_overview.8 \ + cmap_keys.8 if INSTALL_XMLCONF dist_man_MANS += $(xml_man) endif HTML_DOCS = $(dist_man_MANS:%=%.html) $(man_MANS:%=%.html) # developer man page generation %.3: %.3.in $(autogen_common) $(top_srcdir)/build-aux/genman @echo Generating $@ man page && \ rm -f $@-t $@ && \ $(top_srcdir)/build-aux/genman \ $(srcdir)/$@.in \ $(builddir)/$@-t \ $(srcdir)/$(autogen_common) && \ mv $@-t $@ clean-local: rm -rf $(HTML_DOCS) $(autogen_man) if BUILD_HTML_DOCS %.html: % $(GROFF) -mandoc -Thtml $^ > $@ install-data-local: $(INSTALL) -d $(DESTDIR)/${docdir}/html $(INSTALL) -m644 ${srcdir}/$(INDEX_HTML) $(HTML_DOCS) $(DESTDIR)/${docdir}/html/ uninstall-local: cd $(DESTDIR)/${docdir}/html && rm -f $(INDEX_HTML) $(HTML_DOCS) rmdir $(DESTDIR)/${docdir}/html 2> /dev/null || : all-local: $(HTML_DOCS) endif diff --git a/man/cmap_keys.8 b/man/cmap_keys.8 new file mode 100644 index 00000000..77411f83 --- /dev/null +++ b/man/cmap_keys.8 @@ -0,0 +1,326 @@ +.\"/* +.\" * 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. + +.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) diff --git a/man/cmap_overview.8 b/man/cmap_overview.8 index eb8b99b9..2b43ae9d 100644 --- a/man/cmap_overview.8 +++ b/man/cmap_overview.8 @@ -1,74 +1,77 @@ .\"/* .\" * 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_OVERVIEW" 8 "03/02/2012" "corosync Man Page" "Corosync Cluster Engine Programmer's Manual" .SH NAME .P cmap_overview \- Overview of the Configuration Map .SH OVERVIEW .P The CMAP library is used to interact with the configuration database used by corosync. .PP The library provides a mechanism to: .PP * Create of new keys .PP * Change existing keys .PP * Remove keys .PP * Iterate keys with given prefix .PP * Track changes on keys +Description of most keys created by corosync itself can be found in cmap_keys (8). + .SH BUGS .SH "SEE ALSO" .BR cmap_initialize (3), .BR cmap_finalize (3), .BR cmap_get (3), .BR cmap_set (3), .BR cmap_delete (3), .BR cmap_inc (3), .BR cmap_dec (3), .BR cmap_fd_get (3), .BR cmap_dispatch (3), .BR cmap_context_set (3), .BR cmap_context_get (3), .BR cmap_iter_init (3), .BR cmap_iter_next (3), .BR cmap_iter_finalize (3), .BR cmap_track_add (3), -.BR cmap_track_delete (3) +.BR cmap_track_delete (3), +.BR cmap_keys (8)