Corosync Cluster Engine

Last updated

Developer(s) The Corosync Development Community
Initial release2008;16 years ago (2008)
Stable release
3.1.8 [1]   OOjs UI icon edit-ltr-progressive.svg () / 15 November 2023
Repository
Written in C
Operating system Cross-platform
Type Group Communication System
License New BSD License
Website corosync.github.io

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.

Contents

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:

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:

Additionally Corosync provides several default service engines that are used via C APIs:

History

The project was formally announced in July 2008 via a conference paper at the Ottawa Linux Symposium. [5] 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. [6] This version is available since Fedora 17 and RHEL7. [7]

Flatiron branch (1.4.x) development ended with 1.4.10 release. [8] Needle branch was announced stable with 2.0.0 release on 10 April 2012. [9] [10] 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. [9]

See also

Related Research Articles

Kerberos is a computer-network authentication protocol that works on the basis of tickets to allow nodes communicating over a non-secure network to prove their identity to one another in a secure manner. Its designers aimed it primarily at a client–server model, and it provides mutual authentication—both the user and the server verify each other's identity. Kerberos protocol messages are protected against eavesdropping and replay attacks.

<span class="mw-page-title-main">X Window System</span> Windowing system for bitmap displays on UNIX-like systems

The X Window System is a windowing system for bitmap displays, common on Unix-like operating systems.

ext2, or second extended file system, is a file system for the Linux kernel. It was initially designed by French software developer Rémy Card as a replacement for the extended file system (ext). Having been designed according to the same principles as the Berkeley Fast File System from BSD, it was the first commercial-grade filesystem for Linux.

L4 is a family of second-generation microkernels, used to implement a variety of types of operating systems (OS), though mostly for Unix-like, Portable Operating System Interface (POSIX) compliant types.

<span class="mw-page-title-main">Inter-process communication</span> How computer operating systems enable data sharing

In computer science, inter-process communication (IPC), also spelled interprocess communication, are the mechanisms provided by an operating system for processes to manage shared data. Typically, applications can use IPC, categorized as clients and servers, where the client requests data and the server responds to client requests. Many applications are both clients and servers, as commonly seen in distributed computing.

<span class="mw-page-title-main">OpenAL</span> API for rendering audio

OpenAL is a cross-platform audio application programming interface (API). It is designed for efficient rendering of multichannel three-dimensional positional audio. Its API style and conventions deliberately resemble those of OpenGL. OpenAL is an environmental 3D audio library, which can add realism to a game by simulating attenuation, the Doppler effect, and material densities.

<span class="mw-page-title-main">XNU</span> Computer operating system kernel

XNU is the computer operating system (OS) kernel developed at Apple Inc. since December 1996 for use in the Mac OS X operating system and released as free and open-source software as part of the Darwin OS, which in addition to macOS is also the basis for the Apple TV Software, iOS, iPadOS, watchOS, visionOS, and tvOS OSes.

In distributed computing, a single system image (SSI) cluster is a cluster of machines that appears to be one single system. The concept is often considered synonymous with that of a distributed operating system, but a single image may be presented for more limited purposes, just job scheduling for instance, which may be achieved by means of an additional layer of software over conventional operating system images running on each node. The interest in SSI clusters is based on the perception that they may be simpler to use and administer than more specialized clusters.

The Direct Rendering Manager (DRM) is a subsystem of the Linux kernel responsible for interfacing with GPUs of modern video cards. DRM exposes an API that user-space programs can use to send commands and data to the GPU and perform operations such as configuring the mode setting of the display. DRM was first developed as the kernel-space component of the X Server Direct Rendering Infrastructure, but since then it has been used by other graphic stack alternatives such as Wayland and standalone applications and libraries such as SDL2 and Kodi.

Replication in computing involves sharing information so as to ensure consistency between redundant resources, such as software or hardware components, to improve reliability, fault-tolerance, or accessibility.

Paxos is a family of protocols for solving consensus in a network of unreliable or fallible processors. Consensus is the process of agreeing on one result among a group of participants. This problem becomes difficult when the participants or their communications may experience failures.

An embedded database system is a database management system (DBMS) which is tightly integrated with an application software; it is embedded in the application. It is a broad technology category that includes:

A 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.

The Application Interface Specification (AIS) is a collection of open specifications that define the application programming interfaces (APIs) for high-availability application computer software. It is developed and published by the Service Availability Forum and made freely available. Besides reducing the complexity of high-availability applications and shortening development time, the specifications intended to ease the portability of applications between different middleware implementations and to admit third party developers to a field that was highly proprietary in the past.

cgroups is a Linux kernel feature that limits, accounts for, and isolates the resource usage of a collection of processes.

<span class="mw-page-title-main">LIO (SCSI target)</span> Open-source version of SCSI target

In computing, Linux-IO (LIO) Target is an open-source implementation of the SCSI target that has become the standard one included in the Linux kernel. Internally, LIO does not initiate sessions, but instead provides one or more Logical Unit Numbers (LUNs), waits for SCSI commands from a SCSI initiator, and performs required input/output data transfers. LIO supports common storage fabrics, including FCoE, Fibre Channel, IEEE 1394, iSCSI, iSCSI Extensions for RDMA (iSER), SCSI RDMA Protocol (SRP) and USB. It is included in most Linux distributions; native support for LIO in QEMU/KVM, libvirt, and OpenStack makes LIO also a storage option for cloud deployments.

In computing, Hazelcast is a unified real-time data platform based on Java that combines a fast data store with stream processing. It is also the name of the company developing the product. The Hazelcast company is funded by venture capital and headquartered in Palo Alto, California.

<span class="mw-page-title-main">Proxmox Virtual Environment</span> Linux distribution for server virtualization

Proxmox Virtual Environment is a hyper-converged infrastructure open-source software. It is a hosted hypervisor that can run operating systems including Linux and Windows on x64 hardware. It is a Debian-based Linux distribution with a modified Ubuntu LTS kernel and allows deployment and management of virtual machines and containers. Two types of virtualization are supported: container-based with LXC, and full virtualization with KVM. It includes a web-based management interface. There is also a mobile application available for controlling PVE environments.

<span class="mw-page-title-main">Advanced Simulation Library</span>

Advanced Simulation Library (ASL) is a free and open-source hardware-accelerated multiphysics simulation platform. It enables users to write customized numerical solvers in C++ and deploy them on a variety of massively parallel architectures, ranging from inexpensive FPGAs, DSPs and GPUs up to heterogeneous clusters and supercomputers. Its internal computational engine is written in OpenCL and utilizes matrix-free solution techniques. ASL implements variety of modern numerical methods, i.a. level-set method, lattice Boltzmann, immersed boundary. The mesh-free, immersed boundary approach allows users to move from CAD directly to simulation, reducing pre-processing efforts and number of potential errors. ASL can be used to model various coupled physical and chemical phenomena, especially in the field of computational fluid dynamics. It is distributed under the free GNU Affero General Public License with an optional commercial license.

Container Linux is a discontinued open-source lightweight operating system based on the Linux kernel and designed for providing infrastructure for clustered deployments while focusing on automation, ease of application deployment, security, reliability, and scalability. As an operating system, Container Linux provided only the minimal functionality required for deploying applications inside software containers, together with built-in mechanisms for service discovery and configuration sharing.

References

  1. "Release 3.1.8". 15 November 2023. Retrieved 18 November 2023.
  2. 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.
  3. 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.
  4. Dake, S. (July 2009). "The Corosync High Performance Shared Memory IPC Reusable C Library" (PDF). Proceedings of the Linux Symposium: 61–68.
  5. Dake, S.; Caulfield, C.; Beekhof, A. (July 2008). "The Corosync Cluster Engine" (PDF). Proceedings of the Linux Symposium: 85–99.
  6. Christine Caulfield,New quorum features in Corosync 2 - 2012-2016 (in English)
  7. Linux Cluster next generation, LVEE, 2013
  8. "Releases v1.4.10". GitHub . Retrieved 23 November 2022.
  9. 1 2 "Releases v2.4.6". GitHub . Retrieved 23 November 2022.
  10. "Releases v2.0.0". GitHub . Retrieved 23 November 2022.