Режим хостов определяет, какие роли выполняют хосты кластера и как между ними распределяются задачи обработки запросов и координации репликации.
В кластере Managed ClickHouse каждый хост выполняет одну или несколько ролей, которые определяют его функции в кластере:
ClickHouse ClickHouse — хост, который обрабатывает запросы клиентов: выполняет вставку, хранение и чтение данных. Хосты ClickHouse выполняют SQL-запросы, управляют локальным хранением данных и участвуют в распределенной обработке запросов. В кластере с несколькими шардами каждый хост ClickHouse входит в один шард. В пределах шарда хосты являются репликами и хранят одинаковый набор данных.
Keeper Keeper — хост, который координирует репликацию данных между хостами ClickHouse, хранит метаданные реплицированных таблиц и обеспечивает выполнение распределенных операций. В каждый момент времени один из хостов Keeper является лидером, остальные находятся в режиме горячего резерва.
Хосты Keeper образуют кворум. При использовании трех хостов кластер сохраняет работоспособность при отказе одного из них. При отказе двух хостов из трех координация репликации и распределенные операции становятся недоступными, однако чтение данных из существующих таблиц продолжается — хосты ClickHouse работают на основе локальных данных.
При потере кворума Keeper вставка данных в реплицированные таблицы, выполнение распределенных запросов и изменение конфигурации кластера недоступны. Чтение данных по существующим таблицам продолжается.
Managed ClickHouse поддерживает два режима хостов: комбинированный и выделенный.
В комбинированном режиме каждый хост одновременно выполняет роли ClickHouse и Keeper ClickHouse, Keeper. Все хосты участвуют как в обработке запросов, так и в координации репликации.
Кластер в комбинированном режиме всегда состоит из одного шарда.
Ограничения комбинированного режима:
Невозможно масштабировать хосты ClickHouse и Keeper независимо друг от друга.
Невозможно задать разные вычислительные ресурсы для хостов ClickHouse и Keeper.
Нагрузка на обработку запросов и координацию репликации делится между одними и теми же хостами.
Количество шардов и хостов фиксировано и не может быть изменено.
Доступен только режим отказоустойчивости Single-AZ.
Комбинированный режим подходит для сред разработки и тестирования. Для production-сред рекомендуется использовать выделенный режим.
В выделенном режиме роли ClickHouse и Keeper разделены между разными хостами. Хосты ClickHouse обрабатывают запросы клиентов, хосты Keeper координируют репликацию и хранят метаданные. Такое разделение позволяет настраивать, масштабировать и обслуживать каждую группу хостов независимо.
Конфигурация хостов в выделенном режиме:
Keeper — всегда 3 хоста, распределенные по трем зонам доступности. Количество и расположение хостов Keeper изменить нельзя.
ClickHouse — от 1 до 3 шардов. Количество реплик на шард — 3.
Для выделенного режима доступен только Multi-AZ.