Резервирование: что от чего защищает¶
Доставка канала держится на пяти звеньях: источник, канал связи, сеть, узел и, для OTT, связь зрителя с узлом. У каждого звена свой механизм защиты, и каждый механизм закрывает только своё звено. Ниже — какую схему выбрать под задачу, затем каждый уровень: что он защищает, во что обходится и как уровни сочетаются.
Настройки — на справочных страницах по ссылкам.
Пять уровней резервирования. Уровни 3–5 — возможности версии 2.1 (бета).¶
Выбор схемы под задачу¶
Задача |
Схема |
|---|---|
Доставка канала по интернету между своими узлами |
SRT или PS1 с буфером под RTT канала; второй вход — тот же канал другим путём или от другого источника. |
Головная станция → приёмники multicast (IPTV оператора, гостиница) |
Резервные входы на каждом потоке и горячий резерв multicast-выходов на двух узлах; третий узел, который только голосует, если узлов два. |
Управляемая вещательная сеть со сторонними приёмниками |
RTP или Pro-MPEG FEC; при двух независимых сетях — ST 2022-7. Узел-передатчик защищает резерв multicast-выходов. |
OTT для зрителей в интернете |
Резервные входы и резерв OTT/DVR на двух и более узлах с публичными адресами HTTPS; кеш или CDN — по 8.1. Резерв OTT/DVR и CDN. |
Гостиница |
Сравнение¶
Уровень |
Перерыв при отказе |
Полоса |
Что нужно ещё |
Задержка |
|---|---|---|---|---|
Резервные входы |
Таймаут потока |
Без доплаты |
Второй источник |
Не растёт |
ARQ (PS1, SRT, RIST) |
Нет, пока потери в пределах буфера |
Запас на повторы |
Обратный канал |
Буфер приёмника, несколько RTT |
Pro-MPEG FEC |
Нет, при небольших потерях |
+10–30 % и больше |
— |
Ожидание FEC матрицы |
ST 2022-7 |
Нет |
× 2 |
Вторая независимая сеть |
Окно отстающего пути |
Резерв multicast-выходов |
Нет |
Источник на каждый узел |
Второй узел, домен Meshwork |
«Задержка выхода», от 500 мс |
Резерв OTT/DVR |
Пауза, пока проигрыватель замечает отказ |
Без доплаты, пока узлы целы |
Второй узел с запасом, публичные адреса |
Не растёт |
1. Источник: резервные входы¶
У потока может быть несколько входов — например, канал со спутника и тот же канал из интернета. Активен один. Если он признан аварийным (нет данных дольше таймаута потока или поток не проходит проверку), поток переходит на следующий вход по списку, а затем возвращается на основной (Резервирование источников).
Защищает от отказа источника: спутника, провайдера, кодера, линии до узла.
Цена. Второй источник того же канала. Переключение не бесшовное: до него проходит таймаут потока, и приёмники видят короткий перерыв.
Наблюдение. Работу на резервном входе сообщает алерт кода 27 (
input-fallback), неисправный резервный вход — код 65 (backup-input-error), поток без единого рабочего входа — код 60 (stream-no-source) (Перечень алертов). Каждый переход записывается в журнал событий потока (События на графиках).
2. Канал связи: повторная передача и FEC¶
Потери и джиттер в канале между узлами или от стороннего оборудования компенсирует транспортный протокол (Протоколы передачи):
ARQ (PS1, SRT, RIST) — повторная передача потерянных пакетов. Нужен обратный канал. Цена — буфер приёмника в несколько RTT (задержка) и запас полосы на повторы.
FEC (Pro-MPEG) — постоянная избыточность без обратного канала. Цена — 10–30 % и больше сверх битрейта (зависит от матрицы) и задержка на ожидание FEC. Восстанавливает только небольшие потери.
Протокол защищает от потерь, но не от обрыва канала: если канал пропал целиком, помогает только резервный вход с другим путём доставки (уровень 1).
3. Сеть: два пути SMPTE ST 2022-7¶
Важно
Бета-версия 2.1. Описанное здесь есть только в бета-версии 2.1: она ставится из бета-репозитория и только с лицензией, в стабильной версии 2.0.2 и в демоверсии этого нет. Бета-версия поставляется без гарантий, поддержка — по возможности (Программа бета-тестирования).
Один и тот же поток RTP или Pro-MPEG идёт к приёмнику двумя независимыми сетями, и приёмник собирает его по номерам пакетов. Пакет, потерянный в одной сети, берётся из другой (Требования к сети для ST 2022-7).
Защищает от отказа одной сети целиком — коммутатора, линии, питания — и от потерь в ней, без переключения и без перерыва.
Цена. Две раздельные сети, по сетевой карте на каждую, двойная полоса. Задержка приёма растёт на окно ожидания отстающего пути (по умолчанию 450 мс, можно меньше, если пути близки).
Не защищает от отказа самого узла-передатчика: оба пути отправляет он.
Наблюдение. Пропавший путь — алерт кода 75 (
input-path-down), пути с разными потоками — код 76 (input-paths-differ).
4. Узел: горячий резерв multicast-выходов¶
Важно
Бета-версия 2.1. Описанное здесь есть только в бета-версии 2.1: она ставится из бета-репозитория и только с лицензией, в стабильной версии 2.0.2 и в демоверсии этого нет. Бета-версия поставляется без гарантий, поддержка — по возможности (Программа бета-тестирования).
Несколько узлов одного домена Meshwork получают один источник и держат одинаковые выходы UDP, RTP или Pro-MPEG на один multicast-адрес. Отправляет один. Если отказывает он, его выход или вход, группу без разрыва и без повторов подхватывает другой узел, и приёмники остаются на том же адресе (Горячий резерв multicast-выходов).
Защищает от отказа сервера, его выхода или входа. Серверы можно обслуживать по очереди: узел, который останавливают штатно, сначала передаёт свои группы.
Цена. Каждый узел принимает источник и обрабатывает поток так же, как отправитель: ресурсы и входящая полоса — на каждом узле полностью. Задержка выдачи растёт на «Задержку выхода» группы — от 500 до 2500 мс, по умолчанию 500.
Требования. Один домен Meshwork, открытый между узлами UDP-порт канала управления (по умолчанию 43975), синхронизированные часы, одинаковые адреса выходов.
Наблюдение. Экран «Резервы» (Резервы), дорожка «Резерв» статистики потока (Дорожка «Резерв»), алерты кодов 66–74 (Резервирование потоков).
5. Зритель OTT: резерв OTT/DVR¶
Важно
Бета-версия 2.1. Описанное здесь есть только в бета-версии 2.1: она ставится из бета-репозитория и только с лицензией, в стабильной версии 2.0.2 и в демоверсии этого нет. Бета-версия поставляется без гарантий, поддержка — по возможности (Программа бета-тестирования).
Узлы, которые раздают один канал по HLS, LL-HLS или DASH, объединяются в OTT-группу. Master-плейлист называет проигрывателю резервные узлы, и при отказе узла проигрыватель продолжает с другого. Узел, который не может обслужить нового зрителя или запрос архива, перенаправляет их на узел, который может (Резерв OTT/DVR).
Защищает зрителей OTT от отказа узла или потока на нём; архив прошедших передач отдаёт узел, у которого он есть.
Цена. Зрители отказавшего узла распределяются по остальным подходящим узлам: из N узлов каждый должен выдержать 1 + 1/(N−1) обычной нагрузки. Каждому узлу нужен адрес, доступный зрителям напрямую.
Ограничения беты. Переход во время просмотра — только у одиночных потоков HLS и только у проигрывателей, которые его поддерживают (Проигрыватели и резерв OTT/DVR).
Наблюдение. Экран «Резервы», алерты кодов 70, 78 и 79.
Как уровни сочетаются¶
Резервные входы внутри группы резерва. Если вход отправителя замолчал или перешёл на резервный, а у другого участника поток лучше, группа переходит к нему.
ST 2022-7 на входе и резерв выходов. «Задержка выхода» группы зависит от окна второго пути входа (Кто отправляет и задержка).
Pro-MPEG FEC и резерв выходов. Ожидание FEC на входе задерживает поток; бесшовное переключение группы покрывает его не дольше 2100 мс (предел ожидания FEC).
Резерв multicast и OTT на одних узлах. Оба резерва работают независимо: группы multicast выбирают отправителя, OTT-группы — резервы для зрителей. Запас ресурсов считайте на обе нагрузки сразу.
Наблюдение¶
Резерв полезен, только если о переключении узнают. Состояние всех групп этого узла, участники, итог сравнения источников и проблемы показывает экран «Резервы» (Экран «Резервы»); переключения — дорожка «Резерв» графиков статистики. Настройте доставку алертов дежурному (Внешняя доставка алертов) и вывод метрик во внешнюю систему мониторинга (Подключение внешних систем мониторинга).