SETUP 05: RENDER FARM (FLAMENCO)
Настроить Flamenco (официальный рендер ферма Blender) для распределённого рендеринга на кластере машин
⚙️ Сетапы ⭐⭐⭐ полная 17 блоков кода обновлено 2026-11-12
ID: SETUP-05 | Type: Distributed Rendering | Difficulty: ⭐⭐⭐ | Time: 30-60 min
🎯 ЦЕЛЬ
Настроить Flamenco (официальный рендер-ферма Blender) для распределённого рендеринга на кластере машин
📋 АРХИТЕКТУРА FLAMENCO
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ MANAGER │────▶│ WORKER 1 │ │ WORKER N │
│ (Server) │ │ (Render) │ │ (Render) │
│ Port 8080 │ │ Port 8081 │ │ Port 8081 │
└─────────────┘ └─────────────┘ └─────────────┘
│ │ │
▼ ▼ ▼
┌─────────────────────────────────────────────────────┐
│ SHARED STORAGE (NFS/SMB) │
│ .blend files | Textures | Output | Logs │
└─────────────────────────────────────────────────────┘
🖥️ ТРЕБОВАНИЯ
| Компонент | Manager | Worker |
|---|---|---|
| OS | Linux (Ubuntu 22.04+) | Linux / Windows / macOS |
| CPU | 4+ cores | 8+ cores (по ядру на таск) |
| RAM | 8 GB | 16-32 GB |
| GPU | Не обязательно | NVIDIA RTX (CUDA) |
| Storage | 100 GB+ (SSD) | 50 GB+ |
| Network | 1 Gbps+ | 1 Gbps+ |
| Blender | 4.0+ | 4.0+ (та же версия) |
📦 УСТАНОВКА MANAGER (SERVER)
1. Скачать Flamenco
# Последний релиз:
# https://github.com/blender/flamenco/releases/latest
# Скачать flamenco-manager-linux.tar.gz
wget https://github.com/blender/flamenco/releases/download/v3.6/flamenco-manager-linux.tar.gz
tar -xzf flamenco-manager-linux.tar.gz
cd flamenco-manager
2. Конфигурация (flamenco-manager.yaml)
# flamenco-manager.yaml
manager:
listen_addr: "0.0.0.0:8080"
auth:
jwt_secret: "your-super-secret-jwt-key-change-me"
allow_anonymous: false
storage:
local:
path: "/mnt/flamenco-storage"
# или NFS: "nfs://server:/path"
database:
sqlite:
path: "/var/lib/flamenco/flamenco.sqlite"
blender:
executable: "/usr/bin/blender"
# или путь к конкретной версии
log:
level: "info"
json: false
3. Запуск Manager
# Создать storage
sudo mkdir -p /mnt/flamenco-storage/{jobs,output,logs}
sudo chown -R $USER:$USER /mnt/flamenco-storage
# Запуск
./flamenco-manager -config flamenco-manager.yaml
# Как systemd сервис:
sudo cp flamenco-manager.service /etc/systemd/system/
sudo systemctl enable flamenco-manager
sudo systemctl start flamenco-manager
4. Проверка
# Web UI: http://server-ip:8080
# API: http://server-ip:8080/api
curl http://localhost:8080/api/health
🖥️ УСТАНОВКА WORKER (RENDER NODES)
1. Установка Worker
# На каждой рендер-машине:
wget https://github.com/blender/flamenco/releases/download/v3.6/flamenco-worker-linux.tar.gz
tar -xzf flamenco-worker-linux.tar.gz
cd flamenco-worker
2. Конфигурация Worker (flamenco-worker.yaml)
worker:
manager_url: "http://<АДРЕС-МЕНЕДЖЕРА>:8080"
worker_name: "worker-gpu-01" # уникальное имя
platform: "linux" # linux/windows/macos
# GPU настройки
gpu_devices: ["cuda:0", "cuda:1"] # или ["all"]
# Blender
blender_executable: "/usr/bin/blender"
blender_args: ["--cycles-device", "CUDA"]
# Ресурсы
max_concurrent_tasks: 2 # по одному на GPU
cpu_affinity: "auto"
# Storage (shared с Manager)
storage:
local:
path: "/mnt/flamenco-storage"
# Logs
log_level: "info"
3. GPU Настройка (NVIDIA)
# Установить драйверы
sudo apt install -y nvidia-driver-535 nvidia-cuda-toolkit
# Проверить
nvidia-smi
nvcc --version
# В worker конфиге указать GPU
# gpu_devices: ["cuda:0"] # для одного GPU
# gpu_devices: ["cuda:0", "cuda:1"] # для двух GPU
4. Запуск Worker
# Тестовый запуск
./flamenco-worker -config flamenco-worker.yaml
# Как systemd сервис (на каждой машине):
sudo cp flamenco-worker.service /etc/systemd/system/
sudo systemctl enable flamenco-worker
sudo systemctl start flamenco-worker
# Проверить статус
sudo systemctl status flamenco-worker
🌐 НАСТРОЙКА СТОРАДЖ (SHARED STORAGE)
Вариант А: NFS (Linux)
# На Manager (Server)
sudo apt install nfs-kernel-server
echo "/mnt/flamenco-storage *(rw,sync,no_subtree_check,no_root_squash)" >> /etc/exports
sudo exportfs -ra
# На Workers (Client)
sudo apt install nfs-common
sudo mkdir -p /mnt/flamenco-storage
echo "<АДРЕС-МЕНЕДЖЕРА>:/mnt/flamenco-storage /mnt/flamenco-storage nfs defaults 0 0" >> /etc/fstab
sudo mount -a
Вариант Б: SMB (Cross-platform)
# На Manager
sudo apt install samba
# smb.conf:
# [flamenco]
# path = /mnt/flamenco-storage
# read only = no
# guest ok = yes
# На Windows Worker
net use Z: \\<АДРЕС-МЕНЕДЖЕРА>\flamenco /persistent:yes
🚀 ИСПОЛЬЗОВАНИЕ
1. Web UI (http://<АДРЕС-МЕНЕДЖЕРА>:8080)
1. Login (admin / пароль из конфига)
2. Jobs → Submit Job
3. Выбрать .blend файл
4. Настроить: Frames, Resolution, Samples, Output
5. Submit
2. CLI Submission
# flamenco-cli
pip install flamenco-client
# Submit job
flamenco-cli job submit \
--manager http://<АДРЕС-МЕНЕДЖЕРА>:8080 \
--blend-file scene.blend \
--frame-start 1 --frame-end 250 \
--output //renders/anim_#### \
--engine CYCLES --samples 256
3. Python API
from flamenco_client import FlamencoClient
client = FlamencoClient("http://<АДРЕС-МЕНЕДЖЕРА>:8080", token="YOUR_JWT")
job = client.submit_job(
blend_file="scene.blend",
frame_range=(1, 250),
output_path="//renders/anim_####",
render_settings={
"engine": "CYCLES",
"samples": 256,
"resolution": (3840, 2160),
}
)
# Poll status
while True:
status = client.get_job_status(job.id)
print(f"Progress: {status.progress}%")
if status.state in ["finished", "failed"]:
break
time.sleep(30)
📊 МОНИТОРИНГ И ОПТИМИЗАЦИЯ
Мониторинг (Prometheus + Grafana)
# prometheus.yml
scrape_configs:
- job_name: 'flamenco'
static_configs:
- targets: ['<АДРЕС-МЕНЕДЖЕРА>:8080', 'WORKER1:8081', 'WORKER2:8081']
Ключевые метрики
| Метрика | Норма | Action |
|---|---|---|
| Queue Length | < 10 | Добавить workers |
| Worker Utilization | 80-95% | Баланс нагрузки |
| Frame Time | < 5 мин | Оптимизировать сцену |
| VRAM Usage | < 90% | Уменьшить samples/textures |
| Failed Frames | < 1% | Проверить логи |
🔧 ОПТИМИЗАЦИЯ ПРОИЗВОДИТЕЛЬНОСТИ
Worker Tuning
worker:
max_concurrent_tasks: 2 # 1 на GPU
blender_args: [
"--cycles-device", "CUDA",
"--cycles-feature-set", "SUPPORTED"
]
# Для больших сцен
memory_limit_gb: 20 # лимит RAM на таск
Job Splitting (для больших анимаций)
# Разбить 1000 кадров на чанки по 50
frame_chunks: 50
# Flamenco сам распределит между workers
🔗 СВЯЗИ
- Прочие в категории «Сетапы»: SETUP 04: HEADLESS RENDER (CLI / CI/CD), SETUP 53: FLAMENCO FARM CLUSTER, SETUP 54: CLOUD RENDER AWS/GCP, SETUP 01: BLENDER-MCP BASIC, SETUP 02: GENESISCORE LOCAL (OLLAMA)
- По темам: P29: BATCH PROCESSING & CLI, P47: ALEMBIC CACHE PIPELINE, P49: RENDER FARM SUBMIT, CASE 03: PRODUCT VISUALIZATION
- Теги: #render, #render-farm, #setup
Связанные материалы
Подобраны по тегам и категории.