16 December 2014

Система хранения медиа данных с 10G доступом

High performanceImage processing
Эта статья — развитие идеи создания 10G сети для обработки изображений.

Заказчик — небольшая фотостудия, активно снимающаяся всевозможные eventы — свадьбы, встречи, корпоративные праздники и т.д.
После дня съемки одним-двумя фотографами надо быстро отсортировать до нескольких тысяч фотографий, сделать предварительную выборку лучших, быстро их обработать и представить заказчику первую версию выборки фотоснимков.
Иногда к этому добавляется видео съемка мероприятия.
Позже часто требуется более тонкая обработка фото и видео материалов, верстка фотоальбомов и фотокниг, подготовка коротких фильмов.
Со стороны компьютерной системы нужна высокая емкость (в год студия производит порядка 10 терабайт фото-видео материалов) и высокая скорость доступа к имеющейся фото и видео библиотеке с 3-4 компьютеров. В основном это компьютеры производства Apple.
Через год примерно 90-95% фото-видео контента стирается, оставшиеся 5-10% сохраняются на несколько лет.

Учитывая пожелания по суммарному объему хранимых данных, было предложено использовать сетевое хранилище NAS с емкостью не менее 6 дисков. В результате было выбрано 8 дисковое хранилище, но на начальном этапе в него было установлено 6 дисков по 3ТБ.
Потребность в быстром доступе к сетевым ресурсам с компьютеров Apple реализовали двумя способами:
проводной доступ через конвертер Thunderbolt — 10G Ethernet.
беспроводной доступ для ноутбуков был реализован на стандарте WiFi AC.

Сетевым хранилищем была выбрана модель QNAP TS-870Pro. С оборудованием этой компании я работаю уже немало лет, и опыт пока имею только положительный.

TS-870Pro


Модели с индексом Pro позволяют устанавливать дополнительную сетевую карту, в том числе с 10 гигабитными портами. Такие модели выпускаются уже не первый год, но в моем проекте использвались впервые. Предыдущие решения, в которых были 10гигабитные магистрали, строились на основе Windows серверов, поэтому было интересно, как поведет себя NAS при работе в такой скоростной сети.
Некоторым ограничением был довольно короткий список совместимых 10G сетевых карт. К счастью, у дистрибьютора нашлась одна из подходящих моделей — Emulex OCe11102-NX.
Карта была установлена в NAS и “завелась” без каких-либо проблем.

Emulex 10G

Подключена она была через коммутатор с 10G SFP+ портами кабелем прямого подключения.
Один из компьютеров удалось подключить по медному SFP+ кабелю, другой — по оптике-мультимоду через SFP+ трансиверы. Трансиверы использовались китайские, от 10Gtek.
Но на тестах использовались только медные кабели.

TS-870Pro back

На накопителе была установлена последняя доступная на момент тестирования версия firmware 4.1.1.
Тестировалась конфигурация на основе RAID5 — та, которая и будет работать у заказчика.
Для начала были запущены несколько синтетических тестов.
Один из наиболее известных — Intel NASPT.

NASPT Sum

Несколько подозрительным выглядит значение для HD Video Record, Похоже, это результат кеширования.
А вот результат для одновременного чтения и записи интересен для нашего случая. И он получился вполне достойным.

HD Video 1Play 1Record

Тест от Atto показал следующее:

Atto

Но все это синтетические тесты.
Интересно было понять, какая скорость чтения-записи получилась на реальных задачах.
Вот как выглядит Dashboard на NAS. Сначала была операция чтения с хранилища, потом чтения и запись (с разных компьютеров), потом опять чтение:

Dashboard

Как можно предположить, мы использовали всю производительность нашей дисковой подсистемы. Только на чтение получаем чуть меньше 500 мегабайт в секунду. Добавляем процесс записи — и скорость чтения пропорционально падает.
Если посмотреть в операциях ввода-вывода, получаем порядка 5000-6000 IOPS, latency в районе 130мсек.

IOPS

Загрузка процессора хранилища при этом не превышает 50%. Интересно, что загрузка распределяется по 4 ядрам CPU достаточно равномерно.

На считывании больших файлов (имитация работы со “слоеными” файлами Photoshop и видео файлами) получалась скорость порядка 400-450 мегабайт в секунду.

Read from NAS

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

По ощущениям от работы в программах, работающих со множеством графических файлов, типа Lightroom, Premiere Pro, скорость работы при “пролистывании” каталога картинок, кэшировании видео файлов и других операциях, в которых скорость считывания будет определяющей, по сравнению с гигабитным подключением, скорость возросла в несколько раз.
Работа в задачах, для которых важна еще и скорость обработки информации, хотя и возросла, но не так значительно. Это были задачи генерации JPG файлов и слайд шоу видео роликов из RAW файлов, размером по 30–50мегабайт каждый. В этом случае заметна стала разница в мощности процессора используемых компьютеров. Скачивать-то данные мы можем быстро, а их обработка в нашем случае “упирается” в производительность процессора.

Для резервного копирования используется внешние диски, подключаемые по USB3, и копирование в “облако” CrashPlan.

Кому может быть полезно такое решение?
На мой взгляд, это небольшие студии, работающие с потоком фото и видео материалов. Если людей, обрабатывающих эти материалы больше одного, и работать они могут с разных компьютеров, появляется смысл в организации всех медиа файлов, часто разбросанных по множеству внешних дисков, на одном устройстве. И скорость доступа повышается (на обычных внешних дисках я не видел скорости чтения-записи больше 100-120 мегабайт в секунду), и защита от сбоев одиночных дисков, и автоматическое резервное копирование можно настроить.
Кроме этого подобный NAS предоставляет еще много дополнительных функций. Для кого-то будет важна его возможность работать сервером видеонаблюдения, кто-то использует его для закачки torrentов, кому-то покажется полезной возможность встроенного XBMC плеера.

А вот чем эта система сама по себе точно не является, так это backup системой. При условии, что она у вас одна. RAID5 хоть и защищает от одиночного сбоя диска, не переживет выхода из строя второго диска, пока первый синхронизируется после замены сбойнувшего. Никто не мешает организовать RAID10 или RAID6, но потери полезного дискового пространства будут значительны, да и в случае затопления или пожара это не поможет. В этом случае — либо синхронизация со вторым таким же устройством, расположенным в географически удаленном месте, либо резервные копии на внешние диски, либо резервное копирование “в облако”, что и было реализовано в этом проекте.

Мне было бы интересно узнать, как подобную задачу хранения — доступа к фото-видео исходникам при не-корпоративном бюджете решали «коллеги по цеху».
Tags:10gbitNASmediaphotography
Hubs: High performance Image processing
+13
19.5k 86
Comments 39
Popular right now
Top of the last 24 hours