+7 495 230 03 03 8 800 222 50 03
DevOps

Установка и настройка кластера MinIO

Для развертывания сервиса необходимо: 4 сервера, физические или виртуальные; Конфигурация от 4 Cpu Core, 4 Gb RAM. Для уменьшения количества сетевых задержек, скорость сети должна быть от 1 Гбит\с. Объем и состав хранилища данных зависит от используемой полезной нагрузки. Рекомендовано использовать SSD-диски или HDD, но в конфигурации RAID-массива с ускорением чтения и записи. К каждому серверу должно быть подключено по 4 независимых друг от друга хранилища данных. В данной инструкции для развертывания сервиса использовалась ОС Ubuntu версии 22 и 20. При развертывании описываемого варианта необходимо использовать балансировщик нагрузки для организации единой точки входа в кластер MinIO или для отказоустойчивости в случае выхода из строя сервисных нод. Режим работы балансировщика нагрузки «Least Connections». Имена у серверов должны быть вида: minio1.example.com, minio2.example.com, minio3.example.com, minio4.example.com. Диски или ресурсы для монтирования должны иметь имена созданный по аналогичной схеме:
$ mkfs.xfs /dev/sdb -L DISK1
$ mkfs.xfs /dev/sdc -L DISK2
$ mkfs.xfs /dev/sdd -L DISK3
$ mkfs.xfs /dev/sde -L DISK4
$ nano /etc/fstab
  #                
  LABEL=DISK1      /mnt/disk1     xfs     defaults,noatime  0       2
  LABEL=DISK2      /mnt/disk2     xfs     defaults,noatime  0       2
  LABEL=DISK3      /mnt/disk3     xfs     defaults,noatime  0       2
  LABEL=DISK4      /mnt/disk4     xfs     defaults,noatime  0       2
Загружаем установочный файл и запускаем его:
wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio_20220925154453.0.0_amd64.deb -O minio.deb
sudo dpkg -i minio.deb
Создаем пользователя и группу для работы сервиса:
groupadd -r minio-user
useradd -M -r -g minio-user minio-user
Назначаем права доступа на диск, который будет смонтирован для MinIO:
chown minio-user:minio-user /mnt/disk1 /mnt/disk2 /mnt/disk3 /mnt/disk4
Создаем(проверяем наличие) файл systemd:
/etc/systemd/system/minio.service
 
[Unit]
Description=MinIO
Documentation=https://min.io/docs/minio/linux/index.html
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/bin/minio
 
[Service]
WorkingDirectory=/usr/local
User=minio-user
Group=minio-user
ProtectProc=invisible
EnvironmentFile=-/etc/default/minio
ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_VOLUMES}\" ]; then echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\"; exit 1; fi"
ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES
# Let systemd restart this service always
Restart=always
# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=65536
# Specifies the maximum number of threads this process can create
TasksMax=infinity
# Disable timeout logic and wait until process is stopped
TimeoutStopSec=infinity
SendSIGKILL=no
 
[Install]
WantedBy=multi-user.target
Создаем(проверяем наличие) файла с переменными окружения для службы MinIO. /etc/default/minio:
# MINIO_ROOT_USER and MINIO_ROOT_PASSWORD — переменные отвечает за административный доступ на сервис
MINIO_ROOT_USER=myminioadmin
MINIO_ROOT_PASSWORD=minio-secret-key-change-me
# MINIO_VOLUMES – указываем пути до ресурсов согласно созданных ранее дисков и серверов используемых в работе сервиса.
MINIO_VOLUMES="https://minio{1...4}.example.net:9000/mnt/disk{1...4}/minio"
MINIO_OPTS="--console-address :9001"
# MINIO_SERVER_URL – адрес по которому можно получить доступ к сервису.
#MINIO_SERVER_URL="http://minio.example.net:9000"
Запускаем службу:
systemctl start minio.service
Проверяем успешных запуск и наличие ошибок:
systemctl status minio.service
Шаги с 0 по 7 необходимо выполнить на всех серверах входящих в кластер. Если ошибок нет и статус корректный, переходим в WEB-часть для работы: http://minio1.example.net:9001 Далее необходимо создать балансировщик нагрузки для распределения входящих подключений на ноды MinIO. (HAProxy, Nginx, Nginx+KeepAlived). Работоспособность кластера MinIO, при выходе из строя 1 сервера — все работает, при выходе из строя 2-ух серверов — доступно только чтение, запись данных доступна не будет. Минимум 2 диска из 4 должны работать.
Мы можем помочь в настройке MinIO кластера, а также его поддержке в рамках DevOps-аутсорсинга!
Дата публикации: 31 августа 2023
Не нашли ответа на свой вопрос?

Смотрите также

Обсуждение материала

Содержание

Заказать звонок

Оставьте свои данные для того, чтобы специалист с вами связался.

*нажимая на кнопку, Вы даете согласие на обработку персональных данных
Быстрое внедрение включает:
На сервере установлено следующее ПО (доступно при подключении по протоколу RDP):
Также настроено:
Перед внедрением клиент предоставляет информацию о пользователях (логины и пароли). После завершения работ, клиенту высылается инструкция и ярлык для подключения.
Индивидуальное внедрение по ТЗ клиента обсуждается отдельно.