Настройка окружения перед установкой
Этот раздел описывает, как подготовить операционную систему перед установкой Greengage DB (на основе Greenplum).
Предварительные требования
Перед настройкой операционной системы убедитесь, что ваши хосты соответствуют требованиям, описанным в следующих разделах:
Настройка операционной системы
Имя хоста
Хосты вашего кластера Greengage DB могут иметь любые имена. Вы также можете следовать стандартной схеме именования для единообразия:
-
Мастер-хост —
mdw
. -
Резервный мастер-хост —
smdw
. -
Сегмент-хосты —
sdw1
,sdw2
,sdw3
и так далее.
Рекомендуется использовать объединение сетевых интерфейсов (NIC bonding), если узел кластера имеет несколько сетевых интерфейсов.
Если у хоста кластера несколько несвязанных сетевых интерфейсов, общепринятой практикой является добавление дефиса (-
) и номера к имени хоста, например, sdw1-1
, sdw1-2
и так далее.
Разрешение имен хостов
Greengage DB требует согласованного разрешения имен для всех хостов кластера. Например, вы можете использовать DNS-сервис или задать правила сопоставления вручную в файле /etc/hosts.
Файл /etc/hosts должен включать все имена хостов и интерфейсов для каждого хоста в кластере. Например, /etc/hosts может выглядеть следующим образом для кластера Greengage DB с одним мастером, одним резервным мастером и двумя сегмент-хостами:
# ... 192.168.1.10 mdw 192.168.1.20 smdw 192.168.1.30 sdw1 192.168.1.40 sdw2
Максимальный размер блока передачи (MTU)
Если максимальный размер блока передачи (MTU) для вашей Interconnect-сети составляет 9000 байт (MTU для jumbo-фреймов), то необходимо настроить параметры MTU операционной системы для сетевых интерфейсов соответствующим образом.
SELinux
Для всех хостов кластера Greengage DB, работающих под RHEL или CentOS, нужно отключить SELinux.
Чтобы сделать это, откройте файл /etc/selinux/config и установите параметр SELINUX
в disabled
:
SELINUX=disabled
Чтобы применить изменения, перезагрузите систему.
Параметры ядра
Файл /etc/sysctl.conf позволяет установить параметры ядра, которые могут улучшить производительность и оптимизировать работу в различных окружениях. При необходимости вы можете изменить эти параметры в соответствии с вашей конкретной конфигурацией.
Рекомендуемые значения параметров следующие:
kernel.core_pipe_limit=0
net.core.rmem_max=2097152
net.core.rmem_default=26214400
net.core.wmem_max=2097152
net.core.wmem_default=26214400
net.ipv6.conf.all.disable_ipv6=1 # Если используется IPv4
net.ipv6.conf.default.disable_ipv6=1 # Если используется IPv4
kernel.sysrq=1
kernel.core_uses_pid=1
kernel.shmmni=4096
kernel.sem=250 2048000 200 8192
kernel.msgmnb=65536
kernel.msgmax=65536
kernel.msgmni=2048
net.ipv4.tcp_syncookies=1
net.ipv4.conf.default.accept_source_route=0
net.ipv4.tcp_max_syn_backlog=4096
net.ipv4.conf.all.arp_filter=1
net.ipv4.ip_local_port_range=10000 65535 # Влияет на значения портов Greengage DB
net.ipv4.ipfrag_high_thresh=41943040
net.ipv4.ipfrag_low_thresh=31457280
net.ipv4.ipfrag_time=60
net.core.netdev_max_backlog=10000
vm.overcommit_memory=2
vm.overcommit_ratio=95
vm.swappiness=10
vm.zone_reclaim_mode=0
vm.dirty_expire_centisecs=500
vm.dirty_writeback_centisecs=100
vm.dirty_background_ratio=0
vm.dirty_ratio=0
vm.dirty_background_bytes=1610612736
vm.dirty_bytes=4294967296
Обратите внимание на следующее:
-
Установите параметры
net.ipv6.conf.all.disable_ipv6
иnet.ipv6.conf.default.disable_ipv6
в 1, если сеть использует IPv4. -
Диапазон портов, настроенный с помощью
net.ipv4.ip_local_port_range
, и порты, настроенные в файле конфигурации базы данных, не должны конфликтовать. Еслиnet.ipv4.ip_local_port_range
установлен в10000 65535
, задайте значенияPORT_BASE
иMIRROR_PORT_BASE
вне этого диапазона, например:PORT_BASE=6000 MIRROR_PORT_BASE=7000
Чтобы применить изменения, внесенные в /etc/sysctl.conf, выполните команду sysctl
:
$ sudo sysctl --system
Лимиты системных ресурсов
Файл /etc/security/limits.conf можно использовать для увеличения лимитов ресурсов, используемых СУБД Greengage.
Этот пример показывает, как установить максимальное количество файлов и процессов, которые могут быть открыты или запущены пользователем gpadmin
одновременно:
gpadmin soft nofile 524288 gpadmin hard nofile 524288 gpadmin soft nproc 150000 gpadmin hard nproc 150000
Пользователь gpadmin
— это специальная учетная запись, используемая для запуска и администрирования СУБД Greengage, которую необходимо создать на каждом хосте.
Дополнительную информацию можно найти в разделе Создание административного пользователя Greengage DB.
Удаление объектов IPC
Параметр RemoveIPC
в файле /etc/systemd/logind.conf контролирует, удаляются ли объекты IPC, когда несистемный пользователь выходит из системы.
Необходимо деактивировать удаление объектов IPC, установив RemoveIPC
в no
:
RemoveIPC=no
Чтобы применить изменения, перезапустите systemd-logind
:
$ sudo systemctl restart systemd-logind
Вы также можете деактивировать удаление объектов IPC, создав пользователя gpadmin как системную учетную запись.
Для этого передайте оба параметра -r
и -m
команде useradd
.
Transparent huge pages (THP)
Отключите Transparent huge pages (THP), так как производительность СУБД Greengage может ухудшиться. Чтобы узнать, как это сделать, обратитесь к документации вашей операционной системы. Например, раздел Configuring Transparent Huge Pages описывает, как управлять Transparent Huge Pages в RHEL.
Параметры монтирования файловой системы XFS
Используйте команду mount
со следующими рекомендуемыми параметрами для монтирования устройств хранения данных:
rw,nodev,noatime,inode64
rw,nodev,noatime,nobarrier,inode64
Настройки дискового ввода-вывода
-
Значение параметра опережающего чтения
Каждое дисковое устройство должно иметь значение опережающего чтения (
blockdev
) 8192. -
Планировщик ввода-вывода диска
В таблице ниже указаны рекомендуемые планировщики для конкретных типов устройств хранения данных.
Тип устройства хранения данных Планировщик диска Non-Volatile Memory Express (NVMe)
none
Твердотельные накопители (SSD)
-
Ubuntu —
none
-
RHEL/CentOS —
noop
Жесткие диски (HDD)
-
Ubuntu —
mq-deadline
-
RHEL/CentOS —
deadline
Чтобы узнать, как изменить используемый планировщик, обратитесь к документации вашей операционной системы.
-
Лимиты подключения по SSH
Утилиты управления кластером Greengage DB, например, gpinitsystem
или gpexpand
, используют Secure Shell (SSH) для выполнения своих задач.
Для больших инсталляций эти утилиты могут превышать максимальные лимиты неаутентифицированных подключений.
Чтобы предотвратить возможные проблемы, установите MaxStartups
в файле /etc/ssh/sshd_config следующим образом:
MaxStartups 1000:30:1022
Затем перезапустите службу sshd
:
$ sudo systemctl restart sshd
Синхронизация времени
Необходимо использовать Network time protocol (NTP) для синхронизации системных часов на всех узлах вашего кластера Greengage DB. Рекомендуемый источник NTP — один из следующих:
-
Мастер-хост
В этом случае резервный мастер и все сегмент-хосты подключаются к нему.
-
Внешний сервер NTP
В этом случае все хосты кластера подключаются к нему.
В зависимости от операционной системы NTP может быть реализован демоном ntpd
, chronyd
или другими.
Обратитесь к соответствующей документации, чтобы узнать, как синхронизировать системные часы.
Создание административного пользователя Greengage DB
Этот раздел описывает, как создать системную учетную запись пользователя, используемого для запуска и администрирования Greengage DB.
Создание пользователя gpadmin
-
Создайте группу
gpadmin
:$ sudo groupadd gpadmin
-
Создайте системного пользователя
gpadmin
и добавьте его в группуgpadmin
:$ sudo useradd gpadmin -r -m -g gpadmin
-
Установите пароль для пользователя
gpadmin
:$ sudo passwd gpadmin
-
Предоставьте пользователю
gpadmin
возможность выполнять команды с правами суперпользователя, используяsudo
:
$ sudo adduser gpadmin sudo
$ sudo usermod -aG wheel gpadmin
-
Разрешите пользователям с правами суперпользователя выполнять команды без ввода пароля. Сначала выполните команду
visudo
:$ sudo visudo
Затем добавьте данную строку в открытый файл и сохраните изменения:
%sudo ALL=(ALL) NOPASSWD: ALL
%wheel ALL=(ALL) NOPASSWD: ALL
Генерация SSH-ключей
Пользователь gpadmin
должен иметь пару SSH-ключей на каждом хосте кластера.
Это позволит вам включить беспарольный SSH, чтобы пользователь gpadmin
мог подключаться по SSH с любого хоста кластера к любому другому хосту без ввода пароля или парольной фразы.
Чтобы создать пару SSH-ключей для gpadmin
:
-
Переключитесь на пользователя
gpadmin
:$ su - gpadmin
-
Переключитесь на оболочку Bash:
$ bash
-
Сгенерируйте пару SSH-ключей для пользователя
gpadmin
, используяssh-keygen
:$ ssh-keygen -t rsa -b 4096
-
Нажмите
Enter
, чтобы использовать пути по умолчанию для файлов SSH-ключей:Generating public/private rsa key pair. Enter file in which to save the key (/home/gpadmin/.ssh/id_rsa):
-
Нажмите
Enter
два раза, чтобы пропустить ввод парольной фразы:Created directory '/home/gpadmin/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again:
Вывод должен включать следующие строки:
Your identification has been saved in /home/gpadmin/.ssh/id_rsa Your public key has been saved in /home/gpadmin/.ssh/id_rsa.pub
Настройка защитного программного обеспечения
Защитное программное обеспечение может конфликтовать с СУБД Greengage, влиять на производительность и стабильность работы.
-
Межсетевой экран
Отключите межсетевой экран. В противном случае настройте его в соответствии с сетевыми требованиями, описанными в этом разделе: Требования к сети для установки Greengage DB.
-
Антивирус
Рекомендуется отключить антивирусное программное обеспечение перед установкой и во время работы СУБД Greengage. В противном случае обратитесь к поставщику вашего антивирусного ПО, чтобы уточнить настройки, необходимые для корректной работы СУБД Greengage.