Yandex Cloud
Поиск
Связаться с экспертомПопробовать бесплатно
  • Кейсы
  • Документация
  • Блог
  • Все сервисы
    • Cloud Interconnect
    • Cloud Backup
    • Cloud Registry
    • Yandex AI Studio
    • Compute Cloud
    • Object Storage
    • Managed Service for Kubernetes®
    • Yandex BareMetal
    • Smart Web Security
    • Security Deck
    • Managed Service for PostgreSQL
    • Managed Service for ClickHouse®
    • Monium
    • Cloud CDN
    • Network Load Balancer
    • Virtual Private Cloud
    • Cloud DNS
    • Application Load Balancer
    • Yandex Cloud Video
    • Stackland
    • Yandex Cloud Router
    • Yandex Managed Service for Trino
    • Managed Service for MySQL®
    • Managed Service for Valkey™
    • Managed Service for Apache Spark™
    • Yandex StoreDoc
    • Managed Service for OpenSearch
    • Managed Service for Apache Kafka®
    • Data Transfer
    • Yandex MPP Analytics Engine for PostgreSQL
    • Yandex Managed Service for Apache Airflow®
    • Data Processing
    • Yandex MetaData Hub
    • Managed Service for YDB
    • Managed Service for Sharded PostgreSQL
    • Managed Service for YTsaurus
    • Yandex WebSQL
    • DataLens
    • Yandex Search API
    • SpeechSense
    • SpeechKit
    • DataSphere
    • Vision OCR
    • Translate
    • VibeCraft
    • Yandex Cloud Detection and Response
    • Yandex Identity Hub
    • Key Management Service
    • Certificate Manager
    • Yandex Lockbox
    • Audit Trails
    • SmartCaptcha
    • Cloud Desktop
    • GOST Gateway
    • Yandex SIEM
    • SourceCraft Code Assistant
    • Container Registry
    • Managed Service for GitLab
    • SourceCraft
    • Managed Service for Prometheus®
    • Cloud Functions
    • API Gateway
    • Yandex Cloud Postbox
    • Message Queue
    • IoT Core
    • Data Streams
    • Serverless Containers
    • Cloud Notification Service
    • Yandex Query
    • Identity and Access Management
    • Yandex Cloud Console
    • Resource Manager
    • Yandex Cloud Billing
    • Yandex Cloud Quota Manager
    • Cloud Apps
  • Статус работы сервисов
  • Marketplace
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Искусственный интеллект
    • Безопасность
    • Инструменты DevOps
    • Бессерверные вычисления
    • Управление ресурсами
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Yandex Cloud Trust
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Калькулятор цен
    • Тарифы
  • Кейсы
  • Документация
  • Блог
Сделано на Gravity UI
Проект Яндекса
© 2026 ООО «Яндекс.Облако»
Yandex Managed Service for YDB
  • Начало работы
    • Все руководства
    • Развертывание веб-приложения
    • Подключение к YDB из функции Yandex Cloud Functions на Python
    • Подключение к базе данных YDB из функции Yandex Cloud Functions на Node.js
    • Разработка навыка Алисы и сайта с авторизацией
    • Миграция базы данных из Yandex Managed Service for MySQL® с помощью Yandex Data Transfer
    • Поставка данных из YDB в Yandex Managed Service for Apache Kafka® с помощью Yandex Data Transfer
    • Поставка данных из YDB в Yandex Data Streams с помощью Yandex Data Transfer
    • Загрузка данных из Yandex Object Storage в YDB с помощью Yandex Data Transfer
    • Загрузка данных из YDB в Yandex Object Storage с помощью Yandex Data Transfer
    • Загрузка данных из YDB в Yandex Managed Service for ClickHouse® с помощью Yandex Data Transfer
    • Загрузка данных из YDB в Yandex Managed Service for PostgreSQL с помощью Yandex Data Transfer
    • Миграция данных из Yandex Managed Service for OpenSearch в YDB с помощью Yandex Data Transfer
    • Построение пайплайна CI/CD в GitLab с использованием serverless-продуктов
    • Поставка данных из Yandex Managed Service for PostgreSQL в Yandex Managed Service for YDB с помощью Yandex Data Transfer
    • Передача событий Yandex Cloud Postbox в Yandex Data Streams и их анализ с помощью Yandex DataLens
    • Поставка данных из Yandex Managed Service for Apache Kafka® в Data Streams с помощью Yandex Data Transfer
    • Поставка данных из Yandex Managed Service for Apache Kafka® с помощью Yandex Data Transfer
    • Сохранение потока данных Data Streams в Managed Service for ClickHouse®
    • Поставка данных из очереди Data Streams в Managed Service for Apache Kafka® с помощью Data Transfer
    • Поставка данных из очереди Data Streams в Managed Service for YDB с помощью Data Transfer
    • Захват изменений MySQL® и поставка в YDS
    • Захват изменений PostgreSQL и поставка в YDS
    • Интерактивная отладка функций Cloud Functions
    • Блокировка состояний Terraform с помощью Managed Service for YDB
    • Разработка пользовательской интеграции в API Gateway
    • Разработка CRUD API для сервиса фильмов
    • Создание интерактивного serverless-приложения с использованием WebSocket
    • Интеграция Yandex Cloud Postbox с внешними системами через вебхуки
    • Развертывание кластера YDB во внешней инфраструктуре
  • Управление доступом
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Вопросы и ответы
  • Публичные материалы
  • Обучающие курсы

В этой статье:

  • Подготовьте инфраструктуру для развертывания кластера
  • Выберите площадку для размещения серверов кластера
  • Выберите конфигурацию кластера
  • Подготовьте серверы
  • Подготовьте управляющую машину
  • Задайте настройки конфигурации кластера
  • Разверните кластер
  • Проверьте работу кластера
  • Проверка в YDB UI
  • Тестирование с помощью YDB CLI
  • Перенесите данные из резервной копии
  • Управляйте кластером
  • Перезапуск кластера
  • Изменение конфигурации YDB
  • Обновление версии YDB
  • Резервное копирование данных
  • Если Ansible вам не подходит
  1. Практические руководства
  2. Развертывание кластера YDB во внешней инфраструктуре

Развертывание кластера YDB во внешней инфраструктуре

Статья создана
Yandex Cloud
Обновлена 16 октября 2026 г.
Открыть в Markdown
  • Подготовьте инфраструктуру для развертывания кластера
    • Выберите площадку для размещения серверов кластера
    • Выберите конфигурацию кластера
    • Подготовьте серверы
  • Подготовьте управляющую машину
    • Задайте настройки конфигурации кластера
  • Разверните кластер
  • Проверьте работу кластера
    • Проверка в YDB UI
    • Тестирование с помощью YDB CLI
  • Перенесите данные из резервной копии
  • Управляйте кластером
    • Перезапуск кластера
    • Изменение конфигурации YDB
    • Обновление версии YDB
    • Резервное копирование данных
  • Если Ansible вам не подходит

СУБД YDB распространяется с открытым исходным кодом, поэтому вы можете самостоятельно развернуть кластер YDB на собственном оборудовании или в инфраструктуре стороннего поставщика облачных сервисов.

В этом руководстве с помощью Ansible вы развернете кластер YDB на серверах, которые расположены вне инфраструктуры Yandex Cloud.

Примечание

О других способах развертывания кластеров YDB во внешней инфраструктуре читайте в разделе Способы развертывания YDB.

Чтобы самостоятельно развернуть кластер YDB во внешней инфраструктуре с помощью Ansible:

  1. Подготовьте инфраструктуру для развертывания кластера.
  2. Подготовьте управляющую машину.
  3. Разверните кластер.
  4. Проверьте работу кластера.
  5. Перенесите данные из резервной копии.
  6. Управляйте кластером.

Если развертывание с помощью Ansible вам не подходит, рассмотрите другие способы развертывания кластера YDB во внешней инфраструктуре.

Подготовьте инфраструктуру для развертывания кластераПодготовьте инфраструктуру для развертывания кластера

Выберите площадку для размещения серверов кластераВыберите площадку для размещения серверов кластера

Вы можете развернуть кластер YDB на физических серверах или виртуальных машинах. СУБД YDB работает с данными без использования файловой системы сервера и обращается к дискам напрямую как к блочным устройствам, поэтому рекомендуем использовать в кластерах физические (локальные) диски SSD или NVMe.

Если вы развертываете кластер на виртуальных машинах, не используйте сетевые диски, поскольку они снижают производительность СУБД. При развертывании кластера на виртуальных машинах не допускайте переподписки по vCPU и RAM: убедитесь, что под каждую виртуальную машину выделено необходимое количество ядер и памяти, которые гипервизор не будет перераспределять в пользу других ВМ на хосте.

Для промышленной эксплуатации и тестирования производительности рекомендуется использовать диски размером не менее 800 ГБ без применения любых технологий виртуализации системы хранения данных. Развертывать кластер YDB на виртуальных машинах с сетевыми дисками можно только для знакомства с СУБД и функциональных проверок.

В качестве площадки для размещения кластера вы можете использовать выделенные серверы в сервисе Yandex BareMetal. В отношении серверов BareMetal действуют квоты, которые вы можете запросить под ваши задачи.

Выберите конфигурацию кластераВыберите конфигурацию кластера

При развертывании кластера YDB вам потребуется выбрать режим работы распределенного хранилища YDB. Выбор режима зависит от ожидаемой нагрузки на кластер и требований к доступности баз данных. Этот выбор определяет будущую конфигурацию кластера.

После создания кластера изменить режим его работы нельзя. При этом позднее за счет новых серверов вы сможете расширить кластер, не останавливая его работу и не прерывая доступ к данным.

Минимальная отказоустойчивая конфигурация кластера развертывается на трех серверах и использует режим mirror-3-dc. Для развертывания такой конфигурации потребуются три сервера, каждый с четырьмя дисками: один диск под систему, три — под данные. Кластер YDB хранит копию данных на каждом из трех серверов и продолжает работу при отказе одного из них.

Важно

Чтобы полный отказ дата-центра не привел к недоступности данных в кластере, разместите серверы в трех разных дата-центрах.

Готовый пример Ansible-плейбука (англ. playbook) для развертывания кластера в режиме mirror-3-dc доступен в репозитории на GitHub. Это наиболее распространенный режим работы кластера, поэтому далее в этом руководстве вы развернете кластер YDB с использованием этого примера.

Репозиторий также содержит примеры плейбуков для конфигураций с повышенными требованиями к отказоустойчивости:

  • кластер в режиме mirror-3-dc на девяти серверах в трех дата-центрах продолжает работу при отказе дата-центра и еще одной стойки;
  • кластер в режиме block-4-2 на восьми серверах в одном дата-центре продолжает работу при отказе двух стоек.

Подробнее о режимах работы кластеров и требованиях к оборудованию читайте в разделе Топология кластера YDB.

Подготовьте серверыПодготовьте серверы

Кластер YDB состоит из узлов хранения, которые сохраняют данные на дисках, и узлов базы данных, которые обрабатывают запросы. В параметрах Ansible узлы хранения называются статическими (static), а узлы базы данных — динамическими (dynamic). В рассматриваемом примере на каждом сервере кластера работают один узел хранения и два узла базы данных.

Перед установкой убедитесь, что ваши серверы соответствуют системным требованиям YDB и требованиям выбранного примера:

  • Архитектура процессора: x86-64 с поддержкой инструкций AVX2.

    Архитектура ARM для серверных развертываний YDB не поддерживается.

  • Количество vCPU на один сервер для выбранного примера: 24.

    Узел хранения и два узла базы данных используют по 8 vCPU каждый. Это требование относится к конфигурации из выбранного примера. Вы можете уменьшить количество vCPU, изменив параметры установки и количество узлов базы данных.

  • Минимальный объем RAM на один сервер: 16 ГБ.

    Для защиты от аппаратных сбоев лучше использовать память с коррекцией ошибок (ECC).

  • Диски:

    • Один системный диск.
    • Как минимум три диска для данных: объем каждого не менее 80 ГБ (для промышленной эксплуатации — не менее 800 ГБ).

    YDB использует диски под данные целиком: при установке плейбук размечает и очищает их, поэтому на этих дисках не должно быть нужных данных, разделов и файловых систем.

  • Операционная система: Linux с ядром версии 4.19 или выше и библиотекой libc версии 2.30 или выше. Например: Ubuntu 20.04 или Debian 11.

    Наилучшую производительность обеспечивают ОС с ядром версии 6.6 и выше — в них улучшены подсистемы ввода-вывода, планировщика и управления памятью.

  • Программное обеспечение: на каждом сервере установлен Python версии 3.8 или выше, доступный по пути /usr/bin/python3.

  • Права доступа: пользователь, от имени которого Ansible подключается к серверам, может выполнять команды через sudo без ввода пароля.

  • Сеть:

    • Серверы должны быть связаны между собой по сети. Управляющая машина должна подключаться к каждому из них по SSH (открыт TCP-порт 22).

    • FQDN серверов должны разрешаться в IP-адреса на управляющей машине, на всех серверах кластера и на машине с YDB CLI.

    • На серверах должен быть открыт доступ в интернет: плейбук устанавливает системные пакеты из репозиториев дистрибутива.

    • NTP-серверы, указанные в параметре system_ntp_servers, должны быть доступны из сети кластера. По этим NTP-серверам плейбук настраивает синхронизацию часов.

    • Сетевая конфигурация должна разрешать TCP-соединения по следующим портам:

      • 2135–2138 — gRPC для клиент-кластерного взаимодействия;
      • 19001–19004 — Interconnect для внутрикластерного взаимодействия узлов;
      • 8765–8768 — HTTP-интерфейс YDB UI.

      В параметре ydb_dynnodes (значение поля offset) вы можете изменить номера портов, которые используются узлами базы данных (при нулевом значении offset используются, соответственно, порты 2136, 19002 и 8766).

      В примере из репозитория значения offset равны 1 и 2, поэтому узлы базы данных используют, соответственно, TCP-порты 2137 и 2138, 19003 и 19004, 8767 и 8768. Приложениям и YDB CLI нужен доступ к gRPC-портам всех узлов.

Подготовьте управляющую машинуПодготовьте управляющую машину

Ansible запускается на управляющей машине, с которой должен быть открыт доступ по SSH ко всем серверам кластера. Это может быть ваш рабочий компьютер или отдельный сервер. На управляющей машине должен быть установлен Python (версии от 3.10 до 3.14) и пакет для работы с виртуальными окружениями venv.

В руководстве используются YDB версии 24.4.4.12, ansible-core версии 2.16.14, репозиторий ydb-ansible-examples в ревизии 4e7cca2fa2ebb5a9e3c6bae186d2eed504d7277b и коллекция ydb-ansible в ревизии 732eddb6d4aa99bdb4b2ca1658ba97c91e07aecd. При использовании других версий порядок действий и результат могут отличаться.

Чтобы подготовить управляющую машину:

  1. Создайте и активируйте новое виртуальное окружение Python:

    python3 -m venv venv-ansible
    source venv-ansible/bin/activate
    
  2. Клонируйте репозиторий с примерами YDB:

    git clone https://github.com/ydb-platform/ydb-ansible-examples.git
    cd ydb-ansible-examples
    git checkout 4e7cca2fa2ebb5a9e3c6bae186d2eed504d7277b
    
  3. Установите зависимости, необходимые для развертывания примера:

    pip3 install -r requirements.txt
    ansible-galaxy collection install git+https://github.com/ydb-platform/ydb-ansible.git,732eddb6d4aa99bdb4b2ca1658ba97c91e07aecd
    

    Из файла requirements.txt команда pip3 устанавливает ansible-core версии 2.16.14, а команда ansible-galaxy устанавливает коллекцию плейбуков ydb_platform.ydb из репозитория ydb-ansible в указанной ревизии.

Подробнее о подготовке управляющей машины читайте в разделе Подготовка к развертыванию.

Задайте настройки конфигурации кластераЗадайте настройки конфигурации кластера

Задайте настройки вашего будущего кластера. Файлы конфигурации расположены в директории с примером развертывания кластера в минимальной конфигурации (3-nodes-mirror-3-dc). Далее в инструкциях пути к файлам будут указываться относительно этой директории.

Настройки подключения по SSHНастройки подключения по SSH

Конфигурация Ansible сохранена в файле ansible.cfg. В примере из репозитория проверка подлинности SSH-хостов отключена с помощью параметра host_key_checking = False, а в параметре ssh_args указаны аргументы UserKnownHostsFile=/dev/null и StrictHostKeyChecking=no. Такая конфигурация повышает удобство автоматизации, но снижает уровень безопасности SSH-соединения. Используйте ее только для тестовых и временных установок.

При промышленной эксплуатации YDB рекомендуется включить проверку подлинности SSH-хостов и настроить доверенные ключи вручную. Для этого:

  1. Перейдите в директорию с нужным примером:

    cd 3-nodes-mirror-3-dc
    
  2. В любом текстовом редакторе откройте основной файл конфигурации Ansible ansible.cfg.

  3. Замените значение параметра host_key_checking на True.

  4. В параметре ssh_args удалите аргументы UserKnownHostsFile=/dev/null и StrictHostKeyChecking=no, затем сохраните изменения.

  5. Получите открытые ключи серверов кластера и выведите их отпечатки:

    ssh-keyscan -H <fqdn_сервера_1> <fqdn_сервера_2> <fqdn_сервера_3> > ydb_known_hosts
    ssh-keygen -lf ydb_known_hosts
    
  6. Сверьте полученные отпечатки по доверенному каналу.

  7. Если отпечатки совпадают, добавьте проверенные ключи в файл ~/.ssh/known_hosts на управляющей машине:

    cat ydb_known_hosts >> ~/.ssh/known_hosts
    

Подробнее о файле конфигурации Ansible читайте в документации к Ansible.

Параметры установкиПараметры установки

Задайте параметры установки:

  1. Убедитесь, что в терминале управляющей машины у вас открыта директория 3-nodes-mirror-3-dc репозитория с примерами.

  2. В любом текстовом редакторе откройте основной файл инвентаризации inventory/50-inventory.yaml и внесите в него следующие изменения:

    • В секциях hosts и ydb_brokers замените имена static-node-1.ydb-cluster.com, static-node-2.ydb-cluster.com и static-node-3.ydb-cluster.com на полные доменные имена (FQDN) ваших серверов.

    • В поле ansible_user задайте имя пользователя, от имени которого Ansible будет подключаться по SSH к серверам кластера.

    • В поле ansible_ssh_private_key_file укажите локальный путь к SSH-ключу, с которым Ansible будет подключаться к серверам кластера.

    • В разделе ydb_disks перечислите имена дисков для данных YDB, которые установлены на ваших серверах.

      Пример предполагает, что система установлена на диск /dev/vda (не указан в файле конфигурации), а диски /dev/vdb, /dev/vdc и /dev/vdd предназначены для данных YDB.

      Совет

      Чтобы узнать имена дисков на ваших серверах, используйте команду lsblk.

    • В поле ydb_version укажите версию YDB из списка на странице загрузок.

      Если вы предварительно скачали дистрибутив, удалите поле ydb_version, раскомментируйте поле ydb_archive и укажите в нем локальный путь к архиву. Не указывайте путь к архиву в поле ydb_version.

    • В поле ydb_tls_dir указан путь к директории с TLS-сертификатами. Добавьте ваши сертификаты в эту директорию. Подробнее о добавлении сертификатов читайте в разделе Подготовка ключей и сертификатов TLS.

      Если у вас нет своих TLS-сертификатов, удалите строку ydb_tls_dir. В этом случае плейбук сгенерирует для всех серверов самоподписанные сертификаты и сохранит их на управляющей машине в каталоге files/TLS. Сертификаты для имен серверов кластера также выпускает скрипт, который расположен в директории TLS репозитория с примерами.

    • В полях ydb_cores_static и ydb_cores_dynamic задайте количество vCPU, резервируемых на каждом сервере соответственно под узел хранения и узлы базы данных.

      В примере для обоих полей задано значение 8, при этом в разделе ydb_dynnodes указаны два узла базы данных на один сервер. Поэтому для этой конфигурации на сервере должно быть суммарно 24 vCPU (8 под узел хранения и 16 под узлы базы данных).

      Если на ваших серверах меньше vCPU, уменьшите значения полей ydb_cores_static и ydb_cores_dynamic или оставьте в разделе ydb_dynnodes только один узел базы данных.

    • В поле ydb_database_groups задайте начальное число групп хранения в базе данных. Для тестирования на дисках небольшого объема рекомендуется значение 1.

      Для дисков объемом более 800 ГБ в режиме mirror-3-dc рекомендуется указать 84% от общего количества дисков с округлением вниз.

    • В полях system_timezone и system_ntp_servers задайте значения, которые соответствуют расположению вашей инфраструктуры. При развертывании кластера в on-premise инфраструктуре настоятельно рекомендуем использовать локальный NTP-сервер. Подробнее читайте в разделе Развертывание кластера с использованием конфигурации V1.

    • В поле ydb_domain оставьте значение Root, которое используется в файле files/config.yaml. В поле ydb_dbname задайте имя базы данных. В примере путь к базе данных задан как /Root/database.

Подробнее о настройках в файле конфигурации 50-inventory.yaml читайте в разделе Развертывание кластера с использованием конфигурации V1.

Конфигурация YDBКонфигурация YDB

  1. Убедитесь, что в терминале управляющей машины у вас открыта директория 3-nodes-mirror-3-dc репозитория с примерами.

  2. В любом текстовом редакторе откройте конфигурационный файл YDB files/config.yaml и внесите в него следующие изменения:

    В секциях hosts и blob_storage_config замените имена хостов на FQDN серверов, которые вы будете использовать для создания кластера.

    В режиме mirror-3-dc на трех узлах каждый сервер рассматривается как отдельный дата-центр, поэтому значения поля data_center у трех хостов в конфигурации должны различаться.

    Пути вида /dev/disk/by-partlabel/ydb_disk_1 оставьте без изменений, потому что плейбук создает на дисках разделы с метками, которые указаны в секции ydb_disks файла инвентаризации inventory/50-inventory.yaml. Остальные настройки в файле files/config.yaml также оставьте без изменений.

Подробнее о настройках в файле конфигурации config.yaml читайте в разделе Развертывание кластера с использованием конфигурации V1.

Пароль пользователя rootПароль пользователя root

Пароль пользователя root в YDB хранится в файле inventory/99-inventory-vault.yaml, который зашифрован с помощью Ansible Vault.

Чтобы установить пароль пользователя root:

  1. Убедитесь, что в терминале управляющей машины у вас открыта директория 3-nodes-mirror-3-dc репозитория с примерами.

  2. Пароль для шифрования хранится в файле ansible_vault_password_file. Откройте этот файл в любом текстовом редакторе.

    В примере в этом файле указано слово password — замените его своим паролем.

  3. Создайте файл с паролем пользователя root и зашифруйте его:

    cat > inventory/99-inventory-vault.yaml <<'EOF'
    all:
      children:
        ydb:
          vars:
            ydb_password: '<пароль_пользователя_root>'
    EOF
    ansible-vault encrypt inventory/99-inventory-vault.yaml
    

    Кавычки необходимы, чтобы YAML обрабатывал пароль как строку. Если пароль содержит одинарную кавычку, продублируйте ее, например pa''ssword.

В результате пользователь root получит полный доступ к кластеру. Позднее вы сможете ограничить этот доступ.

Подробнее о работе Ansible Vault читайте в документации к Ansible.

Разверните кластерРазверните кластер

После того как вы подготовили все конфигурационные файлы, запустите установку кластера:

  1. Убедитесь, что в терминале управляющей машины у вас открыта директория 3-nodes-mirror-3-dc репозитория с примерами.

  2. Выполните команду:

    ansible-playbook ydb_platform.ydb.initial_setup
    

    Вскоре после начала процесса потребуется подтвердить полную очистку настроенных дисков (указаны в разделе ydb_disks файла инвентаризации inventory/50-inventory.yaml). Перед подтверждением еще раз убедитесь, что в списке нет системного диска или дисков с нужными данными.

Процесс развертывания кластера может занять десятки минут в зависимости от окружения и настроек.

Последним шагом плейбук выполняет тестовые запросы к временным таблицам. При успешной установке тестовые запросы возвращают значения count 3 и sum 6, и итоговая сводка PLAY RECAP показывает failed=0 для каждого из серверов:

TASK [ydb_platform.ydb.ydbd_dynamic : run test queries] ****************
ok: [static-node-1.ydb-cluster.com] => (item={'instance': 'a'}) => {... "msg": "all test queries were successful, details: {\"count\":3,\"sum\":6}\n"}
...
PLAY RECAP *************************************************************
static-node-1.ydb-cluster.com : ok=167  changed=80   unreachable=0    failed=0    skipped=167  rescued=0    ignored=0
static-node-2.ydb-cluster.com : ok=136  changed=69   unreachable=0    failed=0    skipped=113  rescued=0    ignored=0
static-node-3.ydb-cluster.com : ok=136  changed=69   unreachable=0    failed=0    skipped=113  rescued=0    ignored=0

После установки в кластере появится домен Root, база данных с именем из поля ydb_dbname и пользователь root.

Подробнее о развертывании кластера YDB читайте в разделе Развертывание кластера с использованием конфигурации V1.

Проверьте работу кластераПроверьте работу кластера

Проверка в YDB UIПроверка в YDB UI

Самый простой способ проверить работу только что развернутого кластера — использовать YDB UI, который доступен на TCP-порте 8765 каждого сервера.

Если из браузера есть прямой доступ к этому порту, YDB UI доступен по адресу http://<fqdn_сервера>:8765.

Если прямого доступа нет, настройте SSH-туннелирование. Для этого на локальной машине выполните команду:

ssh -L 8765:localhost:8765 -i <закрытый_ключ> <имя_пользователя>@<FQDN_сервера_кластера>

После успешного установления соединения YDB UI сервера будет доступен в браузере по адресу http://localhost:8765.

Чтобы проверить работоспособность кластера:

  1. В браузере откройте страницу состояния кластера:

    • при прямом доступе: http://<fqdn_сервера>:8765/monitoring/cluster/tenants
    • при подключении через SSH-туннель: http://localhost:8765/monitoring/cluster/tenants

    Убедитесь, что все параметры кластера отображаются зеленым цветом.

  2. В браузере откройте страницу состояния группы хранения:

    • при прямом доступе: http://<fqdn_сервера>:8765/monitoring/cluster/storage
    • при подключении через SSH-туннель: http://localhost:8765/monitoring/cluster/storage

    Убедитесь, что все индикаторы VDisks отображаются зеленым цветом, а при наведении курсора на каждый из индикаторов для него всплывает статус Ok.

Тестирование с помощью YDB CLIТестирование с помощью YDB CLI

Протестировать работоспособность кластера можно с помощью встроенных нагрузочных тестов в YDB CLI. Для этого:

  1. Установите YDB CLI.

  2. Убедитесь, что в терминале управляющей машины у вас открыта директория 3-nodes-mirror-3-dc репозитория с примерами на управляющей машине.

  3. Создайте профиль подключения YDB CLI:

    ydb \
      config profile create <имя_профиля> \
      -d /<домен>/<имя_базы> \
      -e grpcs://<FQDN_сервера>:2135 \
      --ca-file $(pwd)/files/TLS/certs/ca.crt \
      --user root \
      --password-file <путь_к_файлу_с_паролем>
    

    Где:

    • <имя_профиля> — имя создаваемого профиля подключения.
    • -d — путь к базе данных, где <домен> — значение поля ydb_domain, а <имя_базы> — значение поля ydb_dbname в файле inventory/50-inventory.yaml, который вы настроили ранее. Путь к базе данных в примере — /Root/database.
    • -e — конечная точка (эндпоинт) хоста сервера, строка в формате protocol://host:port. Допускается указать FQDN любого сервера в кластере без указания порта. По умолчанию используется порт 2135.
    • --ca-file — путь к корневому TLS-сертификату для подключений к базе данных по grpcs. Путь к файлу ca.crt в приведенном примере указывает на сертификаты, которые сгенерировал плейбук. Если вы использовали собственные сертификаты, укажите путь к вашему файлу ca.crt.
    • --password-file — путь к файлу с паролем. Удалите этот параметр, чтобы ввести пароль вручную.
  4. Выполните тестовый YQL-запрос:

    ydb -p <имя_профиля> sql -s 'SELECT 1;'
    

    Команда выведет в терминал результат запроса SELECT 1 в табличной форме.

  5. Создайте тестовую таблицу kv_test:

    ydb -p <имя_профиля> workload kv init --init-upserts 1000 --cols 4
    

    Команда создаст тестовую таблицу kv_test из четырех столбцов и 1 000 строк.

  6. Убедитесь, что таблица kv_test создалась и была заполнена тестовыми данными:

    ydb -p <имя_профиля> sql -s 'select * from kv_test limit 10;'
    

    Команда выведет в терминал таблицу из первых десяти строк.

  7. Выполните нагрузочный тест upsert с выводом времени выполнения:

    ydb -p <имя_профиля> workload kv run upsert --print-timestamp
    

    В результате команда выведет таблицу с количеством транзакций в секунду, повторов и ошибок, а также процентили задержек запросов:

    Window Txs/Sec Retries Errors  p50(ms) p95(ms) p99(ms) pMax(ms)        Timestamp
    1          727 0       0       11      27      71      116     2024-02-14T12:56:39Z
    2          882 0       0       10      21      29      38      2024-02-14T12:56:40Z
    3          848 0       0       10      22      30      105     2024-02-14T12:56:41Z
    4          901 0       0       9       20      27      42      2024-02-14T12:56:42Z
    5          879 0       0       10      22      31      59      2024-02-14T12:56:43Z
    ...
    
  8. Удалите таблицу kv_test:

    ydb -p <имя_профиля> workload kv clean
    

Подробнее о параметрах создания тестовой таблицы и тестах читайте в разделе Key-Value нагрузка.

Перенесите данные из резервной копииПеренесите данные из резервной копии

Если ранее вы выгружали данные из облачного кластера Yandex Managed Service for YDB в бакет Yandex Object Storage с помощью команды YDB CLI ydb export s3 или сохраняли их локальную копию с помощью команды ydb tools dump, вы можете загрузить данные из таких резервных копий в новый кластер YDB во внешней инфраструктуре.

Чтобы восстановить данные, которые были сохранены в бакете, используйте команду YDB CLI ydb import s3. Подробнее об использовании этой команды с примерами восстановления читайте в разделе Загрузка из S3-совместимого хранилища.

Чтобы восстановить данные из локальной копии, используйте команду YDB CLI ydb tools restore. Подробнее об использовании этой команды с примерами восстановления читайте в разделе Загрузка из файловой системы.

Управляйте кластеромУправляйте кластером

Вы можете использовать проект Ansible, который настроили ранее, для дальнейшего обслуживания кластера. Запускайте плейбуки обслуживания кластера из той же директории, из которой вы этот кластер развертывали.

Перезапуск кластераПерезапуск кластера

Чтобы перезапустить кластер, выполните плейбук ydb_platform.ydb.restart. Этот плейбук поочередно перезапустит сначала узлы хранения, затем узлы базы данных.

Подробнее о перезапуске кластера читайте в разделе Перезапуск кластеров YDB, развернутых с помощью Ansible.

Изменение конфигурации YDBИзменение конфигурации YDB

Чтобы изменить конфигурацию кластера, внесите необходимые изменения в файл files/config.yaml и выполните плейбук ydb_platform.ydb.update_config.

Подробнее об изменении конфигурации кластера читайте в разделе Обновление конфигурации кластеров YDB, развернутых с Ansible.

Обновление версии YDBОбновление версии YDB

Чтобы обновить версию YDB, внесите изменения в основной файл инвентаризации inventory/50-inventory.yaml и выполните плейбук ydb_platform.ydb.update_executable. Этот плейбук поочередно перезапустит узлы кластера.

Внимание

Прежде чем обновлять версию YDB, изучите правила совместимости версий YDB.

Подробнее об обновлении версии YDB кластера читайте в разделе Обновление версии YDB на кластерах, развернутых с помощью Ansible.

Резервное копирование данныхРезервное копирование данных

Отказоустойчивость защищает данные в кластере от отказов оборудования. От логических ошибок, например от массового удаления или повреждения данных приложениями или пользователями, может защитить только регулярное резервное копирование данных с хранением резервных копий вне кластера.

Чтобы настроить регулярное резервное копирование данных, используйте команду ydb export s3 (копирование данных в бакет Yandex Object Storage) или команду ydb tools dump (копирование в локальные файлы).

Подробнее о способах резервного копирования читайте в разделе Резервное копирование и восстановление.

Если Ansible вам не подходитЕсли Ansible вам не подходит

Если Ansible по какой-то причине не устраивает вас как инструмент развертывания кластера YDB, вы можете развернуть кластер вручную. В этом случае на каждом сервере кластера вы самостоятельно выполните те шаги, которые выполняет плейбук Ansible:

  1. Создание системного пользователя ydb и увеличение лимита открытых файловых дескрипторов.
  2. Скачивание дистрибутива YDB с открытым исходным кодом и установка исполняемого файла ydbd с библиотеками.
  3. Разметка дисков под данные, подготовка ключей и сертификатов TLS для каждого сервера.
  4. Подготовка файла конфигурации кластера и запуск узлов хранения.
  5. Инициализация кластера, создание базы данных и запуск узлов базы данных.
  6. Настройка учетных записей и проверка работы базы данных.

Подробнее о способах развертывания кластеров YDB во внешней инфраструктуре читайте в разделе Способы развертывания YDB.

Была ли статья полезна?

Предыдущая
Интеграция Yandex Cloud Postbox с внешними системами через вебхуки
Следующая
Обзор
Сделано на Gravity UI
Проект Яндекса
© 2026 ООО «Яндекс.Облако»