HOME

TheInfoList



OR:

The Corosync Cluster Engine is an
open source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
implementation of the Totem Single Ring Ordering and Membership protocol. It was originally derived from the OpenAIS project and licensed under the
new BSD License BSD licenses are a family of permissive free software licenses, imposing minimal restrictions on the use and distribution of covered software. This is in contrast to copyleft licenses, which have share-alike requirements. The original BSD licen ...
. The mission of the Corosync effort is to develop, release, and support a community-defined, open source
cluster may refer to: Science and technology Astronomy * Cluster (spacecraft), constellation of four European Space Agency spacecraft * Cluster II (spacecraft), a European Space Agency mission to study the magnetosphere * Asteroid cluster, a small ...
.


Features

The Corosync Cluster Engine is a
group communication system {{Unreferenced, date=April 2021 The term Group Communication System (GCS) refers to a software platform that implements some form of group communication. Examples of group communication systems include IS-IS, Spread Toolkit, Appia framework, Qu ...
with additional features for implementing
high availability High availability (HA) is a characteristic of a system that aims to ensure an agreed level of operational performance, usually uptime, for a higher than normal period. There is now more dependence on these systems as a result of modernization ...
within applications. The project provides four C
application programming interface An application programming interface (API) is a connection between computers or between computer programs. It is a type of software Interface (computing), interface, offering a service to other pieces of software. A document or standard that des ...
(API) features: * A closed
process group In a POSIX-conformant operating system, a process group denotes a collection of one or more processes. Among other things, a process group is used to control the distribution of a signal; when a signal is directed to a process group, the signal ...
communication model with
virtual synchrony Reliable multicast is any computer networking protocol that provides a '' reliable'' sequence of packets to multiple recipients simultaneously, making it suitable for applications such as multi-receiver file transfer. Overview Multicast is a ne ...
guarantees for creating replicated
state machine A finite-state machine (FSM) or finite-state automaton (FSA, plural: ''automata''), finite automaton, or simply a state machine, is a mathematical model of computation. It is an abstract machine that can be in exactly one of a finite number o ...
s. * A simple availability manager that restarts the application process when it has failed. * A configuration and statistics
in-memory database An in-memory database (IMDb, or main memory database system (MMDB) or memory resident database) is a database management system that primarily relies on main memory for computer data storage. It is contrasted with database management systems that e ...
that provides the ability to set, retrieve, and receive change notifications of information. * A
quorum A quorum is the minimum number of members of a group necessary to constitute the group at a meeting. In a deliberative assembly (a body that uses parliamentary procedure, such as a legislature), a quorum is necessary to conduct the business of ...
system that notifies applications when quorum is achieved or lost. The software is designed to operate on UDP/IP and
InfiniBand InfiniBand (IB) is a computer networking communications standard used in high-performance computing that features very high throughput and very low latency. It is used for data interconnect both among and within computers. InfiniBand is also used ...
networks.


Architecture

The software is composed of an executive binary which uses a client-server communication model between libraries and service engines. Loadable modules, called service engines, are loaded into the Corosync Cluster Engine and use the services provided by the Corosync Service Engine internal API. The services provided by the Corosync Service Engine internal API are: * An implementation of the Totem Single Ring Ordering and Membership protocol providing the Extended Virtual Synchrony model for messaging and membership. * The coroipc high performance shared memory IPC system. * An
object database An object database or object-oriented database is a database management system in which information is represented in the form of objects as used in object-oriented programming. Object databases are different from relational databases which are ...
that implements the in memory database model. * Systems to route IPC and Totem messages to the correct service engines. Additionally Corosync provides several default service engines that are used via C APIs: * cpg - Closed Process Group * sam - Simple Availability Manager * confdb - Configuration and Statistics database * quorum - Provides notifications of gain or loss of quorum


History

The project was formally announced in July 2008 via a conference paper at the
Ottawa Linux Symposium The Linux Symposium was a Linux and open source conference held annually in Canada from 1999 to 2014. The conference was initially named Ottawa Linux Symposium and was held only in Ottawa, but was renamed after being held in other cities in Canada ...
. The
source code In computing, source code, or simply code or source, is a plain text computer program written in a programming language. A programmer writes the human readable source code to control the behavior of a computer. Since a computer, at base, only ...
of OpenAIS was
refactored In computer programming and software design, code refactoring is the process of restructuring existing source code—changing the '' factoring''—without changing its external behavior. Refactoring is intended to improve the design, structure, ...
such that the core infrastructure components were placed into Corosync and the
SA Forum The Service Availability Forum (SAF or SA Forum) is a consortium that develops, publishes, educates on and promotes open specifications for carrier-grade and mission-critical systems. Formed in 2001, it promotes development and deployment of com ...
APIs were kept in OpenAIS. In the second version of corosync, published in 2012, quorum subsystem was changed and integrated into the daemon. This version is available since Fedora 17 and RHEL7. Flatiron branch (1.4.x) development ended with 1.4.10 release. Needle branch was announced stable with 2.0.0 release on 10 April 2012. Development of this branch stopped with 2.4.6 release on 9 November 2022, because 3.x branch (Camelback) was considered to be stable after almost 4 years of work.


See also

*
Linux-HA The Linux-HA (High-Availability Linux) project provides a high-availability ( clustering) solution for Linux, FreeBSD, OpenBSD, Solaris and Mac OS X which promotes reliability, availability, and serviceability (RAS).Alan Robertson ''The Evolut ...
*
Pacemaker (software) Pacemaker is an open-source high availability resource manager software used on computer clusters since 2004. Until about 2007, it was part of the Linux-HA project, then was split out to be its own project. It implements several APIs for contro ...


References


External links

* * * * {{cite journal , title = Extended Virtual Synchrony model , citeseerx = 10.1.1.55.8677
Corosync High Performance Shared Memory IPC Reusable C Library
Cluster computing Free software programmed in C Software using the BSD license