El motor de clúster Corosync es una implementación de código abierto del protocolo Totem Single Ring Ordering and Membership . Originalmente se derivó del proyecto OpenAIS y se licencia bajo la nueva licencia BSD . La misión del proyecto Corosync es desarrollar, lanzar y brindar soporte a un clúster de código abierto definido por la comunidad .
Características
El motor de clúster Corosync es un sistema de comunicación grupal con funciones adicionales para implementar alta disponibilidad dentro de las aplicaciones.
El proyecto proporciona cuatro características de interfaz de programación de aplicaciones (API) en C :
- Un modelo de comunicación de grupo de procesos cerrados con garantías de sincronización virtual para la creación de máquinas de estado replicadas .
- Un sencillo gestor de disponibilidad que reinicia el proceso de la aplicación cuando falla.
- Una base de datos en memoria para la configuración y las estadísticas que permite establecer, recuperar y recibir notificaciones de cambios en la información.
- Un sistema de quórum que notifica a las aplicaciones cuando se alcanza o se pierde el quórum.
El software está diseñado para funcionar en redes UDP/IP e InfiniBand .
Arquitectura
El software se compone de un binario ejecutable que utiliza un modelo de comunicación cliente-servidor entre bibliotecas y motores de servicio. Los módulos cargables, denominados motores de servicio, se cargan en el motor de clúster de Corosync y utilizan los servicios proporcionados por la API interna del motor de servicio de Corosync.
Los servicios que ofrece la API interna de Corosync Service Engine son:
- Una implementación del protocolo Totem Single Ring Ordering and Membership [ 2 ] que proporciona el modelo Extended Virtual Synchrony [ 3 ] para mensajería y membresía.
- El sistema IPC de memoria compartida de alto rendimiento coroipc . [ 4 ]
- Una base de datos de objetos que implementa el modelo de base de datos en memoria .
- Sistemas para enrutar los mensajes IPC y Totem a los motores de servicio correctos.
Además, Corosync proporciona varios motores de servicio predeterminados que se utilizan a través de API de C :
- cpg - Grupo de Procesos Cerrados
- sam - Gestor de disponibilidad simple
- confdb - Base de datos de configuración y estadísticas
- Quórum: Proporciona notificaciones de ganancia o pérdida de quórum.
Historia
El proyecto se anunció formalmente en julio de 2008 mediante un documento presentado en la conferencia Ottawa Linux Symposium . [ 5 ] El código fuente de OpenAIS se refactorizó de manera que los componentes de infraestructura principales se colocaron en Corosync y las API de SA Forum se mantuvieron en OpenAIS.
En la segunda versión de corosync, publicada en 2012, el subsistema de quórum se modificó y se integró en el demonio. [ 6 ] Esta versión está disponible desde Fedora 17 y RHEL7. [ 7 ]
El desarrollo de la rama Flatiron (1.4.x) finalizó con el lanzamiento de la versión 1.4.10. [ 8 ] La rama Needle se anunció como estable con el lanzamiento de la versión 2.0.0 el 10 de abril de 2012. [ 9 ] [ 10 ] El desarrollo de esta rama se detuvo con el lanzamiento de la versión 2.4.6 el 9 de noviembre de 2022, porque la rama 3.x (Camelback) se consideró estable después de casi 4 años de trabajo. [ 9 ]
Véase también
Referencias
- ↑ "Versión 3.1.10" . 15 de noviembre de 2025. Consultado el 17 de noviembre de 2025 .
- ↑ Amir, Y.; Moser, LE; Melliar-Smith, PM; Agarwal, DA; Ciarfella, P. (noviembre de 1995). "El protocolo de ordenación y pertenencia de anillo único Totem". ACM Transactions on Computer Systems . 13 (4): 311– 342. doi : 10.1145/210223.210224 . S2CID 15165593 .
- ↑ Moser, LE; Amir, Y.; Melliar-Smith, PM; Agarwal, DA (noviembre de 1995). "Sincronía virtual extendida". ACM Transactions on Computer Systems . 13 (4): 311– 342. doi : 10.1145/210223.210224 . S2CID 15165593 . También en Actas de DCS , págs. 56-65, 1994.
- ↑ Dake, S. (julio de 2009). "La biblioteca C reutilizable Corosync High Performance Shared Memory IPC" (PDF) . Actas del Simposio Linux : 61–68 .
- ↑ Dake, S.; Caulfield, C.; Beekhof, A. (julio de 2008). "El motor de clúster Corosync" (PDF) . Actas del Simposio Linux : 85–99 .
- ↑ Christine Caulfield, Nuevas funciones de quórum en Corosync 2 - 2012-2016 (en inglés)
- ↑ Linux Cluster de próxima generación , LVEE, 2013
- ↑ "Versiones v1.4.10" . GitHub . Consultado el 23 de noviembre de 2022 .
- 1 2 "Versiones v2.4.6" . GitHub . Consultado el 23 de noviembre de 2022 .
- ↑ "Versiones v2.0.0" . GitHub . Consultado el 23 de noviembre de 2022 .
Enlaces externos
- Sitio web oficial
- Biblioteca C reutilizable de memoria compartida IPC de alto rendimiento de Corosync
- computación en clúster
- Software libre programado en C
- Software que utiliza la licencia BSD.