Сеть или не сеть?

 

Сеть или не сеть?

О чем речь?

Эта небольшая заметка посвящена одной часто встречающейся проблеме, о которой много говорят в форумах сети. История вопроса такова: с повсеместным переходом ряда телекомпаний на обработку несжатого SD видео, различных форматов HD видео потребность в огромных массивах для хранения и доступа к видеоданным резко возросла. Кроме этого, стало крайне неудобным держать видеоданные на локальных массивах без возможности групповой работы над одним и тем же материалом.

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

Элементарные расчеты показывают, что вроде бы все должно получиться. Реальная полоса гигабитной сети 60-70 мегабайт в секунду и ее должно хватить чуть ли на 20 DV потоков, по 3.5 мегабайт в секунду. Работая через пару сетевых карт сервера в транке, можно добиться реальной отдачи от сервера 120-140 мегабайт в секунду. Иными словами, по идее 20 человек могут смотреть и редактировать DV видео (если рабочая станция + программа позволяют) в реальном времени без каких-либо проблем. 

Сказано - сделано и ряд студий попытались внедрить у себя подобные системы. Результат оказался плачевным - не то что 20, 5-8 человек не могли одновременно комфортно работать даже с DV. Вроде бы все правильно, да и формально работать можно, но вот производительность труда, если можно так выразиться, никакая. Понятно, что следующий вопрос будет из разряда вечных: "Кто виноват и что делать?". 

Кто виноват?

В начале, как обычно, возникает подозрение, что либо расчеты были не верны, либо не оптимально использована и/или сконфигурирована сеть в студии. Попавшийся под горячую руку системный администратор может быть предупрежден о неполном служебном соответствии, а то и просто наказан, расчеты перепроверены еще раз, но результат не изменится. Толковый сисадмин просто с помощью тестов легко докажет, что с сервера уходит требуемый поток и все, что обеспечивает Ethernet он сделал, а далее умывает руки. Как это не печально, он будет абсолютно прав. Даже выжав оптимизацией топологии, применением и правильной настройкой дорогих коммутаторов из сети все, что можно, комфортной работы на гигабитном Ethernet не получится.

Суть проблемы в том, что не учитывается тот простой факт, что для комфортной работы с видео пропускная способность канала "видеоредактор – данные в сети" должна быть как минимум не меньше канала "локальный диск - программа". Но, кроме поддержки высокой скорости потока, и время реакции системы на запрос данных от пользователя должно быть не больше, чем от локального жесткого диска (или локального RAID). В противном случае любой человек немедленно почувствует заметные задержки в системе, а это и есть дискомфорт. Если же скорость падает на порядок, как в примере выше, то работа становится просто невыносимой. Технически причина понятна - локальный недорогой SATA диск сейчас легко обеспечивает поток 30-60 мегабайт в секунду и минимальную задержку отклика. Внешний или внутренний SATA RAID без напряжения отдаст/примет 100 мегабайт в секунду и более.

Что же происходит, когда данные находятся в сети, а не на локальном диске? Все очень просто - программа начинает обработку, но ей приходится долго (по сравнению с локальным диском) ждать данных, особенно в том случае, если она обрабатывает кадры быстрее реального времени. Полоса пропускания в сети делится между пользователями и время реакции на запрос видеомонтажной программы может увеличиться в разы по сравнению с локальным диском. Разница между работой с локальным диском (под локальным диском здесь и далее мы будем понимать любой локальный диск, локальный RAID массив и т.п.) и работой по сети будет тем больше, чем мощнее рабочая станция и чем быстрее ее локальный диск. Пропускная способность сети фактор постоянный и в результате, работая с данными по сети, практически уменьшается производительность собственно рабочей станции.
 
Иными словами, разница между работой по сети и с локальным диском для старого компьютера с двумя процессорами Pentium III 800 MHz будет весьма небольшой по сравнению с рабочей станцией на современном двухъядерном процессоре Pentium D 3.2 GHz. Вполне возможно, что пользователь старого компьютера даже не заметит разницы, поскольку локальные диски его компьютера намного медленнее современных, да и процессорам не требуется быстрая подача данных, поскольку они все равно не успеют их обработать. Напротив, на современной рабочей станции все упрется в скорости приема/передачи данных для обработки, и на ней разница в скорости работы будет заметна даже неспециалисту. 

Для достижения комфортных условий работы сеть должна пропускать от каждого пользователя не менее 40 мегабайт в секунду, соответственно от 5 пользователей до 200 мегабайт в секунду. Безусловно, можно поставить пару серверов с парой портов Gigabit Ethernet на каждом, завести на них общий внешний массив, далее подключить сервера к хорошим коммутаторам и, используя транк, увеличить быстродействие системы. Да, в таком варианте можно получить полосу в 200 мегабайт в секунду, 4-6 человек уже смогут более-менее комфортно работать по сети – но и затраты на такое решение будут весьма приличными, а комфорт все-таки весьма относительным, поскольку задержки сети никуда не денутся.
Решения, позволяющие довольно комфортно работать с видео по сети есть у Avid, например – но стоимость такого решения начинается от $100000 и такие решения рассчитаны на большие даже по западным меркам коллективы. 

Что делать?

К сожалению, в рамках гигабитного Ethernet ничего сделать нельзя. Больше трех-четырех пользователей подключать к групповой работе по сети не стоит даже для работы с DV, не говоря уже о больших потоках. Светлое будущее за 10 гигабитным Ethernet и iSCSI по нему, в этом нет никакого сомнения, но когда наступит это светлое будущее, неясно. Основной сдерживающий фактор здесь - высокая стоимость оборудования для 10 Gbit сети. Сетевые карты от $900 и коммутаторы от $500 за порт не вдохновляют на приобретение этой неплохой технологии. К тому же внешних массивов и контроллеров iSCSI на 10 Gb реально нет в продаже и когда будут, неизвестно, поскольку - см. выше стоимость 10 Gbit оборудования.
 
Поэтому единственный правильный сегодня и в ближайший год-два путь это применение 4 Gb Fibre Channel оборудования. Полоса пропускания для 4 Gb Fibre Channel составляет 400 мегабайт в секунду в одну сторону. Нельзя забывать и о том, что внешний Fibre Channel массив для любой рабочей станции будет локальным диском и никаких задержек на реакцию системы не будет. Конечно, назвать оборудование для Fibre Channel дешевым никак нельзя, но оно все-таки в целом существенно дешевле оборудования 10 Gb Ethernet и для Fibre Channel серийно выпускаются недорогие внешние дисковые массивы. Полосы пропускания 4 Gb Fibre Channel в 400 мегабайт в секунду в одну сторону и столько же обратно с лихвой хватает для подавляющего большинства задача. Применение multipath возможностей позволяет удвоить полосу пропускания и получить результат, полностью перекрывающий потребности не только на сегодняшние, но и на ближайшие годы, включая работу с 4K кино (или видео?).
 
А сеть и сетевые хранилища данных? Им тоже есть место – они вполне подходят для архивирования и/или просмотра видео, т.е. в тех случаях, когда не требуется обеспечение гарантированной полосы пропускания от пользователя к хранилищу.