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

  • Требования к операционной системе и платформе
Операционная система Поддерживаемые архитектуры CPU
Ubuntu 20.04 LTS x86_64
aarch64
  • Пример информации о кластере

В этом документе в качестве примера используется трехузловой кластер: мастер-узел — mdw, а два сегментных узла — sdw1 и sdw2.

Установка сервера

Процесс установки сервера состоит из пяти этапов: проверка базовой информации о сервере, подготовка к установке, установка DEB-пакета базы данных, развертывание базы данных и конфигурация после установки.

1 Проверка базовой информации о сервере

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

Шаг Команда Назначение
1 free -h Просмотр использования памяти
2 df -h Просмотр свободного места на диске
3 lscpu Просмотр количества процессоров
4 lsb_release -a Просмотр версии ОС
5 uname -a Вывод всей информации о ядре в следующем порядке (если -p или -i не могут быть определены, они пропускаются): имя ядра; имя хоста; релиз ядра; версия ядра; аппаратная архитектура; тип процессора (непереносимый); аппаратная платформа (непереносимая); название операционной системы
6 tail -11 /proc/cpuinfo Просмотр подробных сведений о процессоре

2 Подготовка к установке

Примечание!
Команды в разделах 2 (Подготовка к установке) и 3 (Установка DEB-пакета базы данных) должны выполняться на всех узлах.

2.1 Обновление списка программного обеспечения

В этом документе предполагается, что вы уже настроили источники программного обеспечения в файле /etc/apt/sources.list. Далее обновите список пакетов от имени root или с правами root.

# apt update

APT (Advanced Package Tool) управляет программными пакетами, включая загрузку, установку, разрешение зависимостей и обновление индекса пакетов.

2.2 Настройка локали

Настройте локаль от имени root или с правами sudo.

# apt install -y locales && sudo locale-gen "en_US.UTF-8" && sudo update-locale LC_ALL="en_US.UTF-8"

2.3 Изменение конфигурации хоста

Убедитесь, что каждый узел имеет постоянное имя хоста. Если оно не задано, используйте следующую команду для его настройки. Например, на мастер-узле:

# hostnamectl set-hostname mdw

Аналогично задайте имена хостов для двух сегментных узлов:

# hostnamectl set-hostname sdw1
# hostnamectl set-hostname sdw2

Убедитесь, что все узлы могут взаимодействовать друг с другом по именам хостов или IP-адресам. Сначала установите инструмент vim.

# apt install vim

Добавьте записи в файл /etc/hosts, чтобы сопоставить имена хостов с адресами сетевых интерфейсов. Например, файл /etc/hosts на каждом из трех узлов должен содержать строки, аналогичные следующим:

# vim /etc/hosts
192.168.100.10 mdw
192.168.100.11 sdw1
192.168.100.12 sdw2

После редактирования нажмите Esc, затем введите :wq, чтобы сохранить изменения и выйти.

2.4 Копирование DEB-пакета с локальной машины на серверы

Примечание!
Получите ссылку для скачивания DEB-пакета из официального письма.

Скопируйте DEB-пакет, который необходимо установить, с вашего локального компьютера на все узлы.

~ scp <local file path> <username>@<server IP>:<server file path>

3 Установка DEB-пакета YMatrix

Примечание!
На всех узлах сервера установите DEB-пакет базы данных от имени root или с правами sudo с помощью команды apt ниже. Зависимости системы будут установлены автоматически.

# apt install -y /path/to/matrixdb6_6.2.0+enterprise-1_amd64.deb

Примечание!
При фактической установке замените имя файла на актуальное имя скачанного DEB-пакета, а /path/to/ — на правильный путь. Используйте ./, если файл находится в текущей директории.

После успешной установки процессы supervisord и MXUI запускаются автоматически. Эти фоновые службы обеспечивают веб-интерфейс и управление процессами.

Если необходимо настроить порты, измените файл /etc/matrixdb6/defaults.conf после установки DEB-пакета. Этот шаг требуется только на мастер-узле.

# vim /etc/matrixdb6/defaults.conf

4 Установка зависимостей Python и настройка версии Python по умолчанию

На всех узлах выполните следующие команды от имени root или с правами sudo для установки пакетов Python, необходимых для YMatrix. Обратите внимание, что необходимо выполнить source greenplum_path.sh, чтобы гарантировать установку корректных версий зависимостей.

# apt install -y \
   gcc \
   python3-dev \
   python3-pip \
   python3-psutil \
   python3-pygresql \
   python3-testresources
# update-alternatives --install /usr/bin/python python /usr/bin/python3 50

5 Развертывание базы данных

YMatrix предоставляет графическое руководство по развертыванию. Удаленный доступ к GUI осуществляется через порты 8240 и 4617. После установки эти порты по умолчанию открыты на всех узлах. Процесс MXUI предоставляет веб-интерфейс.

Примечание!
Если графический интерфейс недоступен, обратитесь к развертыванию через командную строку.

Откройте мастер установки в браузере по следующему URL. Сервер, чей IP-адрес вы введете, станет мастер-узлом вашего кластера (в данном примере — mdw):

http://<IP>:8240/

На первой странице мастера введите пароль суперпользователя. Его можно просмотреть с помощью команды sudo more /etc/matrixdb6/auth.conf.

На второй странице выберите «Развертывание на нескольких узлах», затем нажмите «Далее».


Выполните четыре шага многонодового развертывания.

Шаг 1: Добавление узлов
Нажмите кнопку «Добавить».

Введите IP-адреса, имена хостов или полные доменные имена sdw1 и sdw2 в текстовое поле, нажмите «Подтвердить», затем «Далее».


Шаг 2: Настройка параметров кластера
«Зеркальное отображение данных» определяет, будут ли сегментные узлы включать резервные зеркала. Включите эту опцию в производственной среде для обеспечения высокой доступности. Система автоматически предлагает наибольший диск и подходящее количество сегментов на основе ресурсов системы. Настройте параметры в соответствии с вашим сценарием использования. Конфигурацию топологии кластера можно просмотреть на диаграмме. Нажмите «Далее» после подтверждения.


Шаг 3: Настройка путей хранения данных и etcd
Выберите путь хранения для etcd на каждом сервере. Кластер etcd будет создан на нечетном числе случайно выбранных серверов для обеспечения согласованности выборов и предотвращения ничьих.

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


Шаг 4: Выполнение развертывания
На этом шаге отображаются ранее настроенные параметры. Подтвердите настройки, затем нажмите «Развернуть».

Система автоматически развертывает кластер и показывает подробные шаги и прогресс. Когда все шаги успешно завершатся, развертывание будет завершено.

Развертывание завершено.

6 Конфигурация после установки

6.1 Настройка sysstat

На всех узлах отредактируйте файл sysstat и измените ENABLED="false" на ENABLED="true". Нажмите esc, затем введите :wq, чтобы сохранить изменения и выйти.

# sudo vi /etc/default/sysstat

Перезапустите службу.

# sudo service sysstat restart

6.2 Включение удаленного доступа к базе данных

По умолчанию YMatrix разрешает удаленные подключения. Если во время установки не был выбран параметр «Разрешить удаленный доступ к базе данных», вручную добавьте строку, аналогичную следующей, в файл $MASTER_DATA_DIRECTORY/pg_hba.conf, чтобы разрешить любому пользователю с любого IP подключаться с аутентификацией по паролю:

# host  all       all   0.0.0.0/0  md5

Вы можете ограничить диапазон IP-адресов или имен баз данных в зависимости от требований безопасности.

После внесения изменений переключитесь на пользователя mxadmin и перезагрузите файл конфигурации pg_hba.conf:

# su - mxadmin
$ mxstop -u    

5.3 Использование инструментов управления базой данных

Используйте следующие команды для запуска, остановки, перезапуска или проверки состояния кластера YMatrix:

Команда Назначение
mxstop -a Остановка кластера. (Останавливается только после завершения всех сессий; может зависнуть при наличии активных сессий.)
mxstop -af Принудительная немедленная остановка кластера.
mxstop -arf Перезапуск кластера. Ожидает завершения выполняющихся в данный момент SQL-запросов. (Может зависнуть при наличии активных сессий.)
mxstate -s Проверка состояния кластера