Skip to content

Кросс-репликация DVR

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

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

Кросс-репликация Flussonic позволяет восстановить архив после временной недоступности одного из серверов. Если один из серверов станет недоступным, то второй продолжит вести запись архива, обращаясь к источнику напрямую. После восстановления работы первого, вышедшего из строя, сервера на нем автоматически восстановится недостающий архив путем передачи данных со второго сервера.

Пример

Настроим репликацию потока с именем example на двух серверах Flussonic. Нужно настроить на обоих серверах:

  • захват с источника (в примере url udp://)
  • запись и репликацию архива (dvr /storage 3d replicate)
  • сервер Flussonic для репликации (url m4f://)

Пусть flussonic_1.myhosting.com - основной сервер, flussonic_2.myhosting.com - реплицирующий сервер.

Конфигурация потока на flussonic_1.myhosting.com (основном сервере):

stream example_stream {
  url udp://224.1.2.3:1234;
  url m4f://flussonic_2.myhosting.com/example;
  dvr /storage 3d replicate;
}

Конфигурация потока на flussonic_2.myhosting.com (реплицирующем сервере):

stream example_stream {
  url m4f://flussonic_1.myhosting.com/example;
  url udp://224.1.2.3:1234;
  dvr /storage 3d replicate;
}

Репликация работает в трех режимах: штатный, аварийный, восстановление после аварии. Рассмотрим эти режимы на приведенном выше примере конфигурации.

Штатный режим

  • Основной сервер (flussonic_1) забирает live поток с источника по UDP и записывает архив (pull).
  • Реплицирующий сервер (flussonic_2) забирает live и архив с основного по M4F (live + replication).

Аварийный режим

  • Основной сервер (flussonic_1) стал offline.
  • Реплицирующий сервер (flussonic_2) принимает live поток с источника по UDP и записывает архив (failover pull).

Восстановление после аварии

  • Основной сервер (flussonic_1) восстановил работу и снова забирает live поток с источника по UDP.
  • Основной сервер (flussonic_1) забирает часть архива, которую записал сервер flussonic_2 во время простоя flussonic_1 (replication).

Протокол M4F

В случае репликации видео между серверами Flussonic мы рекомендуем использовать внутренний протокол Flussonic M4F для получения потока. О преимуществах протокола M4F можно прочитать здесь.