В этой статье я хотел бы поделиться опытом увеличения производительности файлового хранилища для рендерфермы и нескольких рабочих станций в небольшой студии графики.
Исходные данные
- Рендерферма (29 рендернод) — 2 x Xeon E5645, RAM 24Gb
- NAS — INTEL S5520UR, 2 x Xeon E5607, RAM 6Gb, RAID6 20Tb
- Коммутатор DXS 3600-32S 10G
- Ceph — 12 нод, 5 х SAS HGST 3Tb, 2 x Intel SSD 200G, Ethernet 10G
- Рабочие станции — PC (linux) и Mac Pro (Mac OS X Yosemite)
- ПО — Adobe, SideFX Houdini, Autodesk Maya, The Foundry, Pixar Renderman, Solid Angle Arnold
История
В «стародавние времена», когда создавалась наша студия, цели сделать хранилище быстрым не было, была цель сделать его объемным. Таким образом было куплено несколько Intel платформ на 12 дисков и на каждой собрано хранилище объемом в 20Tb (12 x SAS Seagate 2Tb, RAID6). Для повседневных задач, таких как, производство 3D графики, VFX и спец-эффектов в полнометражных кинофильмах вполне хватало невысокой скорости доступа по NFS и SAMBA. Но как только начинала работу рендерферма, в работе всех остальных наступал временный коллапс, на рабочих станциях данные были практически недоступны из за большого времени ожидания.
После длительных экспериментов и поисков причины такого проседания скорости при рендере, выяснилось, что виной всему именно медленные файловые хранилища, которые не успевают отдавать данные большому количеству клиентов. Средний объем файлов для рендер фермы был от 1 до 3 гигабайт, скорость чтения/записи при этом была порядка 60MB/s.
Путем нехитрых тактических перестановок в пайплайне было решено, что на время рендера сотрудники студии уходят в отпуск, а как текущие проекты будут завершены начинаем решать вопрос скорости хранилища.
Благодаря хорошим дружеским отношениям с некоторыми из интеграторов мы протестировали в работе NAS системы, такие как DELL Isilon IQ, Panasas Active Store, T-Platform. Они прекрасно себя показали в работе, но хотелось более бюджетное решение, чтобы не покупать дорогую технику и техподдержку. По этому мы стали посматривать в сторону распределенных файловых систем, таких как Lustre, Glusterfs и Ceph. Lustre — оказалась сложна в настройке и конфигурации, а Glusterfs — не хватало надежности. А вот Ceph подошел идеально, к железу и ресурсам не требователен, большинство необходимых комплектующих у нас уже было, докупили только сетевые карты на 10G и SSD диски для кеша и метаданных. Путем чтения документации и грамотного использования мозгов системных инженеров мы собрали распределенное хранилище буквально из того, что было и не использовалось на студии. В итоге мы получили 90ТB объема, с двойным резервированием, конечно довольно экстремально, но в рамках VFX студии данные по проектам долго не хранятся, сдали проект, удалили данные. В крайнем случае всегда есть оперативный бекап. А скорость отдачи материала с хранилища выросла на порядок, во время рендера хранилище разгонялось до 600МB/s и это еще не предел. К тому же, параллельная работа студии во время рендера не останавливалась.
Да, конечно, первоначально у хранилища были детские болезни, но их решили в рабочем порядке без остановки работ. Один раз даже, в выходные выключили электричество, бесперебойники не выдержали и половина хранилища отключилась. Заметили это только в понедельник утром (ну вот, да, оперативно информация о сбое не пришла), но даже в режиме деградации хранилище продолжало работу, данные частично были доступны. А спустя пару дней восстановительных работ (в том числе и ручных), все данные в хранилище вернулись в работу, не было потеряно ни одного файла.
Итог
В итоге хочется сказать, что для небольших студий графики (а для больших, тем более) распределенная файловая система золотая середина, которая обеспечит должный уровень надежности и экономию средств, вместо приобретения дорогостоящего оборудования.
Бонус
Пошаговое руководство запуска Ceph на примере небольшой студии.
Автор: Командир судна