Для повышения надежности работы системы предусмотрена возможность репликации данных сервера FossDocMail. Средствами системы реплицируется исходящая очередь почтового сервера FossMail и его настройки. Также, по усмотрению администратора, возможна репликация произвольных файлов сервера FossMail .
Репликация «Баз данных конвертов» почтового сервера FossMail и «Хранилища сообщений» сервера приложений FossDocMail производится системными средствами СУБД.
Рассмотрим схему репликаций и применяемые средства.
Учитывая структуру сервера FossDocMail, процесс настройки репликаций разбивается на два этапа. «Репликация папок и файлов» и «Репликация баз данных».
Настройка главного почтового узла
Репликация папок и файлов
Репликация папок и файлов производится системными средствами почтового сервера FossMail. Папки и файлы копируются на резервный почтовый сервер. К данному серверу должен быть открыт соответствующий доступ, который указывается в разделе «Репликация почтовых папок» (параметр «Путь к папкам копий»). Для доступа к удаленным каталогам резервного узла сервис FossMail32 должен запускаться не от системы (по умолчанию), а от локального пользователя с правами администратора. Этот же пользователь с правами доступа к соответствующим каталогам резервного сервера FossMail32 должен быть заведен на резервном сервере.
Репликация почтовых ящиков
В почтовых ящиках хранится исходящая очередь файлов почтовой корреспонденции (ФПК). Это список файлов, предназначенных на отправку. Настройка данной репликации производится из пункта меню «Свойства объекта/Узел/Репликации почты» программы «Администратор почтового сервера FossMail». Схема работы репликации следующая. При помещении ФПК в исходящую очередь он автоматически копируется на резервный сервер, указанный в параметре «Путь к папкам копий». При отправке ФПК и удалении его из очереди данный ФПК удаляется с резервного сервера. Таким образом, в случае аварийной остановки главного сервера все ФПК, которые не были отправлены будут сохранены на резервом сервере.
Аналогично выполняется репликация почтовых ящиков пользователей при их создании или удалении. При создании нового пользователя на главном почтовом узле автоматически создается копия его почтового ящика на резервном узле. При удалении пользователя соответствующий почтовый ящик удаляется и на резервном узле.
Репликация настроек (автоконфигурация)
Репликация настроек позволяет сохранить настройки маршрутных таблиц и адресные книги хранящихся на главном почтовом сервере. Используя пункт меню «Свойства объекта/Компьютер/Репликация настроек/Авто.конф.» программы «Администратор почтового сервера FossMail», следует указать путь к резервному почтовому серверу. Для параметра «Папка узла» рекомендуется использовать общую часть пути из «Настройки репликации папок» (\\<Computer_name>\FossMail32\). Репликация производится только при изменении настроек, т.е., если изменили какую либо маршрутную таблицу, то она будет реплицирована.
Для репликации всех файлов и подкаталогов данного каталога следует использовать зарезервированное слово <ALL>.
Например: C:\FossMail32\FOSSABS\<ALL> .
Для указания формата реплицируемых файлов используется маска *.*
Например: C:\FossMail32\Route\*.*
Репликация дополнительных данных (ручная конфигурация)
При необходимости можно указать репликацию дополнительных данных. Например, файла соединений или архивов сообщений, прошедших через почтовый сервер. Данные настройки доступны из меню «Свойства объекта/Компьютер/Репликация настроек/Добавить» программы «Администратор почтового сервера FossMail». Репликация производится в случае изменения реплицируемых файлов.
Репликация транзитных сообщений
- При первом запуске FmArc.net.exe или после перехода из обычного режима (Host.cfg [QUEUE_MANAGER] #REPLICATION_MODE=0) в режим репликации (#REPLICATION_MODE=1) программа выполняет однократную синхронизацию архивов на основном сервере (папка указана в Host.cfg [COMMON] #Zip_Dir) с резервным. Если на резервном сервере найден одноименный архив и размер его меньше чем на основном, этот архив на резервном сервере перезаписывается.
- Если программа запущена в режиме архивации (#REPLICATION_MODE=0) – выполняется перенос всех обработанных узлом сообщений (папка задается в Host.cfg [COMMON] #BE_DIR) в соответствующий архивный файл (Host.cfg [FMARC] #Zip_Dir). Если такое сообщение в архиве уже присутствует – сообщение повторно не заносится и удаляется.
- Если программа запущена в режиме репликации (#Replication_Mode = 1) – выполняется копирование всех обработанных узлом сообщений (#BE_DIR) в соответствующий архивный файл (каталог #Zip_Dir), за тем осуществляется перенос этих сообщений во временный каталог для последующей репликации.
- Если на этапе разборки/архивации ФПК обнаружена ошибка, связанная с самим ФПК, это сообщение в зависимости от обнаруженной ошибки или переносится в каталог .\BE\BAD_ZIP\ для последующего анализа, или удаляется, или оставляется для обработки при повторном запуске.
- Если в процессе репликации сообщения на резервном сервере обнаруживается дубль и он имеет нулевую длину, то сообщение перезаписывается. В противном случае репликация этого сообщения не выполняется.
- Если программа запущена первый раз за текущие сутки, она выполняет дневной регламент:
- — удаляет появившиеся в результате возможных сбоев временные файлы .\ARC\*.tmp,
- — если задано время жизни архивных файлов (#DELETE_AFTER_DAYS) – удаляет устаревшие архивы или, если задан каталог, куда их переносить (#RECYCLE_PATH) – переносит их.
- Командная строка запуска программы соответствует общепринятой для задач FossMail:
FMArc.exe [-l] –c <полный путь к host.cfg>, где –l — необязательный параметр требования ведения лога работы, -c <….> — задание полного имени файла конфигурации. При обнаружении ошибочных ситуаций в процессе обработки сообщений они будут зафиксированы в журнал ошибок задачи.
- Для предотвращения непредсказуемой работы программа архивирования и репликации при старте проверяет наличие в системе уже работающей своей копии. При обнаружении своей копии, через 5 секунд таймаута она прекращает свою работу.
- Секция cfg:
[FMARC]
; Упаковывать в один архив ФПК, пришедшие за 1…24 часов
#ARC_PERIOD=1
#REPLICATION_PATH=\\10.0.1.195\FossMail32\BE\
; Время жизни архивных файлов, в днях. 0 — без ограничения
#DELETE_AFTER_DAYS=10
; Если #RECYCLE_PATH не указывать – старые архивы будут удаляться
#RECYCLE_PATH = \\10.0.1.195\FossMail32\RECYCLE
- Переключение режимов репликации и указание пути к папке, куда будут реплицироваться все обработанные сервером сообщения выполняется при помощи программы конфигурирования узла CfgClient.exe.
Настройка резервного почтового узла
Для разворачивания резервного почтового узла необходимо установить то же программное обеспечение, что и на главном узле. Дальнейшие обновления необходимо выполнять синхронно с главным узлом.
- Сервис FossDoc (FD22-FossDocMail) резервного узла должен быть остановлен, а режим старта – ручной
- Поскольку даже в неактивном состоянии резервный узел должен обрабатывать реплицируемую с главного узла информацию (архивирование транзитных на главном узле сообщений, перенос/удаление устаревших архивов сообщений), почтовый сервис FossDoc32 должен быть запущен в Режиме 0, но задачи узла должны быть остановлены. Это достигается путем установки в файле конфигурации Host.cfg секция [COMMON] параметр #AUTO_START=0 при остановленном сервисе FossMail
- Для режима восстановления, когда после отказа и восстановления главного узла главный и резервный узлы меняются ролями и теперь резервный узел должен засинхронизировать свое состояние с восстановленным главным узлом перед вводом того в работу, настоятельно рекомендуется на резервном узле выполнить те же настройки, что и на главном, только относительно главного узла (пункт «Настройка главного почтового узла»)
- Чтоб резервный узел при репликации информации на главный имел доступ к удаленным каталогам на главном, сервис FossMail32 должен запускаться не от системы (по умолчанию), а от пользователя с правами администратора и этот же пользователь должен быть заведен на главном узле с правами доступа к соответствующим каталогам FossMail
Репликации баз данных
Система использует несколько баз данных для хранения информации. Настройка репликаций баз данных производится средствами репликаций СУБД. При восстановлении работоспособности главного почтового узла следует предусмотреть обратную синхронизацию баз данных с резервного узла.
Рабочая база конвертов
В данной базе хранится информация о конвертах сообщений, прошедших через почтовый узел FossMail. Данная база постоянно пополняется в процессе работы почтового сервера. Т.е. при прохождении через почтовый сервер сообщения или отчета на это сообщение в базу делается запись. Имя данной базы выбирается в момент настройки подключения к базе данных конвертов сообщений FossMail программы Mserver.
Архивные базы конвертов (cервер FossMail)
В зависимости от настроек программы Mserver создаются архивы рабочей базы конвертов. При необходимости их тоже можно реплицировать. Но, следует учитывать, что в архивную базу может быть записан отчет о прохождении сообщения, если это сообщение уже попало в архив. Имена архивных баз создаются по правилам, описанным в статье «Настройки подключения к СУБД».
Хранилище сообщений (cервер FossDocMail)
Почтовые сообщения всех интерактивных клиентов хранятся в БД «Хранилище сообщений». Имя данной базы задается на этапе настройки подключения к базе хранилища сообщений FossDocMail.
Переход в резервный режим работы
Предполагается, что главный почтовый узел вышел из строя. Для восстановления работоспособности системы необходимо запустить резервный почтовый узел. Для этого необходимо:
- Организовать доступ клиентам с основного почтового узла на резервный путем переназначения ip-адреса с главного сервера на резервный или изменением DNS записи, либо любым другим доступным способом.
- Перевести службы Windows (FossMail32 mail server, FD22-FossDocMail) резервного почтового узла в состояние «Автозапуск» и последовательно их запустить.
Поскольку все файлы, настройки, СУБД были синхронизированы с главным узлом ранее, система сразу же готова к работе.
Возврат из резервного режима работы в основной
После восстановления главного почтового узла перед его запуском необходимо синхронизировать папки, настройки, файлы, СУБД с резервным узлом. Для этого:
- Убедиться, что сервисы FossDocMail (FossMail32 и FossDoc) восстановленного главного почтового узла остановлены.
- Если восстановленный главный узел изменил свои параметры или на резервном узле не были выполнены настройки для обратной синхронизации данных методом репликации, необходимо на работающем резервном узле выполнить настройки в соответствии с главой «Настройка главного почтового узла» данного документа. При этом в качестве резервного будет выступать восстановленный главный почтовый узел.
- После настроек необходимо перевести работающий резервный узел в режим главного (Режим 1). При этом узел будет продолжать обрабатывать входящие/исходящие информационные потоки.
- Через время, необходимое для синхронизации (это может занять несколько часов в зависимости от пропускной способности канала связи с восстановленным главным узлом и накопленными рассогласованиями) необходимо:
- Остановить на резервном узле сервис FossDoc и перевести его запуск в ручном режиме.
- Через программу администрирования CfgClient.exe остановить все задачи почтового узла FossMail32, запустить задачу Архиватора/Репликатора (FmArc.net.exe), которая выполнит архивирование и репликацию (если задано) последних прошедших через узел сообщений
- Установить из программы администратора CfgClient.exe на резервном узле режим резервного (Режим 0)
- Остановить почтовый сервер (сервис FossMail32)
- Отключить автостарт задач узла при запуске: .\FossMail32\host.cfg секция [COMMON] параметр #AUTO_START=0 . Запустить на резервном узле только сервис FossMail32 и при помощи администратора CfgClient.exe убедиться, что все задачи узла остановлены, а репликация – в Режиме 0.
- Если главный и резервный узлы работают с разными серверами СУБД — синхронизировать СУБД главного почтового узла (MServer, FossDoc) с резервным средствами СУБД.
- Если на восстановленном главном узле настройки репликации не изменились – убедиться, что режим у него остался главного узла (Режим 1) – в host.cfg секция [QUEUE_MANAGER] параметр #REPLICATION_MODE=1. Запустить сервисы узла FossMail32 и FossDoc.
- В зависимости от выбранного способа доступа клиентов к серверу перевести соединения клиентов с резервного узла на главный.