MinIO
MinIO — это высокопроизводительный сервер объектного хранилища с открытым исходным кодом, совместимый с облачным хранилищем Amazon S3. Он оптимален для хранения неструктурированных данных: фотографий, видео, файлов журналов, резервных копий, образов контейнеров и виртуальных машин.
MinIO может использоваться как бэкенд для хранения резервных копий Proxmox Backup Server (PBS) благодаря поддержке S3-совместимого API.
Установка MinIO
Установка сервера MinIO и клиента minio-mc:
# apt-get install minio minio-mc
Проверка установленной версии:
$ minio --version
minio version RELEASE.2025-10-15T17-29-55Z (commit-id=9e49d5e7a648f00e26f2246f4dc28e6b07f8c84a)
Runtime: go1.24.10 linux/amd64
License: GNU AGPLv3 - https://www.gnu.org/licenses/agpl-3.0.html
Copyright: 2015-0000 MinIO, Inc.
Активация и запуск службы:
# systemctl enable --now minio
Проверка статуса:
# systemctl status minio
Базовая настройка
Доступ к веб-интерфейсу
По умолчанию MinIO слушает следующие адреса:
| Компонент | Адрес по умолчанию | Описание |
|---|---|---|
| API | http://*:9000 | S3-совместимый API-интерфейс |
| WebUI (Console) | http://127.0.0.1:9001 | Веб-интерфейс управления |
Учётные данные по умолчанию:
- Логин: minioadmin
- Пароль: minioadmin
Конфигурационный файл
Основные параметры настраиваются в файле /etc/sysconfig/minio:
# Адрес прослушивания API
MINIO_ADDRESS=":9000"
# Адрес прослушивания веб-консоли
MINIO_CONSOLE_ADDRESS=":9001"
# Учётные данные администратора (рекомендуется изменить)
MINIO_ROOT_USER="minioadmin"
MINIO_ROOT_PASSWORD="minioadmin"
# Путь к данным (по умолчанию: /var/lib/minio)
# MINIO_VOLUMES="/var/lib/minio"
# Дополнительные опции (например, путь к сертификатам)
MINIO_OPTIONS="--certs-dir /etc/minio/certs"
После изменения конфигурации перезапустите службу:
# systemctl restart minio
Настройка хранилища (volumes)
Параметр MINIO_VOLUMES определяет расположение данных:
| Конфигурация | Пример | Описание |
|---|---|---|
| Одиночный узел, один диск | MINIO_VOLUMES="/var/lib/minio" | Базовая установка для тестирования |
| Одиночный узел, несколько дисков | MINIO_VOLUMES="/mnt/data{1...4}" | Распределение данных по 4 дискам для повышения надёжности |
| Распределённый кластер | MINIO_VOLUMES="http://node{1...4}/export{1...4}" | Кластер из 4 узлов с 4 дисками на каждом |
Настройка TLS/SSL
MinIO по умолчанию ищет TLS-сертификаты в каталоге /etc/minio/certs/. Сертификаты должны быть в формате PEM с именами public.crt и private.key.
Создание самоподписанного сертификата (замените 192.168.0.207 на актуальный адрес сервера или доменное имя):
# cd /etc/minio/certs
# openssl req -x509 -nodes -days 365 \
-newkey rsa:4096 \
-keyout private.key \
-out public.crt \
-subj "/CN=192.168.0.207"
# chown _minio:_minio private.key public.crt
# chmod 600 private.key
# chmod 644 public.crt
- право чтения для файлов сертификатов;
- право записи в каталог сертификатов (для автоматического обновления).
После настройки перезапустите службу и убедитесь, что доступ осуществляется по https://:
# systemctl restart minio
# curl -k https://192.168.0.207:9000/minio/health/live -I
HTTP/1.1 200 OK
…
Клиент MinIO (minio-mc)
minio-mc (MinIO Client) — утилита командной строки для управления объектными хранилищами и файловыми системами. Поддерживает работу с локальными каталогами, MinIO, Amazon S3, Google Cloud Storage и другими S3-совместимыми сервисами.
Добавление конфигурации подключения к локальному серверу:
- Настройка алиаса для локального сервера:
$ minio-mc alias set local http://192.168.0.207:9000 minioadmin minioadmin
- Проверка подключения:
$ minio-mc admin info local ● 192.168.0.207:9000 Uptime: 22 minutes Version: 2025-10-15T17-29-55Z Network: 1/1 OK Drives: 1/1 OK Pool: 1 ┌──────┬──────────────────────┬─────────────────────┬──────────────┐ │ Pool │ Drives Usage │ Erasure stripe size │ Erasure sets │ │ 1st │ 5.7% (total: 52 GiB) │ 1 │ 1 │ └──────┴──────────────────────┴─────────────────────┴──────────────┘ 1 drive online, 0 drives offline, EC:0
$ minio-mc alias set local http://192.168.0.207:9000 minioadmin minioadmin --insecure
Основные команды minio-mc
| Действие | Команда | Описание |
|---|---|---|
| Создание бакета | minio-mc mb local/my-bucket | Создать новый бакет (аналог mkdir) |
| Список бакетов | minio-mc ls local | Показать все бакеты |
| Загрузка файла | minio-mc cp file.txt local/my-bucket/ | Копировать файл в хранилище |
| Скачивание файла | minio-mc cp local/my-bucket/file.txt . | Скачать файл из хранилища |
| Рекурсивное копирование | minio-mc cp -r ./data/ local/my-bucket/data/ | Копировать каталог рекурсивно |
| Список объектов | minio-mc ls local/my-bucket/ | Показать содержимое бакета |
| Удаление объекта | minio-mc rm local/my-bucket/file.txt | Удалить объект |
| Удаление бакета | minio-mc rb local/my-bucket | Удалить пустой бакет |
| Просмотр прав доступа | minio-mc anonymous get local/my-bucket | Показать ACL бакета |
| Установка публичного доступа | minio-mc anonymous set public local/my-bucket | Сделать бакет публичным |
| Синхронизация каталогов | minio-mc mirror ./source/ local/my-bucket/ | Зеркалирование с отслеживанием изменений |
| Поиск объектов | minio-mc find local/my-bucket --name "*.txt" | Найти объекты по шаблону |
| Информация об объекте | minio-mc stat local/my-bucket/file.txt | Показать метаданные объекта |
Примеры использования:
- настройка жизненного цикла объектов (удаление старых файлов):
$ minio-mc ilm add local/my-bucket --expire-days 30
- генерация временной ссылки для скачивания:
$ minio-mc share download local/my-bucket/file.txt --expire 1h
- резервное копирование каталога в бакет:
$ minio-mc mb local/test $ minio-mc mirror --watch test local/test
Полезные ссылки
Официальная документация: https://docs.min.io/