Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Настройка репликации базы данных mongodb
  • Настройка приложения WNAM для использования реплицированной базы
  • Настройка кластерного IP-адреса серверов
Работа кластеризации WNAM основана на том, что все сведения об объектах, статистику, настройки и т.п. сервер WNAM хранит в базе данных, а не в оперативной памяти процесса. Таким образом, в случае переключения между серверами WNAM никакие данные не потеряются, за исключением 
текущих неподтвержденных телефонов (СМС отправлено, но абонент ещё не ввёл код подтверждения ). 
Image Added

Репликация mongodb

Механизм обеспечения отказоустойчивости базы данных путём репликации её на несколько серверов встроен в mongodb и очень подробно описан в официальной документации. Он основан на использовании набора репликации (replica set), функционирующем на основном (primary) и одном или более резервных (secondary) серверов, возможно с использованием арбитра (arbiter). Вы можете перенастроить уже работающую у вас базу mongo для работы в кластере, без потери данных.

Минимальный набор серверов для включения в кластер состоит из основного, резервного экземпляра сервиса, и арбитра. Арбитр не хранит данные, а является лишь посредником при проведении голосования по выбору мастера. Возможно запустить службу арбирта на одном из двух серверов с базами, на нестандартных портах. Допустим, мы хотим создать кластер из трёх серверов (виртуальных машин):

ИмяАдресIP-адресРольПриоритет
1wnam-srv1.domain.net1.2.3.89PRIMARY2
2wnam-srv2.domain.net1.2.3.90SECONDARY1
3wnam-arbiter.domain.net1.2.3.92ARBITER0

...

Запустите WNAM на основном и резервном сервере. В административном веб-интерфейсе каждого из них на главной странице вы увидите записи:

Image Added
При этом оба сервера, фактически, будут обращаться к одной базе данных. Проверьте, что будет, если изменить настройки на одном сервере WNAM, и проверить изменения на втором.

...

Настройка кластерного IP-адреса

 

 

...

Для того, чтобы внешние по отношению к серверам WNAM воспринимали оба сервера как один кластер, необходимо настроить средство, позволяющее путём голосования выбрать активный сервер, присвоить ему кластерный адрес, и переключать его в случае сбоя активного узла. Такое повоедение можно получить, если установить и настроить простое средство кластеризации серверов Linux - ucarpd.

Необходимо его установить на двух серверах - primary и secondary. Сервер-арбитр участвует только в выборах активного узла mongodb, но не в IP-кластере.

apt-get install ucarp

Настройка ucarpd проста и требует изменения только конфигурационного файла /etc/network/interfaces. Мы выберем кластерный адрес 1.2.3.91. На него можно зарегистрировать ваше DNS-имя wnam.domain.net.

На первом (активном) сервере:

iface eth0 inet static
address 1.2.3.89
netmask 255.255.255.192
network 1.2.3.64
broadcast 1.2.3.127
gateway 1.2.3.65
dns-nameservers 1.2.3.5
dns-search domain.net
ucarp-vid 1
ucarp-vip 1.2.3.91
ucarp-password WNAMpassword
ucarp-advskew 0
ucarp-advbase 1
ucarp-master yes
iface eth0:ucarp inet static
address 1.2.3.91
netmask 255.255.255.255

На втором (резервном) сервере:

iface eth0 inet static
address 1.2.3.90
netmask 255.255.255.192
network 1.2.3.64
broadcast 1.2.3.127
gateway 1.2.3.65
dns-nameservers 1.2.3.5
dns-search domain.net
ucarp-vid 1
ucarp-vip 1.2.3.91
ucarp-password WNAMpassword
ucarp-advskew 30
ucarp-advbase 1
ucarp-master no
iface eth0:ucarp inet static
address 1.2.3.91
netmask 255.255.255.255

Перезапустите сетевую службу на обоих серверах (service networking restart) и проверьте, что основной первый сервер получил требуемый кластерный адрес.

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

Для внешних клиентов - беспроводных контроллеров, серверов доступа, в настройках RADIUS-клиента, форм перенаправления и т.п. - вы везде должны использовать только кластерный адрес 1.2.3.91 или DNS-имя wnam.domain.net.

Вы обязательно должны в ваших системах мониторинга настроить тестирование состояния обоих серверов кластера, и статуса репликации.