MinIO – высокопроизводительное объектное S3-совместимое хранилище, которое можно развернуть на собственном сервере. Оно обеспечивает надёжное хранение данных, поддержку версионирования, шифрование и управление через удобный веб-интерфейс или CLI. MinIO часто используют как более простой и быстрый аналог Amazon S3 в частных и гибридных инфраструктурах.
В статье разберём, как настроить S3-хранилище MinIO на VPS, работающем под управлением Rocky Linux 9.
Как настроить S3-хранилище MinIO на Rocky Linux 9
При создании хранилища обычно выбирают диски с таким объёмом, чтобы на них поместились все данные — например, резервные копии и служебные файлы — и чтобы оставался запас места на будущее, если объём данных или нагрузка вырастут. Системного диска на VPS может для этого не хватить, а выбор большого системного раздела нередко оказывается слишком затратным. В таком случае удобно задействовать услугу «Большой Диск», предлагаемую на хостинге RUVDS, при подключении которой сервер получает дополнительный диск. Полученный диск можно примонтировать к системе для использования в качестве раздела, в котором хранилище будет размещать данные.
В данной статье мы рассмотрим пример настройки S3-хранилища, при которой для размещения данных будет использоваться дополнительный раздел, смонтированный в директорию /mnt/datastore/, созданный по аналогии с тем, как это описано в посвящённом этой теме материале.
Установка и первоначальная настройка MinIO
Первым шагом по настройке S3-хранилища установите утилиту wget, которая будет нужна для загрузки файлов из сети:
$ sudo dnf install wget
Затем с помощью установленной утилиты загрузите исходный бинарный файл MinIO из репозитория релизов проекта:
$ wget https://dl.min.io/server/minio/release/linux-amd64/minio
После чего создайте каталог для хранения файлов конфигурации MinIO:
$ sudo mkdir -p /opt/minio/config
В созданный каталог переместите загруженный ранее бинарный файл:
$ sudo mv minio /opt/minio/
Следующей командой сделайте данный файл исполняемым:
$ sudo chmod +x /opt/minio/minio
В той же директории создайте файл окружения, в котором будут храниться настройки, задаваемые при помощи переменных окружения:
$ sudo vi /opt/minio/config/minio.env
Затем в файл окружения внесите следующие параметры:
MINIO_ROOT_USER=miniouser
MINIO_ROOT_PASSWORD=P@ssw0rd
MINIO_VOLUMES="/mnt/datastore"
MINIO_OPTS="--console-address :9001"
Здесь:
MINIO_ROOT_USER– в качестве значения содержит логин администратора веб-панели;MINIO_ROOT_PASSWORD– пароль для логина, указанного в параметреMINIO_ROOT_USER;MINIO_VOLUMES– путь к каталогу, предназначенному для размещения данных;MINIO_OPTS– номер порта, который будет использоваться для подключения к веб-панели.
По окончании редактирования файла окружения закройте его, сохранив внесённые изменения.
Настройка MinIO для работы в качестве системного сервиса
Для функционирования сервиса на постоянной основе и в фоновом режиме необходимо настроить его работу в качестве системной службы. Дополнительно это позволит управлять MinIO через систему инициализации systemd.
Чтобы настроить работу MinIO как службы, сначала создайте специальную учётную запись, от имени которой она будет запускаться:
$ sudo useradd --system --no-create-home --shell /usr/sbin/nologin minio
В данной команде использованы следующие опции:
--system– означает создание пользователя как системного, предназначенного для запуска служб, но не для подключения к системе;--no-create-home– определяет, что у создаваемого пользователя не будет домашней директории;--shell /usr/sbin/nologin– запрещает данной учётной записи интерактивное подключение к системе;minio– название создаваемой учётной записи.
Затем назначьте пользователя и группу minio владельцами файлов и каталогов в рабочей директории MinIO. Это нужно сделать, чтобы пользователь, от имени которого работает сервис, имел полные права на директории и файлы внутри рабочего каталога:
$ sudo chown -R minio:minio /opt/minio
То же необходимо проделать с каталогом, предназначенным для хранения данных:
$ sudo chown -R minio:minio /mnt/datastore
Все настройки системного сервиса находятся в специальном текстовом файле – юнит-файле. Создайте его в каталоге, где содержатся пользовательские и локальные конфигурации systemd:
$ sudo vi /etc/systemd/system/minio.service
В юнит-файл скопируйте следующее содержимое:
[Unit]
Description=MinIO Object Store
Wants=network-online.target
After=network-online.target
[Service]
User=minio
Group=minio
EnvironmentFile=/opt/minio/config/minio.env
ExecStart=/opt/minio/minio server $MINIO_VOLUMES $MINIO_OPTS
Restart=always
LimitNOFILE=65536
ProtectHome=yes
ProtectSystem=full
PrivateTmp=yes
[Install]
WantedBy=multi-user.target
Закройте файл с сохранением изменений, после чего перезапустите конфигурацию systemd:
$ sudo systemctl daemon-reload
Добавьте новую службу в автозагрузку и сразу запустите её:
$ sudo systemctl enable --now minio
Чтобы убедиться в том, что служба успешно стартовала, выведите на экран её текущий статус:
$ systemctl status minio
Результат выполнения команды не должен содержать сообщений об ошибках:

В ранее созданном файле окружения мы указали порт, используемый для подключения к веб-панели MinIO, как 9001. Исходя из чего, необходимо открыть доступ к системе через него. Для этого добавьте в брандмауэр Firewalld разрешающее правило для порта 9001:
$ sudo firewall-cmd --permanent --add-port=9001/tcp
Чтобы новое правило применилось, перезапустите текущую конфигурацию Firewalld:
$ sudo firewall-cmd --reload
Затем откройте браузер и перейдите на веб-страницу вашего S3-хранилища по ссылке вида http://X.X.X.X:9001, где X.X.X.X замените на IP-адрес вашего VPS.

Чтобы авторизоваться в веб-панели, используйте логин и пароль администратора из файла окружения.
