S3 совместимое хранилище на Synology NAS с помощью MinIO

Всем привет!!!

Если когда-нибудь вам нужно было S3 совместимое хранилище или может понадобиться в будущем, то знайте, что есть статья как установить S3 совместимое хранилище на Synology NAS с помощью MinIO.

Введение

Очень много программного обеспечения для резервных копий поддерживают S3-совместимое хранилище. Например, плагины wordpress. Некоторые плагины CDN так же используют S3-совместимое хранилище. Так же S3 хранилище поддерживает Synology Hyper Backup. В общем каждый решит сам для чего ему это нужно. Я же после вводной части сосредоточусь на установке S3 совместимое хранилища на Synology NAS с помощью MinIO. По итогу у вас будет Web интерфейс управления S3 хранилищем и API для его управления и наполнения.

S3-совместимое хранилище — это объектное хранилище данных, которое поддерживает протокол взаимодействия Amazon S3 (Simple Storage Service). Это означает, что такие хранилища могут использовать API и инструменты, разработанные для работы с Amazon S3, что обеспечивает совместимость с широким спектром приложений и сервисов.

S3-совместимые хранилища часто используются для:

  • Хранения больших объемов данных (например, медиафайлов, логов, резервных копий).
  • Интеграции с облачными приложениями.
  • Построения распределенных систем хранения.

MinIO — это высокопроизводительное, распределенное объектное хранилище данных с открытым исходным кодом, которое полностью совместимо с API Amazon S3. Оно разработано для работы с современными облачными и контейнеризированными приложениями, обеспечивая высокую производительность, масштабируемость и простоту использования.

Конечно, можно купить S3 хранилище на хостинге, но лично меня цена не порадовала. Например, на хостинге reg.ru за 1000Гбайт просят 2160 рублей и это надо сказать еще дешево, т.к. исходящий трафик бесплатный. Кстати, по промо-коду 9B29-F41D-CD32-5243 вы получите скидку 5% на заказ домена или хостинга в Рег.ру

В общем, когда есть Synology, тогда выбора больше и можно сделать собственное S3 совместимое хранилище на Synology NAS с помощью MinIO на много терабайт.

Единственным условие является поддержка Container Manager на вашем Synology NAS. Это как правило устройства с процессорами x86 и маркировкой плюс(+) в конце названия модели.

Подготовка

В папке docker создайте каталог minio, а в ней папку data. В последней будут лежать все файлы Buckets S3-совместимого хранилища. Поэтому, возможно, вы захотите разместить эту папку в другом месте. Это возможно, просто имейте в виду, что тогда нужно дать этой папке доступ группе everyone на чтение и запись, что бы с правами не было проблем.

Далее вам понадобится файл docker compose, который можно взять ниже. В этой конфигурации вам нужно заменить https://minio.XXX.synology.me и https://s3.XXX.synology.me на свои значения. Первое нужно для WEB консоли, а второе для передачи данных. Порты 9090 и 9091 можно заменить по вашему выбору.

services:
  minio:  
    image: minio/minio:latest  
    container_name: minio  
    restart: unless-stopped  
    volumes:  
      - ./data:/data  
    ports:
      - 9090:9090
      - 9091:9091
    environment:  
      - MINIO_ROOT_USER=sadmin  
      - MINIO_ROOT_PASSWORD=bafista123  
      - MINIO_BROWSER_REDIRECT_URL=https://minio.XXX.synology.me
      - MINIO_SERVER_URL=https://s3.XXX.synology.me
    command: server /data --console-address ":9090" --address=":9091"
    healthcheck:  
      test: ["CMD", "curl", "-f", "http://localhost:9090/minio/health/live"]  
      interval: 30s  
      timeout: 20s  
      retries: 3

Установка

Затем откройте Container Manager и создайте новый проект как показано на скриншотах ниже. После создания и запуска проекта должно выйти сообщение exit code 0 означающее, что проект создан успешно.

Обратный прокси

Перейдите в панель управления, портал для входа, дополнительно и откройте обратный прокси. Нужно создать два правила обратного прокси для https://minio.XXX.synology.me с портом 9090 и https://s3.XXX.synology.me с портом 9091. Не забудьте создать два правила WebSocket и установите таймеры на 600 секунд. Все показано на картинках ниже.

WEB консоль

Для доступа в WEB консоль S3-совместимого хранилища на базе MiniO откройте https://minio.XXX.synology.me и введите логин и пароль, который указывали в файле docker compose на этапе подготовки.

Создайте первый Backet, только учитывайте, что он должен называться английскими маленькими буквами

Для доступа к хранилищу по S3 совместимому протоколу нужно создать ключи. Перейдите в соответствующий раздел и выполните это действие как показано на картинке ниже. Рекомендую скачать файл ключей, т.к. узнать их, если вы закроете это окно будет невозможно. Хотя конечно можно будет создать новые.

Подключение к S3 хранилищу

Для подключения к S3 хранилищу я буду использовать Synology Hyper Backup, но вы можете использовать любую утилиту, которая поддерживает S3. Эта очень многофункциональная и продвинутая утилита для резервного копирования данных и настроек приложений Synology. Более подробно о ней я рассказывал тут: Резервное копирование и восстановление в Synology

В целом все просто. Создаем новую задачу резервного копирования и указываем S3 хранилище. Затем пользовательский url адрес в который вписываем https://s3.XXX.synology.me. Версию v4 и формат указываем формат пути. Затем вбиваем ключи от хранилища, выбираем ранее созданный Buckets и придумываем название папки, куда будут складываться резервные копии. В итоге все должно получиться.

Если перейти в WEB интерфейс MiniO, то можно увидеть сколько места занимает резервная копия в данном Buckets

Минусы и плюсы

К минусам можно отнести тот факт, что если вы захотите скачать папку некоторого большого размера с WEB интерфейса MiniO, то вас будет ждать некоторое разочарование. Дело в том, что для скачивания папки MiniO, как и положено будет ее архивировать в zip архив и только потом отдаст ее вашему браузеру на скачивание. Как вы понимаете у Synology энергоэффективные процессоры и сжатие будет очень долгим, особенно если мы говорим о сотнях или тысячах гигабайт.

Но тут есть момент, который решает данную проблему. Дело в том, что все файлы в Buckets просто лежат в папке на Synology и их без проблемно можно скачать или перекинуть прям через File Station

Итог

В итоге получаем S3 совместимое хранилище на Synology NAS с помощью MinIO и можем без проблемно создавать Buckets как приватные так и общие, сохранять любые объемы данных и получать к ним доступ как локально, так и через интернет.

Подписаться
Уведомить о
guest
6 Комментарий
Старые
Новые
Межтекстовые Отзывы
Посмотреть все комментарии