Развертывание кластеров под операционными системами CentOS 8 и Red Hat 8

  • Требования к операционной системе и платформе
Операционная система Поддерживаемая архитектура CPU
CentOS 8 - 8.4
Red Hat Enterprise Linux 8
x86_64
ARM 64/v8
  • Пример информации о кластере

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

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

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

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

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

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

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

2.1 Инициализация репозитория dnf

Операционные системы CentOS 8 и Red Hat 8 по умолчанию используют новое поколение менеджера пакетов dnf.

Репозиторий EPEL (Extra Packages for Enterprise Linux) предоставляет некоторые дополнительные пакеты, отсутствующие в стандартных репозиториях Red Hat и CentOS. Репозиторий PowerTools служит контейнером для библиотек и инструментов разработки. Он доступен в операционных системах RHEL/CentOS, но по умолчанию не включен. Пакет EPEL зависит от пакета PowerTools. Если репозиторий EPEL включен, PowerTools должен быть установлен в системе.

Выполните следующие шаги от имени пользователя root или с правами root.

# dnf -y install epel-release && \
  dnf -y install 'dnf-command(config-manager)' && \
  dnf config-manager --set-enabled powertools && \
  dnf config-manager --set-enabled epel && \ 
  dnf -y update

2.2 Установка зависимостей

Установите необходимые зависимости от имени пользователя root или с использованием прав root.

# dnf install -y libicu python3-devel python3-pip openssl-devel openssh-server net-tools

2.3 Копирование RPM-пакетов с локального компьютера на сервер

Скопируйте предстоящие RPM-пакеты со своего локального компьютера на все узлы.

~ scp <local path> <username>@<Server IP address>: <server path>

2.4 Изменение конфигурации машины

Отключение брандмауэра:

# systemctl stop firewalld.service
# systemctl disable firewalld.service

Отключение SELinux: отредактируйте файл /etc/selinux/config и установите значение параметра SELINUX равным disabled:

# sed s/^SELINUX=.*$/SELINUX=disabled/ -i /etc/selinux/config
# setenforce 0

Отключение службы sssd:

# systemctl stop sssd
# systemctl stop sssd-kcm.socket

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

# hostnamectl set-hostname mdw

Два дочерних узла также должны иметь соответствующие имена хостов:

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

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

192.168.100.10 mdw
192.168.100.11 sdw1
192.168.100.12 sdw2

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

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

# dnf install -y matrixdb5_5.2.0+enterprise-1.el8.x86_64.rpm

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

Если требуется настроить порты, измените файл /etc/matrixdb5/defaults.conf после установки RPM-пакета. Эта операция выполняется только на мастер-узле.

# vim /etc/matrixdb5/defaults.conf

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

Здесь по-прежнему используется графическое развертывание, предоставляемое YMatrix. Доступ к удалённому графическому развертыванию осуществляется через порты 8240 и 4617. После завершения установки эти порты будут открыты по умолчанию на всех узлах. Служба графического интерфейса обеспечивается процессом MXUI.

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

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

http://<IP>:8240/

На первой странице мастера установки необходимо указать пароль суперпользователя и использовать команду sudo more /etc/matrixdb5/auth.conf для его просмотра.

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


Далее начнётся четырёхэтапный процесс развертывания на нескольких машинах.

Первый шаг — добавление узлов. Нажмите кнопку «Добавить».

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


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


Третий шаг — настройка путей хранения данных и пути etcd. Для каждого сервера необходимо выбрать путь хранения etcd. Кластер etcd будет случайным образом создан на нечётных серверах, чтобы гарантировать уникальность результатов выборов и избежать ничьих.

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


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

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

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

5 Настройка после установки

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

# host all all 0.0.0.0/0 md5

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

# su - mxadmin
$ mxstop -u    

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

$ mxstart -a
$ mxstop -af
$ mxstop -arf 
$ mxstate -s
Команда Назначение
mxstop -a Остановить кластер. (В этом режиме, если есть активное сеансовое соединение, закрытие базы данных может зависнуть)
mxstop -af Быстрая остановка кластера
mxstop -arf Перезапуск кластера. Ожидание завершения текущего SQL-запроса (в этом режиме, если есть активное сеансовое соединение, закрытие базы данных может зависнуть)
mxstate -s Просмотр состояния кластера