Отказоустойчивость кластера ClickHouse
На отказоустойчивость кластера ClickHouse влияют:
- наличие репликации данных;
- тип размещения нод.
Репликация данных
Репликация поддерживается только для реплицируемых таблиц. Подробнее о реплицируемых таблицах в инструкции Replicated* table engines документации ClickHouse.
Чтобы обеспечить репликацию данных и сделать доступным создание реплицируемых таблиц, кластер должен состоять:
- минимум из одного шарда с двумя и более нодами;
- и группы нод ClickHouse Keeper.
Указать количество нод в шарде можно при создании кластера. Вы также можете добавить или удалить ноды в шарде существующего кластера. Максимальное количество нод в шарде — десять.
Если при создании кластера вы укажете в шарде больше одной ноды, ClickHouse Keeper добавится автоматически.
Чтобы добавить ноды в существующий кластер, состоящий из одного шарда с одной нодой, нужно сначала добавить ClickHouse Keeper. При добавлении ClickHouse Keeper существующие таблицы MergeTree автоматически преобразуются в реплицируемые (например, в ReplicatedMergeTree). При добавлении новых нод в такой кластер они автоматически синхронизируются с существующими репликами в шарде.
Тип размещения нод
Тип размещения нод в кластере зависит:
- от количества нод в шардах;
- типа пула, в котором расположен кластер;
- количества сегментов в пуле;
- линейки конфигураций.
Посмотреть список пулов и сегментов можно в таблице Инфраструктура Servercore инструкции Локации: страны, регионы, зоны доступности, пулы и адреса дата-центров.
Доступны четыре типа размещения нод:
- Single-Segment;
- Multi-Segment;
- Single-AZ;
- Multi-AZ.
Single-Segment
Multi-Segment
Single-AZ
Multi-AZ
Ноды размещаются в одном сегменте однозонального пула. Применимо:
- для кластеров, состоящих из одного шарда с одной нодой;
- шардов с несколькими нодами, если кластер расположен в пуле, который состоит из одного сегмента;
- шардов с несколькими нодами в конфигурациях линейки HighFreq.
Например, вы создали кластер в пуле ru-2 с ClickHouse Keeper и шардом, в котором две ноды. Для обеих групп нод использовали конфигурации из линейки HighFreq. Все ноды будут размещены в одном сегменте пула, например в ru-2c.
Добавить ноду
В шарде может быть не больше десяти нод. В процессе добавления ноды другие ноды шарда продолжат работать на чтение и запись.
- Если кластер состоит только из одного шарда с одной нодой, добавьте ClickHouse Keeper.
- В панели управления в верхнем меню нажмите Продукты и выберите Облачные базы данных.
- Откройте вкладку Активные.
- Откройте страницу кластера → вкладка Настройки.
- В меню шарда выберите Изменить кол-во нод.
- Откройте вкладку Добавление.
- Укажите новое количество нод в шарде. Если в подсети, к которой подключен кластер, нет свободных IP-адресов, то ноду нельзя добавить. Каждая новая нода занимает новый IP-адрес в подсети.
- Нажмите Сохранить.
Удалить ноду
Удаление ноды приведет к удалению всех данных, которые находятся на этой ноде.
В процессе удаления другие ноды шарда продолжат работать на чтение и запись. Публичный IP-адрес, привязанный к ноде, будет удален.
- В панели управления в верхнем меню нажмите Продукты и выберите Облачные базы данных.
- Откройте вкладку Активные.
- Откройте страницу кластера → вкладка Настройки.
- В меню шарда выберите Изменить кол-во нод.
- Откройте вкладку Удаление.
- Отметьте ноду, которую хотите удалить. В шарде должна оставаться хотя бы одна нода. Удалить все ноды из шарда нельзя.
- Нажмите Сохранить.