После публикации мануала по сборке мини рендер фермы на базе системы хранения ERIK поступили предложения написать о программной части. Для меня это показалось немного странным, так как в принципе информации более чем достаточно в сети, возможно раздроблено немного, но собрать все для меня не оказалось трудным. Ну хорошо, если есть спрос, будет предложение, а какое оно сами решите в конце. Это скорее будет обзор о том, как я организовал для себя работу со своей фермой. Но и будут элементы уроков, для тех, кто впервые столкнулся с настройкой сети и рендер фермы. Для начала нужно разделить такие вещи как мини ферма и фермы чисто коммерческой направленности. Потому как подходы к организации отличаются. Громадные рендер фермы - это очень сложные системы, требующие огромных финансовых вливаний, соответствующий персонал для управления и обслуживания, специализированный софт, порой пишущийся непосредственно под конкретные задачи данной фермы. Тогда как для не большой фермы достаточно одного человека, обладающего базовыми знаниями по сетям, железу, мониторингу и автоматизации. В моем случае все еще проще, чем кажется.
Сеть.
Для своих четырех машин я использовал коммутатор D-Link DGS-1008D. От него, конечно, чудес ждать не приходится, но свои 1,5 тысячи рублей отрабатывает. Замеры сети проводил в JPerf. Идет она в двух вариациях, разница только в визуализации. В одной версии используется командный ввод, то есть ручками вводим необходимые нам команды - это, конечно, для продвинутых пользователей. В другой все попроще, откомпилированная на java она имеет более привычный вид и разобраться в ней не составит труда.
По окончанию установки сети замеры показали скорость в 896 Мбит/с., делим на 8 и получается 112 мегабайт за секунду. Тестировалось по схеме: главная машина – это клиент, а ноды сервера. То есть DRServer получит запрашиваемую информацию с примерно такой же скоростью. На мой взгляд это не плохой показатель. Для сравнения, скорость чтения/записи из буфера HDD в среднем идет 120-140 Мбайт/с. В конечном счете считывание информации для последующего рендеринга будет ограничиваться скоростью вашего HDD. Приличное ускорение дадут SSD накопители, так как там скорости уже начинаются от 350 Мбайт/с. При планировании своей рендер-фермы это надо учитывать. Если хотите выжать по максимуму, то стоит поставить SSD.
Работаю я в Windows 7 и 8.1, на головной машине стоит 8.1, а на нодах 7ка. Вообще без разницы на каких версиях Windows работают компьютеры в сети и с этим проблем не должно возникнуть. Казалось бы, а когда все машины работают на одной ОС, то тут вообще все просто будет. Вот и я решил поставить 8.1 на все ноды и вышло не очень. Возникло очень много глюков с сетью, работала не стабильно, текстуры то подгружаются, то нет, в общем бился я долго, но так и не решил это. Все эти проблемы связаны были с ОС. Позже установив Win 7 все стало работать идеально. Ни разу не подводила меня. Несмотря на то что на головной машине я так и оставил Win 8.1, все работает. Не буду рекламировать ничего, сами решайте, что ставить.
Настройка сети в Win 7 и 8 ничем не отличается. Первое что делаем назначаем одну рабочую группу компьютерам в сети и присваиваем каждому ноду имя. Заходим в свойства системы и нажимаем "Изменить":
Я назначил своим нодам имена nd0, nd1, nd2, nd3, nd4 и одна рабочая группа RENDERFARM. Рекомендую использовать короткие имена для компьютеров. К примеру, если у вас размер Backet’a в Vray 16x16 или еще меньше, то вы не проследите какой Backet от какого нода в работе. Длинное имя просто не поместиться в контейнер. После внесения изменений нам нужно будет перезагрузится, чтобы изменения вступили в силу.
Следующее необходимо назначить IP адреса удаленным компьютерам, для этого открываем свойства сетевого адаптера (Панель управления\Сеть и Интернет\Сетевые подключения). Настраиваем IPv4, выбираем его и жмем свойства.
Приводим все к следующему виду:
IP у меня начинается с 192.168.0.7 – это nd0IP для последующих нодов, соответственно:192.168.0.8 – nd1192.168.0.9 – nd2192.168.0.10 – nd3Все сохраняем и перезагружаем компьютер.
Теперь, желательно "пропинговать" ноды, чтобы удостовериться что все друг друга видят, сетка работает. Нажимаем сочетание клавиш Win+R и вводим cmd. Пишем следующее: ping (пробел) IP адрес.Должно выглядеть так:
Нажимаем enter
При успешном "пинговании" должна быть такая же картина. Все это повторяем для всех нодов. После успешного тестирования можно переходить к настройкам общего доступа.
Заходим в Панель управления\Сеть и Интернет\Центр управления сетями и общим доступом и кликаем на "Дополнительные параметры общего доступа". Выставляем так:
Ну все, теперь можем расшаривать папки, создавать сетевые диски. Сеть готова для работы.
Ниже пример для тех, кто не знает, как расшаривать папки для общего доступа.Создаем папку, затем заходим в свойства папки, выбираем вкладку Доступ:
Нажимаем «Расширенная настройка»
Отмечаем пункт "Открыть общий доступ к этой папке". Далее "Применить" и ОК. Возвращаемся к свойствам папки, кликаем на кнопку "Общий доступ"
Пишем "Все" и нажимаем "Добавить"
Далее указываем что могут делать с содержимым этой папки другие пользователи. Затем нажимаем "Поделиться". Появится окно, уведомляющее что доступ открыт, готово.
Управление.
После сборки рендер-фермы понадобиться монитор, который будет подключаться к нодам, так как устанавливать ОС, настраивать BIOS удаленно не получится. До момента установки драйверов будет неудобно, но потом мы можем установить удаленное управление на наши компьютеры и забыть про клавиатуру, мышку и монитор. У меня управление нодами происходит при помощи программы Lite Manager Free - это бесплатная утилита для удаленного управления. Есть и более продвинутая версия Lite Manager Pro, но она уже платная, с более расширенными возможностями. Но в моем случае мне достаточно и версии Free. В целом мне понравилось как она работает, ее интерфейс, настройки и стабильность. В рабочем состоянии выглядит она вот так (Viewer):
Управление удаленными компьютерами происходит в графическом режиме, мышкой и клавиатурой (Server):
Также работают горячие клавиши и копирование из буфера текстовой информации. Вообще конечно были с ней проблемы, в Windows 8.1. При работе в графическом режиме была сильнейшая задержка, просто невозможно было работать. Как можно было оптимизировал, но это не сравниться с работой в 7ке. Тут все отлично, просто работаешь как на обычном компьютере. Также присутствует функция Wake on Lan. Существуют конечно и отдельные утилиты для посылки «магического пакета», но по - моему, когда все объединено в одной программе, то это очень удобно. Есть еще много чего полезного в ней, все не буду описывать, существует официальный сайт, форум, там все можно почитать. Получилась какая-то реклама, но в любом случае, если вам нравится ваше удаленное управление, то очень хорошо. Можете поделится опытом тоже, будем признательны.
Файлы.
Работу с файлами организовал я следующим образом. Для нодов доступна только одна расшаренная папка где и лежат все файлы проектов для сетевого рендеринга. Она расположена на головной машине, на рабочем диске, в корне "E:\Farm\". Далее в ней будут просто создаваться папки проектов, куда копируются текстуры, proxy, ies. Выглядит это следующим образом:
Рабочие сцены лежат в другой, не расшаренной папке. Нет необходимости размещать сцены в папке Farm. Главное обеспечить нодам доступ для текстур, proxy, ies наших проектов.
Для сборки файлов использую стандартный 3ds max’овский Resource Collector. Перед каждым превью сразу собираю в папку Farm все использованные файлы в сцене. Некоторые сетуют что не надежный стандартный коллектор, но не знаю, у меня всегда работал исправно. Сторонними плагинами не пользуюсь. Только файлы типа HDR или EXR ручками скидываю. Может он их не видит, или не считывает с Environment’a. Это его минус кончено, в остальном все хорошо срабатывает. Что касается рабочего ПО, то я работаю в 3d’s Max Design 2015, V-Rray 3.00.7 и Corona Renderer A7.1, соответственно на всех машинах стоят одинаковые версии. Если будут стоять разные, то могут возникнуть конфликты. И вообще, весь софт, участвующий в сетевом рендеринге, должен быть одинаков и на всех машинах. Это касается и мелких плагинов, к примеру, Bercon Maps или Multitexture – Это процедурные карты. Отсутствие данных плагинов будет расцениваться как отсутствие текстур, и вы получите на рендере битые участки, где они должны были быть использованы.
Теперь, когда настроена сеть, открыт доступ к папке с текстурами, нам нужно указать пути к этим папкам в 3d’s max на каждом ноде.
Customize > Configure User Paths > External Files
Жмем Add и открываем сеть, выбираем наш главный компьютер (nd0), папка Farm. Ну а дальше папку, в которой хранятся текстуры. Можно сделать немного по-другому, подключить на каждом ноде сетевой диск. Этот сетевой диск будет, по сути, расшаренная папка Farm. Но только имеет он свойства локального диска HDD и будет отображаться как диск с буквой. При добавлении в пути нужно будет заходить не в Сеть, а в Мой Компьютер, а далее на сетевой диск, как при обычном добавлении путей на стационарном компе. Как подключить сетевой диск будет чуть ниже, только сделаю оговорку насчет них. Я отказался от такого метода добавления путей, так как в Windows 8.1 возникли проблемы с сетевыми дисками. Они были созданы, все работало, с перебоями конечно, в Win 8 вообще мало что работает стабильно, наверно только MS Store, но вот 3d’s max отказался их видеть. Были предприняты масса попыток исправить это, но не получилось. После этого я для себя решил, что буду добавлять пути только напрямую. Либо текстуры грузятся, значит сетка работает, либо нет, отсутствует доступ к удаленному компу. Нет желания больше доверять эти сетевым дискам, даже в Win 7 поставил все напрямую. Все работает исправно. Оставил сетевой диск только для быстрого доступа к файлам.
Подключение сетевого диска. Открываем Мой Компьютер, вверху под адресной строкой находим "Подключить сетевой диск", нажимаем.
Здесь указываем под какой буквой будет создан диск и указываем расположение расшаренной папки на удаленном компе, на основе которой он будет создан. Жмем "Готово". Сразу же должен появиться вот такой значек:
Теперь можно пользоваться им как локальным диском.
Настройка рендер-фермы завершена. Как оказалось, все не так уж и сложно. Все выше изложенные действия не заняли много времени. В процессе настройки, на каждом этапе могут возникать ошибки, какие-то конфликты, главное быть внимательным. Вообще не представляется реальным описать все возможные проблемы и их решения, все индивидуально. Существуют другие статьи на эту тему в сети. Рекомендую не полениться и перечитать как можно больше информации перед началом работ. Если будут какие-то замечания по теме, предложения может быть, не стесняйтесь, пишите. На самом деле я сам только учусь и этой статьей я рассчитываю не только поделиться своим опытом в настройке, но и перенять его у других.
С уважением, Андрей Кузьмин (Andersen)