Author Topic: Updating my farm  (Read 3147 times)

2017-09-25, 21:24:32

rendertime

  • Guest
Hey guys,

Im wondering if there is a better way to deploy Corona across a Farm, i have 30 machines (used to have 200) and i also like to play with daily builds, it a complete pain to keep login in on teamveiwer and do the install ... especially now with the new Mats takes ages.

can we not have a node install where you can set it to automatically install on either a major build or a daily build ?  as im currently installing the new 1.7 30 times i thought it might be a good feature?

Natty

2017-09-25, 22:42:14
Reply #1

jasond

  • Active Users
  • **
  • Posts: 39
    • View Profile
Frood posted some code several months ago that may work for you. I got it working on mine to install builds across 25 nodes in about 10 seconds.

https://forum.corona-renderer.com/index.php?topic=15815.msg103529

If your nodes are on a domain, its relatively easy. From the post about, make a central install directory, remotely kill the dr/max tasks, copy the build files and restart the tasks.

2017-09-25, 22:59:03
Reply #2

Ryuu

  • Former Corona Team Member
  • Active Users
  • **
  • Posts: 654
  • Michal
    • View Profile
... especially now with the new Mats takes ages ...

Go grab the RC2 build. You can now download the MatLib file just once manually and use the local copy for all installs. But yeah, updating render nodes is not really user friendly.

2017-09-26, 09:54:50
Reply #3

Frood

  • Active Users
  • **
  • Posts: 2002
    • View Profile
    • Rakete GmbH
As for the Corona material library: I installed it once, relinked all assets in the library to a server directory via UNC so that nodes can access them conventionally. You wont be able to use the Corona material browser this way (yet?) but just like a standard material library and you can use it on workstations and render on the farm without issues. Benefit: updating the library happens at exactly one location for all nodes.

Haven't looked into the way the Corona MaterialLibrary (browser) accesses the lib files but I'm confident it can be customized to search for the lib+xml+preview files on a network location. If not currently then maybe soon? :)

Not sure if it would be easier/quicker/safer/better to just symlink Corona\materials once on all nodes and that´s it.


Good Luck

Never underestimate the power of a well placed level one spell.

2017-09-26, 11:08:39
Reply #4

rendertime

  • Guest
Thanks for your Reply's guys  ... i use Refamo to manage my Farm, you can also replicate directories with it and place files  ... i haven't tried it yet but im wondering if i could just do a Replication job ?   http://www.refamo.com

2017-09-26, 11:27:00
Reply #5

Ryuu

  • Former Corona Team Member
  • Active Users
  • **
  • Posts: 654
  • Michal
    • View Profile
Haven't looked into the way the Corona MaterialLibrary (browser) accesses the lib files but I'm confident it can be customized to search for the lib+xml+preview files on a network location. If not currently then maybe soon? :)

The path to the MatLib files is hardcoded, so Good Luck(tm) with customizing it ;) This is something I wouldn't want to change this close to the release as there is always a possibility of introducing new bugs. In the meantime you can just create a symlink from %ProgramFiles%\Corona\materials to the location where you moved the data.

2017-10-13, 11:05:24
Reply #6

cgifarm

  • Active Users
  • **
  • Posts: 55
  • Your Brand New RenderFarm
    • View Profile
    • CGIFarm
Hey guys!

Here's how we are doing this, with a bat file:

::::::::::::::::::::::::::::: Begin of install bat file ::::::::::::::::::::::::::::::::::::::::::
SET rfolder=\\networkpath\corona_folder_with_more_versions\ :: Your network location path
SET dateFolder=corona17_rc7 :: this is the folder where latest corona was unzipped
SET lutFolder=LUT bundle
SET copyFolder=%rfolder%%dateFolder%

SET coronaProgramFiles=C:\Program Files\Corona

SET max2015Folder=C:\Program Files\Autodesk\3ds Max 2015
SET max2016Folder=C:\Program Files\Autodesk\3ds Max 2016
SET max2017Folder=C:\Program Files\Autodesk\3ds Max 2017
SET max2018Folder=C:\Program Files\Autodesk\3ds Max 2018

:: 3DS max 2015
xcopy /s /y "%copyFolder%\3ds Max 2015 Plugin\fullspeed" "%max2015Folder%" /f

:: 3DS max 2016
xcopy /s /y "%copyFolder%\3ds Max 2016 Plugin\fullspeed" "%max2016Folder%" /f

:: 3DS max 2017
xcopy /s /y "%copyFolder%\3ds Max 2017 Plugin\fullspeed" "%max2017Folder%" /f

:: 3DS max 2018
xcopy /s /y "%copyFolder%\3ds Max 2018 Plugin\fullspeed" "%max2018Folder%" /f

::copy corona files
rmdir /Q /S "%coronaProgramFiles%\lut"
echo f | xcopy /s /y "%copyFolder%\%lutFolder%" "%coronaProgramFiles%\lut" /f /i

:: copy DR Server
xcopy /s /y "%copyFolder%\DR Server\DrServer.exe" "%coronaProgramFiles%" /f

::::::::::::::::::::::::::::: End of install bat file ::::::::::::::::::::::::::::::::::::::::::

I wrote it longer to make it easier for me to understand as I am not a core programmer.

Another suggestion would be to run this kind of script, which will update the install bat file on all
computers from the network:

::::::::::::::::::::::::::::: begin of bat update and execute script :::::::::::::::::::::::::::::
echo f | xcopy /s /y "\\networkpath\batch_install_corona.bat" "C:\automation\batch_install_corona.bat" /f /i
C:\automation\batch_install_corona.bat :: this executes the update command.
::::::::::::::::::::::::::::: end of bat update and execute script :::::::::::::::::::::::::::::

You could then replace the batch_install_corona.bat on the network with an empty file so your servers will not update corona
every time this script is executed. You could setup some variable or query for registry to see if you have latest version of corona
but this will involve more work and maybe goes out of the scope of the task.

To make the update_and_execute.bat run every time your windows opens, you could setup a new task inside the task scheduler or add
it on startup, depending on which windows version you are using.

You can do some research on the batch commands inside windows, it's really helpful to automate things.
Good luck with your projects!


PS. Sorry for the long post, but I didn't wanted to attach bat files on the thread, as people would think I am providing viruses.. :)
Read and verify all the code, I am giving it without any guarantee, test it before deploying into production.

Alex from cgifarm.com
Working on a Renderfarm Platform - checkout our website cgifarm.com and our cost calculator : https://www.cgifarm.com/renderfarm-cost-calculator