Установка ECSS-10 в кластере

При установке системы ECSS-10 в кластере необходимо выполнить следующие действия.

  1. Запустить и активировать систему. Для этого выполните установку необходимых пакетов.

    3.14.3 Установка пакетов ECSS сначала выполняется полностью на одном из серверов кластера.


  2. Выполнить установку необходимых пакетов для всех серверов в кластере.

    Пакет ecss-web-conf достаточно установить на один из серверов.


  3. Установить имя кластера. Для этого откройте файл mycelium1.config текстовым редактором:

    sudo nano /etc/ecss/ecss-mycelium/mycelium1.config

    Если у вас в поле "cluster_name" указано "undefined", то необходимо задать произвольное имя для данного параметра, например:

    {cluster_name, my_cluster}


    Данная операция производится на обоих хостах при установке ECSS-10 с резервированием. Если установка производится без резерва, то данную операцию выполнять не обязательно.


  4. Настроить доступ к серверам системы. Для этого необходимо отредактировать файл /etc/dnsmasq.d/ecss-broker.

    Пример настройки доступа в соответствии с конфигурацией сети, приведён в разделе 3.14.3 Руководство по настройке.
    Файл /etc/dnsmasq.d/ecss-broker на ecss1:

    address=/primary.broker.ecss/192.168.1.1
    address=/secondary.broker.ecss/192.168.1.2

    Файл /etc/dnsmasq.d/ecss-broker на ecss2:

    address=/primary.broker.ecss/192.168.1.1
    address=/secondary.broker.ecss/192.168.1.2


    В качестве primary.broker.ecss и secondary.broker.ecss нельзя использовать адреса, которые были сконфигурированы в keepalived.conf.


  5. Настроить RestFS (подробнее см. раздел 3.14.3 Настройка RestFS).

Для проверки полноты установки и настройки можно использовать Чек-лист по установке ECSS-10.

Настройка VRRP

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

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

    Пример:

    vrrp_script chk_sip {
        script "/usr/bin/ecss_pa_sip_port 65535"
        interval 2
        timeout 2
    }
    
    vrrp_script check_core {
           script "nc -z localhost 8085"
           interval 2                      # check every 2 seconds
    }
    
    #For domain_bsk_ecss1 SIP
    vrrp_instance VI_SIP_61 {
        state MASTER
        interface bond1.2
        virtual_router_id 61
        priority 100
        advert_int 1
        preempt_delay 60
        unicast_src_ip 192.168.2.21
        unicast_peer {
            192.168.2.22
        }
    
        authentication {
            auth_type PASS
            auth_pass kassw2
            }
        virtual_ipaddress {
            192.168.2.61/24 dev bond1.2 label bond1.2:SIP61
            }
        track_script {
            chk_sip
            }
        }
    
    #For domain_bsk_ecss2 SIP
    vrrp_instance VI_SIP_62 {
        state BACKUP
        interface bond1.2
        virtual_router_id 62
        priority 50
        advert_int 1
        smtp_alert
        preempt_delay 60
        unicast_src_ip 192.168.2.21
        unicast_peer {
            192.168.2.22
        }
        authentication {
            auth_type PASS
            auth_pass kassw2
            }
        virtual_ipaddress {
            192.168.2.62/24 dev bond1.2 label bond1.2:SIP62
            }
        }
    
    
    #For TC ecss1
    vrrp_instance VI_TC63 {
        state BACKUP
        interface bond1.2
        virtual_router_id 63
        priority 100
        advert_int 1
        preempt_delay 20
        unicast_src_ip 192.168.2.21
        unicast_peer {
             192.168.2.22
        }
         authentication {
             auth_type PASS
             auth_pass kassw2
             }
    
         virtual_ipaddress {
         192.168.2.63/24 dev bond1.2 label bond1.2:TC
         }
         track_script {
         check_core
         }
    }
    include ecss-mysql-replication.conf
    


  2. На первом сервере создается файл с конфигурацией MySQL /etc/keepalived/ecss-mysql-replication.conf

    vrrp_script check_mysqld {
        script "nc -z localhost 3306"    # cheaper than pidof
        interval 2                     # check every 2 seconds
        fall 1
        rise 2
    }
    
    #For MySQL
    vrrp_instance MySQL71 {
        state BACKUP
        interface bond1.3
        virtual_router_id 71
        priority 100
        advert_int 1
         preempt_delay 10
         unicast_src_ip 192.168.1.21
         unicast_peer {
             192.168.1.21
        }
        authentication {
            auth_type PASS
            auth_pass pmysql
            }
        virtual_ipaddress {
            192.168.1.71/24 dev bond1.3 label bond1.3:MYSQL
            }
        track_script {
            check_mysqld
            }
    }


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

    vrrp_script chk_sip {
        script "/usr/bin/ecss_pa_sip_port 65535"
        interval 2
        timeout 2
    }
    
    vrrp_script check_core {
           script "nc -z localhost 8085" 
           interval 2                      # check every 2 seconds
    }
    
    #For domain_bsk_ecss1 SIP
    vrrp_instance VI_SIP_62 {
        state MASTER
        interface bond1.2
        virtual_router_id 62
        priority 100
        advert_int 1
        preempt_delay 60
        unicast_src_ip 192.168.2.22
        unicast_peer {
            192.168.2.21
        }
        authentication {
            auth_type PASS
            auth_pass kassw2
            }
        virtual_ipaddress {
            192.168.2.62/24 dev bond1.2 label bond1.2:SIP62
            }
        track_script {
            chk_sip
            }
        }
    
    #For domain_bsk_ecss2 SIP
    vrrp_instance VI_SIP_61 {
        state BACKUP
        interface bond1.2
        virtual_router_id 61
        priority 50
        advert_int 1
        smtp_alert
        preempt_delay 60
        unicast_src_ip 192.168.2.22
        unicast_peer {
            192.168.2.21
        }
        authentication {
            auth_type PASS
            auth_pass kassw2
            }
        virtual_ipaddress {
            192.168.2.61/24 dev bond1.2 label bond1.2:SIP61
            }
        }
    
    #For TC ecss1
    vrrp_instance VI_TC63 {
        state BACKUP
        interface bond1.2
        virtual_router_id 63
        priority 80
        advert_int 1
        preempt_delay 20
        unicast_src_ip 192.168.2.22
        unicast_peer {
             192.168.2.21
        }
         authentication {
             auth_type PASS
             auth_pass kassw2
             }
         virtual_ipaddress {
         192.168.2.63/24 dev bond1.2 label bond1.2:TC
         }
         track_script {
         check_core
         }
    }
    include ecss-mysql-replication.conf


  4. На втором сервере создается файл с конфигурацией MySQL /etc/keepalived/ecss-mysql-replication.conf


    vrrp_script check_mysqld {
        script "nc -z localhost 3306"    # cheaper than pidof
        interval 2                     # check every 2 seconds
        fall 1
        rise 2
    }
    
    #For MySQL
    vrrp_instance MySQL71 {
        state BACKUP
        interface bond1.3
        virtual_router_id 71
        priority 80
        advert_int 1
         preempt_delay 20
         unicast_src_ip 192.168.1.22
         unicast_peer {
             192.168.1.22
        }
        authentication {
            auth_type PASS
            auth_pass pmysql
            }
        virtual_ipaddress {
            192.168.1.71/24 dev bond1.3 label bond1.3:MYSQL
            }
        track_script {
            check_mysqld
            }
    }


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

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

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


Настройка RestFS для кластера