Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
COROS...ERVIEW(7)  Corosync Cluster Engine Programmer's Manual COROS...ERVIEW(7)

NAME
     corosync_overview - Corosync overview

OVERVIEW
     The  corosync  project's  purpose	is to implement and support a production
     quality Revised BSD licensed implementation of a high performance low over-
     head high availability development toolkit.

     Faults occur for various reasons:

     * Application Faults

     * Middleware Faults

     * Operating System Faults

     * Hardware Faults

     The major focus of high availability in the past has been to mask	hardware
     faults.  Faults  in other components of the system have gone unsolved until
     Corosync.	Corosync is designed for applications to replicate  their  state
     to multiple processors, with the actual limit determined by factors such as
     CPU performance, network latency, and network bandwidth. The processors all
     contain a replica of the application state.

     The  corosync project provides a group message API called CPG.  The project
     developers recommend CPG be used for most applications.   The  CPG  service
     implements  a closed group messaging model presenting extended virtual syn-
     chrony guarantees.

     To manage conditions where the process executing the  CPG	application  ex-
     change  fails,  we provide the Simple Availability Manager (sam) to provide
     simple application restart.

QUICKSTART
     The corosync executive must be configured.  In the directory  conf  in  the
     source distribution are several files that must be copied to the /etc/coro-
     sync directory.  If corosync is packaged by a distro, this may be complete.

     The  directory  contains  the  file  corosync.conf.   Please read the coro-
     sync.conf(5) man page for details on the configuration options.  The  coro-
     sync  project  will  work out of the box with the default configuration op-
     tions, although the administrator may desire different options.

     The corosync executive uses cryptographic techniques to ensure authenticity
     and privacy of the messages.  In order for corosync to be secure and  oper-
     ate, a private key must be generated and shared to all processors.

     First generate the key on one of the nodes:

     unix# corosync-keygen
     Corosync Cluster Engine Authentication key generator.
     Gathering 2048 bits for key from /dev/urandom.
     Writing corosync key to /etc/corosync/authkey.

     After  this  operation, a private key will be in the file /etc/corosync/au-
     thkey.  This private key must be copied to every processor in the	cluster.
     If  the  private  key  isn't the same for every node, those nodes with non-
     matching private keys will not be able to join the same configuration.

     Copy the key to some security transportable storage or use ssh to	transmit
     the key from node to node.  Then install the key with the command:

     unix#:  install -D --group=0 --owner=0 --mode=0400 /path_to_authkey/authkey
     /etc/corosync/authkey

     If a message "Invalid digest" appears from the corosync executive, the keys
     are not consistent between processors.

     Finally run the corosync executive.  If corosync is packaged from a distro,
     it may be set to start on system start.  It may also be turned off  by  de-
     fault in which case the init script for corosync must be enabled.

USING LIBRARIES
     The  corosync libraries have header files which must be included in the de-
     veloper's application.  Once the header file is included, the developer can
     reference the corosync interfaces.

     The corosync  project  recommends	that  distros  place  include  files  in
     /usr/include/corosync.

IPv6
     The  corosync  project supports both IPv4 and IPv6 network addresses.  When
     using knet as the transport each link should have the same IP  family,  but
     different	links  can have different families (eg link 0 could be all IPv4,
     and link 1 all IPv6).  When using UDP/UDPU the single link should	use  the
     same family on all nodes.

     To  configure  a host for IPv6, use the ifconfig program to add interfaces:
     box20: ifconfig eth0 add fec0::1:a800:4ff:fe00:20/64 box30:  ifconfig  eth0
     add fec0::1:a800:4ff:fe00:30/64

     If  the /64 is not specified, a route for the IPv6 network will not be con-
     figured which will cause significant problems.  Make sure a route is avail-
     able for IPv6 traffic.

ARCHITECTURE
     The corosync libraries are a thin IPC interface to the corosync  executive.
     The  corosync  executive  implements the functionality of the corosync APIs
     for distributed computing.

     The corosync executive uses the Totem extended virtual synchrony  protocol.
     The  advantage to the end user is excellent performance characteristics and
     a proven protocol with excellent reliability.  This protocol  connects  the
     processors in a configuration together so they may communicate.

SECURITY
     The corosync executive optionally encrypts and signs all messages sent over
     the  network. For more details see crypto_model, crypto_hash and crypto_ci-
     pher options in the corosync.conf(5).

     If membership messages can be captured by intruders, it is possible to exe-
     cute a denial of service attack on the  cluster.	In  this  scenario,  the
     cluster  is likely already compromised and a DoS attack is the least of the
     administration's worries.

     The security in corosync does not offer perfect forward secrecy because the
     keys are reused.  It may be possible  for	an  intruder  to  determine  the
     shared key by capturing packets in an automated fashion.  No such automated
     attack  has  been	published  as  of yet.	In this scenario, the cluster is
     likely already compromised to allow the long-term	capture  of  transmitted
     data.

     For  security reasons, the corosync executive binary should NEVER be setuid
     or setgid in the filesystem.

BUGS
     None that are known.

SEE ALSO
     corosync.conf(5), corosync-keygen(8), corosync_quorumtool(8), corosync_cfg-
     tool(8),	corosync_cpgtool(8),   corosync_cmaptool(8),	cpg_overview(3),
     sam_overview(3)

corosync Man Page		   2018-11-13		       COROS...ERVIEW(7)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=corosync_overview&sektion=7&manpath=FreeBSD+Ports+15.1.quarterly>

home | help