рубрики

Резервирование сервера с помощью heartbeat

Задача: необходимо сделать отказоустоичивую систему из 2-х серверов, (например сервера телефонии asterisk), что бы в случае выхода из строя основного сервера, работа продолжалась бы на резервном сервере, а когда основной сервер заработает, всё переключалось обратно. Резервирование будет настроено с помощью heartbeat.

Допустим в сети 192.168.0.0/24 есть 2 сервера

192.168.0.10-основной

192.168.0.11-резервный

Во первых устанавливаем на обоих серверах heartbeat

yum install heartbeat -y

 После установки, для работы heartbeat, в каталоге  /etc/ha.d/ необходимо создать 3 основных конфигурационных файла- ha.cf, authkeys, haresources.

touch  /etc/ha.d/ha.cf  /etc/ha.d/authkeys  /etc/ha.d/haresources

ha.cf - основной конфигурационный файл, содержащий массу различных параметров того, как будет осуществляться heartbeat-механизм. За основу можно взять файл, идущий в пакете (расположен в /usr/share/doc/heartbeat-2). В данном случае будет содержать

logfile /var/log/ha-log
node server1
node server2
keepalive 1 # Интервал проверки (каждую секунду)
deadtime 10 #интервал, определяющий отказ другой ноды(10 секунд)
bcast eth0 #интерфейс для широковещательных пакетов 
auto_failback on # при восстановлении «упавшего» сервера адрес вернуть
respawn hacluster /usr/lib/heartbeat/ipfail

 server1 и server2  имена серверов 1 и 2 , их можно узнать командой uname -n. В данном случае server1 является мастером, т.к. он в файле прописан в качестве первой ноды.

 haresources - файл, описывающий ресурсы, контролируемые серверами server1 и server2  . Ресурсы представляют собой обычные стоп/старт скрипты, похожие чем-то на сценарии из/etc/init.d. В директории /etc/ha.d/resource.d можно посмотреть доступные (уже готовые к использованию) сценарии. В данном случае будет использован ресурс IPaddr для активации дополнительного ip-адреса на интерфейсе eth0. 

server1 IPaddr::192.168.0.12/24/eth0

 authkeys - файл для взаимной аутентификации серверов server1 и server2. Можно использовать sha, md5, но чтобы не расходовать ресурсы достаточно использовать crc. После создания файл, необходимо установить права доступа к нему только для root

# cat > authkeys
auth 1
1 crc
[Ctrl+C]
# chmod 600 authkeys

 Все эти 3 файла должны быть одинаковыми на обоих серверах 

Запускаем heartbeat на обоих серверах

/etc/init.d/heartbeat start

 Если все нормально должен появится вывод

Starting High-Availability services:
2014/07/17_11:43:11 INFO:  Resource is stopped                                                         
[ OK ]

 Через некоторое время мы увидим на сервере server1 дополнительный интерфейс с ip адресом 192.168.0.12

# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:50:56:97:65:C5
          inet addr:192.168.0.10  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:49002 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16374 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:67169344 (64.0 MiB)  TX bytes:2221617 (2.1 MiB)

eth0:0    Link encap:Ethernet  HWaddr 00:50:56:97:65:C5
          inet addr:192.168.0.12  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

 если server1 будет недоступен, то ip адрес 192.168.0.12 появится на server2, например можно выключить server1 и проверить 

# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:50:56:97:75:4B
          inet addr:192.168.0.11  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:49047 errors:0 dropped:0 overruns:0 frame:0
          TX packets:20667 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:67229318 (64.1 MiB)  TX bytes:2177431 (2.0 MiB)

eth0:0    Link encap:Ethernet  HWaddr 00:50:56:97:75:4B
          inet addr:192.168.0.11  Bcast:192.168.0.255 Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

 Логи можно посмотреть в /var/log/ha-log и в /var/log/message

Рубрика: Linux | Теги: Linux, резервирование, класиер, heartbeat
Система Orphus
-->