SeaweedFS

В статье рассмотрим пример установки SeaweedFS в качестве объектного хранилища S3 для программного комплекса ELMA365. Статья охватывает установку SeaweedFS в конфигурации с одним узлом и одним диском (SNSD). Такая конфигурация не обеспечивает дополнительной надёжности или доступности, помимо того, что реализовано в базовом томе хранилища (RAID, LVM, ZFS и т. д.).

Перед установкой ознакомьтесь с информацией:

Установка состоит из нескольких этапов:

  1. Установка Docker и Docker Compose.
  2. Установка SeaweedFS.
  3. Установка MC Client.
  4. Запуск сервиса SeaweedFS.
  5. Настройка подключения к SeaweedFS.
  6. Создание бакета.
  7. Подключение к SeaweedFS.

Шаг 1. Установка Docker и Docker Compose

Для установки SeaweedFS потребуются следующие инструменты:

  • Docker — установите согласно инструкциям для вашей операционной системы на официальном сайте;
  • Docker Compose — установите согласно инструкциям для вашей операционной системы на официальном сайте.

 

Шаг 2. Установка SeaweedFS

  1. Создайте каталог для монтирования диска:

mkdir -p /opt/seaweedfs/data/

  1. Создайте файл docker-compose.yml:

version: "3.9"
services:
 seaweedfs:
   image: chrislusf/seaweedfs:4.06
   command: >
       server
       -ip.bind=0.0.0.0
       -s3
       -s3.config=/etc/seaweedfs/s3.json
       -s3.port=8333
   ports:
     - "8333:8333"
   volumes:
     - /opt/seaweedfs/data/:/data
     - /opt/seaweedfs/s3.json:/etc/seaweedfs/s3.json:ro
   restart: unless-stopped
   healthcheck:
     test: ["CMD", "curl", "-f", "http://localhost:9333/cluster/status"
     interval: 30s
     timeout: 10s
     retries: 3

  1. Создайте файл /opt/seaweedfs/s3.json:

{
 "identities": [
   {
     "name": "admin",
     "credentials": [
       {
         "accessKey": "elma365user",
         "secretKey": "SecretPassword"
       }
     ],
     "actions": ["Admin", "Read", "Write"]
   }
 ]
}

 

Настройка включения TLS/SSL в SeaweedFS

 

Шаг 3. Установка MC Client

Загрузите последний стабильный binary‑файл SeaweedFS Client и установите его в систему:

wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mс
sudo mv mc /usr/local/bin/

Шаг 4. Запуск сервиса SeaweedFS

Запустите манифест:

docker-compose -f docker-compose.yml up -d

Шаг 5. Настройка подключения к SeaweedFS

Создайте алиас для SeaweedFS:

/usr/local/bin/mc alias set seaweedfs http://SeaweedFS.your_domain:9000 elma365user SecretPassword

Шаг 6. Создание бакета

Важно: наименование бакетов в S3 должно соответствовать формату s3elma365*. Для примера в статье используется имя бакета s3elma365, пользователь elma365user и пароль SecretPassword. При настройке задайте эти данные согласно политике безопасности, принятой в вашей организации.

Примеры наименований для бакетов: s3elma365; s3elma365-dev; s3elma365-prod.

Для работы ELMA365 создайте бакет c наименованием s3elma365, используя команду:

/usr/local/bin/mc mb -p seaweedfs/s3elma365 --region=ru-central-1

 

Создание в S3 бакетов для работы ELMA Bot

 

Шаг 7. Подключение к SeaweedFS

Параметры для подключения к SeaweedFS:

  • address — seaweedfs.your_domain:9000;
  • bucket — s3elma365;
  • region — ru-central-1;
  • access key ID — elma365user;
  • secret access key — SecretPassword;
  • upload method — PUT;
  • enable SSL — No.

Если SeaweedFS ожидает подключение с использованием TLS/SSL, укажите в параметре enable SSL значение Yes.