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

  • Требования к операционной системе и платформе
Операционная система Поддерживаемая архитектура CPU
CentOS 7 x86_64
Red Hat 7 x86_64

Пожалуйста, обратитесь к установке и развертыванию MatrixDB

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

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

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 Копирование RPM-пакета

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

~ scp <本地路径> <用户名>@<服务器 IP 地址>: <服务器路径>

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

Внимание!
На всех *** узлах выполните следующие действия от имени пользователя root или с правами sudo.

MatrixDB требует Python 3.6. Используйте следующую команду для установки и настройки Python 3.6 в качестве версии по умолчанию:

# sudo yum install centos-release-scl
# sudo yum install rh-python36
# sudo scl enable rh-python36 bash

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

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

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

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

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

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

# sudo hostnamectl set-hostname mdw

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

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

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

# sudo vim /etc/hosts

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

192.168.100.10 mdw
192.168.100.11 sdw1
192.168.100.12 sdw2

3 Установка RPM-пакета базы данных

На всех *** узлах установите RPM-пакет базы данных от имени пользователя root или с использованием прав sudo. Зависимые системные библиотеки будут установлены автоматически. По умолчанию установка будет выполнена в каталог /usr/local/matrixdb:

# sudo yum install matrixdb-4.8.0.enterprise-1.el7.x86_64.rpm

Внимание!
Во время фактической установки замените имя файла на актуальное имя последнего загруженного RPM-пакета.

После успешной установки процессы supervisor и MXUI будут запущены автоматически. Эти фоновые процессы обеспечивают графический интерфейс и управление службами. Если требуется настроить порты, после установки RPM-пакета вручную создайте файл /etc/matrixdb/defaults.conf для конфигурации. Эта операция выполняется только на мастер-узле. Пример:

# vim /etc/matrixdb/defaults.conf

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

MasterPortBase = 5438
StandbyPortBase = 5439
PrimaryPortBase = 6500
MirrorPortBase = 7500

4 Установка зависимых пакетов Python

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

# source /usr/local/matrixdb/greenplum_path.sh
# sudo yum install gcc python3-devel
# sudo pip3 install --upgrade setuptools
# sudo pip3 install argparse psutil pygresql pyyaml

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

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

Используйте браузер для доступа к URL-адресу мастера установки, указанному ниже — это IP-адрес сервера mdw:

http://<IP>:8240/

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

На второй странице выберите «Развертывание на нескольких узлах» и нажмите «Далее». ![](https://img.ymatrix.cn/ymatrix_home/Multi-node deployment 2_1679456210.png)


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

Первый шаг — добавление узлов. Нажмите кнопку «Добавить узел». ![](https://img.ymatrix.cn/ymatrix_home/Multi-node deployment 3_1679456256.png)

Введите IP-адреса, имена хостов или полные доменные имена (FQDN) sdw1 и sdw2 в текстовое поле, нажмите «ОК», затем «Далее». ![](https://img.ymatrix.cn/ymatrix_home/Multi-node deployment 4_1679456230.png)


Второй шаг — настройка параметров кластера. Параметр «Зеркальное отображение данных» определяет, будут ли резервные копии узлов данных в кластере. Рекомендуется включить его в производственной среде для обеспечения высокой доступности. Система автоматически предлагает использовать наибольшее доступное дисковое пространство и количество сегментов, соответствующих ресурсам системы, которые можно скорректировать в зависимости от конкретного сценария использования. Структуру кластера можно просмотреть на схематическом изображении. После подтверждения нажмите «Далее». ![](https://img.ymatrix.cn/ymatrix_home/Multi-node deployment 7_1679456383.png)


Третий шаг — настройка путей хранения. ![](https://img.ymatrix.cn/ymatrix_home/Multi-node deployment 8_1679456418.png)


Четвертый шаг — выполнение развертывания. На этом этапе будут перечислены параметры конфигурации предыдущих действий. После проверки правильности нажмите «Выполнить развертывание». ![](https://img.ymatrix.cn/ymatrix_home/Multi-node deployment 10_1679466593.png)

Система автоматически развернет кластер и покажет подробные шаги и ход выполнения. После успешного завершения всех шагов развертывание будет завершено. ![](https://img.ymatrix.cn/ymatrix_home/Multi-node deployment 9_1679456463.png)

Развертывание завершено. ![](https://img.ymatrix.cn/ymatrix_home/Multi-node deployment 11_1679466566.png)

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

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

# host all all 0.0.0.0/0 md5

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

# gpstop -u

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

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