Как развернуть Arenadata DB: дополнения к инструкции по установке

26.05.2021
Ранее мы уже рассказывали про особенности и области применения аналитической СУДБ Greenplum (GP), а также про основные отличия нашего продукта — Arenadata DB (ADB) — от ванильной сборки GP. В этом материале речь пойдёт про некоторые нюансы установки Arenadata DB и про ключевые отличия в установке от Opens Source-версии Greenplum.
Установка Arenadata DB (Greenplum)

Отличия в установке

Ванильный Greenplum устанавливается через ручное выполнение пошаговых инструкций и выставления параметров множества настроек. Поскольку это СУБД с массивно-параллельной архитектурой, число серверов в кластере может доходить до 200. В базовом сценарии это влечёт за собой огромные объёмы работ в ручном режиме.

Так, на каждом сервере необходимо создать пользователя, настроить ключи авторизации по SSH, настроить параметры операционной системы, установить необходимые пакеты и выставить оптимальные для работы СУБД параметры. Крайне важно, чтобы эти настройки были одинаковыми на всех серверах. Конечно, есть специальные системы, которые позволяют управлять сразу группой серверов, но для их запуска и поддержки всё равно потребуется специалист с соответствующими навыками и знаниями.

По сути, Greenplum не существует в виде готового дистрибутива. Есть только официальная документация по ручной установке и конфигурированию всех необходимых компонентов. В своём продукте мы пошли другим путём: заменили все ручные операции по установке загрузкой бандлов через веб-интерфейс. Знаний о том, какие настройки ядра были изменены или как были подмонтированы диски, не потребуется. Всё это (и многое другое) зашито внутри бандла в виде автоматизированного сценария на основе ansible-скриптов.

Полную автоматизацию этих процессов обеспечивает Arenadata Cluster Manager (ADCM) — полностью нами разработанный продукт с открытым исходным кодом. Если кратко — это универсальный оркестратор гибридного ИТ-ландшафта, благодаря которому в автоматическом режиме происходят установка, настройка и обновление кластеров, настройки операционной системы, сервисов, сети и монтирование дисков. С помощью ADCM можно разворачивать data-сервисы как в облаке, так и on-premise, а также она может служить в качестве PaaS-сервисов. Подробнее об этом можно почитать в разделе про ADCM.

Базовый алгоритм развёртывания ADB

Если мы говорим про окружение разработки или тестовое окружение, то можно использовать любую виртуальную инфраструктуру. Это может быть приватное облако на VMware либо любые публичные облака. Для начала необходимо установить и настроить сервер ADCM. На нашем сайте есть подробная инструкция по его установке.

Основные шаги установки:
  1. Разворачиваем сервер с совместимой операционной системой и подключаемся к нему по SSH.
  2. Устанавливаем на него ADCM в виде Docker-контейнера.
  3. Запускаем контейнер и коннектимся к ADCM через web-интерфейс.
После того как ADCM готов к работе, можем приступать к установке кластера ADB (инструкция здесь).

Основные шаги по созданию кластера:
  1. Загрузить необходимые бандлы.
  2. Создать кластер мониторинга (опционально):
    • загрузить бандл мониторинга;
    • создать хосты для кластера мониторинга;
    • создать экземпляр кластера мониторинга и установить его.
  3. Создать хосты для кластера ADB.
  4. Создать экземпляр кластера ADB и установить его.
Собственно, это всё. Однако несмотря на то, что ADCM многое упрощает, и с ним есть свои нюансы. Далее комментарии к нашим инструкциям, которые дают ответы на наиболее часто возникающие вопросы при установке.

Где скачать бандлы?

В нашем магазине приложений. В частности, бандл ADB доступен по ссылке.

Инфраструктурные бандлы, которые помогают создать хосты и развернуть кластер мониторинга, доступны в разделе Arenadata ADCM Infrastructure Bundles, здесь. Например, для установки кластера на виртуальные или физические сервера, которые уже есть в наличии и на которых уже развёрнута операционная система, потребуется бандл SSH Common Bundle, а для кластера мониторинга нужен бандл Monitoring Bundle.

В инструкции указан пример с использованием бандла Datafort. Что делать, если у нас свои сервера и нужно развернуть кластер на них?

Для этого потребуется инфраструктурный бандл SSH Common Bundle (и немного магии, конечно). Общий гид по решению проблемы следующий:
  1. Загружаем бандл в ADCM, как указано в инструкции.
  2. Переходим на вкладку HOSTPROVIDERS, нажимаем на Create provider. Выбираем из списка бандлов SSH Common, даём имя и нажимаем Create. Провайдер готов.
  3. Переходим на вкладку Host и нажимаем Create host. Выбираем провайдер SSH и указываем имя сервера. Нажимаем Create.

  4. Как только хост будет создан, необходимо на него кликнуть мышкой и заполнить параметры подключения к серверу:
    • Username — пользователь, из-под которого будет происходить подключение к серверу, у него должны быть права на установку пакетов;
    • Password или SSH private key — пароль или приватный SSH-ключ для подключения;
    • Hostname — имя или IP-адрес сервера;
    • Port — порт для подключения SSH;
    • SSH args — параметры подключения по SSH;
    • Ansible become — есть ли у пользователя sudo (требуется, если не используется root);
    • Ansible become password — пароль, если требует команда sudo.
  5. Для проверки доступности хоста нужно кликнуть на Run Action в правом верхнем углу и выбрать Check Connection. Или можно установить status checker (кнопка Install statuschecker), который с определённой периодичностью проверяет доступность хоста и отображает его статус в консоли ADCM.
После настройки всех хостов, которые будут использоваться в кластере ADB, можно приступать к созданию кластера. Инструкция тоже есть, здесь.

В инструкции указано, что можно создать кластер мониторинга. Как это сделать?

  1. Создаём хост в ADCM, на который будут установлены сервисы мониторинга (см. выше в примере с SSH-бандлом).
  2. Далее переходим на вкладку Clusters и кликаем на Create Cluster. В появившемся окне, в поле Bundle нужно выбрать Monitoring, в поле Cluster name указать Monitoring и нажать Save:

  3. Далее — кликнуть на созданный кластер мониторинга, перейти на вкладку Services. Нажать кнопку Add service, выбрать сервисы Grafana и Graphite и нажать Add:

  4. Кликнуть на сервис Grafana, перейти на вкладку Configuration, заполнить поле Password и нажать Save.
  5. Перейти на вкладку Hosts и добавить хост в состав кластера мониторинга:

  6. Перейти на вкладку Host — Components и связать две роли Grafana и Graphite с сервером мониторинга. Для этого поочерёдно для каждой роли кликнуть сначала на роль, потом на сервер. Сохранить, нажав на Save:

  7. Поле Configuration, Status и Import оставить без изменений.
  8. Для запуска установки системы мониторинга нажать кнопку Run Action в правом верхнем углу и кликнуть Install. После того как установка завершится, консоль Grafana будет доступна по адресу http://<mon-server>:3000.

Что делать если во время установки произошла ошибка?

Для этого есть специальная вкладка JOBS, где можно посмотреть все статусы выполнения задач, а также их логи. Достаточно кликнуть на задачу и перейти на вкладку ansible [stdout]:



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



После этого, если вновь заглянуть в ansible [stdout] «упавшей» задачи, можно увидеть дополнительную информацию, которая поможет прояснить детали ошибки.

Как настроить бандлы?

Точечной ручной настройки для запуска сервиса ADB не требуется, но она возможна. Например, если мы зайдём в настройки ADB-кластера, там будет определённый набор настроек с параметрами, заданными по умолчанию. Некоторые нужно знать, для этого в документации есть описание, какие значения они могут принимать.

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

СУБД Arenadata DB по своей сути — набор инстансов PostgreSQL. Просто обычно каждая такая PostgreSQL СУБД работает на одном сервере, а СУБД Greenplum — это набор PostgreSQL, которые работают на серверах внутри одного кластера. Другими словами, на одном сервере может работать сразу несколько инстансов PostgreSQL, а самих серверов внутри кластеров может быть очень много. Инстанс PostgreSQL в Greenplum называют логическим сегментом или просто сегментом. Очень важно указать их правильное число, чтобы рационально утилизировать все ресурсы сервера.

Это самый кастомизируемый параметр ADB. Все остальные — указаны по умолчанию, хотя можно, например, распределить данные по 5 дискам или директориям (для этого нужно внести соответствующие изменения в настройки бандла).

Можно ли интегрировать ADB с системой мониторинга?

Да. Если кластер мониторинга был установлен позже кластера ADB, то есть возможность импортировать мониторинг текущего кластера ADB. Сейчас в качестве решений мониторинга используются Graphite и Grafana. Graphite — набор сервисов, которые хранят данные, а Grafana — это инструмент для их визуализации.

Для этого нужно зайти в настройки кластера ADB и добавить сервис Monitoring Clients:



Во вкладке Import необходимо отметить галочками сервисы мониторинга, чтобы агенты мониторинга понимали, на какой сервер отправлять информацию:



Для каждого сервиса есть предустановленные панели dashboard (ничего настраивать не нужно). После того как установлены мониторинг и ADB, открываем веб-интерфейс Grafana и говорим, что нам нужен dashboard по ADB. В нём уже выведены основные метрики работы серверов: загрузка CPU, памяти, дисков, сетевые интерфейсы и информация о состоянии самой СУБД (как чувствуют себя Postgres-инстансы, все ли они работают и т. д.).

Как использовать виртуальные среды для установки ADB?

Мы рекомендуем работать с виртуальными средами только в тех ситуациях, когда ADB разворачивается в среде разработки или в среде тестирования. Для промышленной — рекомендуем Bare-metal.

Почему это обычная практика

Во-первых, виртуализация — это чаще всего shared-ресурсы, то есть на одном железном сервере запускается несколько виртуальных серверов. Поскольку сама СУБД является кластером, где работает n-количество серверов, главная особенность решения состоит в том, что все они работают одновременно. Если в кластере Greenplum 10 серверов, то после запуска запроса они все начнут работать одномоментно. При этом нагружается одновременно и гипервизор, и сама железка, на которой размещены виртуальные сервера.

Во-вторых, слой виртуализации между железом и ПО вносит задержки. Если в этом слое что-то ломается, то такие сбои отследить непросто.

ADCM поддерживает установку кластера ADB и управление серверами в облаке с помощью специальных облачных бандлов. Например, для Google Cloud Platform или для Yandex Cloud. Если стоит задача использовать конкретное публичное облако, то под него разрабатывается специальный бандл или можно воспользоваться стандартным SSH Bundle.

Все виртуальные среды разные и, если есть задача развернуть ADB в облаке, стоит учесть эти моменты.

Как перевести в промышленную эксплуатацию?

Перевод в прод можно разделить на два основных этапа:
  1. Обучение администрированию системой СУБД.
    Управлением СУБД занимается администратор DBA, который должен знать, как остановить кластер, как перезапустить; как восстанавливать, если вдруг какие-то сегменты не работают. По нашему продукту есть специальный обучающий курс по этой теме.
  2. Обучение разработчиков или пользователей, которые будут непосредственно работать с данными или загружать их в СУБД.
    Здесь тоже предусмотрен отдельный курс для разработчиков и отдельный курс для аналитиков (поможет научиться использовать ADB для решения аналитических задач). В целом, поскольку Greenplum основан на PostgreSQL, синтаксис языка запросов почти такой же, поэтому тем, кто знаком с PostgreSQL, освоиться будет проще.

Два важных нюанса

  1. У конечных пользователей системы всегда есть своя исторически сложившаяся ИТ-инфраструктура с legacy-элементами, политиками информационной безопасности и т. д. В процессе инсталляции ADB на каком-то участке может не хватить прав или технической возможности для установки определённых пакетов.
  2. Если в ИТ-инфраструктуре используются различные операционные системы в разных версиях, это может вызвать проблемы с совместимостью. ADB поддерживает работу на ОС Red Hat и производной CentOS, а также на ALT Linux.
На этом всё. В заключение ещё раз подчеркнём, что ADCM — это тоже Open Source-проект, только уже полностью нашей разработки. Соответственно, он доступен для свободного использования — можно забирать и тестировать.

Читайте также

все новости
ошибка! проверьте правильно ли вы заполнили поле Email

Этот сайт использует cookie-файлы и другие технологии, чтобы помочь вам в навигации, а также предоставить лучший пользовательский опыт, анализировать использование наших продуктов и услуг, повысить качество рекламных и маркетинговых активностей.