Pacemaker: exchange protocol

Введение

Одним из компонентов отказоустойчивых кластеров от ClusterLabs является менеджер ресурсов pacemaker. В его обязанности входит восстановление работоспособности сервисов при старте или сбое узлов кластера. Для этого разные экземпляры pacemaker на различных узлах кластера обмениваются сообщениями в формате XML. Типичным случаем использования является управление десятком ресурсов (СУБД+web). В компании YADRO система pacemaker используется для управления большим количеством ресурсов. Как показывает анализ, работа с XML при обмене сообщениями довольно ресурсоемкая, поэтому хочется перейти на более “легковесные” технологии. Требуется разработать, реализовать и внедрить в проект pacemaker новый протокол обмена сообщениями.

Требования

Требуется сохранить всю функциональность существующего решения. Тесты, CI — все как обычно у людей бывает. Накладные расходы на поддержку протокола (формирование сообщения, разбор сообщения) должны быть значительно меньше. В качестве кодовой базы можно рассматривать оригинальную реализацию на гитхабе https://github.com/ClusterLabs/pacemaker

Планируемые результаты

Ожидаются обзор и анализ возможных решений, реализация разработанного протокола, замеры производительности. Результат оформляется в виде PR в репозиторий YADRO.

Этапы разработки

  1. Знакомство с технологиями — развернуть простой HA кластер на двух виртуалках с 5-6 ресурсами.
  2. Развернуть тестовый пример от YADRO.
  3. Изучить различные подходы к сериализации данных для обмена по сети
  4. Разработать и реализовать свой способ обмена данными
  5. Провести замеры производительности. Получить численные характеристики исходного и своего решений.

План коммуникаций

Еженедельные звонки (30 минут) с представителями YADRO для демонстрации результатов; Коммуникация в Telegram; Инструкция по правильному написанию вопросов: http://tinyurl.com/stack-hints

Порядок приёмки и оценивания

  • A — готовое решение, оформленное в виде принятого PR в проект, положительный отзыв от заказчика. Хороший обзор.
  • B/C — решение в каком-то виде наличествует, но производительность не самая хорошая. Есть косяки, заказчик удовлетворился результатом. Обзор так себе.
  • D/E — решение в каком-то виде наличествует, есть крупные косяки, заказчик недоволен, но оно как-то работает. Производительность не улучшилась или улучшилась незначительно. Обзора нет.

Остальные кафедральные требования также в силе: текст, доклад, отзыв etc.

Требования к студенту

Владение Linux, C/C++

Уровень

3 курс, Бакалаврская ВКР, Магистерская ВКР


Руководитель

Смирнов Кирилл Константинович


Консультант

Смирнов Кирилл Константинович


Источник

YADRO