Corosync Cluster Engine
# Corosync Cluster Engine

Corosync Cluster Engine est un projet de logiciel Open source dérivé de l'OpenAIS project et sous licence Licence BSD modifiée. La mission de Corosync est de développer et de maintenir un cluster open source défini par la communauté.

## Fonctionnalités

Corosync Cluster Engine est un système de communication de groupe avec des fonctionnalités supplémentaires pour la mise en œuvre de la Haute disponibilité dans les applications.

Corosync Cluster Engine fournit 4 fonctionnalités sous forme d'API écrites en C :

* un groupe restreint de processus avec une garantie de synchronisation virtuelle afin de créer des machines à états répliquées ;
* un simple gestionnaire de disponibilité qui redémarre les processus d'application lorsqu'ils ont échoué ;
* une configuration et des statistiques stockées en base de données dans la mémoire vive permet de définir, de récupérer et de recevoir des notifications concernant les changements d'état ;
* un système de notification qui se déclenche lorsqu'un quorum est atteint ou perdu.

Le logiciel est conçu pour fonctionner sur des réseaux UDP et InfiniBand.

## Architecture

Le logiciel est composé d'un binaire qui utilise un modèle de communication client-serveur entre les bibliothèques et les moteurs de service. Les modules chargés, appelés moteurs de service, sont chargés dans le moteur de cluster Corosync et utilisent les services fournis par l'API interne de Corosync Service Engine.

Les services fournis par l'API interne de Corosync Service Engine sont :

* une implémentation du protocole Totem Single Ring Ordering and Membership fournissant le modèle Extended Virtual Synchrony pour la messagerie et l'adhésion ;
* le système coroipc haute performance à mémoire partagée IPC ;
* une base de données orientée objet qui implémente le modèle de base de données en mémoire ;
* un système pour acheminer les messages IPC et Totem vers les moteurs de service correctes ;

Corosync Cluster Engine fournit plusieurs moteurs de service par défaut qui sont utilisés via les API :

* cpg - (Closed Process Group) un groupe restreint de processus
* sam - (Simple Availability Manager) un gestionnaire de disponibilité
* confdb - (Configuration and Statistics database) une configuration et des statistiques sous forme de base de données
* quorum - fournit des notifications de gain ou de perte du quorum

## Historique

Le projet a été officiellement annoncé en juillet 2008 par l'intermédiaire d'un document de conférence au Symposium Linux d'Ottawa. Le code source d'OpenAIS a été refactoré de sorte que les composants d'infrastructure de base soient placés directement dans Corosync et les API de Forum SA ont été conservées dans OpenAIS.

Dans la deuxième version de Corosync, publiée en 2012, le sous-système de quorum a été modifié et intégré dans le démon. Cette version est disponible depuis Fedora 17 et RHEL7.

