Один из аспектов — варианты реализации отказоустойчивости почтового сервера на платформе Eserv4. Т.е. например — самый тяжёлый вариант — сломался комп-сервер, или серверная вдруг стала обесточена, в праздники, надолго...
Как в этом случае правильно организовать резервирование сервиса? У кого-нибудь есть практический опыт?
Я попытался реализовать это в виде NLB-кластера с перемещением папки DATA в DFS.
Т.е. прописал
[Dirs]
Data=\\mmm-dmz.mydomen.ru\data-mail\E4DATA
Stat=..\DATA\stat — т.е. локально, иначе вообще не стартует.
HTTP=..\DATA\http — т.е. локально, иначе вообще не стартует.
Перезапустил сервисы — вроде всё работает. Почта отправляется и принимается. Но в acIMAP.log с интервалом в 1 сек (примерно) непрерывно пишется сообщение
FSM err=87 FSM err=87 ...
это он о чём?
И в acFilter.log аналогично.
Далее запускаю сервисы на втором узле и пытаюсь работать одновременно через оба узла кластера. Почти сразу-же acSMTP пишет в лог
EXCEPTION! CODE:C0000006 ADDRESS:6090D4B7 WORD:<?not found>
USER DATA: 0455057C THREAD ID: 00000B3C HANDLER: 02C4ED6C
** Exception time: Fri, 20 Dec 2013 12:39:29 +0800
** Thread number/reuse/id:6 0 2876
** API Calls: GetTickCount sqlite3_prepare_v2
STACK: (1509) 6090D939 02C4E834 60961D30 00000094 60920D21 02C4E8D4 [029A0000]
RETURN STACK:
.......
и далее на все письма строчки вида:
Can't add message into index. ERR=30000 \\mmm-dmz.mydomen.ru\data-mail\E4DATA\mail\arc4\201312\2013-12-20\\вырезано.eml
Или в другом случае строчки вида:
INJ ERR:30011 database disk image is malformed
Delivery err=30005
Т.е. что, все так безнадёжно, или как-то можно выкрутиться в этой ситуации?