Search:  
Gentoo Wiki

DrQueue

Contents

Introduction

This HowTo is for the Gentoo ebuild for DrQueue found here: http://bugs.gentoo.org/show_bug.cgi?id=69553 if you have questions or need help I recommend posting to this thread http://forums.gentoo.org/viewtopic-p-4218804.html in Gentoo forums.

DrQueue is a powerful open source distributed render farm manager, used for a range of applications across the visual effects industry and for general batch processing jobs in science, engineering and finance. You can find out more about DrQueue at http://drqueue.org and the forums there http://drqueue.org/cwebsite/drqueue_community/ can help once you have DrQueue up and running.

Getting Started - Downloading the Ebuild

To use this ebuild you must first download the ebuild and associated file to a local overlay.

I recommend reading or at least skimming HOWTO_Installing_3rd_Party_Ebuilds if you are a novice.

I will assume you have created an overlay in /usr/portage/local/your_name/ and a folder sys-cluster/drqueue/ to put the ebuild into, you also need to download the associated files, drqmd/drqsd conf and init files and the drqueue-0.64.3_mips_linux.patch file to /usr/portage/local/your_name/sys-cluster/drqueue/files/.

Then create a digest:

cd /usr/portage/local/your_name/sys-cluster/drqueue/
ebuild drqueue-0.64.3.ebuild digest

If this completes succesfully you can then try emerging drqueue:

emerge -av drqueue

You will notice that there are a few USE flags for DrQueue

[ebuild   R   ] sys-cluster/drqueue-0.64.3  USE="X python ruby" 0 kB [3]

When installing DrQueue one your machine or machines it is worth considering what you require from it, for example the X USE flag will build the GUI application drqman, now for a headless server which will be acting as a slave this is not necessary, however you may wish to have the python and/or ruby bindings for job submission and monitoring.

Post Install Config

Environment Variables

First we need to ensure you have set your master machine in /etc/conf.d/drqmd, /etc/conf.d/drqsd and /etc/env.d/02drqueue.

Edit the lines in these files mine now reads:

# enter your master hostname here
DRQUEUE_MASTER="ak01"

Where ak01 is the master machine for my cluster, all the slave machines must have the same master and also any desktops which you wish to be able to connect to the master to submit jobs.

You may need to run as root:

env-update && source /etc/profile

and log out and back into your X session before the new environment variables work.

Alternatively you can simply use:

export DRQUEUE_MASTER="your_master_hostname"

If you get complaints when starting programs related to DrQueue such as:

ERROR: DRQUEUE_MASTER not set in environment

or

ERROR: DRQUEUE_LOGS not set in environment

about environment variables just export the appropriate variable with a suitable value or path.

NFS Share

DrQueue requires a network share between all the nodes Master, Slave and Client before it can function properly. I create a folder on /home/drqueue/ to provide this on my Master node and use nfs to mount this folder on all slaves and clients.

To find out about how to use NFS read this page NFS/Share Directories

Within /home/drqueue you need to create two additional folders logs and tmp and make these writable by all:

chmod 777 /home/drqueue/*

Additionally you may wish to create some other folders in this share which could contain scene files if you are using the cluster for rendering for example.

Starting DrQueue

First configure: /etc/drqueue/drqman.conf

Mine looks like this:

logs=/home/drqueue/logs
tmp=/home/drqueue/tmp
db=/usr/share/drqueue/db
etc=/etc/drqueue

These dirs need to be previously created and writeable.

To start the master:

/etc/init.d/drqmd start

If you want it to start at boot every time:

rc-update -a drqmd start

To start a slave:

/etc/init.d/drqsd start

Similarly if you want the slave to start at boot every time:

rc-update -a drqsd start

You should start a master only on your master node for your cluster, a slave should be started on every machine in your cluster you wish to provide processing power. You can additionally start a slave on the master to make use of the masters processor too. DrQueue is capable of starting multiple single threaded tasks on multi core machines so you only need to start one slave per machine.

Using DrQueue

Submitting a Job

Now we need to check if our cluster is working as we expect and start submitting jobs.

I suggest starting drqman from a gui machine such as your desktop to see if this is working. drqman can be started on any machine in the cluster with X.

You can queue any process at all which can be started from the command line, when you start drqman right click select new job and figure out how best to submit your task. There are a number of script generators included so select the appropriate template. Use the General template for a standard batch task.

There are two important tabs in drqman:

Jobs

This tab lists currently running jobs and enables job creation and mangement.

Right click to see the menuĀ·

Select "New Job"

Then define the "Kind of job"

The drop down list represents a number of templates for job script creation, General is a for a simple batch distribution, Pixie for example uses a script generator template which creates a Pixie Renderman job.

You can also add E-mail notification and Job dependency as well as specify which Pool or OS's the tasks in the job may be run on.


Computers

This tab lists computer (slaves) which have notified the master they are available to process jobs, if no machines are listed here and you have started a master and slave then you probably have a problem.

It is possible to monitor your cluster and jobs progress using drqman.

Hopefully you can now go ahead and start using DrQueue.

Retrieved from "http://www.gentoo-wiki.info/DrQueue"

Last modified: Mon, 22 Sep 2008 03:33:00 +0000 Hits: 3,685