VOTEQUORUM_OVERVIEW(8) Corosync Cluster Engine Programmer's Manual VOTEQUORUM_OVERVIEW(8)NAME
votequorum_overview - Votequorum Library Overview
OVERVIEW
The votequorum library is delivered with the corosync project. It is the external interface to the vote-based quorum service. This service
is optionally loaded into all nodes in 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 library provides a mechanism to:
* Query the quorum status
* Get a list of nodes known to the quorum service
* Receive notifications of quorum state changes
* Change the number of votes assigned to a node
* Change the number of expected votes for a cluster to be quorate
* Connect an additional quorum device to allow small clusters to remain quorate during node outages.
BUGS
No known bugs at the time of writing. The authors are from outerspace. Deal with it.
SEE ALSO corosync-quorumtool(8), votequorum(5), votequorum_initialize(3), votequorum_finalize(3), votequorum_getinfo(3), votequorum_trackstart(3),
votequorum_trackstop(3), votequorum_fd_get(3), votequorum_dispatch(3), votequorum_context_set(3), votequorum_context_get(3), votequo-
rum_setexpected(3), votequorum_setvotes(3)corosync Man Page 2012-01-12 VOTEQUORUM_OVERVIEW(8)
Check Out this Related Man Page
VOTEQUORUM_INITIALIZE(3) Corosync Cluster Engine Programmer's Manual VOTEQUORUM_INITIALIZE(3)NAME
votequorum_initialize - Create a new connection to the VoteQuorum service
SYNOPSIS
#include <corosync/votequorum.h>
int votequorum_initialize(votequorum_handle_t *handle, votequorum_callbacks_t *callbacks);
DESCRIPTION
The votequorum_initialize function is used to initialize a connection to the vote-based quorum database API.
Each application may have several connections to the votequorum API. Each application uses the handle argument to uniquely identify the
connection. The handle argument is then used in other function calls to identify the connection to be used for communication with the
votequorum service.
Every time the voting configuraton changes (eg a node joins or leave the cluster), the callback is called. The callback function is
described by the following type definitions:
typedef void (*votequorum_notification_fn_t) (
votequorum_handle_t handle,
uint64_t context,
uint32_t quorate,
uint32_t node_list_entries,
votequorum_node_t node_list[]
);
Every time the expected votes are changed, the callback is called. The expected votes callback function is described by the following type
definitions:
typedef void (*votequorum_expectedvotes_notification_fn_t) (
votequorum_handle_t handle,
uint64_t context,
uint32_t expected_votes);
The callbacks argument is of the type:
typedef struct {
votequorum_notification_fn_t votequorum_notify_fn;
votequorum_expectedvotes_notification_fn_t votequorum_expectedvotes_notify_fn;
} votequorum_callbacks_t;
When a configuration change occurs, the callback is called from the votequorum_dispatch() function.
RETURN VALUE
This call returns the CS_OK value if successful, otherwise an error is returned.
ERRORS
CS_ERR_TRY_AGAIN Resource temporarily unavailable
CS_ERR_INVALID_PARAM Invalid argument
CS_ERR_ACCESS Permission denied
CS_ERR_LIBRARY The connection failed
CS_ERR_INTERRUPT System call inturrupted by a signal
CS_ERR_NOT_SUPPORTED The requested protocol/functuality not supported
CS_ERR_MESSAGE_ERROR Incorrect auth message received
CS_ERR_NO_MEMORY Not enough memory to completed the requested task
SEE ALSO votequorum_overview(8), votequorum_finalize(3), votequorum_getinfo(3), votequorum_trackstart(3), votequorum_trackstop(3), votequo-
rum_fd_get(3), votequorum_dispatch(3), votequorum_context_set(3), votequorum_context_get(3), votequorum_setexpected(3), votequo-
rum_setvotes(3)corosync Man Page 2014-06-10 VOTEQUORUM_INITIALIZE(3)