ELMA365 On-Premises > Подготовка инфраструктуры > Базы данных > Подготовка внешних баз данных / MinIO (S3)

MinIO (S3)

В данной статье рассматривается пример развёртывания MinIO в качестве объектного хранилища S3 для программного комплекса ELMA365. Статья охватывает развёртывание MinIO в конфигурации с одним узлом и одним диском (SNSD). Развёртывание SNSD не обеспечивает дополнительной надёжности или доступности, помимо того, что реализовано в базовом томе хранилища (RAID, LVM, ZFS и т. д.). Вы также можете ознакомиться с руководством в официальной документации MinIO.

начало внимание

В рамках статьи используется имя бакета s3elma365, пользователь elma365user и пароль SecretPassword.

При настройке задайте эти данные согласно политике безопасности, принятой в вашей организации.

конец внимание

Установка состоит из 10 этапов:

  1. Подготовка диска.
  2. Установка MinIO.
  3. Установка MinIO Client.
  4. Создание пользователя и группы minio-user.
  5. Создание файла сервиса для systemd.
  6. Создание файла окружения для MinIO.
  7. Запуск сервиса MinIO.
  8. Настройка подключения к MinIO.
  9. Создание бакета.
  10. Подключение к MinIO.

Шаг 1: Подготовка диска

  1. Создайте каталог для монтирования диска:

sudo mkdir -p /var/lib/minio/data1

Чтобы обеспечить лучшую производительность, рекомендуется использовать файловую систему XFS. Для примера подключаемого диска выбрать диск /dev/sdb.

  1. Подготовьте на диске файловую систему XFS:

sudo mkfs.xfs /dev/sdb -L DISK1

  1. Добавьте точку монтирования диска в файле /etc/fstab:

LABEL=DISK1 /var/lib/minio/data1 xfs defaults,noatime 0 2

  1. Проверьте монтирование ранее подготовленного диска:

sudo mount -av

Шаг 2: Установка MinIO

Загрузите последний стабильный binary-файл MinIO и установите его в систему:

wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
sudo mv minio /usr/local/bin/

Шаг 3: Установка MinIO Client

Загрузите последний стабильный binary-файл MinIO Client и установите его в систему:

wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
sudo mv mc /usr/local/bin/

Шаг 4: Создание пользователя и группы minio-user

  1. Cоздайте пользователя и группу minio-user.

sudo groupadd -r minio-user
sudo useradd -M -r -g minio-user minio-user
sudo chown minio-user:minio-user /var/lib/minio/data1

  1. Создайте директории для хранения TLS-сертификатов, выполнив команду:

sudo mkdir -p /etc/minio/certs/CAs

  1. Задайте разрешения на доступ к каталогам, предназначенным для использования в MinIO.

sudo chown -R minio-user:minio-user /etc/minio
sudo chown -R minio-user:minio-user /var/lib/minio

Шаг 5: Создание файла сервиса для systemd

  1. Загрузите официальный файл сервиса MinIO:

sudo curl -O https://raw.githubusercontent.com/minio/minio-service/master/linux-systemd/minio.service

  1. Проверьте содержимое minio.service перед его использованием и переместите этот файл в каталог конфигурации systemd:

sudo mv minio.service /etc/systemd/system

начало внимание

На данном шаге не запускайте minio.service.

конец внимание 

Шаг 6: Создание файла окружения для MinIO

Создайте файл окружения в /etc/default/minio. Служба MinIO использует этот файл в качестве источника всех переменных окружения, используемых MinIO и файлом minio.service.

Пример файла окружения в /etc/default/minio:

# Set the hosts and volumes MinIO uses at startup
# The command uses MinIO expansion notation {x...y} to denote a
# sequential series.
 
# The following example covers four MinIO hosts
# with4 drives each at the specified hostname and drive locations.
# The command includes the port that each MinIO server listens on
# (default 9000)
 
MINIO_VOLUMES="/var/lib/minio/data1/minio"
 
# Set all MinIO server options
 
# The following explicitly sets the MinIO Console listen address to
# port 9001 on all network interfaces. The default behavior is dynamic
# port selection.
 
MINIO_OPTS="--certs-dir /etc/minio/certs --console-address :9001"
 
MINIO_REGION="ru-central-1"
 
# Set the root username. This user has unrestricted permissions to
# perform S3 and administrative API operations on any resource in the
# deployment.
 
# Defer to your organizations requirements for superadmin user name.
 
MINIO_ROOT_USER=elma365user
 
# Set the root password
 
# Use a long, random, unique string that meets your organizations
# requirements for passwords.
 
MINIO_ROOT_PASSWORD=SecretPassword
 
# Set to the URL of the load balancer for the MinIO deployment
# This value *must* match across all MinIO servers. If you do
# not have a load balancer, set this value to to any *one* of the
# MinIO hosts in the deployment as a temporary measure.
 
# MINIO_SERVER_URL="https://minio.example:9000"

где:

  • MINIO_VOLUMES — каталог, в котором будут размещаться загруженные в S3 файлы;
  • MINIO_ROOT_USER — имя пользователя-администратора MinIO;
  • MINIO_ROOT_PASSWORD — пароль, рекомендуется использовать не менее 16 символов.

Настройка включения TLS/SSL в MinIO.

Шаг 7: Запуск сервиса MinIO

  1. Выполните следующие команды, чтобы запустить службу MinIO:

sudo systemctl daemon-reload
sudo systemctl enable --now minio.service

  1. Убедитесь в том, что сервис minio запустился и работает без ошибок:

sudo systemctl status minio.service
journalctl -f -u minio.service

Шаг 8: Настройка подключения к MinIO

Создайте alias для minio:

/usr/local/bin/mc alias set minio http://minio.your_domain:9000 elma365user SecretPassword

Шаг 9: Создание бакета

Начало внимание

Наименование бакета в S3 должно соответствовать формату s3elma365*.

Примеры:

  • s3elma365;
  • s3elma365-dev;
  • s3elma365-prod.

Конец внимание 

Для работы ELMA365 создайте бакет c наименованием s3elma365, выполнив команду:

/usr/local/bin/mc mb -p minio/s3elma365 --region=ru-central-1

Создание в S3 бакетов для работы ELMA Bot.

Шаг 10: Подключение к MinIO

Параметры для подключения к MinIO:

  • addressminio.your_domain:9000;
  • buckets3elma365;
  • regionru-central-1;
  • access key IDelma365user;
  • secret access keySecretPassword;
  • upload methodPUT;
  • enable SSLNo.

Если MinIO ожидает подключение с использованием TLS/SSL установите в параметре enable SSL значение Yes.