mirror of
https://git.proxmox.com/git/mirror_corosync
synced 2026-08-11 05:32:20 +00:00
- Add LibQB and Knet links - Remove old (pre udpu) config file example - Change corosync.conf man page to contain useful information about token timeout Signed-off-by: Jan Friesse <jfriesse@redhat.com> Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com> Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
168 lines
5.6 KiB
Plaintext
168 lines
5.6 KiB
Plaintext
----------------------------------------------
|
|
The Corosync Cluster Engine Installation Guide
|
|
----------------------------------------------
|
|
Please read LICENSE for a description of the licensing of this software.
|
|
|
|
---------------------
|
|
* Building from git *
|
|
---------------------
|
|
When building and installing from git, autoconf 2.61, automake 1.11,
|
|
libtool 2.2.6 and pkgconfig 0.23 (or later versions) are required.
|
|
Prior versions may result in build failures.
|
|
|
|
Step 1: check out a read only copy of the repository
|
|
git clone git://github.com/corosync/corosync.git
|
|
|
|
Find the version you want to build. Usually this will be the "master" version.
|
|
If you want to build a specific released version, use git checkout VERSION.
|
|
|
|
Step 2: Generate the makefiles
|
|
balance:~/corosync% ./autogen.sh
|
|
|
|
Step 3: Run the configure script
|
|
balance:~/corosync% ./configure
|
|
|
|
Step 4: Install the binaries
|
|
balance:~/corosync% su
|
|
balance:~/corosync# make install
|
|
|
|
-------------------------
|
|
* Building from tarball *
|
|
-------------------------
|
|
The tarball is distributed with pregenerated makefiles. There is no need
|
|
to run the autogen.sh script in this case.
|
|
|
|
Step 1: Run the configure script
|
|
balance:~/corosync% ./configure
|
|
|
|
Step 2: Install the binaries
|
|
balance:~/corosync% su
|
|
balance:~/corosync# make install
|
|
|
|
-------------------------------
|
|
* A notice about dependencies *
|
|
-------------------------------
|
|
We have strived very hard to avoid dependencies as much as possible, but there
|
|
are two required libraries: LibQB (https://github.com/ClusterLabs/libqb)
|
|
and KNET (https://kronosnet.org/).
|
|
|
|
Optional dependencies are support for DBUS, SNMP and libstatgrab.
|
|
|
|
Also don't forget to install pkgconfig.
|
|
|
|
-----------------------------------------
|
|
* Building with SNMP/DBUS support *
|
|
-----------------------------------------
|
|
|
|
You can get SNMP traps on the following corosync events:
|
|
1) node joine/leave
|
|
2) application connect/dissconnect from corosync
|
|
3) quorum gain/lost
|
|
|
|
There are 2 modes of achieving this DBUS + foghorn and snmp-agentx.
|
|
|
|
Setting up to get dbus events.
|
|
------------------------------
|
|
foghorn (http://git.fedorahosted.org/git/foghorn.git) converts
|
|
dbus signals into snmp traps. So install foghorn.
|
|
|
|
$ ./configure --enable-dbus
|
|
$ make && sudo make install
|
|
$ /etc/init.d/corosync start
|
|
$ echo "OPTIONS=\"-d\"" > /etc/sysconfig/corosync-notifyd
|
|
$ /etc/init.d/corosync-notifyd start
|
|
Start foghorn
|
|
|
|
to see the dbus signals getting sent try:
|
|
$ dbus-monitor --system
|
|
|
|
Setting up snmp-agentx.
|
|
-----------------------
|
|
If you don't want to use dbus then you can use snmp-agentx.
|
|
|
|
$ ./configure --enable-snmp
|
|
$ make && sudo make install
|
|
$ /etc/init.d/corosync start
|
|
$ vim /etc/snmp/snmptrapd.conf
|
|
|
|
Add the following:
|
|
authCommunity log,execute,net public
|
|
$ /etc/init.d/snmptrapd start
|
|
$ echo "OPTIONS=\"-s\"" > /etc/sysconfig/corosync-notifyd
|
|
$ /etc/init.d/corosync-notifyd start
|
|
|
|
I start up wireshark to see if there are any snmp traps been sent
|
|
as I am too lazy to setup a manager to receive traps.
|
|
|
|
run a program that talks to corosync e.g.
|
|
$ corosync-cmapctl
|
|
|
|
And you should get traps
|
|
|
|
|
|
------------------------
|
|
* Configuring Corosync *
|
|
------------------------
|
|
The configuration directory (usually /etc/corosync) contains an example
|
|
configuration file (corosync.conf.example). Please copy it as corosync.conf
|
|
and edit it as needed. At the very minimum, the nodelist section will have to be changed
|
|
to list all cluster nodes. For more information about the configuration file
|
|
please read the corosync.conf.5 manual page.
|
|
|
|
Generate a private key
|
|
----------------------
|
|
corosync uses cryptographic techniques to ensure authenticity and privacy of
|
|
messages. A private key must be generated and shared by all processors for
|
|
correct operation.
|
|
|
|
First generate the key on one of the nodes:
|
|
|
|
balance# corosync-keygen
|
|
Corosync Authentication key generator.
|
|
Gathering 8192 bits for key from /dev/random.
|
|
Writing corosync key to /etc/corosync/authkey.
|
|
|
|
After this is complete, a private key will be in the file /etc/corosync/authkey.
|
|
This private key must be copied to every processor that will be a member of
|
|
the cluster. If the private key isn't the same for every node, those nodes
|
|
with nonmatching private keys will not be able to join the same configuration.
|
|
|
|
Copy the key to some transportable storage or use ssh to transmit the key
|
|
from node to node. Then install the key with the command:
|
|
|
|
balance# install -D --group=0 --owner=0 --mode=0400 /path_to_authkey/authkey /etc/corosync/authkey
|
|
|
|
If the message invalid digest appears, the keys are not the same on each node.
|
|
|
|
Run the corosync executive
|
|
-------------------------
|
|
Get one or more nodes and run the corosync executive on each node. Run the
|
|
corosync daemon after following the previous directions. The daemon must be
|
|
run as UID 0(root).
|
|
|
|
Before running any of the test programs
|
|
---------------------------------------
|
|
The corosync executive will ensure security by only allowing the UID 0(root) or
|
|
GID 0(root) to connect to it. To allow other users to access the corosync
|
|
executive, create a directory called /etc/corosync/uidgid.d and place a file in
|
|
it named in some way that is identifiable to you. All files in this directory
|
|
will be scanned and their contents added to the allowed uid gid database. The
|
|
contents of this file should be
|
|
uidgid {
|
|
uid: username
|
|
gid: groupname
|
|
}
|
|
|
|
Please note that these users then have full ability to transmit and receive
|
|
messages in the cluster.
|
|
|
|
Try out the corosync cpg functionality
|
|
--------------------------------------
|
|
After corosync is running
|
|
|
|
Run test/testcpg on multiple nodes or on the same node. Messages can be typed
|
|
which will then be sent to other testcpg applications in the cluster.
|
|
|
|
To see a hashed verified output of data on all nodes, test/cpgverify can be
|
|
run.
|