---
title: 'Отказоустойчивость кластера ClickHouse®'
sidebar_label: 'Отказоустойчивость кластера'
sidebar_position: 14
description: 'Размещение нод в группах нод кластера ClickHouse®, как изменить количество нод в группе'
---

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import {TabItemLabel} from '@selectel/docux/components';
import MoreVerticalIcon from '@selectel/docux/icons/more-vertical';
import Formbricks from '@theme/MDXComponents/Formbricks';

# Отказоустойчивость кластера ClickHouse®

На отказоустойчивость кластера ClickHouse® влияют:

* наличие [репликации данных](#data-replication);
* [тип размещения нод](#node-allocation-type).

## Репликация данных \{#data-replication}

Репликация поддерживается только для реплицируемых таблиц.
Подробнее о реплицируемых таблицах в инструкции [Replicated\* table engines](https://clickhouse.com/docs/engines/table-engines/mergetree-family/replication) документации ClickHouse®.

Чтобы обеспечить репликацию данных и сделать доступным создание реплицируемых таблиц, кластер должен состоять:

* минимум из одного [шарда](/managed-databases/clickhouse/about-node-groups.mdx#shard) с двумя и более нодами;
* и группы нод [ClickHouse® Keeper](/managed-databases/clickhouse/about-node-groups.mdx#clickhouse-keeper).

Указать количество нод в шарде можно при [создании кластера](/managed-databases/clickhouse/create-cluster.mdx).
Вы также можете [добавить](#add-node) или [удалить ноды](#delete-node) в шарде существующего кластера.
Максимальное количество нод в шарде — десять.

Если при создании кластера вы укажете в шарде больше одной ноды, ClickHouse® Keeper добавится автоматически.

Чтобы добавить ноды в существующий кластер, состоящий из одного шарда с одной нодой, нужно сначала [добавить ClickHouse® Keeper](/managed-databases/clickhouse/resize-cluster.mdx#add-clickhouse-keeper).
При добавлении ClickHouse® Keeper существующие таблицы MergeTree автоматически преобразуются в реплицируемые (например, в ReplicatedMergeTree).
При добавлении новых нод в такой кластер они автоматически синхронизируются с существующими репликами в шарде.

## Тип размещения нод \{#node-allocation-type}

Тип размещения нод в кластере зависит:

* от количества нод в [шардах](/managed-databases/clickhouse/about-node-groups.mdx#shard);
* типа [пула](/infrastructure/locations.mdx#pool), в котором расположен кластер;
* количества сегментов в пуле;
* [линейки конфигураций](/managed-databases/clickhouse/configurations.mdx#configuration-lines).

Посмотреть список пулов и сегментов можно в таблице [Инфраструктура Selectel](/infrastructure/locations.mdx#selectel-infrastructure) инструкции [Локации: страны, регионы, зоны доступности, пулы и адреса дата-центров](/infrastructure/locations.mdx).

Доступны четыре типа размещения нод:

* Single-Segment;
* Multi-Segment;
* Single-AZ;
* Multi-AZ.

<Tabs queryString="node-allocation-type">
  <TabItem value="single-segment-allocation" default>
    <TabItemLabel>
      Single-Segment
    </TabItemLabel>

    Ноды размещаются в одном сегменте [однозонального пула](/infrastructure/locations.mdx#single-az-pool).
    Применимо:

    * для кластеров, состоящих из одного шарда с одной нодой;
    * шардов с несколькими нодами, если кластер расположен в пуле, который состоит из одного сегмента;
    * шардов с несколькими нодами в конфигурациях линейки [HighFreq](/managed-databases/clickhouse/configurations.mdx#highfreq-line).

    :::note

    Например, вы создали кластер в пуле ru-2 с ClickHouse® Keeper и шардом, в котором две ноды.
    Для обеих групп нод использовали конфигурации из линейки HighFreq.
    Все ноды будут размещены в одном сегменте пула, например в ru-2c.

    :::
  </TabItem>

  <TabItem value="multi-segment-allocation">
    <TabItemLabel>
      Multi-Segment
    </TabItemLabel>

    Ноды размещаются в разных сегментах [однозонального пула](/infrastructure/locations.mdx#single-az-pool).
    Применимо для кластеров, которые состоят из шардов с несколькими нодами, если кластер расположен в пуле с несколькими сегментами.

    Сегменты находятся в разных стойках одного дата-центра.
    Ноды каждого шарда распределяются по сегментам последовательно.

    :::note

    Например, вы создали кластер в пуле ru-1 с одним шардом, в котором четыре ноды.
    Первые три ноды будут размещены последовательно в сегментах пула ru-1a, ru-1b и ru-1c.
    Четвертая нода будет размещена в сегменте ru-1a.
    Если вы добавите пятую ноду, то она будет размещена в сегменте пула ru-1b.

    :::
  </TabItem>

  <TabItem value="single-az-allocation">
    <TabItemLabel>
      Single-AZ
    </TabItemLabel>

    Ноды размещаются в одном сегменте [мультизонального пула](/infrastructure/locations.mdx#multi-az-pool).
    Применимо для кластеров, которые состоят из одного шарда с одной нодой, если кластер расположен в пуле ru-6.

    Если вы увеличите количество нод в шарде, тип размещения нод изменится на Multi-AZ.

    :::note

    Например, вы создали кластер в пуле ru-6 с одним шардом, в котором одна нода.
    Нода будет размещена в одном сегменте пула, например в ru-6a.

    :::
  </TabItem>

  <TabItem value="multi-az-allocation">
    <TabItemLabel>
      Multi-AZ
    </TabItemLabel>

    Ноды размещаются в разных сегментах [мультизонального пула](/infrastructure/locations.mdx#multi-az-pool).
    Применимо для кластеров, которые состоят из шардов с несколькими нодами, если кластер расположен в пуле ru-6.

    Каждый сегмент пула расположен в отдельном дата-центре.
    Ноды каждого шарда распределяются по сегментам последовательно.

    :::note

    Например, вы создали кластер в пуле ru-6 с одним шардом, в котором четыре ноды.
    Первые три ноды будут размещены последовательно в сегментах пула ru-6a, ru-6b и ru-6c.
    Четвертая нода будет размещена в сегменте ru-6a.
    Если вы добавите пятую ноду, то она будет размещена в сегменте пула ru-6b.

    :::
  </TabItem>
</Tabs>

## Добавить ноду \{#add-node}

В шарде может быть не больше десяти нод.
В процессе добавления ноды другие ноды шарда продолжат работать на чтение и запись.

1. Если кластер состоит только из одного шарда с одной нодой, [добавьте ClickHouse® Keeper](/managed-databases/clickhouse/resize-cluster.mdx#add-clickhouse-keeper).
2. В [панели управления](https://my.selectel.ru/vpc/default/dbaas/) в верхнем меню нажмите **Продукты** и выберите **Облачные базы данных**.
3. Откройте вкладку **Активные**.
4. Откройте страницу кластера → вкладка **Настройки**.
5. В меню <MoreVerticalIcon /> шарда выберите **Изменить кол-во нод**.
6. Откройте вкладку **Добавление**.
7. Укажите новое количество нод в шарде.
   Если в подсети, к которой подключен кластер, нет свободных IP-адресов, то ноду нельзя добавить.
   Каждая новая нода занимает новый IP-адрес в подсети.
8. Нажмите **Сохранить**.

## Удалить ноду \{#delete-node}

:::danger

Удаление ноды приведет к удалению всех данных, которые находятся на этой ноде.

:::

В процессе удаления другие ноды шарда продолжат работать на чтение и запись.
[Публичный IP-адрес](/managed-databases/clickhouse/public-ip.mdx), привязанный к ноде, будет удален.

1. В [панели управления](https://my.selectel.ru/vpc/default/dbaas/) в верхнем меню нажмите **Продукты** и выберите **Облачные базы данных**.
2. Откройте вкладку **Активные**.
3. Откройте страницу кластера → вкладка **Настройки**.
4. В меню <MoreVerticalIcon /> шарда выберите **Изменить кол-во нод**.
5. Откройте вкладку **Удаление**.
6. Отметьте ноду, которую хотите удалить.
   В шарде должна оставаться хотя бы одна нода.
   Удалить все ноды из шарда нельзя.
7. Нажмите **Сохранить**.

ClickHouse® является зарегистрированным товарным знаком ClickHouse, Inc. https://clickhouse.com.

<Formbricks />
