Преимущества связки Corosync + Pacemaker
Иногда возникает вопрос, как создать кластеризацию на уровне приложений с высокой отказоустойчивостью, причем сделать это в сжатые сроки, при наличии ограниченного бюджета и при отсутствии глубоких экспертных знаний в построении кластеров. Одно из оптимальных решений -- применение Corosync и Pacemaker. Данная связка бесплатна, освоить ее несложно, а на развертывание уходит совсем немного времени.
Corosync
Corosync представляет собой программный продукт, позволяющий создавать единый кластер из нескольких виртуальных либо аппаратных серверов. При этом Corosync способен отслеживать и передавать состояние всех нод в кластере.
Также он позволяет:
- выполнять мониторинг статуса приложений;
- оповещать приложения в случае смены активной ноды в кластере;
- осуществлять отправку идентичных сообщений процессам на всех нодах;
- обеспечивать доступ к общей БД с конфигурацией и статистикой;
- выполнять отправку уведомлений об изменениях, произведенных в базе данных.
Pacemaker
Pacemaker — менеджер ресурсов кластера. Pacemaker позволяет применять и службы, и объекты в рамках единого кластера, состоящего из 2-х и более нод.
Pacemaker способен:
- находить и устранять сбои на уровне служб и нод;
- не зависеть от подсистемы хранения, то есть мы можем забыть про общий накопитель, как про страшный сон;
- не зависеть от типов ресурсов, то есть все, что можно прописать в скрипты, мы можем кластеризовать;
- поддерживать STONITH (Shoot-The-Other-Node-In-The-Head). Суть тут следующая: умершая нода изолируется, а запросы к ней не поступают, пока нода не выполнит отправку сообщения о том, что она опять находится в рабочем состоянии;
- поддерживать кворумные и ресурсозависимые кластеры практически любого размера;
- поддерживать практически любую избыточную конфигурацию;
- автоматически реплицировать конфигурацию на все узлы кластера, то есть править все вручную не понадобится;
- задавать порядок запуска ресурсов и их совместимость на одном узле;
- поддерживать расширенные типы ресурсов, такие как клоны (ресурс запущен на множестве узлов) и дополнительные состояния (master/slave и пр.), что в целом весьма актуально для систем управления базами данных (MySQL, PostgreSQL, MariaDB, Oracle);
- иметь единую кластерную CRM-оболочку с поддержкой скриптов.
Таким образом, общая идея связки заключается в том, что посредством Corosync вы строите кластер, ну а уже отслеживать его состояние вы будете благодаря Pacemaker.
Хотите узнать больше о кластеризации сервисов на базе Pacemaker? Добро пожаловать на курс «Администратор Linux. Виртуализация и кластеризация»!
По материалам https://xakep.ru/2019/01/24/corosync-pacemaker/.