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

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

Георезерв применяется для:

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

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

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

В примере №1 SITE_1 резервируется на SITE_2 и SITE_3, SITE_2 и SITE_3 в свою очередь резервирует друг друга.
В примере №2 описана одна из возможных конфигураций с использованием пяти гео сайтов, стрелками указываются направления резервирования.
Специальных ограничений на количество гео-сайтов в системе не устанавливается.
Ниже описывается пошаговая настройка резервирования между двумя гео сайтами.

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

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

  1. На каждом из сайтов независимо устанавливаем и настраиваем ECSS-10 по руководству Часть 2 Первичная инсталляция системы ECSS-10.
  2. Настройка dnsmasq
    На каждом из хостов <SITE_1> и <SITE_2> добавляем в /etc/dnsmasq.d/ecss-broker следующие правила соответствия:

    Для <SITE_1>:

    primary.<SITE_2>.broker.ecss - IP адрес хоста 1 на гео-кластере 2;
    secondary.<SITE_2>.broker.ecss - IP адрес хоста 2 на гео-кластере 2;

    Для <SITE_2>:

    primary.<SITE_1>.broker.ecss - IP адрес хоста 1 на гео-кластере 1;
    secondary.<SITE_1>.broker.ecss - IP адрес хоста 2 на гео-кластере 1;

    Пример:

    address=/primary.site1.broker.ecss/192.168.23.110
    address=/secondary.site1.broker.ecss/192.168.23.111
  3. На каждом из хостов <SITE_1> и <SITE_2> настраиваем mycelium
    Файл настройки mycelium находится по пути /etc/ecss/ecss-mycelium/mycelium1.config
  4. Настройка гео-сайта <SITE_1>
  5. Настройка гео-сайта <SITE_2>
  6. После перезагрузки на двух сайтах включаем географическое резервирование:

    antoniy@[restfs1@ecss1]:/$ /system/geo-backup/properties/set enabled true
    Property "enabled" successfully changed from: 
    false
       to
    true.


  7. Устанавливаем ip-set для георезервируемого домена на <SITE_1>

    admin@[restfs1@ecss1]:/$ domain/test.domain/sip/network/set ip_set [geo.domain]             
    Property "ip_set" successfully changed from: 
    []
       to
    ["geo.domain"].
    
    [exec at: 11.09.2017 15:53:22, exec time: 83ms, nodes: sip1@ecss1]

    Если необходимо, можно скорректировать период реплицирования данных (задается в секундах):

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


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

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

  9. Выполняем команду синхронизации домена:

    admin@[restfs1@ecss1]:/$ system/geo-backup/sync <DOMAIN_NAME>              
    ┌─────────────┬───────────┐
    │  Domain     │Sync result│
    ├─────────────┼───────────┤
    │<DOMAIN_NAME>│ok         │
    └─────────────┴───────────┘
    
    Total syncronized domains: 1


  10. Для проверки статуса георезерва и информации о времени последней синхронизации:

    admin@[restfs1@ecss1]:/$ 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│
    │test.domain│nsk   │master │syncronized   │08.09.2017 14:19:03│08.09.2017 14:19:03│
    └───────────┴──────┴───────┴──────────────┴───────────────────┴───────────────────┘
    
    Total syncronized domains: 2


  11. Настройка доменов на каждом из гео-кластеров. При этом вновь создаваемые кластера помечаются replica_type = master:

    antoniy@[restfs1@ecss1]:/$ /domain/p.city/properties/info replica_type
    ┌────────────┬──────┬──────┐
    │  Property  │Domain│Value │
    ├────────────┼──────┼──────┤
    │replica_type│p.city│master│
    └────────────┴──────┴──────┘

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

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

Схема настройки сети для георезерва

В зависимости от геолокации параметры сети могут различаться. В связи с этим не рекомендуется использовать транки в георезервируемом домене. Связь с внешними направлениями(транки) рекомендуется осуществлять через транзитный домен по следующей схеме:

  1. Создание бриджа до транзитного домена <TRANSIT_DOMAIN_1> на <SITE_1>:

    admin@[restfs1@ecss1]:/$ 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.
    
    [exec at: 25.10.2017 15:17:34, exec time: 23ms, nodes: ds1@ecss1]

    Пример:

    admin@[restfs1@ecss1]:/$ 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.
    
    [exec at: 27.10.2017 09:28:21, exec time: 38ms, nodes: ds1@ecss1]


  2. Создание бриджа до транзитного домена <TRANSIT_DOMAIN_2> на <SITE_2>:

    admin@[restfs1@ecss1]:/$ 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.
    
    [exec at: 25.10.2017 15:17:34, exec time: 23ms, nodes: ds1@ecss1]

    Пример:

    admin@[restfs1@ecss1]:/$ 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.
    
    [exec at: 27.10.2017 09:28:21, exec time: 38ms, nodes: ds1@ecss1]


Параметры:

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

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

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

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