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:
The software is designed to operate on UDP/IP and InfiniBand networks.
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:
Additionally Corosync provides several default service engines that are used via C APIs:
The project was formally announced in July 2008 via a conference paper at the Ottawa Linux Symposium.4 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.5 This version is available since Fedora 17 and RHEL7.6
Flatiron branch (1.4.x) development ended with 1.4.10 release.7 Needle branch was announced stable with 2.0.0 release on 10 April 2012.89 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.10
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. S2CID 15165593. /wiki/Doi_(identifier) ↩
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. S2CID 15165593. Also in Proceedings of DCS, pp. 56-65, 1994. /wiki/Doi_(identifier) ↩
Dake, S. (July 2009). "The Corosync High Performance Shared Memory IPC Reusable C Library" (PDF). Proceedings of the Linux Symposium: 61–68. https://www.kernel.org/doc/ols/2009/ols2009-pages-61-68.pdf ↩
Dake, S.; Caulfield, C.; Beekhof, A. (July 2008). "The Corosync Cluster Engine" (PDF). Proceedings of the Linux Symposium: 85–99. https://www.kernel.org/doc/ols/2008/ols2008v1-pages-85-100.pdf ↩
Christine Caulfield,New quorum features in Corosync 2 - 2012-2016 (in English) http://people.redhat.com/ccaulfie/docs/Votequorum_Intro.pdf ↩
Linux Cluster next generation, LVEE, 2013 https://lvee.org/uploads/image_upload/file/267/Linux_Clusters_at_LVEE_2013.pdf ↩
"Releases v1.4.10". GitHub. Retrieved 23 November 2022. https://github.com/corosync/corosync/releases/tag/v1.4.10 ↩
"Releases v2.4.6". GitHub. Retrieved 23 November 2022. https://github.com/corosync/corosync/releases/tag/v2.4.6 ↩
"Releases v2.0.0". GitHub. Retrieved 23 November 2022. https://github.com/corosync/corosync/releases/tag/v2.0.0 ↩