Corosync ( Corosync Cluster Engine ) is an open source project that implements a group communication system for failover clusters . It is a development of the OpenAIS project and published under a modified BSD license .
| Corosync | |
|---|---|
| Type of | Group Communication System for Failover Clusters |
| Developer | The corosync development community |
| Written on | Si |
| operating system | Cross-platform software |
| First edition | January 2008 [1] |
| Latest version | 3.0.1 [2] ( January 15, 2019 ) |
| License | "modified" BSD |
| Site | corosync.imtqy.com/corosync/ |
Content
Features
The project provides four sets of C APIs :
- Closed Process Group (CPG) is an interaction model that implements , which ensures that processes on cluster nodes receive the same messages in the same order.
- " Simple Availability Manager " ( Eng. Simple Availability Manager - SAM), which monitors the status of applications and allows them to restart after a failure.
- " Configuration database " ( Eng. Configuration database - confdb) in RAM, allowing you to get the configuration and statistics Corosync, change the configuration and receive notifications of changes.
- “ ” ( English quorum ) - a system that notifies applications of whether a quorum has been reached (the required minimum number of active cluster nodes) or not.
The software is designed to operate on UDP / IP and InfiniBand networks.
Architecture
The software was created as executable binary files using a client-server model of interaction between libraries and service tools. Modules called service tools are loaded into Corosync and use the services provided by the Corosync internal API.
Services provided by Corosync's internal API:
- Implementation of the protocol “ Totem Single Ring Ordering and Membership ” [3] , which provides an extended model of [4] messages.
- Coroipc is a high-performance system for interprocess communication through shared memory . [five]
- An object database implemented through storage in random access memory ( English in-memory database ).
- Routing systems for network and interprocess messages through service tools.
History
The project was announced in July 2008 at the conference in Ottawa [1] . The source code for the OpenAIS project was reorganized so that the infrastructure components were placed in Corosync, and the API remained in OpenAIS.
In the second version of corosync (2012), the quorum system was changed, which became an integral part of the daemon [6] , and support for third-party add-ons was disabled. Corosync 2 is available with Fedora 17 and RHEL 7 [7] .
Notes
- ↑ 1 2 Dake, S .; Caulfield, C .; Beekhof, A. The Corosync Cluster Engine (neopr.) // Proceedings of the Linux Symposium. - 2008. - July. - S. 85-99 .
- ↑ Releases
- ↑ Amir, Y .; Moser, LE; Melliar-Smith, PM; Agarwal, DA; Ciarfella, P. The Totem Single Ring Ordering and Membership Protocol // ACM Transactions on Computer Systems : journal. - 1995 .-- November ( vol. 13 , no. 4 ). - P. 311—342 . - DOI : 10.1145 / 210223.210224 .
- ↑ Moser, LE; Amir, Y .; Melliar-Smith, PM; Agarwal, DA Extended Virtual Synchrony (Neopr.) // Proceedings of the IEEE 14th International Conference on Distributed Computing Systems. - 1994. - S. 56-65 .
- ↑ Dake, S. The Corosync High Performance Shared Memory IPC Reusable C Library // Proceedings of the Linux Symposium: journal. - 2009. - July. - P. 61-68 .
- ↑ Christine Caulfield, New quorum features in Corosync 2 - 2012-2016
- ↑ Linux Cluster next generation , LVEE, 2013
Links
- corosync.imtqy.com/corosync/ - official Corosync website
- Andrew Beekhof, Pacemaker 1.1 Clusters from Scratch , 2009-2015