К основному контенту

Миграция c Zookepeer на Clickhouse Keeper

https://clickhouse.com/docs/guides/sre/keeper/clickhouse-keeper#migration-from-zookeeper

Беспроблемная миграция из ZooKeeper в ClickHouse Keeper невозможна. Необходимо остановить кластер ZooKeeper, преобразовать данные и запустить ClickHouse Keeper. clickhouse-keeper-converterИнструмент позволяет преобразовать логи и снимки ZooKeeper в снимки ClickHouse Keeper. Работает только с ZooKeeper версии выше 3.4. Шаги для миграции:


✅ Шаг 1: Остановите все узлы ZooKeeper


systemctl stop zookeeper

Если ZooKeeper не управляется через systemd — остановите процессы вручную на всех нодах ZooKeeper.


✅ Шаг 2 (рекомендовано): Принудительно создать консистентный снапшот

Найдите лидера ZooKeeper. Для этого подключитесь к каждой ноде ZooKeeper с помощью 4lw-команды stat:


echo stat | nc 127.0.0.1 2181


Ищите строку:

Mode: leader


На лидере выполните рестарт ZooKeeper, чтобы он создал новый консистентный снапшот:

systemctl restart zookeeper # или ./zkServer.sh restart

Затем снова остановите ZooKeeper:

systemctl stop zookeeper


Остановить все ноды Сlickhouse-keeper

systemctl stop clickhouse-keeper


📦 Шаг 3: Запустите clickhouse-keeper-converter на лидере

скопировать файлы Zookeeper на лидера

scp -r /var/lib/zookeeper/ root@ch1-keeper:/var/lib/

clickhouse-keeper-converter --zookeeper-logs-dir /var/lib/zookeeper/version-2 --zookeeper-snapshots-dir /var/lib/zookeeper/version-2 --output-dir /var/lib/clickhouse/coordination/snapshots 

version-2 — это стандартный путь к данным ZooKeeper 3.4.8.

После выполнения команды в директории /var/lib/clickhouse/coordination/snapshots появится сконвертированный снапшот.


📤 Шаг 4: Распространите снапшот на все ноды ClickHouse Keeper

Скопируйте файл снапшота во все ClickHouse Keeper узлы по пути, указанному в конфиге:

<snapshot_storage_path>/var/lib/clickhouse/coordination/snapshots</snapshot_storage_path>

Пример с scp:

На других нодах удалить старые снапшеты из папки /var/lib/clickhouse/coordination/snapshots/
rm /var/lib/clickhouse/coordination/snapshots/*

scp /var/lib/clickhouse/coordination/snapshots/snapshot_XXXXX.bin root@ch2-keeper:/var/lib/clickhouse/coordination/snapshots/

scp /var/lib/clickhouse/coordination/snapshots/snapshot_XXXXX.bin root@ch3-keeper:/var/lib/clickhouse/coordination/snapshots/

Убедитесь, что права доступа к файлу соответствуют clickhouse-пользователю.


🚀 Шаг 5: Запустите ClickHouse Keeper на всех узлах

Если ClickHouse Keeper используется как standalone:

systemctl start clickhouse-keeper 


Если Keeper вшит в clickhouse-server:

systemctl start clickhouse-server 


📌 Важно:

  • Все ноды ClickHouse Keeper должны содержать один и тот же снапшот перед запуском.

  • Если одна из нод пуста, она может "перебить" кластер своим пустым состоянием и стать лидером.

  • Желательно запускать все ноды одновременно, чтобы не возникло split-brain-состояния.


🔍 Проверка:

После запуска Keeper можно проверить состояние:

clickhouse-keeper-client --host 127.0.0.1
ls /

Если вы видите знакомую структуру узлов ZooKeeper — миграция прошла успешно.

Комментарии

Популярные сообщения из этого блога

Debian 10: Подключение и Настройка Архивных Репозиториев для Работы

Актуальные рабочие репозитории для Debian 10: подключение и исправление проблем Debian 10 "Buster" официально устарел, и его репозитории были перемещены в архив. Это означает, что стандартные зеркала больше не содержат пакеты для данной версии. Однако можно продолжать использовать Debian 10, подключив архивные репозитории. В этой статье рассмотрим, как правильно настроить систему и устранить возможные проблемы. 1. Подключение архивных репозиториев для Debian 10 Шаг 1: Редактирование файла sources.list Для работы с пакетами необходимо обновить список репозиториев в файле /etc/apt/sources.list . Откройте его с правами суперпользователя: sudo nano /etc/apt/sources.list Замените его содержимое на следующее: deb http://archive.debian.org/debian buster main contrib non-free deb http://archive.debian.org/debian-security buster/updates main contrib non-free deb http://archive.debian.org/debian buster-updates main contrib non-free Сохраните изменения ( Ctrl + X , затем Y и Enter ). Ш...

Настройка и подключение IPSec в Windows

Настройка IPSec на Windows включает в себя создание правил безопасности и фильтров для защиты сетевого трафика. Ниже — пошаговое руководство. Включение службы IPSec Перед настройкой убедитесь, что служба IPSec Policy Agent запущена: Нажмите Win + R , введите services.msc и нажмите Enter . Найдите IPsec Policy Agent . Если она не работает, нажмите ПКМ → Свойства . Установите Тип запуска: Автоматически , затем нажмите Запустить . Настройка политики IPSec через «Локальную политику безопасности» Нажмите Win + R , введите secpol.msc , нажмите Enter . Перейдите в Политики IP-безопасности в локальном компьютере . В правом окне нажмите Создать политику IP-безопасности → Далее . Укажите имя политики (например, "IPSec VPN"), снимите флажок Активировать правило по умолчанию , нажмите Далее . Нажмите Добавить , чтобы создать правило. Транспортный или туннельный режим : Если IPSec для защищенной локальной сети – выберите Транспортный режим . Если IPSec для VPN – выберите Туннельн...

Полный обзор AWX для Ansible: возможности, назначение и логика работы

AWX — это веб-интерфейс, REST API и механизм управления для Ansible, который делает автоматизацию удобнее и управляемее. Он является основой для Red Hat Ansible Automation Platform (AAP) и предоставляет мощные возможности для администрирования инфраструктуры. 🔹 Возможности AWX Управление инвентарем Подключение к динамическим инвентарям (например, AWS, GCP, VMware). Группировка хостов и управление ими через GUI. Импорт инвентаря из статических файлов (INI, YAML, JSON). Планирование и выполнение заданий Запуск плейбуков по расписанию. Возможность ручного запуска через интерфейс. Параллельное выполнение нескольких задач. Контроль доступа и безопасность Ролевая модель управления (RBAC). Поддержка интеграции с LDAP, SAML, OAuth. Гибкие политики доступа к ресурсам. Логирование и мониторинг Детальный журнал выполнения задач. Интеграция с Grafana, Prometheus, ELK. Уведомления (Slack, Email, Webhook). CI/CD и интеграция с SCM Авто...