Резервирование и каскадирование серверов: различия между версиями

Материал из База знаний VINTEO
 
(не показано 37 промежуточных версий этого же участника)
Строка 1: Строка 1:
Для организации сервиса видеоконференцсвязи (далее ВКС) на базе Vinteo достаточно одного физического сервера, но для получения отказоустойчивой системы и системы, позволяющей выдерживать высокую нагрузку, необходимо использовать кластер из нескольких серверов.  
+
Для организации сервиса видео-конференц-связи (далее ВКС) на базе Vinteo достаточно одного физического сервера, но для получения отказоустойчивой системы и системы, позволяющей выдерживать высокую нагрузку, необходимо использовать кластер из нескольких серверов.  
  
== Расширение серверов Vinteo ==
+
В системе Vinteo можно выделить две роли серверов:
 +
* коммуникационный сервер и сервер управления (далее сервер управления);
 +
* медиасервер.
 +
 
 +
В системе во время работы может быть только один сервер управления. '''Количество медиасерверов определяется как N+1, минимум - один.''' Минимальное количество физических серверов - один, совмещающий обе роли. При использовании резервирования мы получаем еще один сервер управления для горячей замены основного сервера управления, если он выйдет из строя. '''Резервный сервер управления может быть лишь 1.'''
 +
 
 +
== Сервер управления ==
 +
 
 +
Сервер управления - web-сервер и сервер, обеспечивающий взаимодействие по коммуникационным протоколам (SIP, H.323, WebRTC).
 +
 
 +
Для резервирования сервера управления используется схема: primary - secondary. Primary-сервер является активным и обслуживает систему, secondary-сервер является пассивным, отслеживает состояние primary-сервера и с интервалом в 5 минут реплицирует на себя c него данные из БД и из файловой системы. '''Для корректной работы резервирования необходимо, чтобы основной и резервный сервер были сопоставимы по мощности.'''
 +
[[Файл:Masterslavescheme.jpg|800px|безрамки|центр|Masterslavescheme]]
 +
 
 +
При выходе из строя primary-сервера secondary-сервер берет роль primary на себя, поднимает интерфейсы с IP-адресами системы, прописанными в БД, включает сервисы управления и телефонии.
 +
[[Файл:Masterdownscheme.jpg|800px|безрамки|центр|Masterdownscheme]]
 +
 
 +
При возвращении в строй первого сервера (при загрузке) он (первый сервер) возьмет на себя теперь роль secondary, определив, что primary-сервер уже есть в сети на интерфейсе eth1. Таким образом, primary-сервером становится тот сервер, который будет включен первым, второй же станет secondary-сервером.
 +
[[Файл:Masterslaveswap.jpg|800px|безрамки|центр|Masterslaveswap]]
 +
 
 +
Если primary-сервер теряет связь со secondary-сервером, то лицензия становится временной и действует 72 часа с момента потери связи. За это время необходимо решить техническую проблему с вышедшим из строя сервером или, если это не представляется возможным, обратиться в техническую поддержку Vinteo для урегулирования вопроса со сроком действия временных лицензий.
 +
 
 +
При потере связи между secondary и primary-серверами на интерфейсах eth1, может произойти ситуация, когда оба сервера станут primary. Это может привести к непредсказуемым последствиям, вплоть до полной недоступности сервиса.
 +
[[Файл:Mastermastererror.jpg|800px|безрамки|центр|Mastermastererror]]
 +
 
 +
== Медиасервер ==
 +
 
 +
Медиасервер - сервер, который занимается кодированием/декодированием медиапотоков и построением раскладок. Для увеличения производительности системы необходимо применять горизонтальное масштабирование медиасерверов - каскадирование. Сервер управления будет стремиться равномерно нагрузить медиасерверы, балансируя нагрузку между ними, т.о. медиасерверы взаиморезервируют друг друга.
 +
 
 +
В основе медиасервера лежит модуль Multipoint Control Unit (далее MCU). MCU отвечает за такие процессы как микширование, транскодирование и трансрейтинг.
 +
 
 +
Микширование подразумевает возможность создания раскладки изображений в том виде, в котором она была бы удобна пользователю. Транскодирование позволяет изменять формат видеопотока, а трансрейтинг дает возможность оптимизации скорости передачи данных.
 +
 
 +
Для обеспечения резервирования медиасерверов в системе необходимо иметь как минимум N+1 медиасервер, где N - количество медиасерверов, необходимых для обслуживания максимального количества участников при заданных сценариях ВКС. '''MCU может быть также управляющий сервер.'''
 +
[[Файл:Mediaservers.jpg|800px|безрамки|центр|Mediaservers]]
 +
Распределение нагрузки происходит следующим образом: для каждой конференции раскладки строит один из медиасерверов, на котором хостится эта конференция.  При этом на данном сервере должны обслуживаться все участники, видео которых попадает в любую раскладку этой конференции. Поэтому, при планировании инфраструктуры, необходимо учитывать, какое максимальное количество участников будет на раскладке и закладывать этот параметр в мощность медиасерверов.
 +
 
 +
При подключении к конференции первого участника, сервер управления выбирает наименее загруженный медиасервер для хостинга этой конференции. При загрузке медиасервера, обрабатывающего конференцию, свыше 40%, новые участники, не входящие в раскладку конференции, отдаются на обработку (балансируются) на другие доступные медиасерверы.
 +
Медиасерверы не получают и не отдают трафик клиентам, они лишь распределяют нагрузку декодирования и кодирования раскладок конференций между собой, обмениваясь трафиком с основным сервером (сервером управления).
 +
 
 +
При потере связи с одним из медиасерверов, происходит переход раскладки на другой медиасервер, то есть, выключения конференции не происходит.
 +
 
 +
Схема системы ВКС Vinteo при падении одного из медиасерверов кластера
 +
[[Файл:Mediaerror.jpg|800px|безрамки|центр|Mediaerror]]
 +
Схема системы ВКС Vinteo после передачи раскладки на другой медиасервер
 +
[[Файл:Mediabalancing.jpg|800px|безрамки|центр|Mediabalancing]]
 +
 
 +
== Настройка резервирования и каскадирования серверов ==
 +
 
 +
=== Схема резервирования и каскадирования серверов ===
 +
 
 +
При использовании всех возможностей сервера Vinteo для резервирования и каскадирования, получается следующая схема сети ВКС:
 +
[[Файл:Scheme1.jpg|800px|безрамки|центр|Scheme1]]
 +
 
 +
Для удобства настройки рекомендуется назначить IP-адрес интерфейса eth0 на резервном сервере из одной подсети с основным сервером.
 +
 
 +
'''Если необходима адресация, отличная от показанной на схеме, то настроить резервирование и каскадирование самостоятельно не получится, для этого необходимо обращаться в техническую поддержку Vinteo. При невозможности подключения сотрудников технической поддержки к серверам по SSH, вам будут выданы патчи с необходимой адресацией.'''
  
Расширение портовой емкости серверов Vinteo рекомендуется производить исключительно путем расширения пула лицензий сервера Vinteo, а при необходимости - установкой дополнительного сервера платформы  (далее – медиасервер) в кластер. Для организации кластера на управляющем сервере Vinteo должна быть открыта опция Каскадирование Сервера Vinteo.
+
Интерфейсы eth0 основного и резервного сервера должны быть подключены к сети, откуда ожидаются подключения абонентов.
В этом случае наращивание емкости серверной платформы производится бесшовно и полнофункционально в любых размерах и не влечет за собой никаких функциональных ограничений. При таком способе расширения сохраняется единая точка подключения абонентов, пул лицензий, и сохраняется вся логика работы сервера Vinteo.
 
  
В случае использования стандартного ВКС каскадирования, например, при использовании территориально разнесенных серверов (Vinteo или MCU других производителей) функционал получившейся системы будет иметь значительные ограничения, так как:
+
Ожидается, что соединение основного и резервного сервера на интерфейсах eth1 будет организовано напрямую кабелем, коммутатор между ними будет создавать лишнюю точку отказа.
  
*потребуется одновременное управление не одним, а двумя серверами во время одной конференции;
+
Сеть, указанная как 192.0.2.128/25, может не иметь никакого внешнего подключения, кроме как к ПК администратора для первичной настройки. Подразумевается, что она будет использоваться только для соединения медиасерверов и управляющего сервера.
*типовое каскадирование предполагает работу серверов в режиме Primary - Secondary, раскладка конференции в таком случае будет формироваться на Primary-сервере, а абоненты Secondary-сервера смогут попадать в раскладку только в режиме активации по голосу;
 
*возникает два пула лицензий, взаимно не совместимых между собой, по одному для каждого из серверов;
 
*каскадирование серверов ВКС разных производителей осуществляется через шлюз или транк, что накладывает определенные, зачастую даже критичные ограничения на количество одновременных звонков через него, например, организовать более 50 вызовов с одного сервера на другой зачастую невозможно;
 
*исчезнет возможность назначения аудиоканалов участникам другого сервера, потребуются дополнительные лицензии для подключения конференций обслуживания другими серверами ВКС;
 
*отсутствует единое управление участниками ВКС и затрудняется диагностика проблем во время конференций для администратора сервера Vinteo.
 
  
== Архитектура решения ==
+
Важно! К сети 192.0.2.128/25 предъявляются повышенные требования к стабильности и скорости соединения при каскадировании. В этой сети не используются механизмы коррекции ошибок, поэтому даже незначительные потери в этой сети могут приводить к артефактам и искажениям изображения в конференциях. После успешной настройки резервирования основной сервер примет на себя роль primary, резервный сервер примет роль secondary. Чтобы самостоятельно выполнить настройку резервирования и каскадирования серверов Vinteo, выполните инструкции, описанные ниже.
  
В системе Vinteo можно выделить две роли серверов:
+
=== Подготовка к настройке ===
*коммуникационный сервер и сервер управления (далее сервер управления);
+
 
*медиасервер.
+
1. Для самостоятельной настройки IP-адресация должна соответствовать отображенной на схеме из раздела «Схема резервирования и каскадирования серверов».<br>
В системе может быть только один сервер управления. Медиасервер может быть как один, так и несколько. Минимальное количество физических серверов - один, совмещающий обе роли.
+
2. Для медиасерверов, ради удобства настройки, рекомендуется назначить IP адреса на интерфейсе eth0, доступные с ПК администратора.<br>
 +
3. Получите у технической поддержки Vinteo необходимые файлы для настройки:
 +
* config_patch_generate_replicator_keys.bin
 +
* config_patch_to_configure_media_servers.bin
 +
* config_patch_prepare_slave.bin
 +
4. Установите основной, резервный и медиасерверы в соответствии с инструкцией.<br>
 +
5. Обновите ПО всех серверов до последней версии. ПО всех серверов должно быть одинаковой версии.<br>
 +
6. Установите лицензии на основном и резервном серверах. На основном сервере лицензия должна содержать портовые лицензии и лицензию на резервирование.<br>
 +
 
 +
На резервном сервере лицензия должна содержать резервирование и порты, если используются серверы с Static/Dynamic лицензированием. Если используется сервер с лицензированием Enterprise, то достаточно только резервирования.
 +
 
 +
=== Настройка сети основного и резервного серверов ===
 +
 
 +
[[Система_(настройки_и_диагностика)#Параметры сетевых интерфейсов|Назначьте IP-адреса]] (добавьте необходимые интерфейсы кнопкой «Добавить» в разделе Настройки -> Параметры сетевых интерфейсов):
 +
 
 +
'''Основной сервер'''
 +
 
 +
# Eth0 – адрес, к которому будут подключаться абоненты (из внутренней сети или из DMZ)
 +
# Eth1 (резервирование) - 192.0.2.1 / 255.255.255.252
 +
# Eth2 (каскадирование) – 192.0.2.200 / 255.255.255.128
 +
[[Файл:MasterIP.png|800px|безрамки|центр|MasterIP]]
 +
 
 +
4. Перезагрузить сервер для применения настроек
 +
 
 +
'''Резервный сервер'''
 +
 
 +
# Eth0 – адрес из подсети Eth0 основного сервера. После активации резервирования использоваться не будет
 +
# Eth1 (резервирование) - 192.0.2.2 / 255.255.255.252
 +
# Eth2 (каскадирование) – 192.0.2.199 / 255.255.255.128 (или любой свободный адрес из подсети серверов каскадирования, после активации резервирования использоваться не будет)
 +
[[Файл:SlaveIP.png|800px|безрамки|центр|SlaveIP]]
 +
4. Перезагрузить сервер для применения настроек
  
[[Файл:Каскадирование серверов2.png|800px|безрамки|центр|Каскадирование серверов]]
+
=== Настройка резервирования ===
  
== Сервер управления ==
+
1. На основном сервере [[Система_(настройки_и_диагностика)#Диагностика|проверьте доступность резервного сервера]] по адресу 192.0.2.2 на странице Настройки -> Диагностика -> Ping
 +
[[Файл:Ping.png|800px|безрамки|центр|Ping]]
 +
2. На основном сервере (будущем primary) в разделе «Обновление» установить патч config_patch_generate_replicator_keys.bin<br>
 +
3. Сразу после установки перейти в раздел «Статус» и ждать, когда начнется отсчет времени работы в пункте «Время работы сервера».<br>
 +
4. Как только начнется отсчет времени работы сервера перейти по адресу https://<ip основного сервера>/config_patch_for_slave_and_media.bin и скачать файл. ВАЖНО: Данный файл доступен для загрузки в течение 5 минут с момента начала отсчета времени работы сервера.<br>
 +
5. На резервном сервере (будущем secondary) установить скачанный патч config_patch_for_slave_and_media.bin в разделе «Обновление». Дождаться, когда в разделе «Статус» начнется отсчет времени работы сервера.<br>
 +
6. Установить патч config_patch_prepare_slave.bin на резервный сервер (будущий secondary).<br>
 +
7. Выключить основной сервер, который должен стать primary-сервером (192.0.2.1).<br>
 +
8. На резервном сервере, который должен стать secondary-сервером (192.0.2.2) в настройках резервирования прописать адрес 192.0.2.1. Сохранить настройки.<br>
 +
[[Файл:Reserve.png|800px|безрамки|центр|Reserve]]
 +
9.  Выключите резервный сервер.<br>
 +
10. Включите основной (будущий primary-сервер (192.0.2.1) и пропишите в настройках резервирования адрес: 192.0.2.2. Сохраните настройки.
 +
[[Файл:Reserv192022.png|800px|безрамки|центр|Reserv192022]]
 +
11. Перезагрузите основной сервер.<br>
 +
12. После того, как загрузится основной сервер (192.0.2.1), включите резервный сервер (192.0.2.2). В результате 192.0.2.1 будет primary-сервером, а 192.0.2.2 secondary-сервером.<br>
 +
13. Посмотрите состояние синхронизации на странице «Статус».
 +
[[Файл:Checkreserv.png|800px|безрамки|центр|Checkreserv]]
  
Сервер управления - web-сервер и сервер, обеспечивающий взаимодействие по коммуникационным протоколам (SIP, H.323, WebRTC).
+
=== Настройка каскадирования ===
 +
1. Установите сервер, который будет медиасервером, обновите до последней версии.<br>
 +
2. На странице «Параметры сетевых интерфейсов» на медиасервере для интерфейса eth0 IP-адресация должна быть именно такой на медиасерверах: 192.0.2.201 (202, 203, ...) / 255.255.255.128
 +
[[Файл:MediaIP.png|800px|безрамки|центр|MediaIP]]
 +
Также необходимо убедиться, что на сервере управления на соответствующем интерфейсе установлен адрес - 192.0.2.200 / 255.255.255.128
 +
3. Проверьте, что серверу управления доступны будущие медиасерверы по адресам: 192.0.2.201 (202, 203...).
 +
[[Файл:Pingmedia.png|800px|безрамки|центр|Pingmedia]]
 +
4. '''Важно! Если производилась настройка резервирования, то перейдите к пункту 8 и используйте файл, скачанный в разделе Настройка резервирования, п. 4. Иначе, если заново установить патч config_patch_generate_replicator_keys.bin, то управляющий сервер заново сгенерирует ключи и резервирование будет отключено<br>'''
 +
5. На управляющем сервере в разделе «Обновление» установите патч config_patch_generate_replicator_keys.bin<br>
 +
6. Сразу после установки перейдите в раздел «Статус» и ожидайте, когда начнется отсчет времени работы в пункте «Время работы сервера»<br>
 +
7. Как только начнется отсчет времени работы сервера перейти по адресу https://<ip основного сервера>/config_patch_for_slave_and_media.bin и скачать файл. Важно: Данный файл доступен для загрузки в течение 5 минут с момента начала отсчета времени работы сервера.<br>
 +
8. Установите патч config_patch_for_slave_and_media.bin, полученный на предыдущем шаге или в процессе настройки резервирования, на будущие медиасерверы. Необходимо дождаться, когда в разделе «Статус» начнется отсчет времени работы сервера.<br>
 +
9. На управляющем сервере, в разделе «Каскадирование», добавьте необходимое количество медиасерверов. В названии серверов рекомендуется указать mcu1, mcu2, … mcuN.<br>
 +
10. Если на управляющем сервере так же будет использоваться локальный медиасервер, то в настройках для localmcu необходимо указать адрес 192.0.2.200 в полях «IP» и «Локальный IP». Для локального mcu пароль заполнять не надо. Для остальных медиа серверов указать в поле «IP» адрес медиа сервера (например, 192.0.2.201), а в поле «Локальный IP»: 192.0.2.200. В поле «Пароль» укажите пароль пользователя admin медиа сервера. В поле «Порт» укажите: 5000.<br>
 +
11. Сохранить изменения.<br>
 +
[[Файл:Mediared.png|800px|безрамки|центр|Mediared]]
 +
12. Необходимо дождаться, когда у всех медиасерверов в статусе отобразится зеленая галка.<br>
 +
[[Файл:Mediagreencheck.png|800px|безрамки|центр|Mediagreencheck]]
 +
13. На сервере управления, в разделе «Обновление» установите патч config_patch_to_configure_media_servers.bin. Необходимо дождаться, когда в разделе «Статус» начнется отсчет времени работы в пункте «Время работы сервера»<br>
 +
14. На главной странице управляющего сервера должны появиться дополнительные вкладки с состоянием медиасерверов:<br>
 +
[[Файл:Mcutab.png|800px|безрамки|центр|Mcutab]]
  
Для резервирования сервера управления используется схема: Основной - Резервный. Основной сервер является активным и обслуживает систему, Резервный сервер в режиме online синхронизируется с основным и отслеживает его “здоровье”.
+
== Проверка статусов кластера ==
  
Если основной сервер не отвечает, то резервный назначает себя основным и принимает роль сервера управления на себя, назначая себе IP-адрес основного и беря на себя все сервисы сервера управления.  
+
Чтобы проверить, активно ли резервирование (доступен ли сервер secondary), посмотрите его статус на странице веб-интерфейса Система - Статус, раздел "Резервирование":
 +
[[Файл:Slavevalid.png|800px|безрамки|центр|Slavevalid]]
 +
'''Расшифровка строки'''
  
Если серверы (основной и резервный) теряют связь между собой, то лицензия становится временной и действует 72 часа с момента потери связи. За это время необходимо решить техническую проблему с вышедшим из строя сервером или, если это не представляется возможным, обратиться в техническую поддержку Vinteo для урегулирования вопроса со сроком действия временных лицензий. Когда проблема с вышедшим из строя сервером (бывшим основным) будет устранена и он загрузится, то он займёт место резервного сервера.
+
''Current role'' - текущая роль сервера. Далее стоит дата (Role set at), когда роль была установлена;
  
== Медиасервер ==
+
''Last time db change checked at'' - время последней синхронизации БД между secondary и primary серверами;
  
Медиасервер - сервер, который занимается транскодированием медиапотоков и построением раскладки.
+
''Remote(IP) last seen at'' - время последней проверки primary-сервером secondary-сервера. Проверка происходит раз в 30 секунд.
Для увеличения производительности системы необходимо применять горизонтальное масштабирование медиасерверов - '''каскадирование'''.
 
Сервер управления будет стремиться равномерно нагрузить медиасерверы, балансируя нагрузку между ними, т.о. медиасерверы взаиморезервируют друг друга.  
 
  
Для обеспечения резервирования медиасерверов в системе необходимо иметь как минимум N+1 медиасервер, где N - количество медиасерверов, необходимых для обслуживания максимального количества участников при заданных сценариях ВКС.
+
При рабочем состоянии резервирования ''все три параметра будут отображаться''. Если primary-сервер не видит secondary-сервер по какой-то причине, то в ''Remote(IP) last seen at'' будет написано время последней успешной проверки или never. Так же в веб-интерфейсе будет отображаться сообщение о том, что secondary-сервер не синхронизируется.
 +
[[Файл:Slavenotavail.png|800px|безрамки|центр|Slavenotavail]]
 +
<br>
 +
[[Файл:Slavenotavail2.png|800px|безрамки|центр|Slavenotavail2]]
  
Необходимо указать на '''особенность''':<br>  
+
Чтобы проверить, активно ли каскадирование, какие медиасерверы сейчас активны, а какие нет, можно зайти на страницу Система - Настройки, перейти на вкладку "Каскадирование" - если какой-то из серверов будет недоступен, в его статусе будет красный крестик.
для каждой конференции раскладку строит один из медиасерверов, при этом на данном сервере должны обслуживаться все участники, видео которых, попадает в эту раскладку. Поэтому, при планировании инфраструктуры, необходимо учитывать, какое максимальное количество участников будет на раскладке и закладывать этот параметр в мощность медиасерверов.
+
[[Файл:Medianotavail.png|800px|безрамки|центр|Medianotavail]]
 +
Если все серверы доступны, то будут зеленые галочки.
 +
Статус каждого сервера отдельно можно посмотреть на главной странице.
 +
[[Файл:Mcumaintab.png|800px|безрамки|центр|Mcumaintab]]
 +
<br>
 +
[[Файл:Mcutabcheck.png|800px|безрамки|центр|Mcutabcheck]]
 +
Если медиасервер будет недоступен, то в его вкладке будет сообщение: "Server not found".

Текущая версия на 16:43, 27 июня 2024

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

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

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

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

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

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

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

Masterslavescheme

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

Masterdownscheme

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

Masterslaveswap

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

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

Mastermastererror

Медиасервер

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

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

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

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

Mediaservers

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

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

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

Схема системы ВКС Vinteo при падении одного из медиасерверов кластера

Mediaerror

Схема системы ВКС Vinteo после передачи раскладки на другой медиасервер

Mediabalancing

Настройка резервирования и каскадирования серверов

Схема резервирования и каскадирования серверов

При использовании всех возможностей сервера Vinteo для резервирования и каскадирования, получается следующая схема сети ВКС:

Scheme1

Для удобства настройки рекомендуется назначить IP-адрес интерфейса eth0 на резервном сервере из одной подсети с основным сервером.

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

Интерфейсы eth0 основного и резервного сервера должны быть подключены к сети, откуда ожидаются подключения абонентов.

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

Сеть, указанная как 192.0.2.128/25, может не иметь никакого внешнего подключения, кроме как к ПК администратора для первичной настройки. Подразумевается, что она будет использоваться только для соединения медиасерверов и управляющего сервера.

Важно! К сети 192.0.2.128/25 предъявляются повышенные требования к стабильности и скорости соединения при каскадировании. В этой сети не используются механизмы коррекции ошибок, поэтому даже незначительные потери в этой сети могут приводить к артефактам и искажениям изображения в конференциях. После успешной настройки резервирования основной сервер примет на себя роль primary, резервный сервер примет роль secondary. Чтобы самостоятельно выполнить настройку резервирования и каскадирования серверов Vinteo, выполните инструкции, описанные ниже.

Подготовка к настройке

1. Для самостоятельной настройки IP-адресация должна соответствовать отображенной на схеме из раздела «Схема резервирования и каскадирования серверов».
2. Для медиасерверов, ради удобства настройки, рекомендуется назначить IP адреса на интерфейсе eth0, доступные с ПК администратора.
3. Получите у технической поддержки Vinteo необходимые файлы для настройки:

  • config_patch_generate_replicator_keys.bin
  • config_patch_to_configure_media_servers.bin
  • config_patch_prepare_slave.bin

4. Установите основной, резервный и медиасерверы в соответствии с инструкцией.
5. Обновите ПО всех серверов до последней версии. ПО всех серверов должно быть одинаковой версии.
6. Установите лицензии на основном и резервном серверах. На основном сервере лицензия должна содержать портовые лицензии и лицензию на резервирование.

На резервном сервере лицензия должна содержать резервирование и порты, если используются серверы с Static/Dynamic лицензированием. Если используется сервер с лицензированием Enterprise, то достаточно только резервирования.

Настройка сети основного и резервного серверов

Назначьте IP-адреса (добавьте необходимые интерфейсы кнопкой «Добавить» в разделе Настройки -> Параметры сетевых интерфейсов):

Основной сервер

  1. Eth0 – адрес, к которому будут подключаться абоненты (из внутренней сети или из DMZ)
  2. Eth1 (резервирование) - 192.0.2.1 / 255.255.255.252
  3. Eth2 (каскадирование) – 192.0.2.200 / 255.255.255.128
MasterIP

4. Перезагрузить сервер для применения настроек

Резервный сервер

  1. Eth0 – адрес из подсети Eth0 основного сервера. После активации резервирования использоваться не будет
  2. Eth1 (резервирование) - 192.0.2.2 / 255.255.255.252
  3. Eth2 (каскадирование) – 192.0.2.199 / 255.255.255.128 (или любой свободный адрес из подсети серверов каскадирования, после активации резервирования использоваться не будет)
SlaveIP

4. Перезагрузить сервер для применения настроек

Настройка резервирования

1. На основном сервере проверьте доступность резервного сервера по адресу 192.0.2.2 на странице Настройки -> Диагностика -> Ping

Ping

2. На основном сервере (будущем primary) в разделе «Обновление» установить патч config_patch_generate_replicator_keys.bin
3. Сразу после установки перейти в раздел «Статус» и ждать, когда начнется отсчет времени работы в пункте «Время работы сервера».
4. Как только начнется отсчет времени работы сервера перейти по адресу https://<ip основного сервера>/config_patch_for_slave_and_media.bin и скачать файл. ВАЖНО: Данный файл доступен для загрузки в течение 5 минут с момента начала отсчета времени работы сервера.
5. На резервном сервере (будущем secondary) установить скачанный патч config_patch_for_slave_and_media.bin в разделе «Обновление». Дождаться, когда в разделе «Статус» начнется отсчет времени работы сервера.
6. Установить патч config_patch_prepare_slave.bin на резервный сервер (будущий secondary).
7. Выключить основной сервер, который должен стать primary-сервером (192.0.2.1).
8. На резервном сервере, который должен стать secondary-сервером (192.0.2.2) в настройках резервирования прописать адрес 192.0.2.1. Сохранить настройки.

Reserve

9. Выключите резервный сервер.
10. Включите основной (будущий primary-сервер (192.0.2.1) и пропишите в настройках резервирования адрес: 192.0.2.2. Сохраните настройки.

Reserv192022

11. Перезагрузите основной сервер.
12. После того, как загрузится основной сервер (192.0.2.1), включите резервный сервер (192.0.2.2). В результате 192.0.2.1 будет primary-сервером, а 192.0.2.2 secondary-сервером.
13. Посмотрите состояние синхронизации на странице «Статус».

Checkreserv

Настройка каскадирования

1. Установите сервер, который будет медиасервером, обновите до последней версии.
2. На странице «Параметры сетевых интерфейсов» на медиасервере для интерфейса eth0 IP-адресация должна быть именно такой на медиасерверах: 192.0.2.201 (202, 203, ...) / 255.255.255.128

MediaIP
Также необходимо убедиться, что на сервере управления на соответствующем интерфейсе установлен адрес - 192.0.2.200 / 255.255.255.128

3. Проверьте, что серверу управления доступны будущие медиасерверы по адресам: 192.0.2.201 (202, 203...).

Pingmedia

4. Важно! Если производилась настройка резервирования, то перейдите к пункту 8 и используйте файл, скачанный в разделе Настройка резервирования, п. 4. Иначе, если заново установить патч config_patch_generate_replicator_keys.bin, то управляющий сервер заново сгенерирует ключи и резервирование будет отключено
5. На управляющем сервере в разделе «Обновление» установите патч config_patch_generate_replicator_keys.bin
6. Сразу после установки перейдите в раздел «Статус» и ожидайте, когда начнется отсчет времени работы в пункте «Время работы сервера»
7. Как только начнется отсчет времени работы сервера перейти по адресу https://<ip основного сервера>/config_patch_for_slave_and_media.bin и скачать файл. Важно: Данный файл доступен для загрузки в течение 5 минут с момента начала отсчета времени работы сервера.
8. Установите патч config_patch_for_slave_and_media.bin, полученный на предыдущем шаге или в процессе настройки резервирования, на будущие медиасерверы. Необходимо дождаться, когда в разделе «Статус» начнется отсчет времени работы сервера.
9. На управляющем сервере, в разделе «Каскадирование», добавьте необходимое количество медиасерверов. В названии серверов рекомендуется указать mcu1, mcu2, … mcuN.
10. Если на управляющем сервере так же будет использоваться локальный медиасервер, то в настройках для localmcu необходимо указать адрес 192.0.2.200 в полях «IP» и «Локальный IP». Для локального mcu пароль заполнять не надо. Для остальных медиа серверов указать в поле «IP» адрес медиа сервера (например, 192.0.2.201), а в поле «Локальный IP»: 192.0.2.200. В поле «Пароль» укажите пароль пользователя admin медиа сервера. В поле «Порт» укажите: 5000.
11. Сохранить изменения.

Mediared

12. Необходимо дождаться, когда у всех медиасерверов в статусе отобразится зеленая галка.

Mediagreencheck

13. На сервере управления, в разделе «Обновление» установите патч config_patch_to_configure_media_servers.bin. Необходимо дождаться, когда в разделе «Статус» начнется отсчет времени работы в пункте «Время работы сервера»
14. На главной странице управляющего сервера должны появиться дополнительные вкладки с состоянием медиасерверов:

Mcutab

Проверка статусов кластера

Чтобы проверить, активно ли резервирование (доступен ли сервер secondary), посмотрите его статус на странице веб-интерфейса Система - Статус, раздел "Резервирование":

Slavevalid

Расшифровка строки

Current role - текущая роль сервера. Далее стоит дата (Role set at), когда роль была установлена;

Last time db change checked at - время последней синхронизации БД между secondary и primary серверами;

Remote(IP) last seen at - время последней проверки primary-сервером secondary-сервера. Проверка происходит раз в 30 секунд.

При рабочем состоянии резервирования все три параметра будут отображаться. Если primary-сервер не видит secondary-сервер по какой-то причине, то в Remote(IP) last seen at будет написано время последней успешной проверки или never. Так же в веб-интерфейсе будет отображаться сообщение о том, что secondary-сервер не синхронизируется.

Slavenotavail


Slavenotavail2

Чтобы проверить, активно ли каскадирование, какие медиасерверы сейчас активны, а какие нет, можно зайти на страницу Система - Настройки, перейти на вкладку "Каскадирование" - если какой-то из серверов будет недоступен, в его статусе будет красный крестик.

Medianotavail

Если все серверы доступны, то будут зеленые галочки. Статус каждого сервера отдельно можно посмотреть на главной странице.

Mcumaintab


Mcutabcheck

Если медиасервер будет недоступен, то в его вкладке будет сообщение: "Server not found".