Corosync
   HOME

TheInfoList



OR:

The Corosync Cluster Engine is an open source 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 li ...
. 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 * Asteroid cluster, a small asteroid family * Cluster II (spacecraft), a European Space Agency mission to study t ...
.


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 The Spread Toolkit ...
with additional features for implementing
high availability High availability (HA) is a characteristic of a system which aims to ensure an agreed level of operational performance, usually uptime, for a higher than normal period. Modernization has resulted in an increased reliance on these systems. F ...
within applications. The project provides four C
API An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how ...
features: * A closed process group communication model with
virtual synchrony A reliable multicast is any computer networking protocol that provides a ''Reliability (computer networking), reliable'' sequence of packets to multiple recipients simultaneously, making it suitable for applications such as multi-receiver file tran ...
guarantees for creating replicated state machines. * 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 system that notifies applications when quorum is achieved or lost. The software is designed to operate on
UDP/IP In computer networking, the User Datagram Protocol (UDP) is one of the core communication protocols of the Internet protocol suite used to send messages (transported as datagrams in packets) to other hosts on an Internet Protocol (IP) network. ...
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 use ...
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 In computer science, shared memory is memory that may be simultaneously accessed by multiple programs with an intent to provide communication among them or avoid redundant copies. Shared memory is an efficient means of passing data between progr ...
IPC system. * An object database 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 of OpenAIS was refactored 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 * Pacemaker (software)


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