Кросс-репликация DVR
Надежный способ не потерять архив — использовать для записи сразу два сервера, которые могут обращаться к источнику и которые могут забирать записанный архив друг у друга. Мы назвали это кросс-репликацией.
При обычной репликации, которая описана в разделе Репликация, к источнику потока подключается только основной сервер, а вторичный может только забирать с основного. При кросс-репликации к источнику могут обращаться как основной, так и вторичный сервер.
Кросс-репликация Flussonic позволяет восстановить архив после временной недоступности одного из серверов. Если один из серверов станет недоступным, то второй продолжит вести запись архива, обращаясь к источнику напрямую. После восстановления работы первого, вышедшего из строя, сервера на нем автоматически восстановится недостающий архив путем передачи данных со второго сервера.
Пример
Настроим репликацию потока с именем example
на двух серверах Flussonic. Нужно настроить на обоих серверах:
- захват с источника (в примере input udp://)
- запись и репликацию архива (dvr /storage 3d replicate)
- сервер Flussonic для репликации (url m4f://)
Пусть flussonic_1.myhosting.com
— основной сервер, flussonic_2.myhosting.com
— реплицирующий сервер.
Конфигурация потока на flussonic_1.myhosting.com
(основном сервере):
stream example_stream {
input udp://224.1.2.3:1234;
input m4f://flussonic_2.myhosting.com/example;
dvr /storage 3d replicate;
}
Конфигурация потока на flussonic_2.myhosting.com
(реплицирующем сервере):
stream example_stream {
input m4f://flussonic_1.myhosting.com/example;
input 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 можно прочитать здесь.