Možnosti ukládání a přesunu dat pro podklady pro vykreslování a výstupní soubory

Existuje několik možností, jak renderovacím aplikacím zpřístupnit soubory scén a assetů na virtuálních počítačích ve fondu:

  • Azure Blob Storage:
    • Soubory scén a assetů se nahrávají do blobového úložiště z místního souborového systému. Když je aplikace spuštěna úlohou, požadované soubory se zkopírují z úložiště objektů blob do virtuálního počítače, aby k nim mohl přistupovat vykreslovací aplikace. Výstupní soubory zapisuje vykreslovací aplikace na disk virtuálního počítače a pak se zkopírují do úložiště objektů blob. V případě potřeby je možné výstupní soubory stáhnout z úložiště objektů blob do místního systému souborů.
    • Azure Blob Storage je jednoduchá a nákladově efektivní možnost pro menší projekty. Vzhledem k tomu, že všechny soubory prostředků jsou vyžadovány na každém virtuálním počítači ve fondu, je při zvyšujícím se počtu a velikosti souborů prostředků třeba dbát na to, aby přenosy souborů byly co nejefektivnější.
  • Azure Storage jako systém souborů pomocí blobfuse:
    • U virtuálních počítačů s Linuxem je možné účet úložiště vystavit a použít jako systém souborů, když se použije ovladač virtuálního systému souborů blobfuse.
    • Tato možnost má výhodu, že je nákladově efektivní, protože pro systém souborů nejsou potřeba žádné virtuální počítače, navíc ukládání objektů blobfuse do mezipaměti na virtuálních počítačích zabraňuje opakovanému stahování stejných souborů pro více úloh a úloh. Přesun dat je také jednoduchý, protože soubory jsou jednoduše objekty blob a standardní rozhraní API a nástroje, jako je azcopy, je možné použít ke kopírování souborů mezi místním systémem souborů a úložištěm Azure.
  • Systém souborů nebo sdílená složka:
    • V závislosti na požadavcích na operační systém a výkon a škálování virtuálních počítačů pak možnosti zahrnují Službu Azure Files, použití virtuálního počítače s připojenými disky pro systém souborů NFS, použití více virtuálních počítačů s připojenými disky pro distribuovaný systém souborů, jako je GlusterFS, nebo použití nabídky třetích stran.
    • Avere Systems je nyní součástí Microsoftu a brzy bude mít řešení, která jsou ideální pro rozsáhlé a vysoce výkonné vykreslování. Řešení Avere umožňuje vytvoření mezipaměti NFS nebo SMB založené na Azure, která funguje s úložištěm objektů blob nebo s místními zařízeními NAS.
    • V systému souborů lze soubory číst nebo zapisovat přímo do systému souborů nebo je lze kopírovat mezi systémem souborů a virtuálními počítači fondu.
    • Sdílený systém souborů umožňuje využívat velký počet prostředků sdílených mezi projekty a úlohami, přičemž úlohy vykreslování přistupují jenom k tomu, co je potřeba.

Použití služby Azure Blob Storage

Použijte účet blob storage nebo obecný účet v2 storage. Tyto dva typy účtů úložiště je možné nakonfigurovat s vyššími limity v porovnání s účtem úložiště pro obecné účely verze 1, jak je podrobně popsáno v tomto blogovém příspěvku. Při nastavení vyšší limity umožňují lepší výkon a škálovatelnost, zejména když k účtu úložiště přistupuje mnoho VM poolu.

Kopírování souborů mezi klientem a úložištěm objektů blob

Ke kopírování souborů do a z úložiště Azure je možné použít různé mechanismy, včetně rozhraní API objektů blob úložiště, knihovny pro přesun dat služby Azure Storage, nástroje příkazového řádku azcopy pro Windows nebo Linux, Průzkumníka služby Azure Storage a Azure Batch Exploreru.

Pomocí příkazu azcopy lze například přenést všechny prostředky ve složce následujícím způsobem:

azcopy /source:. /dest:https://account.blob.core.windows.net/rendering/project /destsas:"?st=2018-03-30T16%3A26%3A00Z&se=2020-03-31T16%3A26%3A00Z&sp=rwdl&sv=2017-04-17&sr=c&sig=sig" /Y

Ke kopírování pouze upravených souborů lze použít parametr /XO:

azcopy /source:. /dest:https://account.blob.core.windows.net/rendering/project /destsas:"?st=2018-03-30T16%3A26%3A00Z&se=2020-03-31T16%3A26%3A00Z&sp=rwdl&sv=2017-04-17&sr=c&sig=sig" /XO /Y

Kopírování vstupních souborů prostředků z úložiště blobů do virtuálních počítačů fondu Batch

Existuje několik různých způsobů kopírování souborů a volba nejvhodnějšího z nich závisí na velikosti prostředků úlohy. Nejjednodušší přístup spočívá v tom, že se pro každou úlohu zkopírují všechny soubory prostředků do virtuálních počítačů ve fondu:

  • Pokud jsou soubory jedinečné pro úlohu, ale jsou vyžadovány pro všechny úkoly úlohy, pak je možné zadat úkol přípravy úlohy ke zkopírování všech souborů. Úloha přípravy úlohy se spustí pouze jednou, když se na virtuálním počítači spustí první úloha úlohy, ale při spuštění dalších úloh úlohy se znovu nespustí.
  • Pokud je nutné zadat úlohu pro uvolnění úlohy, která po dokončení úlohy odstraní soubory dané úlohy; tím se zabrání zaplnění disku virtuálního počítače všemi soubory prostředků úlohy.
  • Pokud existuje více úloh, které používají stejné prostředky, s pouze přírůstkovými změnami prostředků pro každou úlohu, všechny soubory prostředků se stále kopírují, i když byla aktualizována pouze podmnožina. To by bylo neefektivní, pokud existuje velké množství velkých souborů assetů.

Pokud se soubory prostředků opakovaně používají mezi úlohami a mezi jednotlivými úlohami dochází jen k přírůstkovým změnám, je efektivnějším, i když poněkud složitějším, postupem ukládat soubory prostředků do sdílené složky na virtuálním počítači (VM) a synchronizovat změněné soubory.

  • Úloha pro přípravu úlohy provede kopírování pomocí nástroje azcopy s parametrem /XO do sdílené složky na virtuálním počítači zadané proměnnou prostředí AZ_BATCH_NODE_SHARED_DIR. Tím se zkopírují jenom změněné soubory do každého virtuálního počítače.
  • Bude třeba zvážit velikost všech prostředků, aby se zajistilo, že se vejdou na dočasný disk virtuálních počítačů v poolu.

Azure Batch má integrovanou podporu kopírování souborů mezi účtem úložiště a virtuálními počítači fondu Batch. Soubory prostředků úlohy kopírují soubory z úložiště do virtuálních počítačů ve fondu a lze je zadat pro úlohu pro přípravu úlohy. Bohužel, když jsou stovky souborů, je možné udeřit limit a úkoly selžou. Pokud je prostředků velké množství, doporučuje se v úloze pro přípravu úlohy použít nástroj příkazového řádku AzCopy, který podporuje zástupné znaky a není nijak omezen.

Kopírování výstupních souborů z virtuálních počítačů fondu Batch do úložiště objektů blob

Výstupní soubory je možné použít ke kopírování souborů z virtuálního počítače fondu do úložiště. Jeden nebo více souborů je možné zkopírovat z virtuálního počítače do zadaného účtu úložiště po dokončení úlohy. Vykreslený výstup by měl být zkopírován, ale může být také vhodné ukládat soubory protokolů.

Použití virtuálního systému souborů blobfuse pro fondy virtuálních počítačů se systémem Linux

Blobfuse je ovladač virtuálního systému souborů pro Azure Blob Storage, který umožňuje přístup k souborům uloženým jako objekty blob v účtu úložiště prostřednictvím systému souborů Linux.

Uzly fondu mohou při spuštění připojit souborový systém nebo může být připojen v rámci úlohy pro přípravu úlohy – úkolu, který se spustí pouze tehdy, když se na uzlu spustí první úkol dané úlohy. Blobfuse lze nakonfigurovat tak, aby k ukládání souborů do mezipaměti využíval jak disk RAM, tak místní SSD virtuálního počítače, což výrazně zvýší výkon, pokud více úloh na uzlu přistupuje k některým stejným souborům.

Ukázkové šablony jsou k dispozici pro spouštění samostatných vykreslování V-Ray pomocí systému souborů blobfuse a lze je použít jako základ pro šablony pro jiné aplikace.

Přístup k souborům

Úlohy určují cesty pro vstupní soubory a výstupní soubory pomocí připojeného systému souborů.

Kopírování vstupních souborů prostředků z úložiště blobů do virtuálních počítačů fondu Batch

Vzhledem k tomu, že soubory jsou jednoduše objekty blob ve službě Azure Storage, pak je možné použít standardní rozhraní API, nástroje a uživatelská rozhraní API ke kopírování souborů mezi místním systémem souborů a úložištěm objektů blob; Například azcopy, Průzkumník služby Storage, Batch Explorer atd.

Použití služby Azure Files s virtuálními počítači s Windows

Azure Files nabízí plně spravované sdílené složky v cloudu, které jsou přístupné prostřednictvím protokolu SMB. Služba Azure Files je založená na službě Azure Blob Storage; je nákladově efektivní a dá se nakonfigurovat s replikací dat do jiné oblasti, takže globálně redundantní. Limity škálování by měly být přezkoumány, aby se určilo, zda má být s ohledem na předpokládanou velikost fondu a počet souborů assetů použita služba Azure Files.

K dispozici je dokumentace , která popisuje, jak připojit sdílenou složku Azure.

Připojení sdílené složky ve službě Azure Files

Pokud chcete použít ve službě Batch, je potřeba provést operaci připojení při každém spuštění úkolu, protože není možné zachovat propojení mezi úlohami. Nejjednodušší způsob, jak to udělat, je použít cmdkey k zachování přihlašovacích údajů pomocí spouštěcí úlohy v konfiguraci fondu a pak připojit sdílenou složku před jednotlivými úlohami.

Příklad použití cmdkey v šabloně fondu (uvozené pro použití v souboru JSON) – všimněte si, že při oddělení volání cmdkey od volání net use musí být kontext uživatele pro spouštěcí úlohu stejný jako při spuštění úloh:

"startTask": {
  "commandLine": "cmdkey /add:storageaccountname.file.core.windows.net
    /user:AZURE\\markscuscusbatch /pass:storage_account_key",
  "userIdentity":{
    "autoUser": {
      "elevationLevel": "nonadmin",
      "scope": "pool"
    }
}

Ukázkový příkaz úlohy:

"commandLine":"net use S:
  \\\\storageaccountname.file.core.windows.net\\rendering &
3dsmaxcmdio.exe -v:5 -rfw:0 -10 -end:10
  -bitmapPath:\"s:\\3dsMax\\Dragon\\Assets\"
  -outputName:\"s:\\3dsMax\\Dragon\\RenderOutput\\dragon.jpg\"
  -w:1280 -h:720
  \"s:\\3dsMax\\Dragon\\Assets\\Dragon_Character_Rig.max\""

Přístup k souborům

Úlohy určují cesty pro vstupní soubory a výstupní soubory pomocí připojeného systému souborů, a to buď pomocí mapované jednotky, nebo cesty UNC.

Kopírování vstupních souborů prostředků z úložiště blobů do virtuálních počítačů fondu Batch

Azure Files jsou podporovány všemi hlavními rozhraními API a nástroji, které mají podporu služby Azure Storage; Například azcopy, Azure CLI, Průzkumník služby Storage, Azure PowerShell, Batch Explorer atd.

Synchronizace souborů Azure je dostupná k automatické synchronizaci souborů mezi místním systémem souborů a sdílenou složkou Azure.

Další kroky

Další informace o možnostech úložiště najdete v podrobné dokumentaci: