LINUX.ORG.RU
ФорумAdmin

[ejabberd][кластеризация] Рвётся соединение между нодами и проблемы с репликацией


0

2

Здраствуйте, появилась у меня проблема.
Есть 2 ноды. Скажем, node1 и node2. К node1 подключены около 70% пользователей, к node2 - только оставшиеся. С s2s ситуация та же - почти все сервера подключены к node1.
Появилось две проблемы.

Первая - по непонятным причинам между нодами рвётся соединение. Полагаю, это не зависит от конфигурации нод и связано с проблемами у поставщиков сети. После восстановления соединения с миром, ноды почему-то не сцепляются обратно, приходится делать рестарт одной из нод, только после этого между ними восстанавливается коннект. Если этого не сделать, юзеры, подключившиеся к node2 (напоминаю - на нём почти нет s2s), не могут общаться, поскольку все люди из ростера в статусе Error. После рестарта ноды всё становится хорошо, но не прописывать же рестарт по крону раз в час?

Вторая - хранилище на одной ноде не соответствует хранилищу другой ноды. Скажем, оффлайн-сообщения:

node1 ~ # ls -sh /var/spool/jabber/offline_msg.DAT
7.3M /var/spool/jabber/offline_msg.DAT

node2 ~ # ls -sh /var/spool/jabber/offline_msg.DAT
4.5M /var/spool/jabber/offline_msg.DAT

Та же ситуация и с базами пользователей - если юзер зарегестрируется на одной ноде, то в будущем его перебросит на вторую, и он не сможет залогиниться.

В общем, вопросы:
1. Почему ноды не восстанавливают соединение и как их заставить это делать?
2. Как сделать прозрачную репликацию, чтобы БД зеркалировалась между нодами?


Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.