· 17 мин чтения

MinIO: S3-совместимое объектное хранилище под офис и бэкапы

Меня зовут Семёнов Евгений Сергеевич, директор АйТи Фреш, и за 15+ лет я поднял не один десяток хранилищ — от обычных файловых шар до полноценных S3-кластеров на сотни терабайт. MinIO — одна из самых удачных технологий последних лет: простая в запуске, совместимая с Amazon S3 API до мелочей, прекрасно масштабируется и работает на стандартном железе без лицензионных сборов. Я всегда ставлю MinIO в качестве бэкап-репозитория для Veeam, архива данных 1С и площадки для внутренних сервисов, которым нужен объектный доступ.

Почему именно MinIO, а не Ceph или классический NAS

Объектные хранилища отличаются от NAS тремя вещами: API вместо файловой системы, плоским пространством имён внутри бакетов и встроенным версионированием. MinIO берёт лучшее от облачного S3 и упаковывает это в один Go-бинарник, который запускается за 10 минут. У нас на практике он работает там, где Ceph требовал бы отдельную команду поддержки, а NAS не давал бы нужного API.

Планирование: сколько узлов и дисков

MinIO в production ставится в распределённом режиме. Минимум — 4 узла с 4 дисками каждый, итого 16 дисков. Схема erasure coding по умолчанию — EC:4, то есть из каждых 16 блоков 4 уходят на паритет. Это даёт защиту от одновременного выхода из строя двух узлов или восьми дисков при условии, что они распределены по разным узлам.

КонфигурацияУзлы × ДискиСырая ёмкостьПолезная ёмкостьПроизводительность
Начальная4 × 4 × 8 ТБ128 ТБ96 ТБ (EC:4)4–6 ГБ/с
Средняя4 × 6 × 14 ТБ336 ТБ252 ТБ6–8 ГБ/с
Большая8 × 8 × 18 ТБ1.15 ПБ864 ТБ9+ ГБ/с

Для среднего офиса, который хочет S3-репозиторий под Veeam и архив документов, обычно хватает первой строки. Узлы — Dell PowerEdge R740xd или HPE ProLiant DL380, диски — 10–18 ТБ Enterprise SATA.

Установка в распределённом режиме

Я разворачиваю MinIO на Ubuntu 22.04 LTS — минимум пакетов, свежее ядро, отличная работа с XFS и большими файлами. На каждом узле готовим 4 диска, форматируем в XFS и монтируем.

for d in sdb sdc sdd sde; do
  mkfs.xfs -f /dev/$d
  mkdir -p /mnt/minio/$d
  echo "/dev/$d /mnt/minio/$d xfs defaults,noatime 0 2" >> /etc/fstab
done
mount -a

useradd -r minio-user -s /sbin/nologin
chown -R minio-user:minio-user /mnt/minio

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

Конфигурация /etc/default/minio — одинаковая на всех узлах:

MINIO_ROOT_USER=adminopsroot
MINIO_ROOT_PASSWORD=BolshoyStoykiyParol2025
MINIO_VOLUMES="https://minio{1...4}.corp.local/mnt/minio/sd{b...e}"
MINIO_OPTS="--address :9000 --console-address :9001 \
  --certs-dir /etc/minio/certs"
MINIO_SERVER_URL="https://s3.corp.local"
MINIO_BROWSER_REDIRECT_URL="https://s3-console.corp.local"

Systemd-юнит — скачиваем с официального репозитория, включаем и запускаем. Все 4 узла стартуют одновременно, иначе MinIO не соберёт кворум.

TLS и сертификат от внутреннего CA

Голый HTTP в production я не допускаю никогда. MinIO требует TLS для STS, для работы с политиками IAM и для совместимости с современными клиентами. Я всегда выпускаю сертификат от внутреннего AD CS — о его поднятии подробно писал в другой статье.

# На каждом узле
mkdir -p /etc/minio/certs
cp s3.corp.local.crt /etc/minio/certs/public.crt
cp s3.corp.local.key /etc/minio/certs/private.key
chown -R minio-user /etc/minio/certs
chmod 600 /etc/minio/certs/*.key
systemctl restart minio

Сертификат включает SAN для всех 4 узлов и VIP-имени балансировщика. Фронтом я ставлю HAProxy или nginx, который распределяет входящие запросы по 4 узлам round-robin с health-check по /minio/health/live.

Создание бакетов и IAM-пользователей

Работа с MinIO идёт через mc — MinIO Client. Это аналог aws cli, только компактнее.

mc alias set s3 https://s3.corp.local adminopsroot 'BolshoyStoykiyParol2025'

# Бакет для Veeam
mc mb s3/veeam-backups
mc version enable s3/veeam-backups
mc retention set --default compliance 30d s3/veeam-backups

# Бакет для архива 1С
mc mb s3/archive-1c
mc ilm add --expiry-days 2555 s3/archive-1c  # 7 лет ФНС

# Пользователь с ограниченными правами
mc admin user add s3 veeam-user 'VeryStrongServicePass'
mc admin policy attach s3 readwrite --user veeam-user

Immutability через S3 Object Lock защищает бэкапы от шифровальщиков: даже root-админ не удалит объект до истечения retention. Это ключевая фича для современной стратегии 3-2-1-1-0.

Интеграция с Veeam Backup & Replication

В Veeam добавляем MinIO как Object Storage Repository. Тип — S3 Compatible, endpoint https://s3.corp.local:9000, регион us-east-1 (именно так — MinIO эмулирует AWS-регионы). Ставим галку Immutability с периодом, скажем, 30 дней — и получаем защищённый репозиторий, в котором шифровальщик ничего не сможет стереть.

# Тест доступа перед настройкой Veeam
aws --endpoint-url https://s3.corp.local s3 ls \
  --ca-bundle /etc/ssl/certs/corp-root.pem

Реальный кейс: 48 ТБ для логистической компании

В марте 2026 клиент — логистический оператор в Москве — попросил перенести бэкапы с стареющей СХД на объектное хранилище. Задача: держать 48 ТБ активных бэкапов Veeam, архив EDI-документов и шину S3 для внутренних сервисов. Бюджет — 1.6 млн руб.

Мы собрали 4 узла Dell PowerEdge R740xd (Xeon Platinum 8280, 128 ГБ RAM, 6 × 14 ТБ HDD SATA, SSD под OS). Сеть — 40G Mellanox ConnectX-5 в стеке двух Dell S4148. Всё поставили в дата-центре МТС в Москве, в стойке клиента. MinIO в распределённом режиме, EC:4, TLS от внутреннего AD CS. Бенчмарк: последовательная запись 6.8 ГБ/с, случайная — 1.9 ГБ/с. Veeam полный бэкап 18 ТБ проходит за 58 минут против прежних 4.5 часов.

Мониторинг и обслуживание

MinIO из коробки отдаёт Prometheus-метрики на /minio/v2/metrics/cluster. Я всегда подключаю Grafana с готовой дашбордой 13502. На ней сразу видно IOPS, throughput, доступность узлов, ошибки erasure coding.

Развернём MinIO-кластер под ваши бэкапы

Проектирую и внедряю S3-совместимые хранилища любого масштаба — от 4-узловых для офиса до петабайтных федераций. Подбор железа, установка, TLS, интеграция с Veeam и 1С, мониторинг в Grafana.

Телефон: +7 903 729-62-41
Telegram: @ITfresh_Boss
Семёнов Евгений Сергеевич, директор АйТи Фреш

FAQ — вопросы по MinIO

Зачем MinIO, если есть NAS?
MinIO даёт S3-совместимый API — его понимают Veeam, Duplicati, rclone, приложения на AWS SDK. NAS по SMB/NFS не работает с объектными бэкап-системами и не даёт версионирования, immutability и встроенного шифрования на уровне объектов.
Сколько узлов минимально?
Для распределённого режима — минимум 4 узла по 4 диска, итого 16 дисков. Это обеспечивает erasure coding EC:4 и защиту от потери двух узлов без простоя.
Как MinIO интегрируется с Veeam?
Veeam B&R с версии 10 поддерживает S3-репозитории как Object Storage. Указывается endpoint, access key, secret key и bucket — Veeam сам шифрует, дедуплицирует и работает с immutability через S3 Object Lock.
Можно ли без TLS?
Теоретически да, на внутренней сети. На практике — нет. MinIO без TLS отключает часть функций (например, STS-токены), а клиенты типа Veeam требуют HTTPS. Я всегда генерирую сертификат от внутреннего CA.
Какой диск использовать?
MinIO любит JBOD без RAID — erasure coding делает резервирование на уровне кластера. Используйте Enterprise HDD 10–18 ТБ SATA или SAS, файловая система XFS. RAID внутри узла не нужен и вреден.

Подпишитесь на рассылку ITfresh

Раз в неделю — практические гайды для руководителя IT и сисадмина: безопасность, 1С, миграции, резервные копии, лайфхаки из реальных проектов.

Реквизиты оператора персональных данных

ООО «АЙТИ-ФРЕШ», ИНН 7719418495, КПП 771901001. Юридический адрес: 105523, г. Москва, Щёлковское шоссе, д. 92, корп. 7. Контакт: info@itfresh.ru, +7 903 729-62-41. Оператор обрабатывает e-mail подписчика в целях рассылки информационных и рекламных материалов до момента отзыва согласия.