Добавление NFS-томов в Global Server#

В конфигурационном файле config.yaml может быть указан:

  • основной том appvol, который в системе всегда монтируется как /app;

  • дополнительные тома extra_vols, которые монтируются как отдельные каталоги и используются для настройки дополнительных файловых хранилищ.

Таким образом:

  • appvol соответствует основному файловому хранилищу системы;

  • каждый элемент из extra_vols соответствует отдельному дополнительному файловому хранилищу.

Настройка основного тома#

Основной NFS-том задается в секции appvol.

Пример config.yaml:

appvol:
  type: nfs
  server: 192.168.1.3
  path: /nfs/share/global/filestorage

Примените ресурс:

kubectl apply -f ./config.yaml

Внутри Global Server данный том используется как каталог:

/app

На уровне файловых хранилищ системы путь до хранилища для основного тома формируется как:

/root/globalserver/workspace/mnt/app

Настройка дополнительных томов#

Дополнительные NFS-тома задаются в секции extra_vols.

Пример config.yaml:

extra_vols:
  - name: rpl
    path: rpl
    volume:
      type: nfs
      server: 192.168.1.35
      path: /nfs/share/global/rpl

Где:

  • name — системное имя дополнительного тома;

  • path — имя каталога монтирования внутри системы;

  • volume — параметры подключения NFS-ресурса.

Примените ресурс:

kubectl apply -f ./config.yaml

Правило формирования пути в системе#

После подключения дополнительного тома путь до хранилища в интерфейсе Global Server формируется по следующему правилу:

  • базовая часть пути сохраняется без изменений;

  • сегмент /app заменяется на имя тома из extra_vols.

Базовый путь основного тома:

/root/globalserver/workspace/mnt/app

Пример для дополнительного тома rpl:

/root/globalserver/workspace/mnt/rpl

Важно

rpl - отдельное хранилище временных файлов интеграций. Для него характерно большое количество мелких файлов и автоматическая очистка по ротации через несколько дней. По этой причине rpl рекомендуется размещать на отдельной NFS-шаре или в отдельном S3 bucket.

Настройка файлового хранилища по протоколу S3#

В системе Global Server в качестве файлового хранилища может использоваться объектное хранилище, доступное по протоколу S3.

  • Настройка S3 является альтернативой локальному или NFS-хранилищу.

  • Для S3-хранилища не требуется настройка путей монтирования в файловой системе сервера Global Server.

  • Параметры подключения и аутентификации должны поддерживаться в актуальном состоянии при смене учетных данных или бакета.

  • При использовании внешнего объектного хранилища необходимо дополнительно учитывать сетевую доступность endpoint и политику доступа со стороны S3-провайдера.

Основные параметры подключения#

При создании или редактировании записи файлового хранилища в поле типа файлового хранилища необходимо выбрать S3 протокол.

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

Параметр

Назначение

URL сервиса

Адрес S3-совместимого endpoint

Имя бакета

Имя целевого бакета для хранения файлов

Регион

Регион размещения бакета

Время ожидания завершения HTTP-запроса

Таймаут запросов к S3-сервису

Размер передаваемой порции

Размер части файла при передаче данных

Формат пути файла

Способ формирования ключа объекта в бакете

Шаблон адреса virtual hosted

Признак использования virtual-hosted-style адресации

Параметры аутентификации#

Для доступа к S3-хранилищу используются параметры аутентификации, задаваемые в отдельном блоке.

Поддерживаются следующие поля:

Параметр

Назначение

Ключ доступа

Access Key для обращения к S3 API

Секретный ключ

Secret Key для обращения к S3 API

Логин

Дополнительный идентификатор учетной записи, если используется в конкретной интеграции

Пароль

Пароль учетной записи, если используется в конкретной интеграции

Токен авторизации

Дополнительный токен, если этого требует используемый S3-сервис

При заполнении параметров необходимо использовать учетные данные, выданные для конкретного S3-бакета или сервисной учетной записи.

Настройка в интерфейсе Global Server#

Настройка выполняется в приложении по пути:

Настройка системы -> Сущности -> Файловые хранилища

Для каждого дополнительного NFS-тома необходимо создать или настроить отдельное файловое хранилище.

При настройке указываются:

  • Системное имя — идентификатор хранилища в системе;

  • Папка для хранения — логическое имя каталога;

  • Наименование — отображаемое название;

  • Тип файлового хранилища — локальное / S3;

  • Путь до хранилища — путь вида /root/globalserver/workspace/mnt/<name>.

Пример настройки локального хранилища:

Global NFS share settings

Пример настройки S3 хранилища:

Global S3 share settings

NFS: один основной том /app

flowchart LR
    U["Пользователи / бизнес-функции"] --> GS["Global Server"]

    subgraph ST["Контур хранения"]
        NFS["NFS-сервер"]
        SHR1["appvol"]
    end

    GS --> M1["/root/globalserver/workspace/mnt/app"]
    M1 --> SHR1
    SHR1 --> NFS

NFS: несколько хранилищ по функциональным зонам

flowchart LR
    U["Пользователи / бизнес-функции"] --> GS["Global Server"]

    subgraph APP["Функциональные зоны"]
        Z1["Основное хранилище"]
        Z2["Склад"]
        Z3["Производство"]
        Z4["Документооборот"]
        Z5["Отчеты"]
        Z6["Архив"]
        Z7["RPL / временные файлы интеграций"]
    end

    GS --> Z1
    GS --> Z2
    GS --> Z3
    GS --> Z4
    GS --> Z5
    GS --> Z6
    GS --> Z7

    subgraph ST["Контур хранения"]
        NFS-1["NFS-сервер 1"]
        NFS-2["NFS-сервер 2"]
        NFS-3["NFS-сервер 3"]
        S1["filestorage -> /root/globalserver/workspace/mnt/app"]
        S2["warehouse -> /root/globalserver/workspace/mnt/warehouse"]
        S3["production -> /root/globalserver/workspace/mnt/production"]
        S4["workflow -> /root/globalserver/workspace/mnt/workflow"]
        S5["reports -> /root/globalserver/workspace/mnt/reports"]
        S6["archive -> /root/globalserver/workspace/mnt/archive"]
        S7["rpl -> /root/globalserver/workspace/mnt/rpl"]
    end

    Z1 --> S1
    Z2 --> S2
    Z3 --> S3
    Z4 --> S4
    Z5 --> S5
    Z6 --> S6
    Z7 --> S7
    S1 --> NFS-1
    S2 --> NFS-1
    S3 --> NFS-1
    S4 --> NFS-2
    S5 --> NFS-2
    S6 --> NFS-2
    S7 --> NFS-3

S3: одно основное хранилище

flowchart LR
    U["Пользователи / бизнес-функции"] --> GS["Global Server"]

    subgraph OBJ["Объектное хранилище"]
        S3["S3 endpoint"]
        B1["Bucket: default"]
    end

    GS --> B1
    B1 --> S3

Смешанный вариант

flowchart LR
U["Пользователи / бизнес-функции"] --> GS["Global Server"]

    subgraph APP["Функциональные зоны"]
        Z1["Основное хранилище"]
        Z2["Склад"]
        Z3["Производство"]
        Z4["Документооборот"]
        Z5["Отчеты"]
        Z6["Архив"]
        Z7["RPL / временные файлы интеграций"]
    end

    GS --> Z1
    GS --> Z2
    GS --> Z3
    GS --> Z4
    GS --> Z5
    GS --> Z6
    GS --> Z7

    subgraph ST["Контура хранения"]
        NFS-1["NFS-сервер 1"]
        NFS-2["NFS-сервер 2"]
        S3-1["S3 endpoint 1"]
        S3-2["S3 endpoint 2"]
        S1["filestorage -> /root/globalserver/workspace/mnt/app"]
        S2["Bucket: warehouse"]
        S3["Bucket: production"]
        S4["Bucket: workflow"]
        S5["Bucket: reports"]
        S6["archive -> /root/globalserver/workspace/mnt/archive"]
        S7["rpl -> /root/globalserver/workspace/mnt/rpl"]
    end

    Z1 --> S1
    Z2 --> S2
    Z3 --> S3
    Z4 --> S4
    Z5 --> S5
    Z6 --> S6
    Z7 --> S7
    S1 --> NFS-1
    S2 --> S3-1
    S3 --> S3-1
    S4 --> S3-2
    S5 --> S3-2
    S6 --> NFS-1
    S7 --> NFS-2