Corosync Cluster Engine

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. The mission of the Corosync effort is to develop, release, and support a community-defined, open source cluster.

Corosync Cluster Engine
Developer(s)The Corosync Development Community
Initial release2008 (2008)
Stable release
2.4.5 / July 31, 2019 (2019-07-31)[1]
Preview release
3.0.2 / June 13, 2019 (2019-06-13)[2]
Repository
Written inC
Operating systemCross-platform
TypeGroup Communication System
LicenseNew BSD License
Websitecorosync.github.io/corosync/

Features

The Corosync Cluster Engine is a group communication system with additional features for implementing high availability within applications.

The project provides four C API features:

  • A closed process group communication model with virtual synchrony 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 that provide 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 and InfiniBand 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[3] protocol providing the Extended Virtual Synchrony model[4] for messaging and membership.
  • The coroipc high performance shared memory IPC system.[5]
  • 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.[6] The source code of OpenAIS was refactored such that the core infrastructure components were placed into Corosync and the SA Forum APIs were kept in OpenAIS.

In the second version of corosync, published in 2012, quorum subsystem was changed and integrated into the daemon.[7] This version is available since Fedora 17 and RHEL7.[8]

gollark: I read that as trees at the end...
gollark: Odd name, but I like it.
gollark: __test__
gollark: ***__AEON__***
gollark: I guess not.

References

  1. "v2.4.5". Github. Retrieved 30 August 2019.
  2. "v3.0.2". Github. Retrieved 30 August 2019.
  3. Amir, Y.; Moser, L.E.; Melliar-Smith, P.M.; Agarwal, D.A.; Ciarfella, P. (November 1995). "The Totem Single Ring Ordering and Membership Protocol". ACM Transactions on Computer Systems. 13 (4): 311–342. doi:10.1145/210223.210224.
  4. Moser, L.E.; Amir, Y.; Melliar-Smith, P.M.; Agarwal, D.A. (November 1995). "Extended Virtual Synchrony". ACM Transactions on Computer Systems. 13 (4): 311–342. doi:10.1145/210223.210224. Also in Proceedings of DCS, pp. 56-65, 1994.
  5. Dake, S. (July 2009). "The Corosync High Performance Shared Memory IPC Reusable C Library" (PDF). Proceedings of the Linux Symposium: 61–68.
  6. Dake, S.; Caulfield, C.; Beekhof, A. (July 2008). "The Corosync Cluster Engine" (PDF). Proceedings of the Linux Symposium: 85–99.
  7. Christine Caulfield,New quorum features in Corosync 2 - 2012-2016 (in English)
  8. Linux Cluster next generation, LVEE, 2013

See also

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.