Corosync (Corosync)
Corosync | |
---|---|
Тип | Система группового общения для отказоустойчивых кластеров |
Разработчик | The Corosync Development Community |
Написана на | Си |
Операционная система | Кроссплатформенное программное обеспечение |
Первый выпуск | январь 2008[1] |
Последняя версия | 3.1.6[2] (15 ноября 2021) |
Репозиторий | github.com/corosync/coro… |
Лицензия | "модифицированная" BSD |
Сайт | corosync.github.io/corosync/ |
Corosync (Corosync Cluster Engine) — проект с открытым исходным кодом, реализующий систему группового общения для отказоустойчивых кластеров. Является развитием проекта OpenAIS и опубликован в соответствии с модифицированной лицензией BSD.
Особенности
[править | править код]Проект предоставляет четыре набора API для языка Си:
- «Закрытая группа процессов» (англ. Closed Process Group — CPG) — модель взаимодействия, реализующая виртуальную синхронизацию[англ.], которая гарантирует, что процессы на узлах кластера получат одинаковые сообщения в одинаковом порядке.
- «Простой менеджер доступности» (англ. Simple Availability Manager — SAM), отслеживающий состояния приложений и позволяющий их перезапускать после сбоя.
- «База данных конфигурации» (англ. Configuration database — confdb) в оперативной памяти, позволяющая получать конфигурацию и статистику Corosync, менять конфигурацию и получать уведомления об её изменениях.
- «Кворум[англ.]» (англ. quorum) — система, оповещающая приложения о том, достигнут кворум (необходимое минимальное количество активных узлов кластера) или нет.
Программное обеспечение предназначено для работы в сетях UDP/IP и InfiniBand.
Архитектура
[править | править код]Программное обеспечение создано как исполняемые бинарные файлы, использующие клиент-серверную модель взаимодействия между библиотеками и сервисными инструментами. Модули, называемые сервисными инструментами, загружаются в Corosync и используют сервисы, предоставляемые внутренним API Corosync.
Сервисы, предоставляемые внутренним API Corosync:
- Реализация протокола «Упорядочивание и членство в одиночном кольце связи» (англ. Totem Single Ring Ordering and Membership)[3], обеспечивающего расширенную модель виртуальной синхронизации[англ.][4] сообщений.
- Coroipc — высокопроизводительная система межпроцессного взаимодействия через разделяемую память.[5]
- Объектная база данных, реализуемая через хранение в оперативной памяти (англ. in-memory database).
- Системы маршрутизации сетевых и межпроцессных сообщений через сервисные инструменты.
История
[править | править код]Проект был анонсирован в июле 2008 года на конференции Linux Symposium[англ.] в Оттаве[1]. Исходный код проекта OpenAIS был реорганизован так, что инфраструктурные компоненты были помещены в Corosync, а API SA Forum[англ.] остался в OpenAIS.
Во второй версии corosync (2012) изменена система кворума, ставшая составной частью демона[6], и отключена поддержка сторонних дополнений. Corosync 2 доступен с Fedora 17 и RHEL 7[7].
Примечания
[править | править код]- ↑ 1 2 Dake, S.; Caulfield, C.; Beekhof, A. The Corosync Cluster Engine (неопр.) // Proceedings of the Linux Symposium. — 2008. — July. — С. 85—99. Архивировано 24 сентября 2016 года.
- ↑ Releases . Дата обращения: 23 сентября 2016. Архивировано 15 сентября 2020 года.
- ↑ Amir, Y.; Moser, L.E.; Melliar-Smith, P.M.; Agarwal, D.A.; 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. Архивировано 29 апреля 2022 года.
- ↑ Moser, L.E.; Amir, Y.; Melliar-Smith, P.M.; Agarwal, D.A. Extended Virtual Synchrony (неопр.) // Proceedings of the IEEE 14th International Conference on Distributed Computing Systems. — 1994. — С. 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. Архивировано 3 марта 2016 года.
- ↑ Christine Caulfield,New quorum features in Corosync 2 Архивная копия от 2 января 2017 на Wayback Machine - 2012-2016 (англ.)
- ↑ Linux Cluster next generation Архивная копия от 1 января 2017 на Wayback Machine, LVEE, 2013
Ссылки
[править | править код]- corosync.github.io/corosync/ — официальный сайт Corosync
- Andrew Beekhof, Pacemaker 1.1 Clusters from Scratch Архивная копия от 24 сентября 2016 на Wayback Machine, 2009-2015