O S T R AV S K Á U N I V E R Z I TA PŘÍRODOVĚDECKÁ KATED R A
F A K U LT A
I N FO R M AT I K Y A P O Č Í TA Č Ů
Dávkový rendering prostřednictvím sítě Manuál k programu NetRend
Kaplan Jiří R09461 2010/2011
Úvod Tento text byl vytvořen jako manuál k programu NetRend, který je součástí mé diplomové práce s názvem Dávkový rendering prostřednictvím sítě. Jelikož se jedná o software, který je závislý na dalších softwarech a nastavení podporovaných operačních systémů, snažím se tímto textem vysvětlit některé problematické partie a přidat ucelený návod pro uživatele, který s tímto softwarem chce pracovat, experimentovat či jej zlepšovat nebo vyvíjet. V tomto textu nenajdete: Princip fungování programu, Řešené úlohy v rámci DP, Teoretické podklady k fungování manažerů renedorací fronty. V tomto textu najdete: Požadavky na software na podporovaných platformách, Základní průvodce konfigurací systému pro potřeby renderování, Základní práci s programem. NetRend k verzi vydané k DP podporuje tyto renderovací systémy: Autodesk Maya Adobe AfterEffects Před prvním použitím aplikace musí být splněny tyto podmínky: 1. Vytvořen na všech stanicích stejný uživatel se stejným heslem 2. Nakonfigurovaná práva ke sdílenému prostředku pro daného uživatele 3. V systémech Linux a MacOS správně nakonfigurován systém Samba 4. Konfigurace komponent Netrend
Obsah Dávkový rendering prostřednictvím sítě ................................................................................................... 1 Manuál k programu NetRend .................................................................................................................... 1 Úvod .......................................................................................................................................................... 2 Konfigurace a nastavení prostředí v podporovaných platformách ........................................................... 4 Konfigurace v systémech Windows .................................................................................................................... 4 Konfigurace v Linuxových systémech ................................................................................................................. 4 Konfigurace v systému MacOS X ........................................................................................................................ 5 Konfigurace systému Samba .............................................................................................................................. 5 Konfigurace sdílené složky ve Windows ............................................................................................................. 7
Práce s aplikací NetRend .......................................................................................................................... 8 NetRend – Workstation ...................................................................................................................................... 8 NetRend – Manager ........................................................................................................................................... 9 NetRend – Monitor .......................................................................................................................................... 10 Vytvoření renderovací úlohy ............................................................................................................................ 11
General type job v NetRend .................................................................................................................... 13
Konfigurace a nastavení prostředí v podporovaných platformách Software NetRend je vyvíjen v prostředí jazyka Java, tedy ke svému běhu potřebuje JRE (Java Runtime Environment), které umožňuje spouštění Java aplikací. Toto prostředí poskytuje firma Oracle a můžete jej získat například zde: http://java.com/en/download/index.jsp. Aplikace NetRend byla vyvíjena pro práci na platformě Windows, Linux a MacOS X, pro všechny platformy je k dispozici běhové prostředí JRE. NetRend využívá pro přenos souborů protokol CIFS, ten je podporován všemi systémy Windows a v platformách operačního systému Windows a Mac OS X je podporován skrze software Samba. Software je distribuován ve spustitelné formě bez instalátoru, pro jeho běh je potřeba rozbalit danou komponentu na zvolené místo. Ke konfiguraci a spouštění skriptů uvedených v následujícím textu je potřeba mít administrátorská práva nebo jednat jako uživatel root! Konfigurace v systémech Windows V operačních systémech typu Windows musíme konfigurovat síťového uživatele, který musí mít na všech stanicích stejné uživatelské jméno a heslo, aby byl zajištěn přístup daného uživatele k souborům. K automatizaci této konfigurace můžeme použít dva skripty dodávané k tomuto programu, jsou k dispozici v adresáři scripts. Jedná se o soubory: windows_user_install.bat, windows_user_uninstall.bat, první soubor použijeme k vytvoření uživatele a druhý k jeho odstranění, implicitně tyto skripty vytváří a ruší uživatele netrend s heslem netrend, pro změnu uživatele můžete dané skripty editovat, v případě vytvořeného síťového uživatele na všech stanicích tento krok není nutný. Konfigurace v Linuxových systémech V operačních systémech na bázi linuxového jádra je konfigurace prostředí poněkud složitější. Pro použití programu NetRend potřebujeme mít nainstalován software Samba a SmbNetFS. Tento software je dostupný na http://www.samba.org/ a http://sourceforge.net/projects/smbnetfs/. Dnes je běžně instalován při instalaci velkých distribucí a software smbnetfs bývá dostupný ve formě instalačního balíčku. Obdobně jako v systémech Windows potřebujeme i zde vytvořit síťového uživatele, který bude mít přístup k souborům v síti pomocí protkolu CIFS. Pro tyto účely byly vytvořeny taktéž dva skripty, které se nalézají v adresáři scripts. Jedná se o soubory: linux_user_install.sh, linux_user_uninstall.sh, tyto skripty vytvoří či smažou uživatele v linuxovém systému, implicitně je vytvořen uživatel netrend s heslem netrend, v případě potřeby můžete v daném skriptu potřebné údaje změnit. Stejně jako software Samba je SmbNetFS často k dispozici skrze instalační balíček dané distribuce, v případě, že daná distribuce tento software nemá v repozitářích je třeba stáhnout tento software a zkompilovat podle návodu dodávaného k software. Software smbnetfs potřebuje ke své činnosti dva konfigurační soubory smb.conf a smbnetfs.conf ty musí byt umístněny v adresáři .smb, který je v domovském adresáři uživatele, který bude přihlášen při renderování na dané stanici. Základní konfigurační soubory jsou k dispozici v elektronické příloze, nebo jsou dodávány s programem SmbNetFS. V obou případech je nutné
v souboru smbnetfs.conf upravit jméno sítového uzivatele. Konfigurace v systému MacOS X Stejně jako v předešlých operačních systémech potřebujeme i zde vytvořit nového síťového uživatele, pokud nechceme použít stávajícího i v operačních systémech MacOS X je možno vytvářet uživatele pomocí příkazové řádky pro usnadnění této činnosti jsem vytvořit zase dva skripty, nalézající se v adresáři scripts. Jedná se o soubory: mac_user_install.sh, mac_user_uninstall.sh, tyto skripty implicitně vytvářejí uživatele netrend s heslem netrend. V případě potřeby můžeme tyto skripty editovat. Konfigurace systému Samba Volitelný krok je nastavení sdílení souborů z prostředí Linuxu či Mac OS X. V linuxových a Mac OS X systémech je pro tento účel nutno mít software Samba. V systémech Mac OS X je součástí instalace a je potřeba službu pouze zapnout, bohužel tohle jsem nezjistil jak zautomatizovat tudíž musí v Systémových preferencích v kartě Sdílení zapnout sdílení Windows.
Obrázek 1 Zapnutí sdílení souborů Windows
V linuxových systémech musíme ověřit, že systémová služba běží, to můžeme udělat (v závislosti na distribuci) tímto příkazem, který musí být spuštěn s administrátorskými právy. Příkaz, který ověří, zda služba serveru Samba běží: /etc/init.d/smbd status /etc/init.d/samba status /etc/init.d/smb/status Příkaz, který spustí serverovou službu Samba: /etc/init.d/smbd start /etc/init.d/samba start /etc/init.d/smb/start Pro vytváření sdílené složky používáme skript, ve kterém se používá příkazu net, který je dodáván spolu se softwarem Samba. Zde používáme usershares, tedy uživatelské sdílení, které umožňuje uživateli vytvářet sdílené složky v síti bez nutnosti použití administrátorských práv. Abychom mohli použít uživatelské sdílení, potřebujeme přidat do konfiguračního souboru samby dva řádky. Konfigurační soubor samby smb.conf nalezneme v Linuxových systémech v adresáři /etc/samba/ a v Mac OS X v /etc/smb.conf. Do tohoto souboru musíme v sekci [global] přidat dva řádky: usershare path = /usr/local/samba/lib/usershares, usershare max shares = 10, poté stačí spustit skript samba_share.sh, který se nachází v adresáři scripts. Nebo na serveru, kde se budou nacházet sdílené soubory projektu, nastavíme sdílení samostatně. Pro provedení změn je třeba restartovat službu serveru Samba. Nakonec stačí spustit skript samba_netrend.sh, který na daném počítači vytvoří sdílenou složku netrendshare v domovském adresáři právě přihlášeného uživatele. Pro bližší informace k nastavení sdílení projektu doporučuji: http://www.samba.org/samba/docs/man/manpages-3/smb.conf.5.html http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man5/smb.conf.5 .html
Konfigurace sdílené složky ve Windows V případě již nastaveného sdílení můžete tento krok vynechat. Jinak můžete postupovat dvěma způsoby, prvním je samostatně definovat na serveru, kde budou projekty k renderování nebo výstupní složka pro snímky nastavit sdílení například pomocí Správce počítače nebo pomocí příkazu net. Pomocí správce počítače (Pravým tlačítkem na Tento počítač - Spravovat) stačí použít průvodce pro nové sdílení a nastavit oprávnění síťovému uživateli.
Obrázek 2 Sdílené složky v systému Windows
Druhou možností je použít skripty z adresáře scripts. Zde se nachází soubory: windows_share_install.bat , windows_share_uninstall.bat, první zmíněný skript vytvoří v adresáři, ve kterém je skript spouštěn vytvoří složku netrend a nastaví sdílení jako netrendshare. Pro odstranění sdílené složky slouží druhý skript, v případě nutnosti editujte příslušné skripty.
Práce s aplikací NetRend NetRend je složen ze tří části: workstation, manager a monitor. Tyto části jsou samostatné Java aplikace a každá z těchto části řeší specifickou část viz obrázek.
Obrázek 3 Schéma aplikace NetRend
NetRend – Workstation Workstation je spouštěn na stanicích, kde se bude provádět renderování. Po spuštění aplikace je zjištěna přítomnost property souboru Workstation.properties, kde je nastavena ip adresa manažeru. Při nenalezení soboru se spustí aplikace a uživatel z menu musí kliknout na položku Connect a zadat ip adresu prohlížeče. Druhou podmínkou je nastavení systémové proměnné PATH na dané platformě pro renderovací systémy Maya a AfterEffects. Nastavení systémové proměnné path ve Windows: http://support.microsoft.com/kb/310519 Nastavení systémové proměnné path v Linuxu: http://www.troubleshooters.com/linux/prepostpath.htm Nastavení systémové proměnné path v MacOSX: http://www.sweeting.org/mark/blog/2008/05/26/mac-os-x-tip-setting-path-environmentvariables Ukázka proměnné PATH v systému Windows XP s nastavenou cestou k Adobe After Effects a Autodesk Maya: %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Progrem Files\Adobe\After Effects CS5\Support Files;C:\Program Files\Autodesk\Maya2011\bin
Obrázek 4 Workstation - připojení k manažeru při nenalezení Workstation property souboru
NetRend – Manager Manažer řídí zpracování renderovací fronty úloh, proces rozdělování části úloh na jednotlivé stanice. Z uživatelského pohledu poskytuje pouze informativní výpis na obrazovku a řízení manažeru probíhá skrze komponentu Monitor. Taktéž manažer neklade zvláštní požadavky na konfiguraci, pouze otevřené komunikační porty k monitorům a manažeru.
Obrázek 5 Komponenta manažer
NetRend – Monitor Z uživatelského hlediska je nejdůležitější komponenta Monitor, která zprostředkovává uživatelské rozhraní k aplikaci NetRend. Uživateli je skrze tuto komponentu umožněno požadovat služby manažeru, který vytvoří příslušné akce podle přijaté zprávy. Pro plnou funkcionalitu Monitoru se uživatel nejdříve připojit k manažeru to provede kliknutím na tlačítko Connect nebo z Menu.
Obrázek 6 Komponenta Monitor
Uživatelské rozhrání je rozděleno na tři části, první je panel tlačítek, který uživateli zprostředkovává základní funkce programu. Druhá část je složena ze dvou oken, v prvním okně je seznam renderovacích úloh spolu s jejich stavem. Druhé okno zobrazuje detailní informace o označené renderovací úloze. Poslední část zobrazuje informace o připojených a odpojených stanicích. Funkce jednotlivých tlačítek je vysvětlena v následujícím odstavci.
1.
Connect – slouží k připojení k Manažeru, při připojení se vytvoří dialog, ve kterém uživatel zadá ip adresu nebo hostname počítače, na kterém běží Manažer, po připojení jsou
k dispozici ostatní funkce z panelu tlačítek.
Obrázek 7 Dialog pro připojení k manažeru.
2.
Disconnect – odpojení se od manažeru. Při odpojení se taktéž vypnou ostatní tlačítka.
3.
New job – tlačítko pro vytváření nových renderovacích úloh.
4.
Copy job – tlačítko pro vytváření kopie renderovací úlohy.
5.
Delete job – tlačítko pro smazání úlohy.
6.
Start job – spustí dávkové renderování označené úlohy
7.
Pause job – pozastaví běžící úlohu s možností na danou úlohu navázat.
8.
Stop job – zastaví renderovací úlohu, bez zachování informací o průběhu úlohy. Nové spuštění znamená znovu vyrenderovat celou úlohu.
9.
Assing workstations – přiřadí stanice k úloze na kterých se bude renderovat.
10.
Release workstations – uvolní přiřazení označených stanic k renderovacím úloham.
11.
12.
Wake up workstations – zapne příslušnou stanici, pomoci Wake-on-Lan paketu, stanice je v dispozici v kategorii Offline workstation Turn off worksations – vypne označené stanice.
Vytvoření renderovací úlohy Po kliknutí na tlačítko s ikonou New Job se uživateli zobrazí dialog, který umožní vytvoření nové renderovací úlohy. Zde se pokusím vysvětlit jednotlivé části New job dialogu. Dialog je rozdělen na dvě části, v první se specifikuje daná úloha, kde se nalézá scéna, kam ukládat výsledné snímky, typ úlohy atd. v druhé části se specifikuje rozsah snímků, které mají být renderovány a počet snímků, které dostane stanice k renderování. Ukázka vytvoření nové úlohy je na obrázku 8, při zadávání cest je nutno zadávat cesty v UNC ( \\Servername\sharename\path ) notaci.
Obrázek 8 Dialog vytvoření nové rendorací úlohy pro systém Maya
Project path je použit pouze při vytváření Maya úloh a úlohou tohoto pole je usnadnit vytváření síťové cesty pro cestu ke scéně a výstupní složce, kde se budou ukládat snímky. File path je velmi důležité pole, ve kterém zadáváme cestu ke scéně, která se má renderovat. Image path je cesta, kde se budou ukládat snímky z rendereru. Optional args umožňuje uživateli definovat dodatečné parametry, které se předají rendereru. Uživateli není možno zadávat parametry, které se generují automaticky (cesty, rozsah snímku, …). Použitelné například při zvolení dané kompozice nebo kamery atd. JobName volitelný argument, v případě potřeby specifikuje název úlohy. JobType je určen pro výběr typu úlohy, která se bude renderovat: 1. Maya – Autodesk Maya batch rendering 2. Maya Slice – Autodesk Maya Software Frame slicing
3. AfterEffects – Adobe aerender batch rendering Start frame – stanovuje počáteční snímek End frame – stanovuje končený snímek Task size - nastaví počet snímku, které budou obsahovat jednotlivé části renderováné na stanicích. Po stisknutí tlačítka Create se vytvoří příslušná úloha a uživatel ji uvidí v seznamu úloh, po té přiřadí k příslušné úloze stanice (tlačítko 9) a spustí úlohu (tlačítko 6). O stavu úlohy je uživatel informován prostřednictvím sloupců State a Progress v seznamu úloh. O stavu jednotlivých stanic informuje ikona v kartě Active Workstations.
General type job v NetRend Jedním z typu úlohy je obecná úloha. Pro vytvoření této úlohy jsem nalezl inspiraci v programu DrQueue, kde byla vysvětlena užitečnost tohoto typu úlohy. Hlavní výhodou je abstrakce, ta nám umožňuje spouštět jakýkoliv příkaz na dané stanici, tím můžeme realizovat mnoho činnosti i mimo oblast renderování, například hromadné spouštění různých vědeckých úloh, spouštět renderery, které nejsou přímo podporovány, provádět hromadné příkazy či skripty apod. Vysoká úroveň abstrakce tohoto typu úlohy má i zásadní nevýhody a to že nemůžeme do spuštěného procesu na stanici nějak zasahovat a něco z něj usuzovat, protože neznáme jeho chování a zbývá nám pouze daný proces sledovat a uživatel podávat informace. V tomto případě realizujeme spuštění daného požadavku na stanici a jako úspěšně dokončenou úlohu bereme ten požadavek, u kterého v běžícím vláknu dojde k regulárnímu ukončení procesu. Pro použití general type jobu v NetRendu pro účely renderování jsou přidány čtyři proměnné, které uživatel může použít ve svém příkazu pro vytvoření renderovací dávky na dané stanici. Jedná se o tyto proměnné: 1. $S_FRAME – startovní snímek dávky 2. $E_FRAME – koncový snímek dávky 3. $IMG_PATH – cesta, do které se mají ukládat výsledné snímky 4. $FILE_ATH – stanovuje cestu k dané scéně
Obrázek 9 Vytváření obecné úlohy
Použití tohoto typu úlohy demonstrují na Rendereru Maya. Na obrázku vidíte vytvoření General type úlohy. Jako při klasickém vytváření Maya či AfterEffects úloh vyplníme potřebné údaje do příslušných polí. V poli Command, ve kterém vytváříme renderovací příkaz, můžete videt použití základních proměnných. Hodnoty proměnné $IMG_PATH a $FILE_PATH budou v daném příkazu na všech stanicích stejné a hodnoty proměnných $S_FRAME a $E_FRAME jsou proměnlivé v závislosti na přiřazené dávce na dané stanici. Například na první stanici a druhé stanici bude spouštěný příkaz vypadat následovně: Render –s 1 –e 5 –rd \\cpu-desktop\ns\projects\default\images \\cpu-desktop\ns\projects\default\scenes\anim5.mb Render –s 6 –e 10 –rd \\cpu-desktop\ns\projects\default\images \\cpu-desktop\ns\projects\default\scenes\anim5.mb