Blender 2.5 Network Rendering: Part 01 Systems

This post is an outline for setting up an offsite render network mainly for Blender Rendering but also for After Effects and possibly Premiere. I had started a series on this before but ran into a number of problems, which have now been sorted out. The network has been in use for a few weeks now and consists of all of the major platforms; Linux (Ubuntu,) Windows (XP/7,) and OS X.

The main objective with this setup is to have a remote render farm where work is offloaded from the main workstation and left to work without constant management; however, variations based on individual needs this setup should be easy to do. I will be covering everything from the OS setup for easy remote management to Blender install and setup to terminal commands. I won’t be covering hardware setup, OS installation or general use for each program; there are any number of guides these so no sense going over them again, I’ll be sticking to what you need to manage renders in Blender.

This first post is just about the over system setup. The next post will get into the details of setting up each OS then into the Blender setup.

Step 01: Find some computers
This step might be easy for some, but if you are having trouble scrounging up spare computers try craigslist and look for office closings or other giveaways. You can even check recycling centers or second hand shops. Although you can be too picky, I’d avoid systems with less than a 1Ghz processor and less than 1 Gig of RAM. For best results, try to find systems with a 1:2 ratio of Ghz to RAM (unless they are Dual or Quad core in which case 2-4 Gigs should be fine.)
Step 02: BIOS Setup
Since you are likely using semi-modern systems, the BIOS setup is simple. Find the power options and make sure Wake-on-Lan is enabled then test. This is essential for an offsite render network but also helpful for an onsite one as well. If one of your systems doesn’t have a Wake on Lan option, an old but gold system or basic laptop, there are solutions such as using Windows Hibernation, which will be covered later on. For a complete guide to Wake on Lan, Lifehacker has a handy article http://lifehacker.com/348197/access-your-computer-anytime-and-save-energy-with-wake+on+lan.
Step 03: Choose your OS
Since you are using a few random machines you’ll probably have a mix of OSes. No OS is flat out better than another for network rendering; even Windows can be setup with a remote command line such as SSH. Linux, in this case Ubuntu, does have advantages with cost and ease of setup; Ubuntu is free and most the changes we’ll be making to Windows are setup and running by default in Ubuntu. Another deciding factor is what addtional services you plan on running on the node. For this network, I have 2 Windows nodes so I can run the After Effects Network Renderer, which is not available for Linux. Also the system is controlled by a recent model Mac Mini which doubles as a web test environment and media machine. Mac Mini’s aren’t the best cost to power systems but one system can be used as a client machine for renders; more on this later.


Step 04: Network Setup
Any network where you can see each system from another will work, nothing too special about the network setup here. My only advice is to avoid wireless networks. Wireless works great for mobile devices but are too inconsistent for a series of render nodes. Hostnames, for instance, don’t seem to work as readily on wireless networks and rarely are transfer speeds optimal over the air.
Step 05: OS setup
Now the the actual setup. You have a few computers and need to get them setup and rendering together. Each of the systems needs these services:

  1. SSH
  2. VNC (Remote Desktop)
  3. Network Accessed Drive (For both on and off site systems.)
  4. Blender 2.5

VNC and a Networked Drive aren’t essential but are extremely helpful. Every now and then I send over a scene that needs a bit more setup. It is usually faster to touch up a scene over VNC than to reupload a large Blender file with cached physics and packaged textures.

One major note. Although it is nice to manage systems with a GUI, using a command line is often much faster and more than sufficient for getting renders through. This guide will go through command line instructions extensively.
Windows
For remote access to Windows I setup an SSH connection using Cygwin. The setup is a bit tedious but it makes sending remote commands easy and has worked well for me so far. There is also copSSH but I haven’t used it so this guide will cover the Cygwin method. The initial setup should be done at the system, rather then remotely, but if you have Wake-on-Lan tested and working you can do the Windows setup offsite.
OSX / Ubuntu
Setting up OSX and Ubuntu are easier, as SSH is included in the OS by default. OSX is the easiest to setup as setting up VNC is an option in the Networking panel and nothing special needs to be configured for headless use. Ubuntu requires more setup as not having a monitor connected means that the GUI isn’t loaded by default so you have to do some additional configuration to get Ubuntu a bit more remote session friendly. Also, where SMB works pretty well out of the box for OSX, Ubuntu needs a few additional commands to get the network drive working smoothly.

That’s it for the outline, look for the Windows guide in the next week or two.

Blender Logo from Blender Modeler


Comments

One response to “Blender 2.5 Network Rendering: Part 01 Systems”

  1. Great article. I am waiting for more information.

Leave a Reply

Your email address will not be published. Required fields are marked *