Настройка и использование FSGW (File Storage Gateway)#

Начиная с версии 1.024.00, в состав программного компонента Адаптер Exchange - Шлюз электронной почты (MAIL) включен компонент File Storage Gateway (FSGW), позволяющий объединять несколько S3-хранилищ в replica set.
FSGW выступает в роли прозрачного S3-шлюза, где Adapter Exchange обращается к FSGW как к обычному S3-хранилищу для чтения/записи/удаления файлов, а FSGW реплицирует это действие на все S3-хранилища, входящие в replica set.

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

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

Обратите внимание: в случае, если в проекте используется только одно S3-хранилище, всё равно нужно произвести настройку хотя бы одного replica set в стендозависимых параметрах.

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

Перед тем, как объединять S3-хранилища в replica set, необходимо настроить параметры подключения для каждого S3-хранилища (см. Настройка S3-хранилищ).

Для настройки replica sets необходимо внести изменения в два конфигурационных файла: mail-files.conf и mail-fsgw.conf.

mail-files.conf#

В файле mail-files.conf указывается параметр mail_files.ose.configmap.data.s3.replica-sets, отвечающий за настройку replica sets и отображающий список replica sets. Данное поле обязательно и не должно быть пустым. В случае, если в проекте используется только одно S3-хранилище, всё равно нужно указать хотя бы один replica set - придумайте alias для replica set, а в качестве массива S3-хранилищ укажите alias единственного S3-хранилища.

Настройки каждого replica set отделяются точкой с запятой, каждый параметр в настройках отделяется запятой.

При инсталляции дистрибутива к значению параметра mail_files.ose.configmap.data.s3.replica-sets применяется функция split для парсинга параметров, поэтому между разделителями (; и ,) не должно быть пробелов, иначе пробел станет частью параметра.

Для каждого replica set указываются следующие 3 параметра строго в заданном порядке:

Параметр

Описание

Alias replica set

Можно задать любое значение. Запрещено использовать символ точки и двоеточия. Alias не должен совпадать с любым alias S3-хранилища, указанным в mail_files.ose.configmap.data.s3.storages

Массив значений alias S3-хранилищ, входящих в replica set

Значения alias должны браться из параметра mail_files.ose.configmap.data.s3.storages. Каждый alias в массиве отделяется символом двоеточия

min-success-replication-factor

Минимальное количество S3-хранилищ, в которые должен успешно сохраниться файл, чтобы общая операция сохранения файла в replica set считалась успешной. Должно быть значение на отрезке [1, количество_s3_хранилищ_в_replica_set]

Пример объединения двух S3-хранилищ (vm-test-sy-docker-143 и vm-test-sy-docker-142) в replica set:

mail_files.ose.configmap.data.s3.replica-sets=fsgw-replica-set-1,vm-test-sy-docker-143:vm-test-sy-docker-142,1

mail-fsgw.conf#

В файле mail-fsgw.conf указываются следующие параметры, отвечающие за настройки подключения к S3-хранилищам в FSGW:

Параметр

Описание

mail_fsgw.ose.configmap.data.s3.base-path

Базовый URL-путь, запросы на который ожидает FSGW

mail_fsgw.ose.configmap.data.s3.httpclient.maxConcurrency

Максимальное количество параллельных запросов. Данный параметр опционален. Если данный параметр не указан, применится значение по умолчанию - 50

mail_fsgw.ose.configmap.data.s3.httpclient.connectionTimeout

Таймаут на установление соединения с S3-хранилищем, в мс. Данный параметр опционален. Если данный параметр не указан, применится значение по умолчанию - 2000

mail_fsgw.ose.configmap.data.s3.httpclient.readTimeout

Таймаут на чтение из S3-хранилища, в мс. Данный параметр опционален. Если данный параметр не указан, применится значение по умолчанию - 30000

mail_fsgw.ose.configmap.data.s3.httpclient.writeTimeout

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

Выбор replica set для почтового ящика в административной панели#

Так как FSGW является прозрачным S3-шлюзом, выбор replica set для почтового ящика выполняется аналогично выбору S3-хранилища (см. Настройка S3-хранилищ) - в настройках почтового ящика необходимо выбрать запись с alias replica set.

При отправке/получении писем с вложениями с данного почтового ящика, Adapter Exchange будет отправлять запрос к FSGW, который в свою очередь будет обращаться к S3-хранилищам, указанным в данном replica set.