Когда речь заходит о облачном хранении, первым на ум приходит AWS S3, однако для проектов, требующих суверенитета данных и контроля затрат, гораздо разумнее развернуть собственную инфраструктуру. Именно здесь в игру вступает MinIO. MinIO — это высокопроизводительный сервер объектного хранения, полностью совместимый с API AWS S3. Вы можете запустить его на своём VDS-сервере за считанные минуты и использовать все возможности S3 на локальном оборудовании.
Почему MinIO?
Основные причины выбрать MinIO — открытый исходный код, высокая скорость и совместимость с S3. При подключении к сети 10 Гбит/с и выше вы можете достичь скорости записи/чтения в несколько гигабайт в секунду. Кроме того, MinIO легко интегрируется с современными платформами, такими как Kubernetes и Docker.
Предварительные требования
- VDS как минимум с 2 ядрами (рекомендуется 4 ядра)
- 4 ГБ ОЗУ (идеально 8 ГБ)
- SSD или NVMe диск для хранения
- Операционная система Ubuntu 22.04 LTS или Rocky Linux 9
- Открытые порты: 9000 (API) и 9001 (консоль)
Пошаговая установка MinIO
1. Скачать бинарный файл MinIO
Первым делом скачиваем последнюю версию MinIO и делаем её исполняемой. Введите в терминале следующие команды:
wget https://dl.min.io/server/minio/release/linux-amd64/minio chmod +x minio sudo mv minio /usr/local/bin/2. Создать каталог для данных
Создайте каталог, в котором будут храниться объекты. Например:
sudo mkdir -p /data/objects3. Запустить MinIO
Запустите MinIO следующей командой. Здесь MINIO_ROOT_USER и MINIO_ROOT_PASSWORD задают имя администратора и пароль:
export MINIO_ROOT_USER=admin export MINIO_ROOT_PASSWORD=supersecret123 minio server /data/objects --console-address ":9001"Теперь вы можете получить доступ к консоли по адресу http://ip-сервера:9001 и к S3 API по адресу http://ip-сервера:9000.
Запуск как постоянной службы через systemd
Чтобы MinIO автоматически запускался при перезагрузке сервера, создадим службу systemd:
sudo nano /etc/systemd/system/minio.serviceДобавьте в файл следующее:
[Unit] Description=MinIO Documentation=https://docs.min.io Wants=network-online.target After=network-online.target [Service] User=minio-user Group=minio-user EnvironmentFile=-/etc/default/minio ExecStart=/usr/local/bin/minio server /data/objects Restart=always [Install] WantedBy=multi-user.targetЗатем создайте пользователя и запустите службу:
sudo useradd -r minio-user -s /sbin/nologin sudo chown minio-user:minio-user /data/objects sudo systemctl daemon-reload sudo systemctl enable minio sudo systemctl start minioСоветы по безопасности и производительности
- Используйте HTTPS: Защитите консоль и API с помощью сертификата Let's Encrypt.
- Резервное копирование: Регулярно выполняйте зеркалирование данных на другой сервер MinIO с помощью команды mc mirror.
- Восстановление дисков: MinIO устойчив к отказам дисков благодаря erasure coding. В конфигурации из 8 дисков потеря до 4 дисков не приведёт к потере данных.
- Тестирование производительности: Измерьте скорость записи/чтения с помощью команды mc admin speedtest. В сети 10GbE можно достичь 5 ГБ/с.
Заключение: создайте собственное S3-хранилище
С помощью MinIO на VDS вы получаете все преимущества AWS S3, сохраняя полный контроль над данными. Это отличное решение для сценариев с большими данными, резервным копированием и хранением медиафайлов. Установка проста, затраты низки, а масштабируемость высока. Попробуйте уже сегодня и увидите разницу.