В данном разделе описываются основные понятия и настройка георезерва (географического резервирования).

Общие положения

Георезерв:

Основные понятия

Возможные схемы резервирования

Резервирование может быть как однонаправленным, так и двунаправленным.
Пример:

пример 1

пример 2

В примере №1 домен geo.domain сайта site1 резервируется на site2.
В примере №2 site1 и site2 в свою очередь резервирует друг друга (разные домены geo.domain1 /geo.domain2).

Ниже описывается пошаговая настройка резервирования между двумя гео сайтами.

Пошаговая настройка георезерва

Исходим из того, что у нас есть два сайта: site1 с нодами DS <NODE_11>, <NODE_12> (например, сайт ecss10 с нодами ds1@ecss1, ds1@ecss2); site2 с нодами DS <NODE_21>, <NODE_22>.

Далее во всех примерах используем site1 и site2 для первой и второй локаций


  1. На каждом из сайтов независимо устанавливаем и настраиваем ECSS-10 по руководству по инсталляции и начальному конфигурированию.
  2. Настройка dnsmasq
    На каждом из хостов site1 и site2 добавляем в /etc/dnsmasq.d/ecss-broker следующие правила соответствия:

    primary.site2.broker.ecss - IP адрес хоста 1 на второй локации;
    secondary.site2.broker.ecss - IP адрес хоста 2 на второй локации;


    primary.site1.broker.ecss - IP адрес хоста 1 на первой локации;
    secondary.site1.broker.ecss - IP адрес хоста 2 на первой локации;


    address=/primary.site1.broker.ecss/192.168.23.110
    address=/secondary.site1.broker.ecss/192.168.23.111


    sudo systemctl restart dnsmasq.service


  3. На каждом из хостов site1 и site2 настраиваем mycelium
    Файл настройки mycelium находится по пути /etc/ecss/ecss-mycelium/mycelium1.config
  4. Настройка гео-сайта site1
    команды выполняются в CoCon:
  5. Настройка гео-сайта site2

  6. /system/geo-backup/properties/set enabled true
    Property "enabled" successfully changed from: 
    false
       to
    true.



  7. /domain/geo.domain/sip/network/set ip_set [geo.domain]             
    Property "ip_set" successfully changed from: 
    []
       to
    ["geo.domain"].


    /system/geo-backup/properties/set sync_timeout 1800


  8. Настройка медиаресурсов

    Для корректной работы георезерва на удаленном гео-сайте необходимо настроить медиаресурсы, используемые георезервируемым доменом (имена медиаресурсов site и zone должны совпадать). Настройка медиаресурсов подробно описана в разделе Конфигурирование распределенного медиасервера.


  9. /system/geo-backup/sync <DOMAIN_NAME>              
    ┌─────────────┬───────────┐
    │  Domain     │Sync result│
    ├─────────────┼───────────┤
    │<DOMAIN_NAME>│ok         │
    └─────────────┴───────────┘
    
    Total syncronized domains: 1



  10. /system/geo-backup/status              
    ┌───────────┬──────┬───────┬──────────────┬───────────────────┬───────────────────┐
    │  Domain   │ Site │Replica│Replica status│ Last update time  │   Last success    │
    │           │      │       │              │                   │    update time    │
    ├───────────┼──────┼───────┼──────────────┼───────────────────┼───────────────────┤
    │p.city     │ecss10│master │syncronized   │08.09.2017 14:19:01│08.09.2017 14:19:01│
    │geo.domain │nsk   │master │syncronized   │08.09.2017 14:19:03│08.09.2017 14:19:03│
    └───────────┴──────┴───────┴──────────────┴───────────────────┴───────────────────┘
    
    Total syncronized domains: 2



  11. /domain/p.city/properties/info replica_type
    ┌────────────┬──────┬──────┐
    │  Property  │Domain│Value │
    ├────────────┼──────┼──────┤
    │replica_type│p.city│master│
    └────────────┴──────┴──────┘

    Это означает, что на данном гео-кластере этот домен сейчас активный, и вызовы обслуживаются данным гео-кластером. Когда будет выполнена репликация этого домена на соседний сайт, его replica_type станет равен backup. Это будет означать, что настройки домена были прореплицированы, но сейчас данный домен обслуживается соседним гео-кластером.

    На этом настройка георезерва закончена.

Подключение между двумя локациями в георезерве

Не рекомендуется использовать транки в георезервируемом домене. Связь с внешними направлениями (в примере Москва/Новосибирск/Локальный) рекомендуется осуществлять через транзитный домен по следующей схеме:


  1. /bridge/declare <BRIDGE_NAME> <DUPLEX> <STRICT> <CAPACITY> <GEO_DOMAIN> <GEO_NP> <GEO_INTERFACE> <GEO_TRUNKGROUP> <GEO_ROUTING_CONTEXT> <TRANSIT_DOMAIN_1> <NP_1> <INTERFACE_1> <TRUNKGROUP_1> <ROUTING_CONTEXT_1> 
    Bridge with name <BRIDGE_NAME> declared successfully.


    /bridge/declare geo.transit true true unbounded geo.domain default bridge:transit tg:transit default_routing transit.domain1 default bridge:to.geo.1 tg:to.geo.1 default_routing              
    Bridge with name "geo.transit" declared successfully.



  2. /bridge/declare <BRIDGE_NAME> <DUPLEX> <STRICT> <CAPACITY> <GEO_DOMAIN> <GEO_NP> <GEO_INTERFACE> <GEO_TRUNKGROUP> <GEO_ROUTING_CONTEXT> <TRANSIT_DOMAIN_2> <NP_2> <INTERFACE_2> <TRUNKGROUP_2> <ROUTING_CONTEXT_2> 
    Bridge with name <BRIDGE_NAME> declared successfully.


    /bridge/declare geo.transit true true unbounded geo.domain default bridge:transit tg:transit default_routing transit.domain2 default bridge:to.geo.2 tg:to.geo.2 default_routing              
    Bridge with name "geo.transit" declared successfully.


Параметры:

<BRIDGE_NAME> — уникальное в рамках ECSS-10 имя bridge-интерфейса (строка, без пробелов);<DUPLEX> — режим работы bridge:

<STRICT> — режим проверки номеров, проходящих через бридж;

<CAPACITY> — количество одновременно активных вызовов на заданном bridge-интерфейсе, принимает значения:

<GEO_DOMAIN> — имя георезервируемого домена должно быть одинаковым на site1 и site2;
<GEO_NP> — план нумерации георезервируемого домена должен быть одинаковым на site1и site2;
<GEO_INTERFACE> — имя интерфейса георезервируемого домена, через который будет осуществляться взаимодействие с bridge-интерфейсом, должно быть одинаковым на site1 и site2;
<GEO_TRUNKGROUP> — идентификатор транк-группы для интерфейса георезервируемого домена должен быть одинаковым на site1 и site2;
<GEO_ROUTING_CONTEXT> — контекст маршрутизации георезервируемого домена должен быть одинаковым на site1 и site2;
<TRANSIT_DOMAIN_1> / <TRANSIT_DOMAIN_2> — имя транзитной виртуальной АТС на site1 / site2 , с которой устанавливает соединение bridge;
<NP_1> / <NP_2> — план нумерации транзитного домена, на site1 / site2 с которым устанавливает соединение bridge;
<INTERFACE_1> / <INTERFACE_2> — имя интерфейса транзитного домена site1 / site2, через который будет осуществляться взаимодействие с bridge-интерфейсом;
<TRUNKGROUP_1> / <TRUNKGROUP_2> — идентификатор транк-группы для интерфейса транзитного домена на site1 / site2; 
<ROUTING_CONTEXT_1> / <ROUTING_CONTEXT_2> — контекст маршрутизации по умолчанию для интерфейса транзитного домена на site1 / site2.