Page MenuHomeClusterLabs Projects

No OneTemporary

diff --git a/man/cmap_context_set.3.in b/man/cmap_context_set.3.in
index da1f60ca..cacef0d7 100644
--- a/man/cmap_context_set.3.in
+++ b/man/cmap_context_set.3.in
@@ -1,60 +1,60 @@
.\"/*
.\" * 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_CONTEXT_SET" 3 "23/01/2012" "corosync Man Page" "Corosync Cluster Engine Programmer's Manual"
.SH NAME
.P
cmap_context_set \- Sets the context variable for a CMAP instance
.SH SYNOPSIS
.P
\fB#include <corosync/cmap.h>\fR
.P
\fBcs_error_t
cmap_context_set (cmap_handle_t \fIhandle\fB, const void *\fIcontext\fB);\fR
.SH DESCRIPTION
.P
The \fBcmap_context_set\fR function is used to store the context variable for cmap instance.
-It has no meaning insire libcmap itself and will not be touched by the library. It can
+It has no meaning inside libcmap itself and will not be touched by the library. It can
be retrieved using
.B cmap_context_get(3).
.SH RETURN VALUE
This call returns the CS_OK value if successful, otherwise an error is returned.
.SH "SEE ALSO"
.BR cmap_context_get (3),
.BR cmap_overview (8)
diff --git a/man/cmap_dec.3.in b/man/cmap_dec.3.in
index 614c96ed..c8322419 100644
--- a/man/cmap_dec.3.in
+++ b/man/cmap_dec.3.in
@@ -1,92 +1,92 @@
.\"/*
.\" * 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_DEC" 3 "03/02/2012" "corosync Man Page" "Corosync Cluster Engine Programmer's Manual"
.SH NAME
.P
cmap_inc \- Decrease already stored value in CMAP
.SH SYNOPSIS
.P
\fB#include <corosync/cmap.h>\fR
.P
\fBcs_error_t
cmap_dec (cmap_handle_t \fIhandle\fB, const char *\fIkey_name\fB);\fR
.SH DESCRIPTION
.P
The
.B cmap_dec
function is used to decrease integer value of already stored key inside cmap. The
.I handle
argument is connection to CMAP database obtained by calling
.B cmap_initialize(3)
function.
.I key_name
is name of key to increase value of.
Function is defined only on values where increase makes sense and is well defined,
so it can be one of:
.PP
\fBCMAP_VALUETYPE_INT8\fR - 8-bit signed integer
.PP
\fBCMAP_VALUETYPE_UINT8\fR - 8-bit unsigned integer
.PP
\fBCMAP_VALUETYPE_INT16\fR - 16-bit signed integer
.PP
\fBCMAP_VALUETYPE_UINT16\fR - 16-bit unsigned integer
.PP
\fBCMAP_VALUETYPE_INT32\fR - 32-bit signed integer
.PP
\fBCMAP_VALUETYPE_UINT32\fR - 32-bit unsigned integer
.PP
\fBCMAP_VALUETYPE_INT64\fR - 64-bit signed integer
.PP
\fBCMAP_VALUETYPE_UINT64\fR - 64-bit unsigned integer
Overflow/underflow is not detected and it's ignored.
.SH RETURN VALUE
This call returns the CS_OK value if successful. If value or key_name are unspecified, CS_ERR_INVALID_PARAM
is returned. CS_ERR_NOT_EXIST error is returned if key doesn't exist (wasn't created by calling
.B cmap_set(3)
-first). Some of keys may be tagged read-only directly in corosync and seting such key will result in
+first). Some of keys may be tagged read-only directly in corosync and setting such key will result in
CS_ERR_ACCESS error.
.SH "SEE ALSO"
.BR cmap_get (3),
.BR cmap_set (3),
.BR cmap_initialize (3),
.BR cmap_overview (8)
diff --git a/man/cmap_delete.3.in b/man/cmap_delete.3.in
index e2ee07de..a6ae710d 100644
--- a/man/cmap_delete.3.in
+++ b/man/cmap_delete.3.in
@@ -1,70 +1,70 @@
.\"/*
.\" * 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_DELETE" 3 "03/02/2012" "corosync Man Page" "Corosync Cluster Engine Programmer's Manual"
.SH NAME
.P
cmap_delete \- Delete key/value pair from the CMAP service
.SH SYNOPSIS
.P
\fB#include <corosync/cmap.h>\fR
.P
\fBcs_error_t
cmap_delete(cmap_handle_t \fIhandle\fB, const char *\fIkey_name\fB);\fR
.SH DESCRIPTION
.P
The
.B cmap_delete
function is used to delete key from cmap. Key must be previously created by
.B cmap_set(3)
function. The
.I handle
argument is connection to CMAP database obtained by calling
.B cmap_initialize(3)
function.
.I key_name
is name of key to delete.
.SH RETURN VALUE
-This call returns the CS_OK value if successful. If key_name is unspecified, CS_ERR_INVALID_PARAM
+This call returns the CS_OK value if successful. If key_name is unspecified, CS_ERR_INVALID_PARAM
is returned. For nonexisting keys, CS_ERR_NOT_EXIST error is returned. Some of keys may be tagged
read-only directly in corosync and deleting such key will result in CS_ERR_ACCESS error.
.SH "SEE ALSO"
.BR cmap_initialize (3),
.BR cmap_set (3),
.BR cmap_overview (8)
diff --git a/man/cmap_dispatch.3.in b/man/cmap_dispatch.3.in
index b791a5eb..b4fa2bab 100644
--- a/man/cmap_dispatch.3.in
+++ b/man/cmap_dispatch.3.in
@@ -1,91 +1,91 @@
.\"/*
.\" * 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_DISPATCH" 3 "23/01/2012" "corosync Man Page" "Corosync Cluster Engine Programmer's Manual"
.SH NAME
.P
cmap_dispatch \- Dispatches callbacks from the CMAP service
.SH SYNOPSIS
.P
\fB#include <corosync/cmap.h>\fR
.P
\fBcs_error_t
cmap_dispatch (cmap_handle_t \fIhandle\fB, cs_dispatch_flags_t \fIdispatch_types\fB);\fR
.SH DESCRIPTION
The
.B cmap_dispatch
function is used to dispatch configuration changes.
.PP
-Each application may have several connections to the CMAP API. Each application
+Each application may have several connections to the CMAP API. Each application
uses the
.I handle
argument to uniquely identify the connection.
.PP
The
.I dispatch_types
argument is used to identify the type of dispatch to execute. The possible types are
CS_DISPATCH_ONE, CS_DISPATCH_ALL and CS_DISPATCH_BLOCKING.
The dispatch values have the following meanings:
.TP
.B CS_DISPATCH_ONE
Dispatch at least one callback, blocking until the callback is dispatched.
.TP
.B CS_DISPATCH_ALL
Dispatch all waiting callbacks without blocking to wait for any callbacks.
.TP
.B CS_DISPATCH_BLOCKING
Dispatch all callbacks blocking indefinitely. This is used in a threaded
program where a thread is created, and then cs_dispatch() is called immediately
from the created thread to execute callbacks.
.TP
.B CS_DISPATCH_ONE_NONBLOCKING
Dispatch at most one callback. If there is no pending callback,
CS_ERR_TRY_AGAIN is returned.
.PP
It's needed to call
.B cmap_track_add(3)
to add tracked items and receive callbacks.
.SH RETURN VALUE
.P
This call returns the CS_OK value if successful, otherwise an error is returned.
.SH "SEE ALSO"
.BR cmap_track_add (3),
.BR cmap_track_delete (3),
.BR cmap_overview (8)
diff --git a/man/cmap_get.3.in b/man/cmap_get.3.in
index f3615a68..15c73e6e 100644
--- a/man/cmap_get.3.in
+++ b/man/cmap_get.3.in
@@ -1,153 +1,153 @@
.\"/*
.\" * 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_GET" 3 "03/02/2012" "corosync Man Page" "Corosync Cluster Engine Programmer's Manual"
.SH NAME
.P
cmap_get \- Retrieve value from CMAP
.SH SYNOPSIS
.P
\fB#include <corosync/cmap.h>\fR
.P
\fBcs_error_t
cmap_get (cmap_handle_t \fIhandle\fB, const char *\fIkey_name\fB, void *\fIvalue\fB,
size_t *\fIvalue_len\fB, cmap_value_types_t *\fItype\fB);\fR
.P
Also shortcuts for different types are defined
.P
\fBcs_error_t cmap_get_int8 (cmap_handle_t \fIhandle\fB, const char *\fIkey_name\fB, int8_t *\fIi8\fB);\fR
.P
\fBcs_error_t cmap_get_uint8 (cmap_handle_t \fIhandle\fB, const char *\fIkey_name\fB, uint8_t *\fIu8\fB);\fR
.P
\fBcs_error_t cmap_get_int16 (cmap_handle_t \fIhandle\fB, const char *\fIkey_name\fB, int16_t *\fIi16\fB);\fR
.P
\fBcs_error_t cmap_get_uint16 (cmap_handle_t \fIhandle\fB, const char *\fIkey_name\fB, uint16_t *\fIu16\fB);\fR
.P
\fBcs_error_t cmap_get_int32 (cmap_handle_t \fIhandle\fB, const char *\fIkey_name\fB, int32_t *\fIi32\fB);\fR
.P
\fBcs_error_t cmap_get_uint32 (cmap_handle_t \fIhandle\fB, const char *\fIkey_name\fB, uint32_t *\fIu32\fB);\fR
.P
\fBcs_error_t cmap_get_int64 (cmap_handle_t \fIhandle\fB, const char *\fIkey_name\fB, int64_t *\fIi64\fB);\fR
.P
\fBcs_error_t cmap_get_uint64 (cmap_handle_t \fIhandle\fB, const char *\fIkey_name\fB, uint64_t *\fIu64\fB);\fR
.P
\fBcs_error_t cmap_get_float (cmap_handle_t \fIhandle\fB, const char *\fIkey_name\fB, float *\fIflt\fB);\fR
.P
\fBcs_error_t cmap_get_double (cmap_handle_t \fIhandle\fB, const char *\fIkey_name\fB, double *\fIdbl\fB);\fR
.P
\fBcs_error_t cmap_get_string (cmap_handle_t \fIhandle\fB, const char *\fIkey_name\fB, char **\fIstr\fB);\fR
.SH DESCRIPTION
.P
The
.B cmap_get
function is used to retrieve key from cmap previously set by
.B cmap_set(3)
function. The
.I handle
argument is connection to CMAP database obtained by calling
.B cmap_initialize(3)
function.
.I key_name
is name of key to get value from.
.I value
is pointer to preallocated data used as storage for data, but can be also NULL, and then only
.I value_len
and/or
.I type
is returned (both of them can also be NULL, allowing function to be used only for test of existence of key).
If
.I value
is not NULL, actual length of value in map is checked against
.I *value_len.
If
.I *value_len
is shorter then length of value in map, error CS_ERR_INVALID_PARAM is returned. After successful copy of
value,
.I *value_len
is set to actual length of value in map. Parameter
.I type
is pointer to memory, where type of value is stored after successful return. Pointer can also be NULL and
then nothing is stored. Type can be one of:
.PP
\fBCMAP_VALUETYPE_INT8\fR - 8-bit signed integer
.PP
\fBCMAP_VALUETYPE_UINT8\fR - 8-bit unsigned integer
.PP
\fBCMAP_VALUETYPE_INT16\fR - 16-bit signed integer
.PP
\fBCMAP_VALUETYPE_UINT16\fR - 16-bit unsigned integer
.PP
\fBCMAP_VALUETYPE_INT32\fR - 32-bit signed integer
.PP
\fBCMAP_VALUETYPE_UINT32\fR - 32-bit unsigned integer
.PP
\fBCMAP_VALUETYPE_INT64\fR - 64-bit signed integer
.PP
\fBCMAP_VALUETYPE_UINT64\fR - 64-bit unsigned integer
.PP
\fBCMAP_VALUETYPE_FLOAT\fR - Float value
.PP
\fBCMAP_VALUETYPE_DOUBLE\fR - Double value
.PP
\fBCMAP_VALUETYPE_STRING\fR - C-style string
.PP
\fBCMAP_VALUETYPE_BINARY\fR - Binary data, byte with zero value has no special meaning
-Sortcut functions tests cmap type with it's own type. If type didn't match, CS_ERR_INVALID_PARAM error
+Shortcut functions tests cmap type with it's own type. If type didn't match, CS_ERR_INVALID_PARAM error
is returned. No conversions are done, so for example
.B cmap_get_int16
is not able to return value with
.B CMAP_VALUETYPE_INT8
type.
String shortcut function returns newly allocated memory and caller is responsible for freeing that.
.SH RETURN VALUE
This call returns the CS_OK value if successful. If value or key_name are unspecified, CS_ERR_INVALID_PARAM
is returned. Same error is also returned if
.I value
is specified, and
.I *value_len
is too short for store of data. If key doesn't exists (it was not set by calling
.B cmap_set(3)
function first) CS_ERR_NOT_EXIST error is returned. For helper functions,
CS_ERR_INVALID_PARAM is returned if type stored in cmap doesn't match with type of helper function.
.SH "SEE ALSO"
.BR cmap_set (3),
.BR cmap_initialize (3),
.BR cmap_overview (8)
diff --git a/man/cmap_inc.3.in b/man/cmap_inc.3.in
index 0320065e..69ac8516 100644
--- a/man/cmap_inc.3.in
+++ b/man/cmap_inc.3.in
@@ -1,92 +1,92 @@
.\"/*
.\" * 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_INC" 3 "03/02/2012" "corosync Man Page" "Corosync Cluster Engine Programmer's Manual"
.SH NAME
.P
cmap_inc \- Increase already stored value in CMAP
.SH SYNOPSIS
.P
\fB#include <corosync/cmap.h>\fR
.P
\fBcs_error_t
cmap_inc (cmap_handle_t \fIhandle\fB, const char *\fIkey_name\fB);\fR
.SH DESCRIPTION
.P
The
.B cmap_inc
function is used to increase integer value of already stored key inside cmap. The
.I handle
argument is connection to CMAP database obtained by calling
.B cmap_initialize(3)
function.
.I key_name
is name of key to increase value of.
Function is defined only on values where increase makes sense and is well defined,
so it can be one of:
.PP
\fBCMAP_VALUETYPE_INT8\fR - 8-bit signed integer
.PP
\fBCMAP_VALUETYPE_UINT8\fR - 8-bit unsigned integer
.PP
\fBCMAP_VALUETYPE_INT16\fR - 16-bit signed integer
.PP
\fBCMAP_VALUETYPE_UINT16\fR - 16-bit unsigned integer
.PP
\fBCMAP_VALUETYPE_INT32\fR - 32-bit signed integer
.PP
\fBCMAP_VALUETYPE_UINT32\fR - 32-bit unsigned integer
.PP
\fBCMAP_VALUETYPE_INT64\fR - 64-bit signed integer
.PP
\fBCMAP_VALUETYPE_UINT64\fR - 64-bit unsigned integer
Overflow/underflow is not detected and it's ignored.
.SH RETURN VALUE
This call returns the CS_OK value if successful. If value or key_name are unspecified, CS_ERR_INVALID_PARAM
is returned. CS_ERR_NOT_EXIST error is returned if key doesn't exist (wasn't created by calling
.B cmap_set(3)
-first). Some of keys may be tagged read-only directly in corosync and seting such key will result in
+first). Some of keys may be tagged read-only directly in corosync and setting such key will result in
CS_ERR_ACCESS error.
.SH "SEE ALSO"
.BR cmap_get (3),
.BR cmap_set (3),
.BR cmap_initialize (3),
.BR cmap_overview (8)
diff --git a/man/cmap_initialize.3.in b/man/cmap_initialize.3.in
index 8bdb0170..b6342e9b 100644
--- a/man/cmap_initialize.3.in
+++ b/man/cmap_initialize.3.in
@@ -1,63 +1,63 @@
.\"/*
.\" * 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_INITIALIZE" 3 "20/01/2012" "corosync Man Page" "Corosync Cluster Engine Programmer's Manual"
.SH NAME
.P
cmap_initialize \- Initialize CMAP API
.SH SYNOPSIS
.P
\fB#include <corosync/cmap.h>\fR
.P
\fBcs_error_t cmap_initialize (cmap_handle_t \fI*handle\fB);\fR
.SH DESCRIPTION
.P
The \fBcmap_initialize\fR function is used to initialize a connection to
the Configuration Map API. Each application may have several connections to the CMAP API.
-Each application uses the
+Each application uses the
.I handle
argument to uniquely identify the connection. The
.I handle
argument is then used in other function calls to identify the connection to be used
for communication with the CMAP service.
.SH RETURN VALUE
This call returns the CS_OK value if successful, otherwise an error is returned.
.SH "SEE ALSO"
.BR cmap_finalize (3),
.BR cmap_overview (8)
diff --git a/man/cmap_iter_finalize.3.in b/man/cmap_iter_finalize.3.in
index 51cd5903..8b03d012 100644
--- a/man/cmap_iter_finalize.3.in
+++ b/man/cmap_iter_finalize.3.in
@@ -1,72 +1,72 @@
.\"/*
.\" * 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_ITER_FINALIZE" 3 "06/02/2012" "corosync Man Page" "Corosync Cluster Engine Programmer's Manual"
.SH NAME
.P
cmap_iter_finalize \- Finalize iterator for keys stored in CMAP
.SH SYNOPSIS
.P
\fB#include <corosync/cmap.h>\fR
.P
\fBcs_error_t
cmap_iter_finalize (cmap_handle_t \fIhandle\fB, cmap_iter_handle_t \fIiter_handle\fB);\fR
.SH DESCRIPTION
.P
The
.B cmap_iter_finalize
-function is used to free up memory asociated with iteration obtained by calling of
+function is used to free up memory associated with iteration obtained by calling of
.B cmap_iter_init(3)
function.
The
.I handle
argument is connection to CMAP database obtained by calling
.B cmap_initialize(3)
function.
.I iter_handle
argument is iterator handle obtained by
.B cmap_iter_init(3)
function.
.SH RETURN VALUE
This call returns the CS_OK value if successful. CS_ERR_BAD_HANDLE error is returned when iter_handle
is invalid.
.SH "SEE ALSO"
.BR cmap_iter_init (3),
.BR cmap_initialize (3),
.BR cmap_overview (8)
diff --git a/man/cmap_iter_next.3.in b/man/cmap_iter_next.3.in
index edc29f8d..b09a5849 100644
--- a/man/cmap_iter_next.3.in
+++ b/man/cmap_iter_next.3.in
@@ -1,82 +1,82 @@
.\"/*
.\" * 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_ITER_NEXT" 3 "06/02/2012" "corosync Man Page" "Corosync Cluster Engine Programmer's Manual"
.SH NAME
.P
cmap_iter_next \- Return next item in iteration in CMAP
.SH SYNOPSIS
.P
\fB#include <corosync/cmap.h>\fR
.P
\fBcs_error_t
cmap_iter_next(cmap_handle_t \fIhandle\fB, cmap_iter_handle_t \fIiter_handle\fB, char \fIkey_name[]\fB,
size_t *\fIvalue_len\fB, cmap_value_types_t *\fItype\fB);\fR
.SH DESCRIPTION
.P
The
.B cmap_iter_next
function is used to get next value in iteration. The
.I handle
argument is connection to CMAP database obtained by calling
.B cmap_initialize(3)
function.
.I iter_handle
argument is iterator handle obtained by
.B cmap_iter_init(3)
function. Following key name is stored inside
.I key_name
-argument, which must be preallocated by caller and its quaranted maximum size is CMAP_KEYNAME_MAXLEN
-(urrently 255).
+argument, which must be preallocated by caller and its guaranteed maximum size is CMAP_KEYNAME_MAXLEN
+(currently 255).
.I value_len
is pointer where length of value is stored, but can be NULL.
.I type
is also optional argument (can be NULL) and here type of value is stored (type is one of types described
in
.B cmap_get(3)
function).
.SH RETURN VALUE
This call returns the CS_OK value if successful. If there are no more items to iterate, CS_NO_SECTION
error code is returned.
.SH "SEE ALSO"
.BR cmap_iter_init (3),
.BR cmap_iter_finalize (3),
.BR cmap_initialize (3),
.BR cmap_get (3),
.BR cmap_overview (8)
diff --git a/man/cmap_keys.8 b/man/cmap_keys.8
index 75177880..b0cd721e 100644
--- a/man/cmap_keys.8
+++ b/man/cmap_keys.8
@@ -1,370 +1,370 @@
.\"/*
.\" * 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. 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.
.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.
+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)
diff --git a/man/cmap_set.3.in b/man/cmap_set.3.in
index 8dcb88cb..e854cf58 100644
--- a/man/cmap_set.3.in
+++ b/man/cmap_set.3.in
@@ -1,127 +1,127 @@
.\"/*
.\" * 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_SET" 3 "23/01/2012" "corosync Man Page" "Corosync Cluster Engine Programmer's Manual"
.SH NAME
.P
cmap_set \- Store value in CMAP
.SH SYNOPSIS
.P
\fB#include <corosync/cmap.h>\fR
.P
\fBcs_error_t
cmap_set (cmap_handle_t \fIhandle\fB, const char *\fIkey_name\fB, const void *\fIvalue\fB,
size_t \fIvalue_len\fB, cmap_value_types_t \fItype\fB);\fR
.P
Also shortcuts for different types are defined
.P
\fBcs_error_t cmap_set_int8(cmap_handle_t \fIhandle\fB, const char *\fIkey_name\fB, int8_t \fIvalue\fB);\fR
.P
\fBcs_error_t cmap_set_uint8(cmap_handle_t \fIhandle\fB, const char *\fIkey_name\fB, uint8_t \fIvalue\fB);\fR
.P
\fBcs_error_t cmap_set_int16(cmap_handle_t \fIhandle\fB, const char *\fIkey_name\fB, int16_t \fIvalue\fB);\fR
.P
\fBcs_error_t cmap_set_uint16(cmap_handle_t \fIhandle\fB, const char *\fIkey_name\fB, uint16_t \fIvalue\fB);\fR
.P
\fBcs_error_t cmap_set_int32(cmap_handle_t \fIhandle\fB, const char *\fIkey_name\fB, int32_t \fIvalue\fB);\fR
.P
\fBcs_error_t cmap_set_uint32(cmap_handle_t \fIhandle\fB, const char *\fIkey_name\fB, uint32_t \fIvalue\fB);\fR
.P
\fBcs_error_t cmap_set_int64(cmap_handle_t \fIhandle\fB, const char *\fIkey_name\fB, int64_t \fIvalue\fB);\fR
.P
\fBcs_error_t cmap_set_uint64(cmap_handle_t \fIhandle\fB, const char *\fIkey_name\fB, uint64_t \fIvalue\fB);\fR
.P
\fBcs_error_t cmap_set_float(cmap_handle_t \fIhandle\fB, const char *\fIkey_name\fB, float \fIvalue\fB);\fR
.P
\fBcs_error_t cmap_set_double(cmap_handle_t \fIhandle\fB, const char *\fIkey_name\fB, double \fIvalue\fB);\fR
.P
\fBcs_error_t cmap_set_string(cmap_handle_t \fIhandle\fB, const char *\fIkey_name\fB, const char *\fIvalue\fB);\fR
.SH DESCRIPTION
.P
The
.B cmap_set
function is used to store key inside cmap. The
.I handle
argument is connection to CMAP database obtained by calling
.B cmap_initialize(3)
function.
.I key_name
is name of key to set value. Key name is limited by minimal (CMAP_KEYNAME_MINLEN, currently 3) and
maximal (CMAP_KEYNAME_MAXLEN, currently 255) length. Also key can contain only limited set of characters expressed
by regexp [a-zA-Z0-9._-/:]*.
.I value
is pointer to allocated data which will be stored inside CMAP. Length of value (number of bytes) is supplied
as
.I value_len
parameter. Last parameter is
.I type
which gives type of value. It may be one of:
.PP
\fBCMAP_VALUETYPE_INT8\fR - 8-bit signed integer
.PP
\fBCMAP_VALUETYPE_UINT8\fR - 8-bit unsigned integer
.PP
\fBCMAP_VALUETYPE_INT16\fR - 16-bit signed integer
.PP
\fBCMAP_VALUETYPE_UINT16\fR - 16-bit unsigned integer
.PP
\fBCMAP_VALUETYPE_INT32\fR - 32-bit signed integer
.PP
\fBCMAP_VALUETYPE_UINT32\fR - 32-bit unsigned integer
.PP
\fBCMAP_VALUETYPE_INT64\fR - 64-bit signed integer
.PP
\fBCMAP_VALUETYPE_UINT64\fR - 64-bit unsigned integer
.PP
\fBCMAP_VALUETYPE_FLOAT\fR - Float value
.PP
\fBCMAP_VALUETYPE_DOUBLE\fR - Double value
.PP
\fBCMAP_VALUETYPE_STRING\fR - C-style string
.PP
\fBCMAP_VALUETYPE_BINARY\fR - Binary data, byte with zero value has no special meaning
.SH RETURN VALUE
This call returns the CS_OK value if successful. If value or key_name are unspecified, CS_ERR_INVALID_PARAM
is returned. Too short or too long key_name returns CS_ERR_NAME_TOO_LONG error code. Some of keys may
-be tagged read-only directly in corosync and seting such key will result in CS_ERR_ACCESS error.
+be tagged read-only directly in corosync and setting such key will result in CS_ERR_ACCESS error.
.SH "SEE ALSO"
.BR cmap_get (3),
.BR cmap_initialize (3),
.BR cmap_overview (8)
diff --git a/man/cmap_track_add.3.in b/man/cmap_track_add.3.in
index 0cf9fa8d..32b35d05 100644
--- a/man/cmap_track_add.3.in
+++ b/man/cmap_track_add.3.in
@@ -1,164 +1,164 @@
.\"/*
.\" * 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_TRACK_ADD" 3 "06/02/2012" "corosync Man Page" "Corosync Cluster Engine Programmer's Manual"
.SH NAME
.P
cmap_track_add \- Set tracking function for values in CMAP
.SH SYNOPSIS
.P
\fB#include <corosync/cmap.h>\fR
.P
\fBcs_error_t
cmap_track_add (cmap_handle_t \fIhandle\fB, const char *\fIkey_name\fB, int32_t \fItrack_type\fB,
cmap_notify_fn_t \fInotify_fn\fB, void *\fIuser_data\fB, cmap_track_handle_t *\fIcmap_track_handle\fB);\fR
.SH DESCRIPTION
.P
The
.B cmap_track_add
function is used to set function which tracks changes in CMAP. One CMAP connection can
track multiple keys and also it's possible to track one key multiple times. The
.I handle
argument is connection to CMAP database obtained by calling
.B cmap_initialize(3)
function.
.I key_name
argument is ether exact key name or prefix of key name to track changes on.
.I track_type
is bitfield which may consist of following values:
.PP
\fBCMAP_TRACK_ADD\fR - track addition of new key (or key added in callback)
.PP
\fBCMAP_TRACK_DELETE\fR - track deletion of key (or key deleted in callback)
.PP
\fBCMAP_TRACK_MODIFY\fR - track modification of key (or key modified in callback)
.PP
\fBCMAP_TRACK_PREFIX\fR - whole prefix is tracked, instead of key only, so "totem." tracking means
that "totem.nodeid", "totem.version", ... applies (this value is never returned
in callback)
.PP
.I notify_fn
is pointer to function which is called when value is changed. It's definition and meaning of parameters
is discussed below.
.I user_data
argument is passed directly to
.I notify_fn
without any changes.
.I cmap_track_handle
is used for removing of tracking when no longer needed by calling
.B cmap_track_delete(3)
function.
Callback function is defined as:
.IP
.RS
.ne 18
.nf
.PP
typedef void (*cmap_notify_fn_t) (
cmap_handle_t cmap_handle,
cmap_track_handle_t cmap_track_handle,
int32_t event,
const char *key_name,
struct cmap_notify_value new_value,
struct cmap_notify_value old_value,
void *user_data);
.ta
.fi
.RE
.IP
.PP
where
.I cmap_handle
is handle used in registration of track function.
.I cmap_track_handle
is handle returned by
.B cmap_track_add
function.
.I event
is one of \fBCMAP_TRACK_ADD\fR, \fBCMAP_TRACK_DELETE\fR or \fBCMAP_TRACK_MODIFY\fR.
.I key_name
is name of changed key.
.I new_value
is new value of key, or unset if
.I event
is \fBCMAP_TRACK_DELETE\fR.
.I old_value
is previous value of key or unset if
.I event
-is \fBCMAP_TRACK_ADD\fR or for some special keys set directly by Corosync due to speed optimalizations.
+is \fBCMAP_TRACK_ADD\fR or for some special keys set directly by Corosync due to speed optimizations.
Both
.I new_value
and
.I old_value
are structures defined as:
.IP
.RS
.ne 18
.nf
.PP
struct cmap_notify_value {
cmap_value_types_t type;
size_t len;
const void *data;
};
.ta
.fi
.RE
.IP
.PP
If value is unset, all fields are set to 0. Otherwise
.I type
is one of cmap types (as described in
.B cmap_get(3)
function),
.I len
is length of value in cmap and
.I data
is pointer to value of item. Data storage is dynamically allocated by caller and notify function must not try to
free it.
.SH RETURN VALUE
This call returns the CS_OK value if successful. It can return CS_ERR_INVALID_PARAM if
notify_fn is NULL or track_type is invalid value.
.SH "SEE ALSO"
.BR cmap_track_delete (3),
.BR cmap_initialize (3),
.BR cmap_get (3),
.BR cmap_dispatch (3),
.BR cmap_overview (8)
diff --git a/man/corosync-notifyd.8 b/man/corosync-notifyd.8
index 0bb0cfb9..822d1387 100644
--- a/man/corosync-notifyd.8
+++ b/man/corosync-notifyd.8
@@ -1,145 +1,145 @@
.\"/*
.\" * Copyright (C) 2010 Red Hat, Inc.
.\" *
.\" * All rights reserved.
.\" *
.\" * Author: Angus Salkeld <asalkeld@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 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 COROSYNC-NOTIFYD 8 2011-01-14
.SH NAME
corosync-notifyd \- Listen for important corosync events and send dbus and/or snmp traps.
.SH SYNOPSIS
.B "corosync-notifyd [\-f] [\-l] [\-o] [\-s] [\-m] [manager] [\-d] [-h]"
.SH DESCRIPTION
.B corosync-notifyd
uses corosync API to listen for important cluster events and can log them,
-generate dbus signals or genterate snmp traps.
+generate dbus signals or generate snmp traps.
.SH OPTIONS
.TP
.B -f
Start application in foreground.
.TP
.B -l
Log all events.
.TP
.B -o
Print events to stdout (turns on -l).
.TP
.B -s
Send SNMP traps on all events.
.TP
.B -m
Set the SNMP manager address.
.TP
.B -d
Send DBUS signals on all events.
.TP
.B -h
Print this help
.SH EXAMPLES
.br
$ corosync-notifyd -o
.br
corosync-notifyd[18505]: troll[23374016] corosync-notify:18505:12 is now connected to corosync
.br
corosync-notifyd[18505]: troll[23374016] corosync-notify:18505:13 is now disconnected from corosync
.br
corosync-notifyd[18505]: troll[23374016] is now quorate
.br
corosync-notifyd[18505]: r2[1550100672] ip:192.168.100.92 joined
.br
corosync-notifyd[18505]: r2[1550100672] ip:192.168.100.92 left
.br
.br
$ corosync-notifyd -d
.br
Note this output below is from "dbus-monitor --system"
.br
signal sender=:1.216 -> dest=(null destination) serial=2 path=/com/redhat/cluster/corosync;
interface=com.redhat.cluster.corosync; member=ConnectionStateChange
.br
string "troll"
.br
uint32 23374016
.br
string "corosync-notify:18900:12"
.br
string "connected"
.br
signal sender=:1.216 -> dest=(null destination) serial=3 path=/com/redhat/cluster/corosync;
interface=com.redhat.cluster.corosync; member=ConnectionStateChange
.br
string "troll"
.br
uint32 23374016
.br
string "corosync-notify:18900:13"
.br
string "disconnected"
.br
signal sender=:1.216 -> dest=(null destination) serial=4 path=/com/redhat/cluster/corosync;
interface=com.redhat.cluster.corosync; member=QorumStateChange
.br
string "troll"
.br
uint32 23374016
.br
string "quorate"
.br
signal sender=:1.216 -> dest=(null destination) serial=5 path=/com/redhat/cluster/corosync;
interface=com.redhat.cluster.corosync; member=NodeStateChange
.br
string "r2"
.br
uint32 1550100672
.br
string "192.168.100.92"
.br
string "joined"
.br
signal sender=:1.216 -> dest=(null destination) serial=6 path=/com/redhat/cluster/corosync;
interface=com.redhat.cluster.corosync; member=NodeStateChange
.br
string "r2"
.br
uint32 1550100672
.br
string "192.168.100.92"
.br
string "left"
.SH SEE ALSO
.BR corosync (8),
.BR corosync-cmapctl (8),
.BR dbus-monitor (1),
.SH AUTHOR
Angus Salkeld
.PP
diff --git a/man/corosync-qdevice.8 b/man/corosync-qdevice.8
index fbeb328b..20024afc 100644
--- a/man/corosync-qdevice.8
+++ b/man/corosync-qdevice.8
@@ -1,318 +1,318 @@
.\"/*
.\" * Copyright (C) 2016 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 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 COROSYNC-QDEVICE 8 2016-06-29
.SH NAME
corosync-qdevice \- QDevice daemon
.SH SYNOPSIS
.B "corosync-qdevice [-dfh] [-S option=value[,option2=value2,...]]"
.SH DESCRIPTION
.B corosync-qdevice
is a daemon running on each node of a cluster. It provides a configured
number of votes to the
quorum subsystem based on a third-party arbitrator's decision. Its primary use
is to allow a cluster to sustain more node failures than standard quorum rules allow.
It is recommended for clusters with an even number of nodes and highly recommended
for 2 node clusters.
.SH OPTIONS
.TP
.B -d
Forcefully turn on debug information without the need to change corosync.conf.
.TP
.B -f
Do not daemonize, run in the foreground.
.TP
.B -h
Show short help text
.TP
.B -S
Set advanced settings described in its own section below. This option
shouldn't be generally used because most of the options are
not safe to change.
.SH CONFIGURATION
.B corosync-qdevice
reads its configuration from corosync.conf file.
The main configuration is within
.B quorum.device
sub-key. Each model also has its own configuration within a
similarly named sub-key.
.TP
.B model
Specifies the model to be used. This parameter is required.
.B corosync-qdevice
is modular and is able to support multiple different models. The model basically
defines what type of arbitrator is used. Currently only
.I net
is supported.
.TP
.B timeout
Specifies how often
.B corosync-qdevice
should call the votequorum_poll function. It is also used by the net model to adjust
its hearbeat timeout. It is recommended that you don't change this value.
Default is 10000.
.TP
.B sync_timeout
Specifies how often
.B corosync-qdevice
should call the votequorum_poll function during a sync phase. It is recommended that you don't change this value.
Default is 30000.
.TP
.B votes
The number of votes provided to the cluster by qdevice. Default is (number_of_nodes - 1) or generally
sum(votes_per_node) - 1.
.PP
.B quorum.device.net
holds the configuration for model 'net'.
.TP
.B tls
Can be one of
.I on, off or required
and specifies if tls should be used.
.I on
means a connection with TLS is attempted first, but if the server doesn't advertise TLS support
then non-TLS will be used.
.I off
is used then TLS is not required and it's then not even tried. This mode is the
only one which doesn't need a properly initialized NSS database.
.I required
means TLS is required and if the server doesn't support TLS, qdevice will
exit with error message. Default is on.
.TP
.B host
Specifies the IP address or host name of the qnetd server to be used. This parameter
is required.
.TP
.B port
Specifies TCP port of qnetd server. Default is 5403.
.TP
.B algorithm
Decision algorithm. Can be one of the
.I ffsplit
or
.I lms.
(actually there are also
.I test
and
.I 2nodelms
, both of which are mainly for developers and shouldn't be used for production clusters). For a
description of what each algorithm means and how the algorithms differ see their individual sections.
Default value is ffsplit.
.TP
.B tie_breaker
can be one of
.I lowest,
.I highest
or valid_node_id (number) values. It's used as a fallback if qdevice has to decide between two or more
equal partitions.
.I lowest
means the partition with the lowest node id is chosen.
.I highest
means the partition with highest node id is chosen. And valid_node_id means that the partition
containing the node with the given node id is chosen.
Default is 'lowest'.
.TP
.B connect_timeout
Timeout when
.B corosync-qdevice
is trying to connect to
.B corosync-qnetd
host. Default is 0.8 * quorum.sync_timeout.
.TP
.B force_ip_version
can be one of
.I 0|4|6
and forces the software to use the given IP version.
.I 0
(default value) means IPv6 is prefered and IPv4 should be used as a fallback.
.PP
Logging configuration is within the
.B logging
directive.
.B corosync-qdevice
parses and supports most of the options with exception of
.B to_logfile,
.B logfile
and
.B logfile_priority.
The
.B logger_subsys
sub-directive can be also used if
.B subsys
is set to QDEVICE.
.PP
For
.B corosync-qdevice
to work correctly, the
.B nodelist
directive has to be used and properly configured. Also the net model requires that
.B totem.cluster_name
option is set.
.SH MODEL NET TLS CONFIGURATION
For model net to work using TLS, it's necessary to create the NSS database, import Qnetd
CA certificate, and get/distribute a valid client certificate.
If pcs is used (recommended) the following steps are not needed because pcs does them automatically.
.B corosync-qdevice-net-certutil
is the tool to perform required actions semi-automatically. Please consult the help output of
it and its man page. For a first time configuration it may make sense to start with the
.B -Q
option.
If TLS is not required just edit corosync.conf file and set
.B quorum.device.net.tls
to
.I off.
.SH MODEL NET ALGORITHMS
Algorithms are used to change behavior of how
.B corosync-qnetd
provides votes to a given node/partition. Currently there are two algorithms supported.
.TP
.B ffsplit
This one makes sense only for clusters with even number of nodes. It provides exactly one
vote to the partition with the highest number of active nodes. If there are two exactly similar partitions,
it provides its vote to the partition that has the most clients connected to the qnetd
server. If this number is also equal, then the tie_breaker is used. It is able to transition
its vote if the currently active partition becomes partitioned and a non-active partition
still has at least 50% of the active nodes. Because of this, a vote is not provided
if the qnetd connection is not active.
To use this algorithm it's required to set the number of votes per node to 1 (default)
and the qdevice number of votes has to be also 1. This is achieved by setting
.B quorum.device.votes
key in corosync.conf file to 1.
.TP
.B lms
Last-man-standing. If the node is the only one left in the cluster that can see the
qnetd server then we return a vote.
If more than one node can see the qnetd server but some nodes can't
see each other then the cluster is divided up into 'partitions' based on
their ring_id and this algorithm returns a vote to the largest active partition or,
-if there is more than 1 equal partiton, the partition that contains the tie_breaker
+if there is more than 1 equal partition, the partition that contains the tie_breaker
node (lowest, highest, etc). For LMS to work, the number
of qdevice votes has to be set to default (so just delete
.B quorum.device.votes
key from corosync.conf).
.SH ADVANCED SETTINGS
Set by using
.B -S
option. The default value is shown in parentheses) Options
beginning with
.B net_
prefix are specific to model net.
.TP
.B lock_file
Lock file location. (/var/run/corosync-qdevice/corosync-qdevice.pid)
.TP
.B local_socket_file
Internal IPC socket file location. (/var/run/corosync-qdevice/corosync-qdevice.sock)
.TP
.B local_socket_backlog
Parameter passed to listen syscall. (10)
.TP
.B max_cs_try_again
How many times to retry the call to a corosync function which has returned CS_ERR_TRY_AGAIN. (10)
.TP
.B votequorum_device_name
Name used for qdevice registration. (Qdevice)
.TP
.B ipc_max_clients
Maximum allowed simultaneous IPC clients. (10)
.TP
.B ipc_max_receive_size
Maximum size of a message received by IPC client. (4096)
.TP
.B ipc_max_send_size
Maximum size of a message allowed to be sent to an IPC client. (65536)
.TP
.B master_wins
Force enable/disable master wins. (default is model)
.TP
.B net_nss_db_dir
NSS database directory. (/etc/corosync/qdevice/net/nssdb)
.TP
.B net_initial_msg_receive_size
Initial (used during connection parameters negotiation)
maximum size of the receive buffer for message (maximum
allowed message size received from qnetd). (32768)
.TP
.B net_initial_msg_send_size
Initial (used during connection parameter negotiation)
maximum size of one send buffer (message) to be sent to server. (32768)
.TP
.B net_min_msg_send_size
Minimum required size of one send buffer (message) to be sent to server. (32768)
.TP
.B net_max_msg_receive_size
Maximum allowed size of receive buffer for a message sent by server. (16777216)
.TP
.B net_max_send_buffers
Maximum number of send buffers. (10)
.TP
.B net_nss_qnetd_cn
Canonical name of qnetd server certificate. (Qnetd Server)
.TP
.B net_nss_client_cert_nickname
NSS nickname of qdevice client certificate. (Cluster Cert)
.TP
.B net_heartbeat_interval_min
Minimum heartbeat timeout accepted by client in ms. (1000)
.TP
.B net_heartbeat_interval_max
Maximum heartbeat timeout accepted by client in ms. (120000)
.TP
.B net_min_connect_timeout
Minimum connection timeout accepted by client in ms. (1000)
.TP
.B net_max_connect_timeout
Maximum connection timeout accepted by client in ms. (120000)
.TP
.B net_test_algorithm_enabled
Enable test algorithm. (if built with --enable-debug on, otherwise off)
.SH SEE ALSO
.BR corosync-qdevice-tool (8)
.BR corosync-qdevice-net-certutil (8)
.BR corosync-qnetd (8)
.BR corosync.conf (5)
.SH AUTHOR
Jan Friesse
.PP
diff --git a/man/corosync.8 b/man/corosync.8
index 41f634fa..b5451ade 100644
--- a/man/corosync.8
+++ b/man/corosync.8
@@ -1,68 +1,68 @@
.\"/*
.\" * Copyright (C) 2010 Red Hat, Inc.
.\" *
.\" * All rights reserved.
.\" *
.\" * Author: Angus Salkeld <asalkeld@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 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.
.\" */
.TH COROSYNC 8 2010-05-30
.SH NAME
corosync \- The Corosync Cluster Engine.
.SH SYNOPSIS
.B "corosync [\-f] [\-p] [\-r] [\-v]"
.SH DESCRIPTION
.B corosync
-Corosync provides clustering infracture such as membership, messaging and quorum.
+Corosync provides clustering infrastructure such as membership, messaging and quorum.
.SH OPTIONS
.TP
.B -f
Start application in foreground.
.TP
.B -p
Do not set process priority.
.TP
.B -r
Set round robin realtime scheduling (default).
.TP
.B -t
Test configuration and then exit.
.TP
.B -v
Display version and SVN revision of Corosync and exit.
.SH SEE ALSO
.BR corosync_overview (8),
.BR corosync.conf (5),
.BR cpg_overview (8),
.BR votequorum_overview (8),
.BR sam_overview (8),
.BR cmap_overview (8),
.BR quorum_overview (8)
.SH AUTHOR
Angus Salkeld
.PP
diff --git a/man/corosync.conf.5 b/man/corosync.conf.5
index 00a7a382..55b21f2a 100644
--- a/man/corosync.conf.5
+++ b/man/corosync.conf.5
@@ -1,693 +1,693 @@
.\"/*
.\" * Copyright (c) 2005 MontaVista Software, Inc.
.\" * Copyright (c) 2006-2012 Red Hat, Inc.
.\" *
.\" * All rights reserved.
.\" *
.\" * Author: Steven Dake (sdake@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 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.
.\" */
.TH COROSYNC_CONF 5 2012-10-10 "corosync Man Page" "Corosync Cluster Engine Programmer's Manual"
.SH NAME
corosync.conf - corosync executive configuration file
.SH SYNOPSIS
/etc/corosync/corosync.conf
.SH DESCRIPTION
The corosync.conf instructs the corosync executive about various parameters
needed to control the corosync executive. Empty lines and lines starting with
# character are ignored. The configuration file consists of bracketed top level
directives. The possible directive choices are:
.TP
totem { }
This top level directive contains configuration options for the totem protocol.
.TP
logging { }
This top level directive contains configuration options for logging.
.TP
quorum { }
This top level directive contains configuration options for quorum.
.TP
nodelist { }
This top level directive contains configuration options for nodes in cluster.
.TP
qb { }
This top level directive contains configuration options related to libqb.
.PP
.PP
Within the
.B totem
directive, an interface directive is required. There is also one configuration
option which is required:
.PP
.PP
Within the
.B interface
sub-directive of totem there are four parameters which are required. There is
one parameter which is optional.
.TP
ringnumber
This specifies the ring number for the interface. When using the redundant
ring protocol, each interface should specify separate ring numbers to uniquely
identify to the membership protocol which interface to use for which redundant
ring. The ringnumber must start at 0.
.TP
bindnetaddr
This specifies the network address the corosync executive should bind
to.
bindnetaddr should be an IP address configured on the system, or a network
address.
For example, if the local interface is 192.168.5.92 with netmask
255.255.255.0, you should set bindnetaddr to 192.168.5.92 or 192.168.5.0.
If the local interface is 192.168.5.92 with netmask 255.255.255.192,
set bindnetaddr to 192.168.5.92 or 192.168.5.64, and so forth.
This may also be an IPV6 address, in which case IPV6 networking will be used.
In this case, the exact address must be specified and there is no automatic
selection of the network interface within a specific subnet as with IPv4.
If IPv6 networking is used, the nodeid field in nodelist must be specified.
.TP
broadcast
This is optional and can be set to yes. If it is set to yes, the broadcast
address will be used for communication. If this option is set, mcastaddr
should not be set.
.TP
mcastaddr
This is the multicast address used by corosync executive. The default
should work for most networks, but the network administrator should be queried
about a multicast address to use. Avoid 224.x.x.x because this is a "config"
multicast address.
This may also be an IPV6 multicast address, in which case IPV6 networking
will be used. If IPv6 networking is used, the nodeid field in nodelist must
be specified.
It's not needed to use this option if cluster_name option is used. If both options
are used, mcastaddr has higher priority.
.TP
mcastport
This specifies the UDP port number. It is possible to use the same multicast
address on a network with the corosync services configured for different
UDP ports.
Please note corosync uses two UDP ports mcastport (for mcast receives) and
mcastport - 1 (for mcast sends).
If you have multiple clusters on the same network using the same mcastaddr
please configure the mcastports with a gap.
.TP
ttl
This specifies the Time To Live (TTL). If you run your cluster on a routed
network then the default of "1" will be too small. This option provides
a way to increase this up to 255. The valid range is 0..255.
Note that this is only valid on multicast transport types.
.PP
.PP
Within the
.B totem
directive, there are seven configuration options of which one is required,
five are optional, and one is required when IPV6 is configured in the interface
subdirective. The required directive controls the version of the totem
configuration. The optional option unless using IPV6 directive controls
identification of the processor. The optional options control secrecy and
authentication, the redundant ring mode of operation and maximum network MTU
field.
.TP
version
This specifies the version of the configuration file. Currently the only
valid version for this directive is 2.
.PP
clear_node_high_bit
This configuration option is optional and is only relevant when no nodeid is
specified. Some corosync clients require a signed 32 bit nodeid that is greater
than zero however by default corosync uses all 32 bits of the IPv4 address space
when generating a nodeid. Set this option to yes to force the high bit to be
zero and therefor ensure the nodeid is a positive signed 32 bit integer.
WARNING: The clusters behavior is undefined if this option is enabled on only
a subset of the cluster (for example during a rolling upgrade).
.TP
crypto_hash
This specifies which HMAC authentication should be used to authenticate all
messages. Valid values are none (no authentication), md5, sha1, sha256,
sha384 and sha512.
The default is sha1.
.TP
crypto_cipher
This specifies which cipher should be used to encrypt all messages.
Valid values are none (no encryption), aes256, aes192, aes128 and 3des.
Enabling crypto_cipher, requires also enabling of crypto_hash.
The default is aes256.
.TP
secauth
This specifies that HMAC/SHA1 authentication should be used to authenticate
all messages. It further specifies that all data should be encrypted with the
nss library and aes256 encryption algorithm to protect data from eavesdropping.
Enabling this option adds a encryption header to every message sent by totem which
reduces total throughput. Also encryption and authentication consume extra CPU
cycles in corosync.
The default is on.
WARNING: This parameter is deprecated. It's recomended to use combination of
crypto_cipher and crypto_hash.
.TP
rrp_mode
This specifies the mode of redundant ring, which may be none, active, or
passive. Currently only 'passive' is supported or tested
(using 'active' is not recommended). Active replication offers
slightly lower latency from transmit to delivery in faulty network
environments but with less performance.
Passive replication may nearly double the speed of the totem protocol
if the protocol doesn't become cpu bound. The final option is none, in
which case only one network interface will be used to operate the totem
protocol.
If only one interface directive is specified, none is automatically chosen.
If multiple interface directives are specified, only active or passive may
be chosen.
The maximum number of interface directives that is allowed for either
modes (active or passive) is 2.
When using multiple interfaces, make sure to use different multicast
address/port (port for same address must differ by at least two) pair
for each interface (this is checked by parser) to make rrp works.
.TP
netmtu
This specifies the network maximum transmit unit. To set this value beyond
1500, the regular frame MTU, requires ethernet devices that support large, or
also called jumbo, frames. If any device in the network doesn't support large
frames, the protocol will not operate properly. The hosts must also have their
mtu size set from 1500 to whatever frame size is specified here.
Please note while some NICs or switches claim large frame support, they support
9000 MTU as the maximum frame size including the IP header. Setting the netmtu
and host MTUs to 9000 will cause totem to use the full 9000 bytes of the frame.
Then Linux will add a 18 byte header moving the full frame size to 9018. As a
result some hardware will not operate properly with this size of data. A netmtu
of 8982 seems to work for the few large frame devices that have been tested.
Some manufacturers claim large frame support when in fact they support frame
sizes of 4500 bytes.
When sending multicast traffic, if the network frequently reconfigures, chances are
that some device in the network doesn't support large frames.
Choose hardware carefully if intending to use large frame support.
The default is 1500.
.TP
transport
This directive controls the transport mechanism used. If the interface to
which corosync is binding is an RDMA interface such as RoCEE or Infiniband, the
"iba" parameter may be specified. To avoid the use of multicast entirely, a
unicast transport parameter "udpu" can be specified. This requires specifying
the list of members in nodelist directive, that could potentially make up
the membership before deployment.
The default is udp. The transport type can also be set to udpu or iba.
.TP
cluster_name
This specifies the name of cluster and it's used for automatic generating
of multicast address.
.TP
config_version
This specifies version of config file. This is converted to unsigned 64-bit int.
By default it's 0. Option is used to prevent joining old nodes with not
up-to-date configuration. If value is not 0, and node is going for first time
(only for first time, join after split doesn't follow this rules)
from single-node membership to multiple nodes membership, other nodes
config_versions are collected. If current node config_version is not
equal to highest of collected versions, corosync is terminated.
.TP
ip_version
Specifies version of IP to use for communication. Value can be one of
ipv4 or ipv6. Default (if unspecified) is ipv4.
Within the
.B totem
directive, there are several configuration options which are used to control
the operation of the protocol. It is generally not recommended to change any
of these values without proper guidance and sufficient testing. Some networks
may require larger values if suffering from frequent reconfigurations. Some
applications may require faster failure detection times which can be achieved
by reducing the token timeout.
.TP
token
This timeout is used directly or as a base for real token timeout calculation (explained in
.B token_coefficient
section). Token timeout specifies in milliseconds until a token loss is declared after not
receiving a token. This is the time spent detecting a failure of a processor
in the current configuration. Reforming a new configuration takes about 50
milliseconds in addition to this timeout.
For real token timeout used by totem it's possible to read cmap value of
.B runtime.config.token
key.
The default is 1000 milliseconds.
.TP
token_coefficient
This value is used only when
.B nodelist
section is specified and contains at least 3 nodes. If so, real token timeout
is then computed as token + (number_of_nodes - 2) * token_coefficient.
This allows cluster to scale without manually changing token timeout
every time new node is added. This value can be set to 0 resulting
in effective removal of this feature.
The default is 650 milliseconds.
.TP
token_retransmit
This timeout specifies in milliseconds after how long before receiving a token
the token is retransmitted. This will be automatically calculated if token
is modified. It is not recommended to alter this value without guidance from
the corosync community.
The default is 238 milliseconds.
.TP
hold
This timeout specifies in milliseconds how long the token should be held by
the representative when the protocol is under low utilization. It is not
recommended to alter this value without guidance from the corosync community.
The default is 180 milliseconds.
.TP
token_retransmits_before_loss_const
This value identifies how many token retransmits should be attempted before
forming a new configuration. If this value is set, retransmit and hold will
be automatically calculated from retransmits_before_loss and token.
The default is 4 retransmissions.
.TP
join
This timeout specifies in milliseconds how long to wait for join messages in
the membership protocol.
The default is 50 milliseconds.
.TP
send_join
This timeout specifies in milliseconds an upper range between 0 and send_join
-to wait before sending a join message. For configurations with less then
+to wait before sending a join message. For configurations with less than
32 nodes, this parameter is not necessary. For larger rings, this parameter
is necessary to ensure the NIC is not overflowed with join messages on
formation of a new ring. A reasonable value for large rings (128 nodes) would
be 80msec. Other timer values must also change if this value is changed. Seek
advice from the corosync mailing list if trying to run larger configurations.
The default is 0 milliseconds.
.TP
consensus
This timeout specifies in milliseconds how long to wait for consensus to be
achieved before starting a new round of membership configuration. The minimum
value for consensus must be 1.2 * token. This value will be automatically
calculated at 1.2 * token if the user doesn't specify a consensus value.
-For two node clusters, a consensus larger then the join timeout but less then
+For two node clusters, a consensus larger than the join timeout but less than
token is safe. For three node or larger clusters, consensus should be larger
-then token. There is an increasing risk of odd membership changes, which stil
+than token. There is an increasing risk of odd membership changes, which still
guarantee virtual synchrony, as node count grows if consensus is less than
token.
The default is 1200 milliseconds.
.TP
merge
This timeout specifies in milliseconds how long to wait before checking for
a partition when no multicast traffic is being sent. If multicast traffic
is being sent, the merge detection happens automatically as a function of
the protocol.
The default is 200 milliseconds.
.TP
downcheck
This timeout specifies in milliseconds how long to wait before checking
that a network interface is back up after it has been downed.
-The default is 1000 millseconds.
+The default is 1000 milliseconds.
.TP
fail_recv_const
This constant specifies how many rotations of the token without receiving any
of the messages when messages should be received may occur before a new
configuration is formed.
The default is 2500 failures to receive a message.
.TP
seqno_unchanged_const
This constant specifies how many rotations of the token without any multicast
traffic should occur before the hold timer is started.
The default is 30 rotations.
.TP
heartbeat_failures_allowed
[HeartBeating mechanism]
Configures the optional HeartBeating mechanism for faster failure detection. Keep in
mind that engaging this mechanism in lossy networks could cause faulty loss declaration
as the mechanism relies on the network for heartbeating.
So as a rule of thumb use this mechanism if you require improved failure in low to
medium utilized networks.
This constant specifies the number of heartbeat failures the system should tolerate
before declaring heartbeat failure e.g 3. Also if this value is not set or is 0 then the
heartbeat mechanism is not engaged in the system and token rotation is the method
of failure detection
The default is 0 (disabled).
.TP
max_network_delay
[HeartBeating mechanism]
This constant specifies in milliseconds the approximate delay that your network takes
to transport one packet from one machine to another. This value is to be set by system
engineers and please don't change if not sure as this effects the failure detection
mechanism using heartbeat.
The default is 50 milliseconds.
.TP
window_size
This constant specifies the maximum number of messages that may be sent on one
token rotation. If all processors perform equally well, this value could be
large (300), which would introduce higher latency from origination to delivery
for very large rings. To reduce latency in large rings(16+), the defaults are
a safe compromise. If 1 or more slow processor(s) are present among fast
-processors, window_size should be no larger then 256000 / netmtu to avoid
+processors, window_size should be no larger than 256000 / netmtu to avoid
overflow of the kernel receive buffers. The user is notified of this by
the display of a retransmit list in the notification logs. There is no loss
of data, but performance is reduced when these errors occur.
The default is 50 messages.
.TP
max_messages
This constant specifies the maximum number of messages that may be sent by one
processor on receipt of the token. The max_messages parameter is limited to
256000 / netmtu to prevent overflow of the kernel transmit buffers.
The default is 17 messages.
.TP
miss_count_const
This constant defines the maximum number of times on receipt of a token
a message is checked for retransmission before a retransmission occurs. This
parameter is useful to modify for switches that delay multicast packets
compared to unicast packets. The default setting works well for nearly all
modern switches.
The default is 5 messages.
.TP
rrp_problem_count_timeout
This specifies the time in milliseconds to wait before decrementing the
problem count by 1 for a particular ring to ensure a link is not marked
faulty for transient network failures.
The default is 2000 milliseconds.
.TP
rrp_problem_count_threshold
This specifies the number of times a problem is detected with a link before
setting the link faulty. Once a link is set faulty, no more data is
transmitted upon it. Also, the problem counter is no longer decremented when
the problem count timeout expires.
A problem is detected whenever all tokens from the proceeding processor have
not been received within the rrp_token_expired_timeout. The
rrp_problem_count_threshold * rrp_token_expired_timeout should be atleast 50
milliseconds less then the token timeout, or a complete reconfiguration
may occur.
The default is 10 problem counts.
.TP
rrp_problem_count_mcast_threshold
This specifies the number of times a problem is detected with multicast before
setting the link faulty for passive rrp mode. This variable is unused in active
rrp mode.
The default is 10 times rrp_problem_count_threshold.
.TP
rrp_token_expired_timeout
This specifies the time in milliseconds to increment the problem counter for
the redundant ring protocol after not having received a token from all rings
for a particular processor.
This value will automatically be calculated from the token timeout and
problem_count_threshold but may be overridden. It is not recommended to
override this value without guidance from the corosync community.
The default is 47 milliseconds.
.TP
rrp_autorecovery_check_timeout
This specifies the time in milliseconds to check if the failed ring can be
auto-recovered.
The default is 1000 milliseconds.
.PP
Within the
.B logging
directive, there are several configuration options which are all optional.
.PP
The following 3 options are valid only for the top level logging directive:
.TP
timestamp
This specifies that a timestamp is placed on all log messages.
The default is off.
.TP
fileline
This specifies that file and line should be printed.
The default is off.
.TP
function_name
This specifies that the code function name should be printed.
The default is off.
.PP
The following options are valid both for top level logging directive
and they can be overridden in logger_subsys entries.
.TP
to_stderr
.TP
to_logfile
.TP
to_syslog
These specify the destination of logging output. Any combination of
these options may be specified. Valid options are
.B yes
and
.B no.
The default is syslog and stderr.
Please note, if you are using to_logfile and want to rotate the file, use logrotate(8)
with the option
.B
copytruncate.
eg.
.ne 18
.RS
.nf
.ft CW
/var/log/corosync.log {
missingok
compress
notifempty
daily
rotate 7
copytruncate
}
.ft
.fi
.RE
.TP
logfile
If the
.B to_logfile
directive is set to
.B yes
, this option specifies the pathname of the log file.
No default.
.TP
logfile_priority
This specifies the logfile priority for this particular subsystem. Ignored if debug is on.
Possible values are: alert, crit, debug (same as debug = on), emerg, err, info, notice, warning.
The default is: info.
.TP
syslog_facility
This specifies the syslog facility type that will be used for any messages
sent to syslog. options are daemon, local0, local1, local2, local3, local4,
local5, local6 & local7.
The default is daemon.
.TP
syslog_priority
This specifies the syslog level for this particular subsystem. Ignored if debug is on.
Possible values are: alert, crit, debug (same as debug = on), emerg, err, info, notice, warning.
The default is: info.
.TP
debug
This specifies whether debug output is logged for this particular logger. Also can contain
value trace, what is highest level of debug information.
The default is off.
.PP
Within the
.B logging
directive, logger_subsys directives are optional.
.PP
Within the
.B logger_subsys
sub-directive, all of the above logging configuration options are valid and
can be used to override the default settings.
The subsys entry, described below, is mandatory to identify the subsystem.
.TP
subsys
This specifies the subsystem identity (name) for which logging is specified. This is the
-name used by a service in the log_init () call. E.g. 'CPG'. This directive is
+name used by a service in the log_init() call. E.g. 'CPG'. This directive is
required.
.PP
Within the
.B quorum
directive it is possible to specify the quorum algorithm to use with the
.TP
provider
directive. At the time of writing only corosync_votequorum is supported.
See votequorum(5) for configuration options.
.PP
Within the
.B nodelist
directive it is possible to specify specific information about nodes in cluster. Directive
can contain only
.B node
sub-directive, which specifies every node that should be a member of the membership, and where
non-default options are needed. Every node must have at least ring0_addr field filled.
For UDPU, every node that should be a member of the membership must be specified.
Possible options are:
.TP
ringX_addr
-This specifies ip address of one of the nodes. X is ring number.
+This specifies IP address of one of the nodes. X is ring number.
.TP
nodeid
This configuration option is optional when using IPv4 and required when using
IPv6. This is a 32 bit value specifying the node identifier delivered to the
cluster membership service. If this is not specified with IPv4, the node id
will be determined from the 32 bit IP address the system to which the system
is bound with ring identifier of 0. The node identifier value of zero is
reserved and should not be used.
.PP
Within the
.B qb
directive it is possible to specify options for libqb.
Possible option is:
.TP
ipc_type
This specifies type of IPC to use. Can be one of native (default), shm and socket.
Native means one of shm or socket, depending on what is supported by OS. On systems
with support for both, SHM is selected. SHM is generally faster, but need to allocate
ring buffer file in /dev/shm.
.SH "FILES"
.TP
/etc/corosync/corosync.conf
The corosync executive configuration file.
.SH "SEE ALSO"
.BR corosync_overview (8),
.BR votequorum (5),
.BR corosync-qdevice (8),
.BR logrotate (8)
.PP
diff --git a/man/cpg_dispatch.3.in b/man/cpg_dispatch.3.in
index f824a3ff..a71ca6ab 100644
--- a/man/cpg_dispatch.3.in
+++ b/man/cpg_dispatch.3.in
@@ -1,111 +1,111 @@
.\"/*
.\" * Copyright (c) 2006 Red Hat, Inc.
.\" *
.\" * All rights reserved.
.\" *
.\" * Author: Patrick Caulfield <pcaulfie@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 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.
.\" */
.TH CPG_DISPATCH 3 2004-08-31 "corosync Man Page" "Corosync Cluster Engine Programmer's Manual"
.SH NAME
cpg_dispatch \- Dispatches callbacks from the CPG service
.SH SYNOPSIS
.B #include <corosync/cpg.h>
.sp
.BI "int cpg_dispatch(cpg_handle_t " handle ", cpg_dispatch_t *" dispatch_types ");
.SH DESCRIPTION
The
.B cpg_dispatch
function is used to dispatch configuration changes or messages from the
closed process groups API.
.PP
-Each application may have several connections to the CPG API. Each application
+Each application may have several connections to the CPG API. Each application
uses the
.I handle
argument to uniquely identify the connection.
.PP
The
.I dispatch_types
argument is used to identify the type of dispatch to execute. The possible types are
defined by the structure:
.IP
.RS
.ne 18
.nf
.ta 4n 30n 33n
typedef enum {
CS_DISPATCH_ONE,
CS_DISPATCH_ALL,
CS_DISPATCH_BLOCKING
} cpg_dispatch_t;
.ta
.fi
.RE
.IP
.PP
.PP
The dispatch values have the following meanings:
.TP
.B CS_DISPATCH_ONE
Dispatch atleast one callback, blocking until the callback is dispatched.
.TP
.B CS_DISPATCH_ALL
Dispatch all waiting callbacks without blocking to wait for any callbacks.
.TP
.B CS_DISPATCH_BLOCKING
Dispatch all callbacks, blocking indefinitely. This is used in a threaded
program where a thread is created, and then cpg_dispatch() is called immediately
from the created thread to execute callbacks.
.TP
.B CS_DISPATCH_ONE_NONBLOCKING
Dispatch at most one callback. If there is no pending callback,
CS_ERR_TRY_AGAIN is returned.
.SH RETURN VALUE
This call returns the CS_OK value if successful, otherwise an error is returned.
.PP
.SH ERRORS
The errors are undocumented.
.SH "SEE ALSO"
.BR cpg_overview (8),
.BR cpg_initialize (3),
.BR cpg_finalize (3),
.BR cpg_fd_get (3),
.BR cpg_dispatch (3),
.BR cpg_join (3),
.BR cpg_leave (3),
.BR cpg_mcast_joined (3),
.BR cpg_membership_get (3)
.BR cpg_zcb_alloc (3)
.BR cpg_zcb_free (3)
.BR cpg_zcb_mcast_joined (3)
.BR cpg_context_get (3)
.BR cpg_context_set (3)
.BR cpg_local_get (3)
.PP
diff --git a/man/cpg_initialize.3.in b/man/cpg_initialize.3.in
index 50129862..1c866cf2 100644
--- a/man/cpg_initialize.3.in
+++ b/man/cpg_initialize.3.in
@@ -1,175 +1,175 @@
.\"/*
.\" * Copyright (c) 2006-2009 Red Hat, Inc.
.\" *
.\" * All rights reserved.
.\" *
.\" * Author: Christine Caulfield <ccaulfie@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 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.
.\" */
.TH CPG_INITIALIZE 3 2004-08-31 "corosync Man Page" "Corosync Cluster Engine Programmer's Manual"
.SH NAME
cpg_initialize \- Create a new connection to the CPG service
.SH SYNOPSIS
.B #include <corosync/cpg.h>
.sp
.BI "int cpg_initialize(cpg_handle_t *" handle ", cpg_callbacks_t *" callbacks ");
.SH DESCRIPTION
The
.B cpg_initialize
function is used to initialize a connection to the closed process groups API. This function is deprecated
and
.B cpg_model_initialize
should be used in newly written code.
.PP
-Each application may have several connections to the CPG API. Each application
+Each application may have several connections to the CPG API. Each application
uses the
.I handle
argument to uniquely identify the connection. The
.I handle
argument is then used in other function calls to identify the connection to be used
for communication with the CPG service.
.PP
Every time an CPG event occurs within the joined group, one of the callbacks specified by the argument
.I callbacks
is called. The callback functions are described by the following type definitions:
.PP
.PP
.IP
.RS
.ne 18
.nf
.ta 4n 20n 32n
typedef void (*cpg_deliver_fn_t) (
cpg_handle_t handle,
const struct cpg_name *group_name,
uint32_t nodeid,
uint32_t pid,
const void *msg,
size_t msg_len);
typedef void (*cpg_confchg_fn_t) (
cpg_handle_t handle,
const struct cpg_name *group_name,
const struct cpg_address *member_list, size_t member_list_entries,
const struct cpg_address *left_list, size_t left_list_entries,
const struct cpg_address *joined_list, size_t joined_list_entries);
.ta
.fi
.RE
.IP
.PP
.PP
The
.I callbacks
argument is of the type:
.IP
.RS
.ne 18
.nf
.PP
typedef struct {
cpg_deliver_fn_t cpg_deliver_fn;
cpg_confchg_fn_t cpg_confchg_fn;
} cpg_callbacks_t;
.ta
.fi
.RE
.IP
.PP
When a configuration change occurs or a message is to be delivered one of the callbacks
is called from the
.B cpg_dispatch()
function. If a configuration change occurs,
.I cpg_confchg_fn
is called. If a delivery of a message occurs,
.I cpg_deliver_fn
is called.
The
.I cpg_address
structure is defined
.IP
.RS
.ne 18
.nf
.PP
struct cpg_address {
unsigned int nodeid;
unsigned int pid;
unsigned int reason;
};
.ta
.fi
.RE
.IP
.PP
where nodeid is a 32 bit unique node identifier, pid is the process ID of the process that has joined/left the group
or sent the message, and reason is an integer code indicating why the node joined/left the group.
.PP
.IP
.RS
.ne 18
.nf
.PP
CPG_REASON_JOIN - the process joined a group using cpg_join().
CPG_REASON_LEAVE - the process left a group using cpg_leave()
CPG_REASON_NODEDOWN - the process left a group because the node left the cluster.
CPG_REASON_NODEUP - the process joined a group because it was already a member of a group on a node that has just joined the cluster
CPG_REASON_PROCDOWN - the process left a group without calling cpg_leave()
.ta
.fi
.RE
.IP
.PP
.SH RETURN VALUE
This call returns the CS_OK value if successful, otherwise an error is returned.
.PP
.SH ERRORS
The errors are undocumented.
.SH "SEE ALSO"
.BR cpg_overview (8),
.BR cpg_initialize (3),
.BR cpg_finalize (3),
.BR cpg_fd_get (3),
.BR cpg_dispatch (3),
.BR cpg_join (3),
.BR cpg_leave (3),
.BR cpg_mcast_joined (3),
.BR cpg_membership_get (3)
.BR cpg_zcb_alloc (3)
.BR cpg_zcb_free (3)
.BR cpg_zcb_mcast_joined (3)
.BR cpg_context_get (3)
.BR cpg_context_set (3)
.BR cpg_local_get (3)
.BR cpg_model_initialize (3)
.PP
diff --git a/man/cpg_iteration_finalize.3.in b/man/cpg_iteration_finalize.3.in
index 747d2270..49ca64ba 100644
--- a/man/cpg_iteration_finalize.3.in
+++ b/man/cpg_iteration_finalize.3.in
@@ -1,67 +1,67 @@
.\"/*
.\" * 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 "CPG_ITERATION_FINALIZE" 3 "05/03/2012" "corosync Man Page" "Corosync Cluster Engine Programmer's Manual"
.SH NAME
.P
cpg_iteration_finalize \- Finalize iterator for members of CPG
.SH SYNOPSIS
.P
\fB#include <corosync/cpg.h>\fR
.P
\fBcs_error_t
cpg_iteration_finalize (cpg_iteration_handle_t \fIhandle\fB);\fR
.SH DESCRIPTION
.P
The
.B cpg_iteration_finalize
-function is used to free up memory asociated with iteration obtained by calling of
+function is used to free up memory associated with iteration obtained by calling of
.B cpg_iteration_initialize(3)
function.
The
.I handle
argument is iterator handle obtained by
.B cpg_iteration_initialize(3)
function.
.SH RETURN VALUE
This call returns the CS_OK value if successful. CS_ERR_BAD_HANDLE error is returned when handle
is invalid.
.SH "SEE ALSO"
.BR cpg_iteration_initialize (3),
.BR cpg_overview (8)
diff --git a/man/cpg_mcast_joined.3.in b/man/cpg_mcast_joined.3.in
index dc02350d..3ba44df8 100644
--- a/man/cpg_mcast_joined.3.in
+++ b/man/cpg_mcast_joined.3.in
@@ -1,141 +1,141 @@
.\"/*
.\" * Copyright (c) 2006 Red Hat, Inc.
.\" *
.\" * All rights reserved.
.\" *
.\" * Author: Patrick Caulfield <pcaulfie@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 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.
.\" */
-.TH CPG_MCAST_JOINED 3 3004-08-31 "corosync Man Page" "Corosync Cluster Engine Programmer's Manual"
+.TH CPG_MCAST_JOINED 3 2004-08-31 "corosync Man Page" "Corosync Cluster Engine Programmer's Manual"
.SH NAME
cpg_mcast_joined \- Multicasts to all groups joined to a handle
.SH SYNOPSIS
.B #include <sys/uio.h>
.B #include <corosync/cpg.h>
.sp
.BI "int cpg_mcast_joined(cpg_handle_t " handle ", cpg_guarantee_t " guarantee ", struct iovec *" iovec ", int " iov_len ");
.SH DESCRIPTION
The
.B cpg_mcast_joined
function will multicast a message to all the processes that have been joined with the
.B cpg_join(3)
function for the same group name.
Messages that are sent to any of the groups joined to the parameter
.I handle
will be delivered to all subscribed processes in the system.
.PP
The argument
.I guarantee
requests a delivery guarantee for the message to be sent. The cpg_guarantee_t type is
defined by:
.IP
.RS
.ne 18
.nf
.ta 4n 30n 33n
typedef enum {
CPG_TYPE_UNORDERED, /* not implemented */
CPG_TYPE_FIFO, /* same as agreed */
CPG_TYPE_AGREED, /* implemented */
CPG_TYPE_SAFE /* not implemented */
} cpg_guarantee_t;
.ta
.fi
.RE
.IP
.PP
.PP
The meanings of the cpg_guarantee_t typedef are:
.TP
.B CPG_TYPE_UNORDERED
Messages are guaranteed to be delivered, but with no particular order. This
mode is unimplemented in the CPG library.
.TP
.B CPG_TYPE_FIFO
Messages are guaranteed to be delivered in first sent first delivery order.
In fact, this guarantee is equivalent to the CPG_TYPE_AGREED guarantee.
.TP
.B CPG_TYPE_AGREED
All processors must agree on the order of delivery. If a message is sent
from two or more processes at about the same time, the delivery will occur
in the same order to all processes.
.TP
.B CPG_TYPE_SAFE
All processes must agree on the order of delivery. Further all processes
must have a copy of the message before any delivery takes place. This mode is
unimplemented in the CPG library.
.PP
The
.I iovec
argument describes the scatter/gather list which is used to transmit a message. This
is a iovec described by:
.IP
.RS
.ne 18
.nf
.ta 4n 30n 33n
struct iovec
{
void *iov_base; /* Pointer to data. */
unsigned int iov_len; /* Length of data. */
};
.ta
.fi
.RE
.IP
.PP
.PP
The
.I iov_len
argument describes the number of entires in the
.I iovec
argument.
.SH RETURN VALUE
This call returns the CS_OK value if successful, otherwise an error is returned.
.PP
.SH ERRORS
The errors are undocumented.
.SH "SEE ALSO"
.BR cpg_overview (8),
.BR cpg_initialize (3),
.BR cpg_finalize (3),
.BR cpg_fd_get (3),
.BR cpg_dispatch (3),
.BR cpg_join (3),
.BR cpg_leave (3),
.BR cpg_mcast_joined (3),
.BR cpg_membership_get (3)
.BR cpg_zcb_alloc (3)
.BR cpg_zcb_free (3)
.BR cpg_zcb_mcast_joined (3)
.BR cpg_context_get (3)
.BR cpg_context_set (3)
.BR cpg_local_get (3)
.PP
diff --git a/man/cpg_model_initialize.3.in b/man/cpg_model_initialize.3.in
index 259f77d5..76429a56 100644
--- a/man/cpg_model_initialize.3.in
+++ b/man/cpg_model_initialize.3.in
@@ -1,231 +1,231 @@
.\"/*
.\" * Copyright (c) 2010 Red Hat, Inc.
.\" *
.\" * All rights reserved.
.\" *
.\" * Author: Jan Friesse <jfriesse@redhat.com>
.\" * Author: Christine Caulfield <ccaulfie@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 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.
.\" */
.TH CPG_MODEL_INITIALIZE 3 2010-04-07 "corosync Man Page" "Corosync Cluster Engine Programmer's Manual"
.SH NAME
cpg_model_initialize \- Create a new connection to the CPG service
.SH SYNOPSIS
.B #include <corosync/cpg.h>
.sp
.BI "cs_error_t cpg_model_initialize(cpg_handle_t *" handle ", cpg_model_t " model ", cpg_model_data_t *" model_data ", void *" context ");
.SH DESCRIPTION
The
.B cpg_model_initialize
function is used to initialize a connection to the closed process groups API.
.PP
-Each application may have several connections to the CPG API. Each application
+Each application may have several connections to the CPG API. Each application
uses the
.I handle
argument to uniquely identify the connection. The
.I handle
argument is then used in other function calls to identify the connection to be used
for communication with the CPG service.
.PP
Argument
.I model
is used to explicitly choose set of callbacks and internal parameters. Currently only model
.I CPG_MODEL_V1
is defined.
.PP
Callbacks and internal parameters are passed by
.I model_data
argument. This is casted pointer (idea is similar as in sockaddr function) to one of structures
corresponding to chosen model. Currently only
.I cpg_model_v1_data_t
is needed.
.SH MODEL_V1
The
.I MODEL_V1
is backwards compatible with original callbacks initialized by
.I cpg_initialize
but new callback
.I cpg_totem_confchg_fn
is defined.
.PP
Every time an CPG event occurs within the joined group, one of the callbacks specified by the argument
.I callbacks
is called. The callback functions are described by the following type definitions:
.PP
.PP
.IP
.RS
.ne 18
.nf
.ta 4n 20n 32n
typedef void (*cpg_deliver_fn_t) (
cpg_handle_t handle,
const struct cpg_name *group_name,
uint32_t nodeid,
uint32_t pid,
const void *msg,
size_t msg_len);
typedef void (*cpg_confchg_fn_t) (
cpg_handle_t handle,
const struct cpg_name *group_name,
const struct cpg_address *member_list, size_t member_list_entries,
const struct cpg_address *left_list, size_t left_list_entries,
const struct cpg_address *joined_list, size_t joined_list_entries);
typedef void (*cpg_totem_confchg_fn_t) (
cpg_handle_t handle,
struct cpg_ring_id ring_id,
uint32_t member_list_entries,
const uint32_t *member_list);
.ta
.fi
.RE
.IP
.PP
.PP
The
.I cpg_model_v1_data_t
structure is defined as:
.IP
.RS
.ne 18
.nf
.PP
typedef struct {
cpg_model_t model;
cpg_deliver_fn_t cpg_deliver_fn;
cpg_confchg_fn_t cpg_confchg_fn;
cpg_totem_confchg_fn_t cpg_totem_confchg_fn;
unsigned int flags;
} cpg_model_v1_data_t;
.ta
.fi
.RE
.IP
.PP
When a configuration change occurs or a message is to be delivered one of the callbacks
is called from the
.B cpg_dispatch()
function. If a configuration change occurs,
.I cpg_confchg_fn
is called. If a delivery of a message occurs,
.I cpg_deliver_fn
is called.
When totem membership change occurs,
.I cpg_totem_confchg_fn
is called. You can OR
.I CPG_MODEL_V1_DELIVER_INITIAL_TOTEM_CONF
constant to flags to get callback after first confchg event.
The
.I cpg_address
structure is defined
.IP
.RS
.ne 18
.nf
.PP
struct cpg_address {
unsigned int nodeid;
unsigned int pid;
unsigned int reason;
};
.ta
.fi
.RE
.IP
.PP
where nodeid is a 32 bit unique node identifier, pid is the process ID of the process that has joined/left the group
or sent the message, and reason is an integer code indicating why the node joined/left the group.
.PP
.IP
.RS
.ne 18
.nf
.PP
CPG_REASON_JOIN - the process joined a group using cpg_join().
CPG_REASON_LEAVE - the process left a group using cpg_leave()
CPG_REASON_NODEDOWN - the process left a group because the node left the cluster.
CPG_REASON_NODEUP - the process joined a group because it was already a member of a group on a node that has just joined the cluster
CPG_REASON_PROCDOWN - the process left a group without calling cpg_leave()
.ta
.fi
.RE
.IP
.PP
The
.I cpg_ring_id
structure is defined
.IP
.RS
.ne 18
.nf
.PP
struct cpg_ring_id {
uint32_t nodeid;
uint64_t seq;
};
.ta
.fi
.RE
.IP
.PP
where
.I nodeid
is if of node of current Totem leader and seq is increasing number.
.PP
.SH RETURN VALUE
This call returns the CS_OK value if successful, otherwise an error is returned.
.PP
.SH ERRORS
The errors are undocumented.
.SH "SEE ALSO"
.BR cpg_overview (8),
.BR cpg_initialize (3),
.BR cpg_finalize (3),
.BR cpg_fd_get (3),
.BR cpg_dispatch (3),
.BR cpg_join (3),
.BR cpg_leave (3),
.BR cpg_mcast_joined (3),
.BR cpg_membership_get (3)
.BR cpg_zcb_alloc (3)
.BR cpg_zcb_free (3)
.BR cpg_zcb_mcast_joined (3)
.BR cpg_context_get (3)
.BR cpg_context_set (3)
.BR cpg_local_get (3)
.BR cpg_model_initialize (3)
.PP
diff --git a/man/cpg_zcb_alloc.3.in b/man/cpg_zcb_alloc.3.in
index e46da9ca..347be2c0 100644
--- a/man/cpg_zcb_alloc.3.in
+++ b/man/cpg_zcb_alloc.3.in
@@ -1,85 +1,85 @@
.\"/*
.\" * Copyright (c) 2009 Red Hat, Inc.
.\" *
.\" * All rights reserved.
.\" *
.\" * Author: Steven Dake <sdake@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 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.
.\" */
.TH "CPG_ZCB_ALLOC" 3 "2009-04-15" "corosync Man Page" "Corosync Cluster Engine Programmer's Manual"
.SH NAME
cpg_zcb_alloc \- Allocates a zero copy buffer
.SH SYNOPSIS
.B #include <corosync/cpg.h>
.sp
.BI "int cpg_zcb_alloc(cpg_handle_t " handle ", size_t " size ", void **" buffer ");
.SH DESCRIPTION
The
.B cpg_zcb_alloc
function will allocate a zero copy buffer for use with the
.B cpg_zcb_mcast_joined(3)
function. This buffer should not be used in another thread while a
cpg_zcb_mcast_joined operation is taking place on the buffer. The buffer is
allocated via operating system mechanisms to avoid copying in the IPC layer.
.PP
The argument
.I handle
describes the handle on which the buffer will be allocated.
.PP
The argument
.I size
requests a buffer of size be allocated.
.PP
The
.I buffer
-argument is set to the buffer address that is allocated by this operatoin.
+argument is set to the buffer address that is allocated by this operation.
.SH RETURN VALUE
This call returns the CS_OK value if successful, otherwise an error is returned.
.PP
.SH ERRORS
The errors are undocumented.
.SH "SEE ALSO"
.BR cpg_overview (8),
.BR cpg_initialize (3),
.BR cpg_finalize (3),
.BR cpg_fd_get (3),
.BR cpg_dispatch (3),
.BR cpg_join (3),
.BR cpg_leave (3),
.BR cpg_mcast_joined (3),
.BR cpg_membership_get (3)
.BR cpg_zcb_alloc (3)
.BR cpg_zcb_free (3)
.BR cpg_zcb_mcast_joined (3)
.BR cpg_context_get (3)
.BR cpg_context_set (3)
.BR cpg_local_get (3)
.PP
diff --git a/man/cpg_zcb_mcast_joined.3.in b/man/cpg_zcb_mcast_joined.3.in
index 158131c2..afb44549 100644
--- a/man/cpg_zcb_mcast_joined.3.in
+++ b/man/cpg_zcb_mcast_joined.3.in
@@ -1,127 +1,127 @@
.\"/*
.\" * Copyright (c) 2009 Red Hat, Inc.
.\" *
.\" * All rights reserved.
.\" *
.\" * Author: Steven Dake <sdake@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 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.
.\" */
-.TH CPG_ZCB_MCAST_JOINED 3 3004-08-31 "corosync Man Page" "Corosync Cluster Engine Programmer's Manual"
+.TH CPG_ZCB_MCAST_JOINED 3 2004-08-31 "corosync Man Page" "Corosync Cluster Engine Programmer's Manual"
.SH NAME
cpg_mcast_joined \- Multicasts a zero copy buffer to all groups joined to a handle
.SH SYNOPSIS
.B #include <sys/uio.h>
.B #include <corosync/cpg.h>
.sp
.BI "int cpg_zcb_mcast_joined(cpg_handle_t " handle ", cpg_guarantee_t " guarantee ", const void *" buffer "", int " msg_len ");
.SH DESCRIPTION
The
.B cpg_zcb_mcast_joined
function will multicast a zero copy buffer message to all the processes that
have been joined with the
.B cpg_join(3)
function for the same group name.
Messages that are sent to any of the groups joined to the parameter
.I handle
will be delivered to all subscribed processes in the system.
.PP
The argument
.I guarantee
requests a delivery guarantee for the message to be sent. The cpg_guarantee_t type is
defined by:
.IP
.RS
.ne 18
.nf
.ta 4n 30n 33n
typedef enum {
CPG_TYPE_UNORDERED, /* not implemented */
CPG_TYPE_FIFO, /* same as agreed */
CPG_TYPE_AGREED, /* implemented */
CPG_TYPE_SAFE /* not implemented */
} cpg_guarantee_t;
.ta
.fi
.RE
.IP
.PP
.PP
The meanings of the cpg_guarantee_t typedef are:
.TP
.B CPG_TYPE_UNORDERED
Messages are guaranteed to be delivered, but with no particular order. This
mode is unimplemented in the CPG library.
.TP
.B CPG_TYPE_FIFO
Messages are guaranteed to be delivered in first sent first delivery order.
In fact, this guarantee is equivalent to the CPG_TYPE_AGREED guarantee.
.TP
.B CPG_TYPE_AGREED
All processors must agree on the order of delivery. If a message is sent
from two or more processes at about the same time, the delivery will occur
in the same order to all processes.
.TP
.B CPG_TYPE_SAFE
All processes must agree on the order of delivery. Further all processes
must have a copy of the message before any delivery takes place. This mode is
unimplemented in the CPG library.
.PP
The
.I msg
argument describes the zero copy buffer which is used to transmit a message.
this buffer must be allocated by
.B cpg_zcb_alloc(3).
.PP
The
.I msg_len
argument describes the number of bytes to be transmitted in the zero copy buffer.
.SH RETURN VALUE
This call returns the CS_OK value if successful, otherwise an error is returned.
.PP
.SH ERRORS
The errors are undocumented.
.SH "SEE ALSO"
.BR cpg_overview (8),
.BR cpg_initialize (3),
.BR cpg_finalize (3),
.BR cpg_fd_get (3),
.BR cpg_dispatch (3),
.BR cpg_join (3),
.BR cpg_leave (3),
.BR cpg_mcast_joined (3),
.BR cpg_membership_get (3)
.BR cpg_zcb_alloc (3)
.BR cpg_zcb_free (3)
.BR cpg_zcb_mcast_joined (3)
.BR cpg_context_get (3)
.BR cpg_context_set (3)
.BR cpg_local_get (3)
.PP
diff --git a/man/ipc_common.sh.errors b/man/ipc_common.sh.errors
index 0c733582..55d45107 100644
--- a/man/ipc_common.sh.errors
+++ b/man/ipc_common.sh.errors
@@ -1,25 +1,25 @@
.PP
.B CS_ERR_TRY_AGAIN
Resource temporarily unavailable
.B CS_ERR_INVALID_PARAM
Invalid argument
.B CS_ERR_ACCESS
Permission denied
.B CS_ERR_LIBRARY
The connection failed
.B CS_ERR_INTERRUPT
-System call inturrupted by a signal
+System call interrupted by a signal
.B CS_ERR_NOT_SUPPORTED
-The requested protocol/functuality not supported
+The requested protocol/functionality not supported
.B CS_ERR_MESSAGE_ERROR
Incorrect auth message received
.B CS_ERR_NO_MEMORY
-Not enough memory to completed the requested task
+Not enough memory to complete the requested task
diff --git a/man/quorum_context_set.3.in b/man/quorum_context_set.3.in
index 6a57e928..57fe35c1 100644
--- a/man/quorum_context_set.3.in
+++ b/man/quorum_context_set.3.in
@@ -1,63 +1,63 @@
.\"/*
.\" * Copyright (c) 2012 Red Hat, Inc.
.\" *
.\" * All rights reserved.
.\" *
.\" * Author: Fabio M. Di Nitto <fdinitto@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 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.
.\" */
.TH QUORUM_CONTEXT_SET 3 @BUILDDATE@ "corosync Man Page" "Corosync Cluster Engine Programmer's Manual"
.SH NAME
quorum_context_set \- Sets the context variable for a QUORUM instance
.SH SYNOPSIS
.B #include <corosync/quorum.h>
.sp
.BI "int quorum_context_set(quorum_handle_t " handle ", void *" context ");"
.SH DESCRIPTION
The
.B quorum_context_set
function is used to set the context variable for a quorum instance. It has no
-meaning insire libquorum itself and will not be touched by the library. It can
+meaning inside libquorum itself and will not be touched by the library. It can
be retrieved using
.B quorum_context_get(3)
.SH RETURN VALUE
This call returns the CS_OK value if successful, otherwise an error is returned.
.PP
.SH ERRORS
@COMMONIPCERRORS@
.SH "SEE ALSO"
.BR quorum_overview (8),
.BR quorum_initialize (3),
.BR quorum_finalize (3),
.BR quorum_getquorate (3),
.BR quorum_trackstart (3),
.BR quorum_trackstop (3),
.BR quorum_fd_get (3),
.BR quorum_dispatch (3),
.BR quorum_context_get (3)
.PP
diff --git a/man/quorum_dispatch.3.in b/man/quorum_dispatch.3.in
index 34d99080..319e4606 100644
--- a/man/quorum_dispatch.3.in
+++ b/man/quorum_dispatch.3.in
@@ -1,97 +1,97 @@
.\"/*
.\" * Copyright (c) 2012 Red Hat, Inc.
.\" *
.\" * All rights reserved.
.\" *
.\" * Author: Fabio M. Di Nitto <fdinitto@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 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.
.\" */
.TH QUORUM_DISPATCH 3 @BUILDDATE@ "corosync Man Page" "Corosync Cluster Engine Programmer's Manual"
.SH NAME
quorum_dispatch \- Dispatches callbacks from the quorum service
.SH SYNOPSIS
.B #include <corosync/quorum.h>
.sp
.BI "int quorum_dispatch(quorum_handle_t " handle ", cs_dispatch_flags_t *" dispatch_types ");"
.SH DESCRIPTION
The
.B quorum_dispatch
function is used to dispatch configuration changes.
.PP
-Each application may have several connections to the quorum API. Each application
+Each application may have several connections to the quorum API. Each application
uses the
.I handle
argument to uniquely identify the connection.
.PP
The
.I dispatch_types
argument is used to identify the type of dispatch to execute. The possible types are
defined by the structure:
.nf
typedef enum {
CS_DISPATCH_ONE = 1,
CS_DISPATCH_ALL = 2,
CS_DISPATCH_BLOCKING = 3,
CS_DISPATCH_ONE_NONBLOCKING = 4
} cs_dispatch_flags_t;
.fi
.PP
The dispatch values have the following meanings:
.TP
.B CS_DISPATCH_ONE
Dispatch at least one callback, blocking until the callback is dispatched.
.TP
.B CS_DISPATCH_ALL
Dispatch all waiting callbacks without blocking to wait for any callbacks.
.TP
.B CS_DISPATCH_BLOCKING
Dispatch all callbacks blocking indefinitely. This is used in a threaded
program where a thread is created, and then quorum_dispatch() is called immediately
from the created thread to execute callbacks.
.TP
.B CS_DISPATCH_ONE_NONBLOCKING
Dispatch at most one callback. If there is no pending callback,
CS_ERR_TRY_AGAIN is returned.
.SH RETURN VALUE
This call returns the CS_OK value if successful, otherwise an error is returned.
.PP
.SH ERRORS
@COMMONIPCERRORS@
.SH "SEE ALSO"
.BR quorum_overview (8),
.BR quorum_initialize (3),
.BR quorum_finalize (3),
.BR quorum_getquorate (3),
.BR quorum_trackstart (3),
.BR quorum_trackstop (3),
.BR quorum_fd_get (3),
.BR quorum_context_set (3),
.BR quorum_context_get (3)
.PP
diff --git a/man/quorum_getquorate.3.in b/man/quorum_getquorate.3.in
index ec87486b..b1c0c74b 100644
--- a/man/quorum_getquorate.3.in
+++ b/man/quorum_getquorate.3.in
@@ -1,61 +1,61 @@
.\"/*
.\" * Copyright (c) 2012 Red Hat, Inc.
.\" *
.\" * All rights reserved.
.\" *
.\" * Author: Fabio M. Di Nitto <fdinitto@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 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.
.\" */
.TH QUORUM_GETQUORATE 3 @BUILDDATE@ "corosync Man Page" "Corosync Cluster Engine Programmer's Manual"
.SH NAME
quorum_getquorate \- Gets the quorate status of the node.
.SH SYNOPSIS
.B #include <corosync/quorum.h>
.sp
.BI "int quorum_getquorate(quorum_handle_t " handle ", int *" quorate ");"
.SH DESCRIPTION
The
.B quorum_getquorate
-function is used to retrieve the quorate status of the node. quorate is 0 if the node
+function is used to retrieve the quorate status of the node. Quorate is 0 if the node
is not part of a quorate partition or 1 otherwise.
.SH RETURN VALUE
This call returns the CS_OK value if successful, otherwise an error is returned.
.PP
.SH ERRORS
@COMMONIPCERRORS@
.SH "SEE ALSO"
.BR quorum_overview (8),
.BR quorum_initialize (3),
.BR quorum_finalize (3),
.BR quorum_trackstart (3),
.BR quorum_trackstop (3),
.BR quorum_fd_get (3),
.BR quorum_dispatch (3),
.BR quorum_context_set (3),
.BR quorum_context_get (3)
.PP
diff --git a/man/sam_data_store.3.in b/man/sam_data_store.3.in
index 6e906513..88ab7aa0 100644
--- a/man/sam_data_store.3.in
+++ b/man/sam_data_store.3.in
@@ -1,83 +1,83 @@
.\"/*
.\" * Copyright (c) 2010 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 "SAM_DATA_STORE" 3 "04/15/2010" "corosync Man Page" "Corosync Cluster Engine Programmer's Manual"
.SH NAME
.P
sam_data_store \- Store user data
.SH SYNOPSIS
.P
\fB#include <corosync/sam.h>\fR
.P
\fBcs_error_t sam_data_store (const void *\fIdata\fB, size_t \fIsize\fB);\fR
.SH DESCRIPTION
.P
The \fBsam_data_store\fR function is used to store data, which survives between
instances.
.P
The \fIdata\fR parameter is pointer to memory with data to store. Data
are stored in newly allocated memory inside library, so caller can safely remove
them after call of function.
You can use NULL as parameter to remove and free previously saved data. In this
case \fIsize\fR argument is ignored.
.P
The \fIsize\fR parameter is length of \fIdata\fR.
Use \fBsam_data_getsize(3)\fR to find out length of stored data and \fBsam_data_restore(3)\fR
to restore stored data.
.SH RETURN VALUE
.P
This call return CS_OK value if successful, otherwise and error is returned.
.SH ERRORS
.TP
CS_ERR_BAD_HANDLE
component was not initialized by calling \fBsam_initialize(3)\fR or it was finalized.
.TP
CS_ERR_NO_MEMORY
-internal malloc/realloc failed because data are too large
+internal malloc/realloc failed because data are too large
.TP
CS_ERR_LIBRARY
some internal error appeared (mostly because communication with parent process failed)
.SH "SEE ALSO"
.BR sam_data_getsize (3),
.BR sam_data_restore (3)
diff --git a/man/sam_hc_callback_register.3.in b/man/sam_hc_callback_register.3.in
index 91be22d5..c9f5619e 100644
--- a/man/sam_hc_callback_register.3.in
+++ b/man/sam_hc_callback_register.3.in
@@ -1,89 +1,89 @@
.\"/*
.\" * Copyright (c) 2009 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 "SAM_HC_CALLBACK_REGISTER" 3 "12/01/2009" "corosync Man Page" "Corosync Cluster Engine Programmer's Manual"
.SH NAME
.P
sam_hc_callback_register \- Register health check callback
.SH SYNOPSIS
.P
\fB#include <corosync/sam.h>\fR
.P
\fBcs_error_t sam_hc_callback_register (sam_hc_callback_t cb);\fR
.SH DESCRIPTION
.P
The \fBsam_hc_callback_register\fR function is used to register a user provided
healthcheck callback. After calling of this function, the SAM is switched
from application driven healthchecking to event driven healthchecking. In this
mode, \fBsam_hc_send(3)\fR does not need to be executed.
.P
The parameter \fIcb\fR is callback function of type \fIsam_hc_callback_t\fR
defined as:
.nf
typedef int (*sam_hc_callback_t)(void);
.fi
.P
-This function will be regulargly called and must return 0 if the process is
+This function will be regularly called and must return 0 if the process is
functioning normally, or -1 if the process is executing abnormally. When -1 is
returned, the SAM server execute the registered recovery policy.
.P
A value of NULL can be passed into this function to switch into application
driven healthchecking.
\fIcb\fR to NULL.
.SH RETURN VALUE
.P
This call return CS_OK value if successful, otherwise and error is returned.
.SH ERRORS
.TP
CS_ERR_BAD_HANDLE
SAM was not initialized and registered or health checking is in running state
.TP
CS_ERR_LIBRARY
-internal library call failed. This can occur during fork() or pipe () system
+internal library call failed. This can occur during fork() or pipe() system
calls and the errno variable can be read to retrieve more information.
.SH "SEE ALSO"
.BR sam_start (3),
.BR sam_stop (3),
.BR sam_hc_send (3),
.BR sam_register (3),
diff --git a/man/sam_hc_send.3.in b/man/sam_hc_send.3.in
index c8e9131f..dfcf93c0 100644
--- a/man/sam_hc_send.3.in
+++ b/man/sam_hc_send.3.in
@@ -1,68 +1,68 @@
.\"/*
.\" * Copyright (c) 2009 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 "SAM_HC_SEND" 3 "12/01/2009" "corosync Man Page" "Corosync Cluster Engine Programmer's Manual"
.SH NAME
.P
sam_hc_send \- Send health check confirmation
.SH SYNOPSIS
.P
\fB#include <corosync/sam.h>\fR
.P
\fBcs_error_t sam_hc_send (void);\fR
.SH DESCRIPTION
.P
The \fBsam_hc_send\fR function is used to send healthcheck confirmation from
-the applicatoin. This function should be called reguarly when configured for
-application driven healthchecking, otherwise recovery actoin will be taken.
+the application. This function should be called regularly when configured for
+application driven healthchecking, otherwise recovery action will be taken.
When using event driven healthchecking, this function should not be used.
.SH RETURN VALUE
.P
This call return CS_OK value if successful, otherwise and error is returned.
.SH ERRORS
.TP
CS_ERR_BAD_HANDLE
health checking is not in running state (\fBsam_start(3)\fR has not been
executed) or function is called after stop/finalization of SAM.
.SH "SEE ALSO"
.BR sam_start (3),
.BR sam_stop (3),
.BR sam_hc_callback_register (3)
diff --git a/man/sam_overview.8 b/man/sam_overview.8
index 490dbe4d..a0b23b43 100644
--- a/man/sam_overview.8
+++ b/man/sam_overview.8
@@ -1,181 +1,181 @@
.\"/*
.\" * Copyright (c) 2009-2010 Red Hat, Inc.
.\" *
.\" * All rights reserved.
.\" *
.\" * Author: Jan Friesse (jfriesse@redhat.com)
.\" * Author: Steven Dake (sdake@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 "SAM_OVERVIEW" 8 "21/05/2010" "corosync Man Page" "Corosync Cluster Engine Programmer's Manual"
.SH NAME
.P
sam_overview \- Overview of the Simple Availability Manager
.SH OVERVIEW
.P
The SAM library provide a tool to check the health of an application.
The main purpose of SAM is to restart a local process when it fails to respond
to a healthcheck request in a configured time interval.
.P
During \fBsam_initialize(3)\fR, a duplicate copy of the process is created using
the \fBfork(3)\fR system call. This duplicate process copy contains the logic
for executing the SAM server. The SAM server is responsible for requesting
healthchecks from the active process, and controlling the lifecycle of the
active process when it fails. If the active process fails to respond to the
healthcheck request sent by the SAM server, it will be sent a user configurable
signal (default SIGTERM) to request shutdown of the application. After a configured time interval, the
process will be forcibly killed by being sent a SIGKILL signal. Once the
active process terminates, the SAM server will create a new active process.
.P
The Simple Availability Manager is meant to be used in conjunction with the
cpg service. Used together, it is possible to restart a cpg process that fails
healthchecking during operation.
.P
The main features of SAM include:
.RS
.IP \(bu 3
A configurable recovery policy.
.IP \(bu 3
A configurable time interval for health check operations.
.IP \(bu 3
A notification via signal before recovery action is taken.
.IP \(bu 3
A mechanism to indicate to the application the number of times an active
process has been created by the SAM server.
.IP \(bu 3
Both application driven health checking and event driven health checking.
.RE
.SH Initializing SAM
.P
The SAM library is initialized by \fBsam_initialize(3)\fR.
\fBsam_initalize(3)\fR may only be called once per process. Calling it more
then once has undefined results and is not recommended or tested.
.SH Setting warning callback
.P
User configurable signal (default \fISIGTERM\fR) is sent to the application when a recovery action is
planned. The application can use the \fBsignal(3)\fR system call to monitor
for this signal.
.P
There are no special constraints on what SAM apis may be called in a warning
callback. After \fItime_interval\fR expires, a SIGKILL signal is sent to the
active process to force its termination.
.SH Registering the active process
.P
The active process is registered with SAM by calling \fBsam_register(3)\fR.
This function should only be called one time in a process. After a recovery
action is taken, the new active process will begin execution at the next line
of code in a user process after \fBsam_register(3)\fR.
.SH Enabling event driven healthchecking
.P
Two types of healthchecking are available to the user. The first model is one
where the user application healthchecks during its normal operation. It is
never requested to healtcheck, and if the active process doesn't respond within
the time interval, the process will be restarted.
.P
A more useful mechanism for healthchecking is event driven healthchecking.
Because this model is directed by the SAM server, It isn't necessary to guess
or add timers to the active process to signal a healthcheck operation is
successful. To use event driven healthchecking,
the \fBsam_hc_callback_register(3)\fR function should be executed.
.SH Quorum integration
.P
SAM has special policies (\fISAM_RECOVERY_POLICY_QUIT\fR and \fISAM_RECOVERY_POLICY_RESTART\fR)
for integration with quorum service. This policies changes SAM behaviour in two aspects.
.RS
.IP \(bu 3
Call of \fBsam_start(3)\fR blocks until corosync becomes quorate
.IP \(bu 3
User selected recovery action is taken immediately after lost of quorum.
.RE
.SH Storing user data
.P
Sometimes there is need to store some data, which survives between instances.
One can in such case use files, databases, ... or much simpler in memory solution
presented by \fBsam_data_store(3)\fR, \fBsam_data_restore(3)\fR and \fBsam_data_getsize(3)\fR
functions.
.SH Confdb integration
.P
SAM has policy flag used for confdb system integration (\fISAM_RECOVERY_POLICY_CONFDB\fR).
If process is registered with this flag, new confdb object PROCESS_NAME:PID is created with following
keys:
.RS
.IP \(bu 3
\fIrecovery\fR - will be quit or restart depending on policy
.IP \(bu 3
\fIpoll_period\fR - period of health checking in milliseconds
.IP \(bu 3
\fIlast_updated\fR - Timestamp (in nanoseconds) of the last health check.
.IP \(bu 3
\fIstate\fR - state of process (can be one of registered, started, failed, waiting for quorum)
.RE
.P
Object is automatically deleted if process exits with stopped health checking.
.P
-Confdb integration with corosync wathdog can be used in implicit and explicit way.
+Confdb integration with corosync watchdog can be used in implicit and explicit way.
.P
Implicit way is achieved by setting recovery policy to QUIT and let process exit with started health checking.
If this happened, object is not deleted and corosync watchdog will take required action.
.P
Explicit way is useful for situations, when developer can deal with some non-fatal fall of application.
This mode is achieved by setting policy to RESTART and using SAM same as without Confdb integration.
If real fail is needed (like too many restarts at all, per/sec, ...), it's possible to use \fBsam_mark_failed(3)\fR
and let corosync watchdog take required action.
.SH BUGS
.SH "SEE ALSO"
.BR sam_initialize (3),
.BR sam_data_getsize (3),
.BR sam_data_restore (3),
.BR sam_data_store (3),
.BR sam_finalize (3),
.BR sam_mark_failed (3),
.BR sam_start (3),
.BR sam_stop (3),
.BR sam_register (3),
.BR sam_warn_signal_set (3),
.BR sam_hc_send (3),
.BR sam_hc_callback_register (3)
diff --git a/man/votequorum.5 b/man/votequorum.5
index ee4814a2..fd9590e6 100644
--- a/man/votequorum.5
+++ b/man/votequorum.5
@@ -1,409 +1,409 @@
.\"/*
.\" * Copyright (c) 2012-2014 Red Hat, Inc.
.\" *
.\" * All rights reserved.
.\" *
.\" * Authors: Christine Caulfield <ccaulfie@redhat.com>
.\" * Fabio M. Di Nitto <fdinitto@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 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.
.\" */
.TH VOTEQUORUM 5 2012-01-24 "corosync Man Page" "Corosync Cluster Engine Programmer's Manual"
.SH NAME
votequorum \- Votequorum Configuration Overview
.SH OVERVIEW
The votequorum service is part of the corosync project. This service can be optionally loaded
into the nodes of a corosync cluster to avoid split-brain situations.
It does this by having a number of votes assigned to each system in the cluster and ensuring
that only when a majority of the votes are present, cluster operations are allowed to proceed.
The service must be loaded into all nodes or none. If it is loaded into a subset of cluster nodes
the results will be unpredictable.
.PP
The following corosync.conf extract will enable votequorum service within corosync:
.PP
.nf
quorum {
provider: corosync_votequorum
}
.fi
.PP
votequorum reads its configuration from corosync.conf. Some values can be changed at runtime, others
are only read at corosync startup. It is very important that those values are consistent
across all the nodes participating in the cluster or votequorum behavior will be unpredictable.
.PP
votequorum requires an expected_votes value to function, this can be provided in two ways.
The number of expected votes will be automatically calculated when the nodelist { } section is
present in corosync.conf or expected_votes can be specified in the quorum { } section. Lack of
both will disable votequorum. If both are present at the same time,
the quorum.expected_votes value will override the one calculated from the nodelist.
.PP
Example (no nodelist) of an 8 node cluster (each node has 1 vote):
.nf
quorum {
provider: corosync_votequorum
expected_votes: 8
}
.fi
.PP
Example (with nodelist) of a 3 node cluster (each node has 1 vote):
.nf
quorum {
provider: corosync_votequorum
}
nodelist {
node {
ring0_addr: 192.168.1.1
}
node {
ring0_addr: 192.168.1.2
}
node {
ring0_addr: 192.168.1.3
}
}
.fi
.SH SPECIAL FEATURES
.PP
.B two_node: 1
.PP
Enables two node cluster operations (default: 0).
.PP
The "two node cluster" is a use case that requires special consideration.
With a standard two node cluster, each node with a single vote, there
are 2 votes in the cluster. Using the simple majority calculation
(50% of the votes + 1) to calculate quorum, the quorum would be 2.
This means that the both nodes would always have
to be alive for the cluster to be quorate and operate.
.PP
Enabling two_node: 1, quorum is set artificially to 1.
.PP
Example configuration 1:
.nf
quorum {
provider: corosync_votequorum
expected_votes: 2
two_node: 1
}
.fi
.PP
Example configuration 2:
.nf
quorum {
provider: corosync_votequorum
two_node: 1
}
nodelist {
node {
ring0_addr: 192.168.1.1
}
node {
ring0_addr: 192.168.1.2
}
}
.fi
.PP
NOTES: enabling two_node: 1 automatically enables wait_for_all. It is
still possible to override wait_for_all by explicitly setting it to 0.
If more than 2 nodes join the cluster, the two_node option is
automatically disabled.
.PP
.B wait_for_all: 1
.PP
Enables Wait For All (WFA) feature (default: 0).
.PP
The general behaviour of votequorum is to switch a cluster from inquorate to quorate
as soon as possible. For example, in an 8 node cluster, where every node has 1 vote,
expected_votes is set to 8 and quorum is (50% + 1) 5. As soon as 5 (or more) nodes
are visible to each other, the partition of 5 (or more) becomes quorate and can
start operating.
.PP
When WFA is enabled, the cluster will be quorate for the first time
only after all nodes have been visible at least once at the same time.
.PP
This feature has the advantage of avoiding some startup race conditions, with the cost
that all nodes need to be up at the same time at least once before the cluster
can operate.
.PP
A common startup race condition based on the above example is that as soon as 5
nodes become quorate, with the other 3 still offline, the remaining 3 nodes will
be fenced.
.PP
It is very useful when combined with last_man_standing (see below).
.PP
Example configuration:
.nf
quorum {
provider: corosync_votequorum
expected_votes: 8
wait_for_all: 1
}
.fi
.PP
.B last_man_standing: 1
/
.B last_man_standing_window: 10000
.PP
Enables Last Man Standing (LMS) feature (default: 0).
Tunable last_man_standing_window (default: 10 seconds, expressed in ms).
.PP
The general behaviour of votequorum is to set expected_votes and quorum
at startup (unless modified by the user at runtime, see below) and use
those values during the whole lifetime of the cluster.
.PP
Using for example an 8 node cluster where each node has 1 vote, expected_votes
is set to 8 and quorum to 5. This condition allows a total failure of 3
nodes. If a 4th node fails, the cluster becomes inquorate and it will
stop providing services.
.PP
Enabling LMS allows the cluster to dynamically recalculate expected_votes
and quorum under specific circumstances. It is essential to enable
WFA when using LMS in High Availability clusters.
.PP
Using the above 8 node cluster example, with LMS enabled the cluster can retain
quorum and continue operating by losing, in a cascade fashion, up to 6 nodes with
only 2 remaining active.
.PP
Example chain of events:
.nf
1) cluster is fully operational with 8 nodes.
(expected_votes: 8 quorum: 5)
2) 3 nodes die, cluster is quorate with 5 nodes.
3) after last_man_standing_window timer expires,
expected_votes and quorum are recalculated.
(expected_votes: 5 quorum: 3)
4) at this point, 2 more nodes can die and
cluster will still be quorate with 3.
5) once again, after last_man_standing_window
timer expires expected_votes and quorum are
recalculated.
(expected_votes: 3 quorum: 2)
6) at this point, 1 more node can die and
cluster will still be quorate with 2.
7) one more last_man_standing_window timer
(expected_votes: 2 quorum: 2)
.fi
.PP
NOTES: In order for the cluster to downgrade automatically from 2 nodes
to a 1 node cluster, the auto_tie_breaker feature must also be enabled (see below).
-If auto_tie_breaker is not enabled, and one more failure occours, the
+If auto_tie_breaker is not enabled, and one more failure occurs, the
remaining node will not be quorate. LMS does not work with asymmetric voting
schemes, each node must vote 1. LMS is also incompatible with quorum devices,
if last_man_standing is specified in corosync.conf then the quorum device
will be disabled.
.PP
Example configuration 1:
.nf
quorum {
provider: corosync_votequorum
expected_votes: 8
last_man_standing: 1
}
.fi
.PP
Example configuration 2 (increase timeout to 20 seconds):
.nf
quorum {
provider: corosync_votequorum
expected_votes: 8
last_man_standing: 1
last_man_standing_window: 20000
}
.fi
.PP
.B auto_tie_breaker: 1
.PP
Enables Auto Tie Breaker (ATB) feature (default: 0).
.PP
The general behaviour of votequorum allows a simultaneous node failure up
to 50% - 1 node, assuming each node has 1 vote.
.PP
When ATB is enabled, the cluster can suffer up to 50% of the nodes failing
at the same time, in a deterministic fashion. By default the cluster
partition, or the set of nodes that are still in contact with the
node that has the lowest nodeid will remain quorate. The other nodes will
be inquorate. This behaviour can be changed by also specifying
.PP
.B auto_tie_breaker_node: lowest|highest|<list of node IDs>
.PP
\'lowest' is the default, 'highest' is similar in that if the current set of
nodes contains the highest nodeid then it will remain quorate. Alternatively
it is possible to specify a particular node ID or list of node IDs that will
be required to maintain quorum. If a (space-separated) list is given, the
nodes are evaluated in order, so if the first node is present then it will
be used to determine the quorate partition, if that node is not in either
half (ie was not in the cluster before the split) then the second node ID
will be checked for and so on. ATB is incompatible with quorum devices -
if auto_tie_breaker is specified in corosync.conf then the quorum device
will be disabled.
.PP
Example configuration 1:
.nf
quorum {
provider: corosync_votequorum
expected_votes: 8
auto_tie_breaker: 1
auto_tie_breaker_node: lowest
}
.fi
.PP
Example configuration 2:
.nf
quorum {
provider: corosync_votequorum
expected_votes: 8
auto_tie_breaker: 1
auto_tie_breaker_node: 1 3 5
}
.PP
.fi
.PP
.B allow_downscale: 1
.PP
Enables allow downscale (AD) feature (default: 0).
.PP
THIS FEATURE IS INCOMPLETE AND CURRENTLY UNSUPPORTED.
.PP
The general behaviour of votequorum is to never decrease expected votes or quorum.
.PP
When AD is enabled, both expected votes and quorum are recalculated when
a node leaves the cluster in a clean state (normal corosync shutdown process) down
to configured expected_votes.
.PP
Example use case:
.PP
.nf
1) N node cluster (where N is any value higher than 3)
2) expected_votes set to 3 in corosync.conf
3) only 3 nodes are running
4) admin requires to increase processing power and adds 10 nodes
5) internal expected_votes is automatically set to 13
6) minimum expected_votes is 3 (from configuration)
- up to this point this is standard votequorum behavior -
7) once the work is done, admin wants to remove nodes from the cluster
8) using an ordered shutdown the admin can reduce the cluster size
automatically back to 3, but not below 3, where normal quorum
operation will work as usual.
.fi
.PP
Example configuration:
.nf
quorum {
provider: corosync_votequorum
expected_votes: 3
allow_downscale: 1
}
.fi
allow_downscale implicitly enabled EVT (see below).
.PP
.B expected_votes_tracking: 1
.PP
Enables Expected Votes Tracking (EVT) feature (default: 0).
.PP
Expected Votes Tracking stores the highest-seen value of expected votes on disk and uses
that as the minimum value for expected votes in the absence of any higher authority (eg
a current quorate cluster). This is useful for when a group of nodes becomes detached from
the main cluster and after a restart could have enough votes to provide quorum, which can
happen after using allow_downscale.
.PP
Note that even if the in-memory version of expected_votes is reduced, eg by removing nodes
or using corosync-quorumtool, the stored value will still be the highest value seen - it
never gets reduced.
.PP
The value is held in the file /var/lib/corosync/ev_tracking which can be deleted if you
really do need to reduce the expected votes for any reason, like the node has been moved
to a different cluster.
.PP
.fi
.PP
.SH VARIOUS NOTES
.PP
* WFA / LMS / ATB / AD can be used combined together.
.PP
* In order to change the default votes for a node there are two options:
.nf
1) nodelist:
nodelist {
node {
ring0_addr: 192.168.1.1
quorum_votes: 3
}
....
}
2) quorum section (deprecated):
quorum {
provider: corosync_votequorum
expected_votes: 2
votes: 2
}
.fi
In the event that both nodelist and quorum { votes: } are defined, the value
from the nodelist will be used.
.PP
* Only votes, quorum_votes, expected_votes and two_node can be changed at runtime. Everything else
requires a cluster restart.
.SH BUGS
No known bugs at the time of writing. The authors are from outerspace. Deal with it.
.SH "SEE ALSO"
.BR corosync (8),
.BR corosync.conf (5),
.BR corosync-quorumtool (8),
.BR corosync-qdevice (8),
.BR votequorum_overview (8)
.PP
diff --git a/man/votequorum_context_set.3.in b/man/votequorum_context_set.3.in
index df3af2b3..56c6cf0d 100644
--- a/man/votequorum_context_set.3.in
+++ b/man/votequorum_context_set.3.in
@@ -1,66 +1,66 @@
.\"/*
.\" * Copyright (c) 2007,2012 Red Hat, Inc.
.\" *
.\" * All rights reserved.
.\" *
.\" * Author: Patrick Caulfield <pcaulfie@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 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.
.\" */
.TH VOTEQUORUM_CONTEXT_SET 3 @BUILDDATE@ "corosync Man Page" "Corosync Cluster Engine Programmer's Manual"
.SH NAME
votequorum_context_set \- Sets the context variable for a VOTEQUORUM instance
.SH SYNOPSIS
.B #include <corosync/votequorum.h>
.sp
.BI "int votequorum_context_set(votequorum_handle_t " handle ", void *" context ");"
.SH DESCRIPTION
The
.B votequorum_context_set
function is used to set the context variable for a votequorum instance. It has no
-meaning insire libvotequorum itself and will not be touched by the library. It can
+meaning inside libvotequorum itself and will not be touched by the library. It can
be retrieved using
.B votequorum_context_get(3)
.SH RETURN VALUE
This call returns the CS_OK value if successful, otherwise an error is returned.
.PP
.SH ERRORS
@COMMONIPCERRORS@
.SH "SEE ALSO"
.BR votequorum_overview (8),
.BR votequorum_initialize (3),
.BR votequorum_finalize (3),
.BR votequorum_getinfo (3),
.BR votequorum_trackstart (3),
.BR votequorum_trackstop (3),
.BR votequorum_fd_get (3),
.BR votequorum_dispatch (3),
.BR votequorum_context_set (3),
.BR votequorum_context_get (3),
.BR votequorum_setexpected (3),
.BR votequorum_setvotes (3)
.PP
diff --git a/man/votequorum_dispatch.3.in b/man/votequorum_dispatch.3.in
index 38677b4f..132c8d18 100644
--- a/man/votequorum_dispatch.3.in
+++ b/man/votequorum_dispatch.3.in
@@ -1,99 +1,99 @@
.\"/*
.\" * Copyright (c) 2009,2012 Red Hat, Inc.
.\" *
.\" * All rights reserved.
.\" *
.\" * Author: Christine Caulfield <ccaulfie@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 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.
.\" */
.TH VOTEQUORUM_DISPATCH 3 @BUILDDATE@ "corosync Man Page" "Corosync Cluster Engine Programmer's Manual"
.SH NAME
votequorum_dispatch \- Dispatches callbacks from the votequorum service
.SH SYNOPSIS
.B #include <corosync/votequorum.h>
.sp
.BI "int votequorum_dispatch(votequorum_handle_t " handle ", cs_dispatch_flags_t *" dispatch_types ");"
.SH DESCRIPTION
The
.B votequorum_dispatch
function is used to dispatch configuration changes.
.PP
-Each application may have several connections to the votequorum API. Each application
+Each application may have several connections to the votequorum API. Each application
uses the
.I handle
argument to uniquely identify the connection.
.PP
The
.I dispatch_types
argument is used to identify the type of dispatch to execute. The possible types are
defined by the structure:
.nf
typedef enum {
CS_DISPATCH_ONE = 1,
CS_DISPATCH_ALL = 2,
CS_DISPATCH_BLOCKING = 3,
CS_DISPATCH_ONE_NONBLOCKING = 4
} cs_dispatch_flags_t;
.fi
.PP
The dispatch values have the following meanings:
.TP
.B CS_DISPATCH_ONE
Dispatch at least one callback, blocking until the callback is dispatched.
.TP
.B CS_DISPATCH_ALL
Dispatch all waiting callbacks without blocking to wait for any callbacks.
.TP
.B CS_DISPATCH_BLOCKING
Dispatch all callbacks blocking indefinitely. This is used in a threaded
program where a thread is created, and then quorum_dispatch() is called immediately
from the created thread to execute callbacks.
.TP
.B CS_DISPATCH_ONE_NONBLOCKING
Dispatch at most one callback. If there is no pending callback,
CS_ERR_TRY_AGAIN is returned.
.SH RETURN VALUE
This call returns the CS_OK value if successful, otherwise an error is returned.
.PP
.SH ERRORS
@COMMONIPCERRORS@
.SH "SEE ALSO"
.BR votequorum_overview (8),
.BR votequorum_initialize (3),
.BR votequorum_finalize (3),
.BR votequorum_getinfo (3),
.BR votequorum_trackstart (3),
.BR votequorum_trackstop (3),
.BR votequorum_fd_get (3),
.BR votequorum_context_set (3),
.BR votequorum_context_get (3),
.BR votequorum_setexpected (3),
.BR votequorum_setvotes (3)
.PP
diff --git a/man/votequorum_finalize.3.in b/man/votequorum_finalize.3.in
index 0164f594..50e431fc 100644
--- a/man/votequorum_finalize.3.in
+++ b/man/votequorum_finalize.3.in
@@ -1,67 +1,67 @@
.\"/*
.\" * Copyright (c) 2009,2012 Red Hat, Inc.
.\" *
.\" * All rights reserved.
.\" *
.\" * Author: Christine Caulfield <ccaulfie@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 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.
.\" */
.TH VOTEQUORUM_FINALIZE 3 @BUILDDATE@ "corosync Man Page" "Corosync Cluster Engine Programmer's Manual"
.SH NAME
votequorum_finalize \- Terminate a connection to the votequorum service
.SH SYNOPSIS
.B #include <corosync/votequorum.h>
.sp
.BI "int votequorum_finalize(votequorum_handle_t " handle ");"
.SH DESCRIPTION
The
.B votequorum_finalize
-function is used to close a connection to the configuration dabatase API.
+function is used to close a connection to the configuration database API.
Once the connection is finalized, the handle may not be used again by applications.
No more callbacks will be dispatched from the
.B votequorum_dispatch
function.
.PP
.SH RETURN VALUE
This call returns the CS_OK value if successful, otherwise an error is returned.
.PP
.SH ERRORS
@COMMONIPCERRORS@
.SH "SEE ALSO"
.BR votequorum_overview (8),
.BR votequorum_initialize (3),
.BR votequorum_getinfo (3),
.BR votequorum_trackstart (3),
.BR votequorum_trackstop (3),
.BR votequorum_fd_get (3),
.BR votequorum_dispatch (3),
.BR votequorum_context_set (3),
.BR votequorum_context_get (3),
.BR votequorum_setexpected (3),
.BR votequorum_setvotes (3)
.PP
diff --git a/man/votequorum_initialize.3.in b/man/votequorum_initialize.3.in
index 811b3e38..88e1eb14 100644
--- a/man/votequorum_initialize.3.in
+++ b/man/votequorum_initialize.3.in
@@ -1,139 +1,139 @@
.\"/*
.\" * Copyright (c) 2009,2012 Red Hat, Inc.
.\" *
.\" * All rights reserved.
.\" *
.\" * Author: Christine Caulfield <ccaulfie@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 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.
.\" */
.TH VOTEQUORUM_INITIALIZE 3 @BUILDDATE@ "corosync Man Page" "Corosync Cluster Engine Programmer's Manual"
.SH NAME
votequorum_initialize \- Create a new connection to the VoteQuorum service
.SH SYNOPSIS
.B #include <corosync/votequorum.h>
.sp
.BI "int votequorum_initialize(votequorum_handle_t *" handle ", votequorum_callbacks_t *" callbacks ");"
.SH DESCRIPTION
The
.B votequorum_initialize
function is used to initialize a connection to the vote-based quorum database API.
.PP
Each application may have several connections to the votequorum API. Each application
uses the
.I handle
argument to uniquely identify the connection. The
.I handle
argument is then used in other function calls to identify the connection to be used
for communication with the votequorum service.
.PP
Every time the voting configuration is about to change (eg a node joins or leave the cluster), the callback is called.
The callback function is described by the following type definitions:
.nf
typedef void (*votequorum_nodelist_notification_fn_t) (
votequorum_handle_t handle,
uint64_t context,
uint32_t node_list_entries,
uint32_t node_list[]
);
.fi
Current ring_id (one get in votequorum_quorum_notification_fn) must be passed to
.B votequorum_qdevice_poll
to make qdevice voting valid.
.PP
Every time the quorum state changes (eg a node joins or leave the cluster), the callback is called.
The callback function is described by the following type definitions:
.nf
typedef void (*votequorum_quorum_notification_fn_t) (
votequorum_handle_t handle,
uint64_t context,
uint32_t quorate,
uint32_t node_list_entries,
votequorum_node_t node_list[]
);
.fi
The difference between votequorum_nodelist_notification_t and votequorum_quorum_notification_t is subtle but important.
The 'nodelist' callback is sent at the start of a cluster state transition and contains the new ring_id and only the list of
nodes that are included in the sync state - ie only active nodes. No quorum information is included this callback
because it is not available at that time.
The 'quorum' callback is sent after the cluster state transition has completed and does contain quorum information.
In addition, the nodelist contains a list of all nodes known to votequorum (whether up or down) and their state as well
-as information about the quorum device attached (if any). quorum callbacks will not be sent for qdevice up and down
+as information about the quorum device attached (if any). Quorum callbacks will not be sent for qdevice up and down
events unless they affect quorum.
.PP
Every time the expected votes are changed, the callback is called.
The expected votes callback function is described by the following type definitions:
.nf
typedef void (*votequorum_expectedvotes_notification_fn_t) (
votequorum_handle_t handle,
uint64_t context,
uint32_t expected_votes);
.fi
.PP
The
.I callbacks
argument is of the type:
.nf
typedef struct {
votequorum_quorum_notification_fn_t votequorum_quorum_notify_fn;
votequorum_expectedvotes_notification_fn_t votequorum_expectedvotes_notify_fn;
votequorum_nodelist_notification_fn_t votequorum_nodelist_notify_fn;
} votequorum_callbacks_t;
.fi
.PP
When a configuration change occurs, the callback
is called from the
.B votequorum_dispatch()
function.
.PP
.SH RETURN VALUE
This call returns the CS_OK value if successful, otherwise an error is returned.
.SH ERRORS
@COMMONIPCERRORS@
.SH "SEE ALSO"
.BR votequorum_overview (8),
.BR votequorum_finalize (3),
.BR votequorum_getinfo (3),
.BR votequorum_trackstart (3),
.BR votequorum_trackstop (3),
.BR votequorum_fd_get (3),
.BR votequorum_dispatch (3),
.BR votequorum_context_set (3),
.BR votequorum_context_get (3),
.BR votequorum_setexpected (3),
.BR votequorum_setvotes (3)
.PP

File Metadata

Mime Type
text/x-diff
Expires
Sat, Nov 23, 3:27 AM (1 h, 3 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1018110
Default Alt Text
(189 KB)

Event Timeline