Commit Graph

286 Commits

Author SHA1 Message Date
Christine Caulfield
268cde6ee4 totem: Add Kronosnet transport.
This is a big update that removes RRP & MRP from the codebase
and makes knet the default transport for corosync. UDP & UDPU
are still (currently) supported but are deprecated. Also crypto
and mutiple interfaces are only supported over knet.

To compile this codebase you will need to install libknet from
https://github.com/fabbione/kronosnet

The corosync.conf(5) man page has been updated with info on the new
options. Older config files should still work but many options
have changed because of the knet implementation so configs should
be checked carefully. In particular any cluster using using RRP
over UDP or UDPU will not start as RRP is no longer present. If you
need multiple interface support then you should be using the knet transport.

Knet brings many benefits to the corosync codebase, it provides support
for more interfaces than RRP (up to 8), will be more reliable in the event
of network outages and allows dynamic reconfiguration of interfaces.
It also fixes the ifup/ifdown and 127.0.0.1 binding problems that have
plagued corosync/openais from day 1

Signed-off-by: Christine Caulfield <ccaulfie@redhat.com>
2016-10-11 10:09:42 +01:00
Ferenc Wágner
cf10a754e9 Fix various typos
occured -> occurred
parantheses -> parentheses
configuraton -> configuration
aquire -> acquire
retrive -> retrieve
prefered -> preferred

Signed-off-by: Ferenc Wágner <wferi@niif.hu>
Reviewed-by: Jan Friesse <jfriesse@redhat.com>
2016-09-12 09:50:11 +02:00
Christine Caulfield
0da1b74462 man: mention qdevice incompatibilites in votequorum.5
Signed-off-by: Christine Caulfield <ccaulfie@redhat.com>
2016-08-12 14:25:39 +01:00
Jan Friesse
49a9f722bb Man: Fix corosync-qdevice-net-certutil link
Signed-off-by: Jan Friesse <jfriesse@redhat.com>
2016-08-09 17:06:31 +02:00
Jan Friesse
f837f95dfe Config: Flag config uidgid entries
Uidgid entries parsed from configuration files now has prefix
(uidgid.config.) so they are distinguishable from dynamically added
entries. Entries added from config file are pruned on reload if no
longer exists in config file (dynamic one stays unaffected). Also whole
uidgid.config. prefix is made read only.

This make PCMK work again after configuration reload is called.

Signed-off-by: Jan Friesse <jfriesse@redhat.com>
Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
2016-08-04 16:13:48 +02:00
Christine Caulfield
a275d88f71 qdevice: some more small man page fixes
including mentioning corosync-qdevice(5) on the
votequorum(5) and corosync.conf(5) pages.

Thanks to Jan Pokorný for reporting these.

Signed-off-by: Christine Caulfield <ccaulfie@redhat.com>
2016-07-12 09:26:08 +01:00
Christine Caulfield
b6c71aa11b qdevice: Fix 'tie_breaker' in man page
the tie_breaker option was incorrectly listed as
tie-breaker on the man page.

Signed-off-by: Christine Caulfield <ccaulfie@redhat.com>
2016-07-07 15:17:17 +01:00
Jan Friesse
8384b51e06 Qdevice: Include man pages in tarball
Signed-off-by: Jan Friesse <jfriesse@redhat.com>
2016-06-30 17:05:38 +02:00
Christine Caulfield
1aa6cd52eb Qdevice: Englishify man pages
Signed-off-by: Christine Caulfield <ccaulfie@redhat.com>
2016-06-30 13:42:41 +01:00
Jan Friesse
05f5e6b54c Qdevice: Add corosync-qdevice man page
Signed-off-by: Jan Friesse <jfriesse@redhat.com>
2016-06-29 18:35:37 +02:00
Jan Friesse
d5cf8dd631 Qdevice: Add more man pages
Signed-off-by: Jan Friesse <jfriesse@redhat.com>
2016-06-29 18:35:37 +02:00
Jan Friesse
32123f6bb2 Qdevice: Handle /var/run on tmpfs
Signed-off-by: Jan Friesse <jfriesse@redhat.com>
2016-06-28 13:58:43 +02:00
Jan Friesse
69ec55183c qdevice: Add qdevice-tool and qnetd-tool man pages
Signed-off-by: Jan Friesse <jfriesse@redhat.com>
2016-06-28 13:58:43 +02:00
Christine Caulfield
3a5d51fca7 votequorum: Fix up quorum/nodelist callbacks
This patch tidies the two state change callbacks and explains them
in the man page:

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
events unless they affect quorum.

Signed-off-by: Christine Caulfield <ccaulfie@redhat.com>
2016-06-28 13:58:39 +02:00
Ferenc Wágner
e2edefe3d1 Fix typo: alocated -> allocated
Signed-off-by: Ferenc Wágner <wferi@niif.hu>
Reviewed-by: Jan Friesse <jfriesse@redhat.com>
2016-06-22 14:26:42 +02:00
Ferenc Wágner
afcf85fff7 Fix typo: interger -> integer
Signed-off-by: Ferenc Wágner <wferi@niif.hu>
Reviewed-by: Jan Friesse <jfriesse@redhat.com>
2016-06-22 14:26:15 +02:00
Ferenc Wágner
4e78a735dd Fix typo: funtion -> function
Signed-off-by: Ferenc Wágner <wferi@niif.hu>
Reviewed-by: Jan Friesse <jfriesse@redhat.com>
2016-06-22 14:25:59 +02:00
Ferenc Wágner
2be44a1174 cmap_track_add.3.in: fix typo: bellow -> below
Signed-off-by: Ferenc Wágner <wferi@niif.hu>
Reviewed-by: Jan Friesse <jfriesse@redhat.com>
2016-06-22 14:25:47 +02:00
Richard B Winters
806878b932 Fix spelling error in manual sam_overview 8
- Changed usefull to useful

Change-Id: I2d7872b21e889202cd2b7752db4c76f18fffa95d
Signed-off-by: Richard B Winters <rik@mmogp.com>
Reviewed-by: Steven Dake <sdake@redhat.com>
Reviewed-by: Jan Friesse <jfriesse@redhat.com>
2016-01-27 18:29:25 +01:00
Jan Friesse
d945feea6f cmap_keys.8: Fix spelling and grammar errors
- "There are informations" changed to "There is information"
- Other occurrences of informations changed to information

Original patch was created by Richard B Winters <rik@mmogp.com>, so
thanks for it.

Signed-off-by: Jan Friesse <jfriesse@redhat.com>
Reviewed-by: Steven Dake <sdake@redhat.com>
2016-01-27 18:29:25 +01:00
Richard B Winters
ede788bd32 Fix spelling errors in manual corosync.conf 5
- dont to don't
 - overriden to overridden
 - informations to information

Change-Id: If6644694d750c30ba9f5f43b4eb852485613d64a
Signed-off-by: Richard B Winters <rik@mmogp.com>
Reviewed-by: Steven Dake <sdake@redhat.com>
Reviewed-by: Jan Friesse <jfriesse@redhat.com>
2016-01-27 18:29:25 +01:00
Richard B Winters
d357719adb Fix grammer error in manual votequorum_trackstart
"allows to" was updated to read "allows one to"

- With a subject it's grammatically correct.

Change-Id: I9559e31c780e211b651744c6eaa056ce8d4c3db1
Signed-off-by: Richard B Winters <rik@mmogp.com>
Reviewed-by: Steven Dake <sdake@redhat.com>
Reviewed-by: Jan Friesse <jfriesse@redhat.com>
2016-01-27 18:29:25 +01:00
Richard B Winters
c633534107 Add section in manual title for cpg_zcb_free 3
Change-Id: Ib80face38dce0345e649297d16cf8a63c5b0e8c1
Signed-off-by: Richard B Winters <rik@mmogp.com>
Reviewed-by: Steven Dake <sdake@redhat.com>
Reviewed-by: Jan Friesse <jfriesse@redhat.com>
2016-01-27 18:29:25 +01:00
Richard B Winters
826cb27ccd Add section in manual title for cpg_zcb_alloc 3
Change-Id: I8c5d6af915203533c80e4eaa574e305a46d74815
Signed-off-by: Richard B Winters <rik@mmogp.com>
Reviewed-by: Steven Dake <sdake@redhat.com>
Reviewed-by: Jan Friesse <jfriesse@redhat.com>
2016-01-27 18:29:25 +01:00
Richard B Winters
973e6ef996 Fix incorrect spelling of retrieve from retreive
Corrected the spelling of retrieve, where it was spelled as retreive.

 - There were two cases of this mispelling; one
   upper-case and one lower-case

Change-Id: Ic97fd210d8d3ae7e568e5a2e5d97c6220d2ff628
Signed-off-by: Richard B Winters <rik@mmogp.com>
Reviewed-by: Steven Dake <sdake@redhat.com>
Reviewed-by: Jan Friesse <jfriesse@redhat.com>
2016-01-27 18:29:25 +01:00
Ferenc Wágner
12fc1832eb man: Add synopsis for cpg_zcb_alloc and free
Signed-off-by: Ferenc Wágner <wferi@niif.hu>
Reviewed-by: Jan Friesse <jfriesse@redhat.com>
2015-09-18 11:25:21 +02:00
Ferenc Wágner
27598bd99d man html index: Update index
- add link to cmap_keys(8)
- remove link to cpg_groups_get(3)
- add missing cpg_* and votequorum_qdevice_* functions
- corosync-fplay has already been removed by ab32894

Signed-off-by: Ferenc Wágner <wferi@niif.hu>
Reviewed-by: Jan Friesse <jfriesse@redhat.com>
2015-09-18 11:25:21 +02:00
Ferenc Wágner
2ce2c99c79 man page: Correct option letter for DBus
Signed-off-by: Ferenc Wágner <wferi@niif.hu>
Reviewed-by: Jan Friesse <jfriesse@redhat.com>
2015-08-26 09:26:26 +02:00
Jan Friesse
219965f4fe Add note about rrp active beeing unsupported
Signed-off-by: Jan Friesse <jfriesse@redhat.com>
Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
2015-06-22 14:44:03 +02:00
Jan Friesse
177ef0e524 Set RR priority by default
Experience with larger production clusters showed that setting RR
priority for corosync is viable for prevent random fencing, ...

Signed-off-by: Jan Friesse <jfriesse@redhat.com>
Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
2015-01-05 15:01:49 +01:00
Jan Friesse
6449bea835 config: Ensure mcast address/port differs for rrp
When using multiple interfaces, it's necessary to use different
multicast address/port pair for each interface to make
rrp work correctly. This is now checked in parser.

Signed-off-by: Jan Friesse <jfriesse@redhat.com>
Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
2014-11-24 11:55:37 +01:00
Jan Friesse
57539d1abc man page: Improve description of token timeout
With introduction of token_coefficient, token timeout defined in
configuration file may be no longer reflect real token timeout, what may
be confusing.

Enhanced description hopefully fix that.

Signed-off-by: Jan Friesse <jfriesse@redhat.com>
Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
2014-10-13 11:59:12 +02:00
Jan Friesse
bb52fc2774 Store configuration values used by totem to cmap
Some totem configuration values (like token, consensus, ...) are ether
computed or default value is used. It's hard to find out, what
value is really used.

Solution is to store values in cmap.

Signed-off-by: Jan Friesse <jfriesse@redhat.com>
Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
2014-10-13 11:59:06 +02:00
Christine Caulfield
f77a61ac17 manpage: Fix English
While I was looking at the above man page changes I thought I'd review
the rest of it. So here are some more English fixes for the cmap_keys.8
man page

Signed-off-by: Christine Caulfield <ccaulfie@redhat.com>
Reviewed-by: Jan Friesse <jfriesse@redhat.com>
2014-10-13 10:29:30 +02:00
Christine Caulfield
f53580c2c1 corosync-quorumtool: add sort options
Adds a -o<a|i|n> option to corosync-votequorum so that the nodes list
can be sorted by Address, node Id or Name. The default remains IP
address.

Signed-Off-By: Christine Caulfield <ccaulfie@redhat.com>
Reviewed-by: Jan Friesse <jfriesse@redhat.com>
2014-08-22 08:47:25 +01:00
Christine Caulfield
02f58aec9c YKD: Fix loading of YKD quorum module
Although YKD is currently unsupported, untested and decprecated it's
handy for testing things in the quorum module.

This patch allows YKD to actually load without an error. It does not fix
anything else in the service!

Also remove vsftype and its reference to YKD being the preferred and
default provider from the corosync.conf man page,
as that hasn't been true for a considerable time.

Signed-off-by: Christine Caulfield <ccaulfie@redhat.com>
Reviewed-by: Jan Friesse <jfriesse@redhat.com>
2014-08-18 09:33:59 +01:00
Christine Caulfield
cbf753405b votequorum: Add cmap key to reset wait_for_all
It's possible in a two_node cluster (and others but it's more likely
with just two) that a node could be booted up after downtime or failure
and the other node is not available for some reason. In this case it
would not be allowed to proceed because wait_for_all is enforced.

This patch provides a cmap key to clear this flag in the desperate
situation where that becomes necessary. It should only be used with
extreme caution and will be wrapped up in pcs which should also check
that fencing has been run.

Signed-Off-By: Christine Caulfield <ccaulfie@redhat.com>
Reviewed-by:  Jan Friesse <jfriesse@redhat.com>
2014-08-12 16:02:46 +01:00
Jan Friesse
17488909d4 votequorum: Make qdev timeout in sync configurable
Configuration option quorum.device.sync_timeout is available for setting
qdevice poll timeout for synchronization phase. Default value is 30
sec.

Signed-off-by: Jan Friesse <jfriesse@redhat.com>
Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
2014-08-05 17:22:52 +02:00
Jan Friesse
7cad804629 ipc: Process votequorum messages during sync
This is needed for qdevice to be able to process messages during
synchronization phase.

Signed-off-by: Jan Friesse <jfriesse@redhat.com>
Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
2014-08-05 17:22:44 +02:00
Jan Friesse
b8902464d1 votequorum: Add ring id to poll call
If votequorum service receives incorrect (not current) ringid, call is
ignored and CS_ERR_MESSAGE_ERROR is returned.

This and previous commits makes incompatible changes in votequorum
API/ABI, so library version is increased.

Signed-off-by: Jan Friesse <jfriesse@redhat.com>
Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
2014-08-05 17:22:41 +02:00
Jan Friesse
5f6f68805c votequorum: Return current ring id in callback
Returning ring id will be used in poll function.

Signed-off-by: Jan Friesse <jfriesse@redhat.com>
Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
2014-08-05 17:22:37 +02:00
Vladislav Bogdanov
520fe686c5 Slightly rework corosync-keygen.
Allow it to create keyfile not in the hardcoded location.
Drop root checks.
Minor cosmetic fixes to the man-page.

Signed-off-by: Vladislav Bogdanov <bubble@hoster-ok.com>
Reviewed-by: Jan Friesse <jfriesse@redhat.com>
2014-07-21 14:51:36 +02:00
Vladislav Bogdanov
e3ffd4fedc Implement config file testing mode
Signed-off-by: Vladislav Bogdanov <bubble@hoster-ok.com>
Reviewed-by: Jan Friesse <jfriesse@redhat.com>
2014-07-16 16:10:32 +02:00
Vladislav Bogdanov
7a4bb37723 corosync-cmapctl: Allow -p option to delete keys
Signed-off-by: Vladislav Bogdanov <bubble@hoster-ok.com>
Reviewed-by: Jan Friesse <jfriesse@redhat.com>
2014-07-15 15:45:04 +02:00
Jan Friesse
72cf15af27 votequorum: Do not process events during reload
During reload, local_node_pos is deleted and reinstation is handled in
totemconfig after reload is finished. votequorum handles this events and
tries to reload it's configuration. This led to logging a little scary
messages (even nothing bad is happening, because after local_node_pos
reinstation everything back to normal).

Solution is to stop processing events during reload. Sadly, simple
tracking of config.reload_in_progress doesn't work because LibQB events
triggering order is undefined so votequorum reload handler can be called
before totemconfig (and before local_node_pos is reinstatied).

So new config.totemconfig_reload_in_progress key is defined with very
similar semanthic as config.reload_in_progress but set inside
totem_reload_notify function. Votequorum then use this new key.

Signed-off-by: Jan Friesse <jfriesse@redhat.com>
Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
2014-06-27 11:40:21 +02:00
Jan Friesse
58176d6779 Add token_coefficient option
Token coefficient is used only when nodelist 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.

Signed-off-by: Jan Friesse <jfriesse@redhat.com>
Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
2014-03-25 15:29:17 +01:00
Christine Caulfield
90d448af3b votequorum: Add extended options to auto_tie_breaker
This patch adds more flexibility to the auto_tie_breaker feature of
votequorum. With this, not only can the lowest nodeid be used as
a tie breaker, but also the highest, or a node from a nominated list.

If there is a list of nodes, the first node in the list that was not
part of the previous partition is used. This allows the user to
specify a preferred set of nodes but prevents a split-brain if the
cluster divides evenly with a node in each half.

Signed-off-by: Christine Caulfield <ccaulfie@redhat.com>
Reviewed-by: Jan Friesse <jfriesse@redhat.com>
2014-02-17 16:29:45 +00:00
Christine Caulfield
8020f1d8e8 votequorum: Add missing man pages
Man pages for votequorum_qdevice_update and votquorum_qdevice_master_wins
were missing from the last commit.

Signed-off-by: Christine Caulfield <ccaulfie@redhat.com>
2014-01-14 10:07:46 +00:00
Christine Caulfield
fcba1652ba votequorum: Improve/add documentation for quorum device API
Improve the man pages for the votequorum qdevice API and include
them in the build. Also improve the testvotequorum2 test program.

Signed-off-by: Christine Caulfield <ccaulfie@redhat.com>
Reviewed-by: Jan Friesse <jfriesse@redhat.com>
2014-01-13 09:57:32 +00:00
Christine Caulfield
ff6a43edb3 votequorum: Add persistent expected_votes tracking.
This patch adds the option to store expected_votes to
persistent storage. This is needed to allow_downscale
to operate properly.

Signed-off-by: Christine Caulfield <ccaulfie@redhat.com>
2014-01-07 15:30:11 +00:00