26.04.2025
Официальный сайт проекта https://min.io
Cтатью писал Игольников Игорь.
MinIO — это высокопроизводительное, распределенное объектное хранилище данных с открытым исходным кодом, полностью совместимое с API Amazon S3. Оно предназначено для работы в частных, гибридных и публичных облаках, а также на локальных серверах.
🔹Основные характеристики:
✅ Полная совместимость с Amazon S3
- Поддерживает все основные API S3 (GET, PUT, DELETE, LIST и др.).
- Работает с инструментами, которые используют S3 (AWS CLI, SDK, Cyberduck, Rclone и др.).
✅ Высокая производительность
- Оптимизирован для работы с большими объемами данных (подходит для аналитики, ИИ, резервного копирования).
- Поддерживает мультипарт-загрузку, SSE (Server-Side Encryption) и ускоренные запросы.
✅ Масштабируемость (Distributed MinIO)
- Можно развернуть кластер из нескольких серверов для отказоустойчивости (режим erasure coding).
- Поддерживает автоматическое распределение данных между узлами.
✅ Простота развертывания
- Запускается одним бинарным файлом или через Docker.
- Не требует сложной настройки (в отличие от Ceph или Swift).
✅ Безопасность
- Поддержка TLS/SSL.
- IAM-подобная система управления доступом (политики, как в AWS).
- Шифрование данных на стороне сервера (SSE-S3, SSE-C, SSE-KMS).
✅ Открытый исходный код (GNU AGPL v3)
- Бесплатен для использования (есть также коммерческая версия MinIO SUBNET с поддержкой).
🔹Где используется MinIO?
- Резервное копирование (вместо S3, но локально).
- Хранение медиафайлов (фото, видео, документы).
- Big Data & AI/ML (интеграция с Apache Spark, TensorFlow).
- Kubernetes-хранилище (через MinIO Operator).
- Гибридные облака (развертывание в частном облаке с S3-совместимостью).
🔹Установка minio
apt update
apt upgrade
cd /tmp/
wget https://dl.min.io/server/minio/release/linux-amd64/minio -O minio
mkdir -p /etc/minio/
nano /etc/minio/minio.conf
MINIO_OPTS="--console-address :9001"
MINIO_VOLUMES="http://192.168.1.2:9000/mnt/minio-data http://192.168.1.3:9000/mnt/minio-data"
MINIO_ROOT_USER="admin"
MINIO_ROOT_PASSWORD="you_sercret_password"
nano /usr/lib/systemd/system/minio.service
[Unit]
Description=MinIO
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/bin/minio
[Service]
Type=notify
WorkingDirectory=/mnt/minio-data
User=root
Group=root
ProtectProc=invisible
EnvironmentFile=/etc/minio/minio.conf
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=1048576
# Turn-off memory accounting by systemd, which is buggy.
MemoryAccounting=no
# Specifies the maximum number of threads this process can create
TasksMax=infinity
# Disable timeout logic and wait until process is stopped
TimeoutSec=infinity
# Disable killing of MinIO by the kernel's OOM killer
OOMScoreAdjust=-1000
SendSIGKILL=no
[Install]
WantedBy=multi-user.target
🔹Настройка диска "для хранения данных".
В этом разделе мы более подробно обсудим возможные проблемы и пути их решения. Когда мы настраиваем хранилище s3 в Linux Server, подразумевается, что это будет не просто папка на сервере, а отдельный диск. Если мы просто создадим папку в корневой директории, то сервер не запустится и будут появляться ошибки, связанные с несоответствием конфигурации на сервере и так далее.
В моём случае я использую сервер Proxmox, который установлен у меня дома. Я просто подключил логический том (LVM) к папке /mnt/minio-data.
root@new-CT-C3-01:~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/pve-vm--117--disk--0 7.8G 912M 6.5G 13% /
/dev/mapper/pve-vm--117--disk--1 7.8G 312K 7.4G 1% /mnt/minio-data
none 492K 4.0K 488K 1% /dev
efivarfs 128K 120K 3.7K 98% /sys/firmware/efi/efivars
tmpfs 7.8G 0 7.8G 0% /dev/shm
tmpfs 3.2G 96K 3.2G 1% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
🔹Итог:
Чтобы настроить количество нод в кластере, используйте параметр MINIO_VOLUMES=. В моём примере у меня установлено две ноды, однако в реальной жизни рекомендуется иметь не менее четырёх.
На этом базовая конфигурация завершена.