Горячий резерв multicast-выходов

Важно

Бета-версия 2.1. Описанное здесь есть только в бета-версии 2.1: она ставится из бета-репозитория и только с лицензией, в стабильной версии 2.0.2 и в демоверсии этого нет. Бета-версия поставляется без гарантий, поддержка — по возможности (Программа бета-тестирования).

Горячий резерв защищает приёмники multicast — приставки, телевизоры, вещательные приёмники — от отказа узла. Несколько узлов держат одинаковые выходы на один multicast-адрес и порт. Отправляет в группу один из них, а при его отказе группу подхватывает другой — без разрыва и без повторов, на том же адресе.

Два слова этой страницы: участник — выход узла в группе резерва; отправитель — узел, который сейчас отправляет в группу. Поля и экран описаны в Резервы; здесь — что спланировать заранее.

Два узла домена Meshwork получают один источник и держат выход на одну группу 239.0.0.10:1234; узел A был отправителем и отказал, узел B подхватывает группу в той же точке шкалы времени; приёмники остаются на той же группе; третий узел только голосует.

Узел A отказал: группу подхватывает узел B, приёмники остаются на том же адресе.

Когда нужен

  • Приёмники принимают канал по UDP, RTP или Pro-MPEG multicast и не умеют сами переключаться на другой адрес: IPTV оператора, гостиничное ТВ, вещательная сеть.

  • Серверы нужно обслуживать по очереди, без перерыва в эфире: узел, который останавливают штатно, сначала передаёт свои группы.

Для зрителей OTT нужен другой механизм — Резерв OTT/DVR. От потерь в сети защищают протокол и ST 2022-7 (Резервирование: что от чего защищает).

Узлы

  • Сколько. Два узла с участниками; лучше три узла с включённым резервом. В домене из двух таких узлов перезапущенный узел забирает группу только через 30 секунд и только если второй действительно пропал. Третий узел, даже без своих каналов, голосует и снимает это ожидание (Кто отправляет).

  • Мощность. Резервный узел держит поток наготове: принимает источник и обрабатывает его так же, как отправитель. Каждый узел рассчитывайте на полную нагрузку своих групп.

  • Домен. Все узлы — в одном домене Meshwork: том, что задан узлу как основной (Настройки сервера), с одинаковым ключом домена. С узлами другого домена резерв не образуется.

  • Часы. Время на узлах синхронизировано (NTP); узел с несинхронизированными часами поднимает алерт кода 74 (reserve-clock-unsynced).

  • Версия. Резерв — возможность версии 2.1; в 2.0.2 его нет, второй сервер там держат холодным резервом.

Источник

Узлы сравнивают потоки участников по меткам времени и содержимому и переключаются только между участниками с доказанно одним источником. Поэтому:

  • оба узла получают тот же источник: тот же multicast со спутникового приёмника, тот же поток от кодера;

  • у потоков одинаковые «Тип потока» и признак скремблированного канала;

  • если вход сам ставит метки времени (файл, RTMP, RTSP, транскодер, мультиплексор MPTS), сравнить источники нельзя — задайте одинаковую «Метку источника для резерва» на всех участниках;

  • вход DVB группа помечает проблемой «Вход DVB, ещё не проверен»: резерв с такими входами в бете не проверялся — проверьте переключение на своей схеме до эфира.

Сеть

  • Канал управления. UDP-порт 43975 (по умолчанию) открыт между всеми узлами домена. По нему узлы голосуют и следят друг за другом; он защищён ключом домена.

  • Адреса. У всех участников группы — один и тот же multicast-адрес, порт и интерфейс отправки «Multicast egress interface» в сети приёмников.

  • Приёмники — по группе, не по отправителю. Каждый узел отправляет со своего адреса, поэтому после переключения группа приходит с другого адреса источника. (ASM — подписка на группу от любого источника, SSM — только от перечисленных.)

    • Приёмники ASM (IGMPv2 или IGMPv3 без списка источников) работают.

    • Приёмники SSM (IGMPv3 INCLUDE) — только если в подписке перечислены адреса всех узлов группы.

    • Вход Perfect Streamer, который принимает такую группу: «SSM source address» и «Path 2 SSM source address» — пустые.

    Общий адрес или виртуальный IP не нужен.

  • Коммутаторы. IGMP snooping и один querier (устройство, которое опрашивает подписчиков IGMP) в сети приёмников, как для любого multicast (IGMP snooping и querier). Подключите узлы к разным коммутаторам ядра: отказ общего коммутатора резерв узлов не спасает.

  • Полоса. Каждый узел принимает источник целиком; в сеть приёмников группу отправляет один узел.

Кто отправляет и задержка

  • Только выбранный отправитель (по умолчанию). В группу отправляет один узел, другие держат поток наготове.

  • Режим наблюдения. Отправляют все, резерв только проверяет участников. Подходит для пробного запуска рядом с работающей схемой.

  • Задержка выхода. Чтобы переключение было бесшовным, выходы группы отправляют поток с фиксированной задержкой от входа: от 500 до 2500 мс, по умолчанию 500. Это добавочная задержка канала для приёмников; задайте одно значение на всех участниках (Задержка выхода).

  • Задержка и второй путь входа. Если вход принимает два пути ST 2022-7, «Задержка выхода» должна быть не меньше окна второго пути («Path skew (ms)» входа) плюс 400 мс: иначе переключение при настоящей потере входа не будет бесшовным.

  • Предпочтительный узел. «Приоритет резерва» выхода задаёт, какой участник предпочтителен, а «Вернуть через (с)» — вернётся ли группа к нему после восстановления.

Pro-MPEG и второй путь

  • Выход Pro-MPEG участвует в выборе отправителя, если «столбцы × строки» — степень двойки, в датаграмме 7 TS-пакетов, нет мультиплексирования и парольной фразы, а матрица одинакова на всех участниках. Иначе он отправляет всегда, рядом с отправителем, и группу не подхватывает (выход Pro-MPEG в группе резерва).

  • Второй путь ST 2022-7 отправляет отправитель группы. Задайте его одинаково на всех участниках, включая path2-mcast-if: по второму пути узлы тоже следят за отправителем (Требования к сети для ST 2022-7).

Ограничения

  • Выходы MPTS показываются в группе, но не резервируются.

  • Если источник пропал у всех участников сразу, группа не переключается: резерв узлов не заменяет резервные входы (1. Источник: резервные входы).

  • После частых переключений автоматическое переключение группы приостанавливается (алерт кода 72, reserve-frozen).

  • В демоверсии резерва нет.

Перед запуском

  • На экране «Резервы» каждого узла все узлы домена видны в таблице «Узлы» с подтверждённым ключом, часы — «Синхронизированы».

  • У каждой группы итог сравнения источника — «Тот же источник» или «Тот же сигнал», без проблем.

  • Пробное переключение кнопкой «Перенести…» в строке группы проходит без перерыва на приёмнике; на дорожке «Резерв» статистики потока видно событие переключения.

  • Алерты кодов 66–74 доставляются дежурному (Резервирование потоков).