Corosync (project)
Encyclopedia
The Corosync Cluster Engine is an open source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

 project Licensed under the New BSD License derived from the OpenAIS project. Corosync's mission is to develop, release, and support a community defined de-facto open source cluster executive for use by multiple open source and commercial cluster projects or products.

Features

The Corosync Cluster Engine is a group communication system
Group communication system
The term Group Communication System refers to a software platform that implements some form of group communication. Examples of group communication systems include IS-IS, JGroups, Spread Toolkit, Appia framework, QuickSilver, and the group services component of IBM's RSCT...

 with additional features for implementing high availability
High availability
High availability is a system design approach and associated service implementation that ensures a prearranged level of operational performance will be met during a contractual measurement period....

 within applications.

The project provides four C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....

 programming interfaces
Application programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...

 features:
  • A closed process group communication model with virtual synchrony
    Virtual synchrony
    Virtual synchrony is an interprocess messaging passing technology. Virtual synchrony systems allow programs running in a network to organize themselves into process groups, and to send messages to groups...

     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
    Quorum (Distributed Systems)
    A quorum is the minimum number of votes that a distributed transaction has to obtain in order to be allowed to perform an operation in a distributed system...

     system that notifies applications when quorum is achieved or lost.


The software is designed to operate on UDP/IP and InfiniBand
InfiniBand
InfiniBand is a switched fabric communications link used in high-performance computing and enterprise data centers. Its features include high throughput, low latency, quality of service and failover, and it is designed to be scalable...

 networks natively.

Architecture

The software is composed of an executive binary which uses a client-server
Client-server
The client–server model of computing is a distributed application that partitions tasks or workloads between the providers of a resource or service, called servers, and service requesters, called clients. Often clients and servers communicate over a computer network on separate hardware, but both...

 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
    Shared memory
    In computing, shared memory is memory that may be simultaneously accessed by multiple programs with an intent to provide communication among them or avoid redundant copies. Depending on context, programs may run on a single processor or on multiple separate processors...

     IPC system.
  • An object database that implements the in memory database model.
  • Systems to route IPC and Totem messages to the correct service engine.


Additionally Corosync provides several default service engines that are used via C Application Programming Interfaces:
  • 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 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.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK