Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

Для настройки механизма резервирования сервера посредством протокола VRRP используется функционал, который предоставляет приложение keepalived.

В составе ubuntu 16.04 обновился системный сервис keepalived, после его обновления VRRP перестает нормально функционировать.
Последняя рабочая версия keepalived - 1.2.19.
Если что-то упустили, откат можно произвести с помощью команды: sudo apt install keepalived=1:1.2.19-1. Также нужно зафиксировать версию пакета командой:
sudo apt-mark hold keepalived

  1. На первом сервере нужно создать файл конфигурации /etc/keepalived/keepalived.conf со следующим содержимым:

    global_defs
        {
            notification_email {
            }
        notification_email_from keepalived@biysk1
        smtp_server localhost
        smtp_connect_timeout 30
    }
    
    vrrp_script chk_slapd {
           script "killall -0 slapd"     # cheaper than pidof
           interval 2                      # check every 2 seconds
    }
    
    vrrp_script chk_sip {
           script "/usr/bin/ecss_pa_sip_port 65535"     # cheaper than pidof
           interval 2                      # check every 2 seconds
    }
    
    vrrp_script check_core {
           script "nc -z 127.0.0.1 8085" 
           interval 2                      # check every 2 seconds
    }
    
    !For server1 SIP
    vrrp_instance VI1 {
        state MASTER
        interface bond1.2
        virtual_router_id 101
        priority 100
        advert_int 1
        smtp_alert
        preempt_delay 60
        authentication {
            auth_type PASS
            auth_pass keepssw
            }
        virtual_ipaddress {
            192.168.2.101/24 dev bond1.2 label bond1.2:1
            }
        track_script {
            chk_sip
            }
    }
    
    !For server2 SIP
    vrrp_instance VI2 {
        state BACKUP
        interface bond1.2
        virtual_router_id 102
        priority 50
        advert_int 1
        smtp_alert
        preempt_delay 60
        authentication {
            auth_type PASS
            auth_pass keepssw
            }
        virtual_ipaddress {
            192.168.2.102/24 dev bond1.2 label bond1.2:2
            }
    }
    
    !For SLAPD
    vrrp_instance VI3 {
        state MASTER
        interface bond1.3
        virtual_router_id 103
        priority 100
        advert_int 1
        smtp_alert
        preempt_delay 20
        authentication {
            auth_type PASS
            auth_pass keepssw
            }
        virtual_ipaddress {
            192.168.1.50/24 dev bond1.3 label bond1.3:1
            }
        track_script {
           chk_slapd
            }
    }
    
    vrrp_instance VI4 {
        state BACKUP
        interface bond1.3
        virtual_router_id 104
        priority 50
        advert_int 1
        smtp_alert
        authentication {
            auth_type PASS 
            auth_pass keepssw
            }
        virtual_ipaddress {
            192.168.1.51/24 dev bond1.3 label bond1.3:2
            }
    }
    
    !For TC ecss1
    vrrp_instance VI5 {
         state BACKUP
         interface bond1.2
         virtual_router_id 110
         priority 100
         advert_int 1
         smtp_alert
         preempt_delay 20
         authentication {
             auth_type PASS
             auth_pass keepssw
             }
         virtual_ipaddress {
         192.168.2.110/24 dev bond1.2 label bond1.2:110
         }
         track_script {
         check_core
         }
    }
  2. На втором сервере нужно создать аналогичный файл /etc/keepalived/keepalived.conf со следующим содержимым:

    global_defs
        {
            notification_email {
            }
        notification_email_from keepalived@biysk2
        smtp_server localhost
        smtp_connect_timeout 30
    }
    
    vrrp_script chk_slapd {
           script "killall -0 slapd"     # cheaper than pidof
           interval 2                      # check every 2 seconds
    }
    
    vrrp_script chk_sip {
           script "/usr/bin/ecss_pa_sip_port 65535"     # cheaper than pidof
           interval 2                      # check every 2 seconds
    }
    
    vrrp_script check_core {
           script "nc -z 127.0.0.1 8085" 
           interval 2                      # check every 2 seconds
    }
    
    vrrp_instance VI1 {
        state MASTER
        interface bond1.2
        virtual_router_id 102
        priority 100
        advert_int 1
        smtp_alert
        preempt_delay 60
        authentication {
            auth_type PASS
            auth_pass keepssw
            }
        virtual_ipaddress {
            192.168.2.102/24 dev bond1.2 label bond1.2:2
            }
        track_script {
           chk_sip
            }
    }
    
    vrrp_instance VI2 {
        state BACKUP
        interface bond1.2
        virtual_router_id 101
        priority 50
        advert_int 1
        smtp_alert
        preempt_delay 60
        authentication {
            auth_type PASS
            auth_pass keepssw
            }
        virtual_ipaddress {
            192.168.2.101/24 dev bond1.2 label bond1.2:1
            }
    }
    
    vrrp_instance VI3 {
        state MASTER
        interface bond1.3
        virtual_router_id 104
        priority 100
        advert_int 1
        smtp_alert
        preempt_delay 20
        authentication {
            auth_type PASS
            auth_pass keepssw
            }
        virtual_ipaddress {
            192.168.1.51/24 dev bond1.3 label bond1.3:2
            }
        track_script {
           chk_slapd
            }
    }
    
    vrrp_instance VI4 {
        state BACKUP
        interface bond1.3
        virtual_router_id 103
        priority 50
        advert_int 1
        smtp_alert
        authentication {
            auth_type PASS
            auth_pass keepssw
            }
        virtual_ipaddress {
            192.168.1.50/24 dev bond1.3 label bond1.3:1
            }
    }
    
    !For TC ecss2
    vrrp_instance VI5 {
        state BACKUP
        interface bond1.2
        virtual_router_id 110
        priority 100
        advert_int 1
        smtp_alert
        preempt_delay 20
        authentication {
          auth_type PASS
          auth_pass keepssw
          }
         virtual_ipaddress {
         192.168.2.110/24 dev bond1 label bond1.2:110
         }
         track_script {
            check_core
            }
    }


Далее нужно произвести корректировку IP-адресов и имен интерфейсов, согласно конфигурации системы.

Более подробная информация о приложении keepalived и его настройке приведена в документации по адресу: http://www.keepalived.org/pdf/UserGuide.pdf.

Начиная с версии 3.8.0 изменён скрипт проверки доступности контрольного сип порта. Теперь скрипт из keepalive нужно вызывать следующим образом:
/usr/bin/ecss_pa_sip_port 65535, где 65535 дефолтное значение порта, который адаптер открывает в случае, когда он готов принимать нагрузку. Для того, чтобы изменить
порт необходимо в конфиге sip адаптера (/etc/ecss/ecss_pa_sip/sip1.config) в секции ip_ssw_intercom изменить в параметрe keepalive значение порта, после чего перезапустить адаптер.
  • Нет меток