Резервирование и каскадирование серверов

Материал из База знаний VINTEO

Для организации сервиса видео-конференц-связи (далее ВКС) на базе Vinteo достаточно одного физического сервера, но для получения отказоустойчивой системы и системы, позволяющей выдерживать высокую нагрузку, необходимо использовать кластер из нескольких серверов.

В системе Vinteo можно выделить две роли серверов:

  • коммуникационный сервер и сервер управления (далее сервер управления);
  • медиасервер.

В системе во время работы может быть только один сервер управления. Количество медиасерверов определяется как N+1, минимум - один. Минимальное количество физических серверов - один, совмещающий обе роли. При использовании резервирования мы получаем еще один сервер управления для горячей замены основного сервера управления, если он выйдет из строя. Резервный сервер управления может быть лишь 1.

Сервер управления

Сервер управления - web-сервер и сервер, обеспечивающий взаимодействие по коммуникационным протоколам (SIP, H.323, WebRTC).

Для резервирования сервера управления используется схема: master - slave. Master-сервер является активным и обслуживает систему, slave-сервер является пассивным, отслеживает состояние master-сервера и с интервалом в 5 минут реплицирует на себя c него данные из БД и из файловой системы. Для корректной работы резервирования необходимо, чтобы основной и резервный сервер были сопоставимы по мощности.

Masterslavescheme

При выходе из строя master-сервера, slave-сервер берет роль master на себя, поднимает интерфейсы с IP-адресами системы, прописанными в БД, включает сервисы управления и телефонии.

Masterdownscheme

При возвращении в строй первого сервера (при загрузке) он (первый сервер) возьмет на себя теперь роль slave, определив, что master-сервер уже есть в сети на интерфейсе eth1. Таким образом, master-сервером становится тот сервер, который будет включен первым, второй же станет slave-сервером.

Masterslaveswap

Если master-сервер теряет связь со slave-сервером, то лицензия становится временной и действует 72 часа с момента потери связи. За это время необходимо решить техническую проблему с вышедшим из строя сервером или, если это не представляется возможным, обратиться в техническую поддержку Vinteo для урегулирования вопроса со сроком действия временных лицензий.

При потере связи между slave и master-серверами на интерфейсах eth1, может произойти ситуация, когда оба сервера станут master. Это может привести к непредсказуемым последствиям, вплоть до полной недоступности сервиса.

Mastermastererror

Медиасервер

Медиасервер - сервер, который занимается кодированием/декодированием медиапотоков и построением раскладок. Для увеличения производительности системы необходимо применять горизонтальное масштабирование медиасерверов - каскадирование. Сервер управления будет стремиться равномерно нагрузить медиасерверы, балансируя нагрузку между ними, т.о. медиасерверы взаиморезервируют друг друга.

В основе медиасервера лежит модуль Multipoint Control Unit (далее MCU). MCU отвечает за такие процессы как микширование, транскодирование и трансрейтинг.

Микширование подразумевает возможность создания раскладки изображений в том виде, в котором она была бы удобна пользователю. Транскодирование позволяет изменять формат видеопотока, а трансрейтинг дает возможность оптимизации скорости передачи данных.

Для обеспечения резервирования медиасерверов в системе необходимо иметь как минимум N+1 медиасервер, где N - количество медиасерверов, необходимых для обслуживания максимального количества участников при заданных сценариях ВКС. MCU может быть также управляющий сервер.

Mediaservers

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

При подключении к конференции первого участника, сервер управления выбирает наименее загруженный медиасервер для хостинга этой конференции. При загрузке медиасервера, обрабатывающего конференцию, свыше 40%, новые участники, не входящие в раскладку конференции, отдаются на обработку (балансируются) на другие доступные медиасерверы. Медиасерверы не получают и не отдают трафик клиентам, они лишь распределяют нагрузку декодирования и кодирования раскладок конференций между собой, обмениваясь трафиком с основным сервером (сервером управления).

При потере связи с одним из медиасерверов, происходит переход раскладки на другой медиасервер, то есть, выключения конференции не происходит.

Mediaerror
Mediabalancing