Changes between Version 13 and Version 14 of SoftswitchFailOver


Ignore:
Timestamp:
Mar 10, 2017, 4:49:25 PM (7 years ago)
Author:
alx
Comment:

Начал писать раздел "Ручное переключение".

Legend:

Unmodified
Added
Removed
Modified
  • SoftswitchFailOver

    v13 v14  
    406406Аналогично, только без выполнения/восстановления дампа настраиваем репликацию сервера 2 на сервер 1.
    407407
    408 == Настраиваем общий адрес ==
    409 
    410 Общий адрес - это IP адрес, используя который один из двух серверов (активный) будет предоставлять сервис. Пусть для определенности это будет адрес {{{192.168.0.63}}}.
    411 
    412 Для начала установим пакет arping:
    413 
    414 {{{
    415 $ sudo apt-get install arping
    416 }}}
    417 
    418 В файле /etc/network/interfaces обоих серверов добавляем настройку для общего адреса:
    419 
    420 {{{
    421 iface eth0:0 inet static
    422 address 192.168.0.63
    423 netmask 255.255.255.0
    424 }}}
    425 
    426 где вместо "eth0" следует вписать имя используемого сетевого интерфейса.
    427 
    428 Отредактируем файл /etc/default/arping, вписав в него {{{IPUP=1}}} и {{{DOWN=1}}}.
    429 
    430 На первом сервере выполняем команду
    431 
    432 {{{
    433 $ sudo ifup eth0:0
    434 }}}
    435 
    436 Выполнение этой команды на втором сервере должно дать ошибку, так как адрес уже присутствует в сети:
    437 
    438 {{{
    439 $ sudo ifup eth0:0
    440  * Using arping to check duplicity of 192.168.0.63...
    441    ...fail!
    442 run-parts: /etc/network/if-up.d/arping exited with return code 1
    443 Failed to bring up eth0:0.
    444 }}}
    445 
    446 Теперь необходимо изменить настройки odbc таким образом, чтобы оба сервера !FreeSwitch подключались к базе данных используя общий адрес и, таким образом, подключались к одному и тому же серверу mysql. Для этого в ранее созданном файле /etc/odbc.ini указываем адрес сервера {{{192.168.0.63}}}.
    447 
    448 Устанавливаем параметр sysctl net.ipv4.ip_nonlocal_bind в значение 1 чтобы дать возможность неактивному серверу !FreeSwitch слушать адрес, отсутствующий на его интерфейсах:
    449 
    450 {{{
    451 $ sudo sysctl net.ipv4.ip_nonlocal_bind=1
    452 }}}
    453 
    454 Для автоматической установки этого значения в файл /etc/sysctl.conf добавляем строку
    455 
    456 {{{
    457 net.ipv4.ip_nonlocal_bind=1
    458 }}}
    459 
    460 В конфигурации профилей !FreeSwitch устанавливаем параметры {{{sip-ip}}}, {{{rtp-ip}}}, {{{presence-hosts}}}, {{{ext-sip-ip}}} и {{{ext-rtp-ip}}} в значение {{{192.168.0.63}}}.
    461 
    462 Теперь можно запустить сервера !FreeSwitch:
    463 
    464 {{{
    465 $ sudo service freeswitch start
    466 }}}
    467 
    468408== Синхронизация файлов конфигурации и записей переговоров ==
    469409
     
    533473=== Автоматическое переключение ===
    534474
    535 Для автоматического переключения будем использовать протокол VRRP и демон keepalived. Устанавливаем пакет keepalived:
     475Для автоматического переключения будем использовать протокол VRRP и демон keepalived. Этот демон будет обеспечивать однятие на одном из серверов (активном, MASTER) общего адреса. Общий адрес - это IP адрес, используя который один из двух серверов (активный) будет предоставлять сервис. Пусть для определенности это будет адрес {{{192.168.0.63}}}.
     476
     477Устанавливаем пакет keepalived:
    536478
    537479{{{
     
    596538Контролируем переход сервера из состояния BACKUP в состояние MASTER. Для этого на несколько секунд отключаем активный в данный момент MASTER от сети (или просто останавливаем на нем демон keepalived). Контролируцем, что сервер, находившийся в состоянии BACKUP, перешел в состояние MASTER.
    597539
    598 На данном этапе у нас настроен переход сервера из резерва в активное состояние по единственному критерию - недоступности мастера, определяемой по протоколу VRRP. Теперь добавим сюда контроль работоспособности !FreeSwitch. Для этого создаем скрипт /etc/keepalived/ka-status.sh:
     540Теперь необходимо изменить настройки odbc таким образом, чтобы оба сервера !FreeSwitch подключались к базе данных используя общий адрес и, таким образом, подключались к одному и тому же серверу mysql. Для этого в ранее созданном файле /etc/odbc.ini указываем адрес сервера {{{192.168.0.63}}}.
     541
     542Устанавливаем параметр sysctl net.ipv4.ip_nonlocal_bind в значение 1 чтобы дать возможность неактивному серверу !FreeSwitch слушать адрес, отсутствующий на его интерфейсах:
     543
     544{{{
     545$ sudo sysctl net.ipv4.ip_nonlocal_bind=1
     546}}}
     547
     548Для автоматической установки этого значения в файл /etc/sysctl.conf добавляем строку
     549
     550{{{
     551net.ipv4.ip_nonlocal_bind=1
     552}}}
     553
     554В конфигурации профилей !FreeSwitch устанавливаем параметры {{{sip-ip}}}, {{{rtp-ip}}}, {{{presence-hosts}}}, {{{ext-sip-ip}}} и {{{ext-rtp-ip}}} в значение {{{192.168.0.63}}}.
     555
     556Теперь можно запустить сервера !FreeSwitch:
     557
     558{{{
     559$ sudo service freeswitch start
     560}}}
     561
     562На данном этапе у нас настроен переход сервера из резерва в активное состояние по единственному критерию - недоступности мастера, определяемой по протоколу VRRP. Теперь добавим сюда контроль работоспособности !FreeSwitch. Для этого сначала установим пакет arping:
     563
     564{{{
     565$ sudo apt-get install arping
     566}}}
     567
     568Теперь создадим скрипт /etc/keepalived/ka-status.sh:
    599569
    600570{{{#!sh
     
    670640
    671641=== Ручное переключение ===
     642
     643В этой схеме сервер, на котором поднят общий адрес, определяется командами администратора. Общий адрес - это IP адрес, используя который один из двух серверов (активный) будет предоставлять сервис. Пусть для определенности это будет адрес {{{192.168.0.63}}}.
     644
     645Для начала установим пакет arping:
     646
     647{{{
     648$ sudo apt-get install arping
     649}}}
     650
     651В файле /etc/network/interfaces обоих серверов добавляем настройку для общего адреса:
     652
     653{{{
     654iface eth0:0 inet static
     655address 192.168.0.63
     656netmask 255.255.255.0
     657}}}
     658
     659где вместо "eth0" следует вписать имя используемого сетевого интерфейса.
     660
     661Отредактируем файл /etc/default/arping, вписав в него {{{IPUP=1}}} и {{{DOWN=1}}}.
     662
     663На первом сервере выполняем команду
     664
     665{{{
     666$ sudo ifup eth0:0
     667}}}
     668
     669Выполнение этой команды на втором сервере должно дать ошибку, так как адрес уже присутствует в сети:
     670
     671{{{
     672$ sudo ifup eth0:0
     673 * Using arping to check duplicity of 192.168.0.63...
     674   ...fail!
     675run-parts: /etc/network/if-up.d/arping exited with return code 1
     676Failed to bring up eth0:0.
     677}}}
     678
     679Теперь необходимо изменить настройки odbc таким образом, чтобы оба сервера !FreeSwitch подключались к базе данных используя общий адрес и, таким образом, подключались к одному и тому же серверу mysql. Для этого в ранее созданном файле /etc/odbc.ini указываем адрес сервера {{{192.168.0.63}}}.
     680
     681Устанавливаем параметр sysctl net.ipv4.ip_nonlocal_bind в значение 1 чтобы дать возможность неактивному серверу !FreeSwitch слушать адрес, отсутствующий на его интерфейсах:
     682
     683{{{
     684$ sudo sysctl net.ipv4.ip_nonlocal_bind=1
     685}}}
     686
     687Для автоматической установки этого значения в файл /etc/sysctl.conf добавляем строку
     688
     689{{{
     690net.ipv4.ip_nonlocal_bind=1
     691}}}
     692
     693В конфигурации профилей !FreeSwitch устанавливаем параметры {{{sip-ip}}}, {{{rtp-ip}}}, {{{presence-hosts}}}, {{{ext-sip-ip}}} и {{{ext-rtp-ip}}} в значение {{{192.168.0.63}}}.
     694
     695Теперь можно запустить сервера !FreeSwitch:
     696
     697{{{
     698$ sudo service freeswitch start
     699}}}