Github

Настройка окружения перед установкой

Андрей Аксенов

Этот раздел описывает, как подготовить операционную систему перед установкой 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

  1. Создайте группу gpadmin:

    $ sudo groupadd gpadmin
  2. Создайте системного пользователя gpadmin и добавьте его в группу gpadmin:

    $ sudo useradd gpadmin -r -m -g gpadmin
  3. Установите пароль для пользователя gpadmin:

    $ sudo passwd gpadmin
  4. Предоставьте пользователю gpadmin возможность выполнять команды с правами суперпользователя, используя sudo:

$ sudo adduser gpadmin sudo
$ sudo usermod -aG wheel gpadmin
  1. Разрешите пользователям с правами суперпользователя выполнять команды без ввода пароля. Сначала выполните команду visudo:

    $ sudo visudo

    Затем добавьте данную строку в открытый файл и сохраните изменения:

%sudo    ALL=(ALL)    NOPASSWD: ALL
%wheel    ALL=(ALL)    NOPASSWD: ALL

Генерация SSH-ключей

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

Чтобы создать пару SSH-ключей для gpadmin:

  1. Переключитесь на пользователя gpadmin:

    $ su - gpadmin
  2. Переключитесь на оболочку Bash:

    $ bash
  3. Сгенерируйте пару SSH-ключей для пользователя gpadmin, используя ssh-keygen:

    $ ssh-keygen -t rsa -b 4096
  4. Нажмите Enter, чтобы использовать пути по умолчанию для файлов SSH-ключей:

    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/gpadmin/.ssh/id_rsa):
  5. Нажмите 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.