Hi,
We run a small render farm with a custom Python-based job manager built on top of the AppSDK. Rather than using Backburner or another off-the-shelf solution, we control DR2 directly via the AppSDK Python API — which is why we’re in this corner of the forum rather than the general problems section.
We’re now redesigning the architecture and have a few questions before building it out.
Planned architecture:
DR2 Dispatcher
Dedicated LXC container (no GPU)
Always-on, permanent
AppSDK
DR2 Initiator
q5 — bare metal, RTX 3070
Starts jobs via AppSDK, 0 buckets
AppSDK
Render hosts
q1–q7 — bare metal Linux
vray -server
Standalone
Windows render host
w1 — Windows 11
vray -server
Standalone
All components use the same V-Ray build — revision 33551 — which is confirmed DR2-capable across AppSDK, Standalone, and Windows.
Question 1 — Initiator + render host on the same machine
Can the AppSDK initiator (configured to render 0 buckets itself) and a separate vray -server process run simultaneously on the same machine (q5)?
The idea: q5 runs the AppSDK renderer as pure job coordinator, while a second process — vray -server — connects to the dispatcher as a regular render host, contributing q5’s CPU to the farm like any other node.
Is this a supported configuration, or will there be port conflicts / protocol issues?
[/HR]
Question 2 — Dispatcher on LXC or Docker
Is running the DR2 Dispatcher inside a Linux LXC container (or Docker) a supported and recommended setup? Any known issues with containerized dispatchers?
[/HR]
Question 3 — Version matching with a permanent dispatcher
If the dispatcher runs permanently on a dedicated LXC, does it need to be updated every time the render hosts are updated to a new V-Ray version? Or is there any tolerance at patch level between dispatcher and render hosts?
In a previous thread (#1246429) a Chaos developer confirmed “version must be exact match” — does this apply to the dispatcher↔render host relationship as strictly as it does for other components?
[/HR]
Question 4 — Who owns bucket collection and GPU denoising?
In our setup, q5 (the initiator) has a GPU (RTX 3070). Is the initiator always responsible for collecting rendered buckets and running the final GPU denoising pass? Or can denoising be offloaded to one of the render hosts?
[/HR]
Thanks in advance — happy to share more details about the setup if helpful.
Kind regards
algato