Sdílet prostřednictvím


Možnosti úložiště a přesunu dat pro vykreslování prostředků a výstupních souborů

Existuje několik možností, jak zpřístupnit scénu a soubory prostředků pro vykreslovací aplikace na virtuálních počítačích fondu:

  • Azure Blob Storage:
    • Soubory scén a prostředků se nahrají do úložiště objektů blob z místního systému souborů. 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 se na každém virtuálním počítači fondu vyžadují všechny soubory prostředků, je potřeba, aby se zajistilo co nejefektivnější přenosy souborů.
  • 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 velmi nákladově efektivní, protože pro systém souborů nejsou potřeba žádné virtuální počítače, a 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 bude mít řešení v blízké budoucnosti, která jsou ideální pro rozsáhlé a vysoce výkonné vykreslování. Řešení Avere umožní vytvoření mezipaměti NFS nebo SMB založené na Azure, která funguje ve spojení 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

Měl by se použít účet úložiště objektů blob nebo účet úložiště pro obecné účely verze 2. Tyto dva typy účtů úložiště je možné nakonfigurovat s výrazně 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 konfiguraci budou vyšší limity umožňovat mnohem lepší výkon a škálovatelnost, zejména pokud k účtu úložiště přistupuje mnoho virtuálních počítačů fondu.

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ík 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ě objektů blob do virtuálních počítačů fondu Batch

Existuje několik různých přístupů ke kopírování souborů s nejlepším přístupem určeným velikostí prostředků úlohy. Nejjednodušším přístupem je zkopírovat všechny soubory prostředků do virtuálních počítačů fondu pro každou úlohu:

  • 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ů. Úkol přípravy úlohy se spustí jednou, když se na virtuálním počítači spustí první úkol úlohy, ale pro další úlohy úlohy se nespustí znovu.
  • Po dokončení úlohy by se měl zadat úkol uvolnění úlohy, aby se odebraly soubory jednotlivých úloh. Tím se zabrání vyplně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ů.

Při opětovném použití souborů prostředků mezi úlohami, s pouze přírůstkovými změnami mezi úlohami, je efektivnější, ale o něco více zapojený přístup je ukládat prostředky ve sdílené složce na virtuálním počítači a synchronizovat změněné soubory.

  • Úloha přípravy úlohy provede kopírování pomocí příkazu azcopy s parametrem /XO do sdílené složky virtuálního počítače určené AZ_BATCH_NODE_SHARED_DIR proměnnou prostředí. Tím se zkopírují jenom změněné soubory do každého virtuálního počítače.
  • Mysleli jsme, že bude potřeba dát velikost všech prostředků, aby se zajistilo, že se vejdou na dočasnou jednotku virtuálních počítačů fondu.

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ů úkolů kopírují soubory z úložiště do virtuálních počítačů fondu a dají se zadat pro úkol přípravy úlohy. Bohužel, pokud existují stovky souborů, je možné dosažení limitu a úkolů selhat. Pokud existuje velký počet prostředků, doporučujeme použít příkazový řádek azcopy v úloze přípravy úlohy, který může používat zástupné čáry a nemá žádný limit.

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

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 se měl zkopírovat, ale může být také žádoucí ukládat soubory protokolu.

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

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 můžou při spuštění připojit systém souborů nebo se může připojit jako součást úlohy přípravy úlohy – úkol, který se spustí pouze při spuštění prvního úkolu v úloze na uzlu. Blobfuse je možné nakonfigurovat tak, aby pro ukládání souborů do mezipaměti využívaly disk ramdisk i místní ssd virtuálních počítačů, což výrazně zvýší výkon, pokud některé ze stejných souborů přistupují k několika úlohám uzlu.

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ě objektů 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í. Cíle škálování by se měly zkontrolovat, abyste zjistili, jestli se má použít Služba Soubory Azure s ohledem na velikost fondu prognózy a počet souborů prostředků.

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

Připojení sdílené složky 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říkazový řádek úkolu ú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ě objektů 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 k dispozici 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: