Uzly a fondy ve službě Azure Batch

V pracovním postupu služby Azure Batch je výpočetní uzel (nebo uzel) virtuální počítač, který zpracovává část úloh vaší aplikace. Fond je kolekce těchtouzlůch Tento článek vysvětluje další informace o uzlech a fondech spolu s aspekty při vytváření a používání v pracovním postupu služby Azure Batch.

Uzly

Uzel je virtuální počítač Azure nebo virtuální počítač cloudové služby, který je vyhrazený ke zpracování části úlohy vaší aplikace. Velikost uzlu určuje počet jader procesoru, kapacita paměti a velikost místního systému souborů, který je přidělen k uzlu.

Fondy uzlů Windows nebo Linux můžete vytvořit pomocí služby Azure Cloud Services, imagí z webu Azure Virtual Machines Marketplace nebo vlastních imagí, které připravíte.

Uzly mohou spustit libovolný spustitelný soubor nebo skript, který je podporován prostředím operačního systému uzlu. Mezi spustitelné soubory nebo skripty patří *.exe, *.cmd, *.bat a powershellové skripty (pro Windows) a binární soubory, prostředí a skripty Pythonu (pro Linux).

Součástí všech výpočetních uzlů ve službě Batch také jsou:

Ve výchozím nastavení můžou uzly vzájemně komunikovat, ale nemůžou komunikovat s virtuálními počítači, které nejsou součástí stejného fondu. Pokud chcete uzlům umožnit zabezpečenou komunikaci s jinými virtuálními počítači nebo s místní sítí, můžete fond zřídit v podsíti virtuální sítě Azure. Když to uděláte, budou mít uzly přístup prostřednictvím veřejných IP adres. Tyto veřejné IP adresy vytváří služba Batch a v průběhu životnosti fondu se můžou měnit. Můžete také vytvořit fond se statickými veřejnými IP adresami , které řídíte, což zajistí, že se neočekávaně nezmění.

Skupiny

Fond je kolekce uzlů, na které vaše aplikace běží.

Fondy Azure Batch jsou postavené na základní platformě Azure Compute. Poskytují rozsáhlé přidělování, instalaci aplikací, distribuci dat, monitorování stavu a flexibilní úpravy (škálování) počtu výpočetních uzlů v rámci fondu.

Každému uzlu, který je přidán do fondu, je přiřazen jedinečný název a IP adresa. Pokud je uzel odebrán z fondu, veškeré změny provedené v operačním systému nebo souborech jsou ztraceny a jeho název a IP adresa jsou uvolněny pro pozdější použití. Jestliže uzel opustí fond, je jeho životnost ukončena.

Fond může být používán pouze účtem Batch, ve kterém byl vytvořen. Účet Batch může vytvořit více fondů, aby splňoval požadavky na prostředky aplikací, které bude spouštět.

Fond lze vytvořit ručně nebo automaticky službou Batch, když zadáte práci, která se má provést. Při vytváření fondu můžete zadat následující atributy:

Důležité

Účty Batch mají výchozí kvótu, která omezuje počet jader v účtu Batch. Počet jader odpovídá počtu výpočetních uzlů. Výchozí kvóty a pokyny pro navýšení kvóty najdete v článku Kvóty a omezení služby Azure Batch. Pokud váš fond nedosahuje cílového počtu uzlů, může být důvodem právě kvóta jader.

Operační systém a verze

Při vytváření fondu Batch zadáte konfiguraci virtuálního počítače Azure a typ operačního systému, který chcete spustit na každém výpočetním uzlu ve fondu.

Konfigurace

Ve službě Batch jsou k dispozici dva typy konfigurací fondu.

Důležité

I když aktuálně můžete vytvářet fondy pomocí některé z konfigurací, měly by být nové fondy nakonfigurované pomocí konfigurace virtuálního počítače, a ne pomocí konfigurace cloudových služeb. Všechny aktuální a nové funkce batch budou podporovány fondy konfigurace virtuálních počítačů. Fondy konfigurace cloudových služeb nepodporují všechny funkce a neplánují se žádné nové funkce. Po 29. únoru 2024 nebudete moct vytvářet nové fondy CloudServiceConfiguration ani do existujících fondů přidávat nové uzly.

Konfigurace virtuálního počítače

Konfigurace virtuálního počítače určuje, že se fond skládá z virtuálních počítačů Azure. Tyto virtuální počítače mohou být vytvořené na základě image Linuxu nebo Windows.

Důležité

Služba Batch v současné době nepodporuje virtuální počítače důvěryhodného spuštění.

Agent uzlu Batch je program, který běží na každém uzlu ve fondu a poskytuje rozhraní pro řízení příkazů mezi uzlem a službou Batch. Existují různé implementace agenta uzlu, označovaného jako SKU, pro různé operační systémy. Při vytváření fondu založeného na konfiguraci virtuálního počítače je nutné zadat nejen velikost uzlů a zdroj imagí použitých pro jejich vytvoření, ale také referenční image virtuálního počítače a SKU agenta uzlu služby Batch, které se budou na uzly instalovat. Další informace o zadávání těchto vlastností fondů najdete v článku Zřízení linuxových výpočetních uzlů ve fondech Azure Batch Volitelně můžete k virtuálním počítačům ve fondu vytvořeným z imagí z webu Marketplace připojit jeden nebo více prázdných datových disků nebo datové disky zahrnout do vlastních imagí používaných k vytvoření virtuálních počítačů. Při zahrnutí datových disků je potřeba disky připojit a naformátovat z virtuálního počítače, aby je bylo možné použít.

Konfigurace cloudových služeb

Upozorňující

Fondy konfigurace cloudových služeb jsou zastaralé. Místo toho použijte fondy konfigurace virtuálních počítačů. Další informace najdete v tématu Migrace konfigurace fondu Batch z Cloud Services na virtuální počítač.

Konfigurace cloudových služeb určuje, že se fond skládá z uzlů Azure Cloud Services. Cloud Services poskytuje pouze výpočetní uzly Windows.

Dostupné operační systémy pro fondy konfigurace cloudových služeb jsou uvedené v matici kompatibility hostovaného operačního systému Azure a sady SDK a dostupné velikosti výpočetních uzlů jsou uvedené ve velikostech pro cloudové služby. Když vytvoříte fond, který obsahuje uzly Cloud Services, zadáte velikost uzlu a její řadu operačních systémů (která určuje, které verze rozhraní .NET se nainstalují s operačním systémem). Cloud Services se nasazuje do Azure rychleji než virtuální počítače s Windows. Pokud chcete fondy výpočetních uzlů Windows, můžete zjistit, že služba Cloud Services představuje výhodu z hlediska času nasazení.

Stejně jako u rolí pracovního procesu v rámci Cloud Services můžete zadat verzi operačního systému. Doporučujeme zadat Latest (*) verzi operačního systému, aby se uzly automaticky upgradovaly a není potřeba pracovat na nově vydaných verzích. Hlavním případem použití s výběrem konkrétní verze operačního systému scénář zajištění kompatibility aplikací, který umožní testovat zpětnou kompatibilitu, než se povolí aktualizace verze. Po ověření je možné aktualizovat verzi operačního systému pro fond a nainstalovat novou image operačního systému. Všechny spuštěné úlohy se přeruší a znovu vytvoří frontu.

Skladové položky agenta uzlu

Když vytvoříte fond, je nutné vybrat odpovídající nodeAgentSkuId, v závislosti na operačním systému základní image vašeho disku VHD. Mapování dostupných ID skladových položek agenta uzlu na odkazy na image operačního systému můžete získat voláním operace Výpis podporovaných skladových položek agenta uzlu.

Vlastní image pro fondy virtuálních počítačů

Informace o tom, jak vytvořit fond s vlastními imagemi, najdete v tématu Použití Galerie výpočetních prostředků Azure k vytvoření vlastního fondu.

Podpora kontejnerů ve fondech virtuálních počítačů

Při vytváření fondu konfigurace virtuálních počítačů pomocí rozhraní API služby Batch můžete ve fondu nastavit spouštění úloh v kontejnerech Dockeru. V současné době musíte fond vytvořit pomocí image, která podporuje kontejnery Dockeru. Použijte Windows Server 2016 Datacenter s použitím image kontejnerů z webu Azure Marketplace nebo zadejte vlastní image virtuálního počítače, která zahrnuje Docker Community Edition nebo Enterprise Edition a všechny požadované ovladače. Nastavení fondu musí obsahovat konfiguraci kontejneru, která při vytvoření fondu zkopíruje image kontejneru do virtuálních počítačů. Úlohy spouštěné ve fondu pak můžou odkazovat na image kontejneru a možnosti spuštění kontejneru.

Další informace najdete v tématu věnovaném spuštění kontejnerových aplikací Dockeru ve službě Azure Batch.

Typ a cíl uzlu

Při vytváření fondu můžete určit, které typy uzlů chcete, a cílové číslo pro každý z nich. Mezi dva typy uzlů patří:

  • Vyhrazené uzly. Vyhrazené výpočetní uzly jsou rezervované pro vaše úlohy. Jsou dražší než spotové uzly, ale zaručují se, že se nikdy nepřepnou.
  • Spotové uzly Spotové uzly využívají k provozování úloh Batch nadbytečnou kapacitu v Azure. Spotové uzly jsou levnější za hodinu než vyhrazené uzly a umožňují úlohy vyžadující významný výpočetní výkon. Další informace najdete v tématu Použití spotových virtuálních počítačů se službou Batch.

Spotové uzly se můžou předpovědět, když Azure nemá dostatečnou nadbytečnou kapacitu. Pokud dojde ke zrušení uzlu během spouštění úloh, tyto úlohy se znovu zařadí do fronty, a jakmile bude uzel zase dostupný, znovu se spustí. Spotové uzly jsou dobrou volbou pro úlohy, kde je doba dokončení úlohy flexibilní a práce se distribuuje napříč mnoha uzly. Než se rozhodnete pro svůj scénář použít spotové uzly, ujistěte se, že veškerá práce ztracená kvůli preempci bude minimální a snadno se vytvoří znovu.

Ve stejném fondu můžete mít spotové i vyhrazené výpočetní uzly. Každý typ uzlu má vlastní cílové nastavení, pro které můžete zadat požadovaný počet uzlů.

Počet výpočetních uzlů se označuje jako cílový z toho důvodu, že v některých situacích nemusí váš fond dosáhnout požadovaného počtu uzlů. Fond třeba nemusí dosáhnout cílového nastavení v případě, že dřív dosáhne základní kvóty daného účtu služby Batch. Pokud jste u fondu použili vzorec automatického škálování, který omezuje maximální počet uzlů, nemusí fond dosáhnout cíle.

Informace o cenách spotových i vyhrazených uzlů najdete v tématu Ceny služby Batch.

Velikost uzlu

Při vytváření fondu Azure Batch máte na výběr téměř ze všech řad a velikostí virtuálních počítačů, které jsou v Azure k dispozici. Azure nabízí řadu velikostí virtuálních počítačů pro různé úlohy, včetně specializovaných velikostí s podporou prostředí HPC nebo grafického procesoru. Všimněte si, že velikosti uzlů je možné vybrat pouze v době vytvoření fondu. Jinými slovy, jakmile je fond vytvořen, jeho velikost uzlu nelze změnit.

Další informace najdete v tématu Výběr velikosti virtuálních počítačů pro výpočetní uzly ve fondu Azure Batch.

Zásady automatického škálování

U dynamických úloh můžete u fondu použít zásady automatického škálování. Služba Batch bude pravidelně vyhodnocovat vzorec a dynamicky upravuje počet uzlů ve fondu podle aktuálního zatížení a využití prostředků vašeho výpočetního scénáře. To umožňuje snížit celkové náklady na běh aplikace, protože se využívají pouze prostředky, které jsou nutné, a aktuálně nepotřebné se uvolňují.

Automatické škálování můžete zapnout napsáním vzorce automatického škálování a jeho přidružením k fondu. Služba Batch používá tento vzorec k určování cílového počtu uzlů ve fondu pro další interval škálování (ten můžete nakonfigurovat). Nastavení automatického škálování můžete pro fond zadat při jeho vytvoření, nebo můžete škálování povolit ve fondu později. Také můžete aktualizovat nastavení škálování ve fondu, v němž je škálování povoleno.

Například například úloha vyžaduje, abyste odeslali velký počet úkolů, které se mají provést. Fondu můžete přiřadit vzorec škálování na základě aktuálního počtu úkolů čekajících ve frontě a rychlosti dokončování těchto úkolů v úloze, který přizpůsobí počet uzlů ve fondu. Služba Batch vzorec pravidelně vyhodnocuje a mění velikost fondu na základě vytížení a dalších nastavení vzorce. Služba podle potřeby přidává uzly, když ve frontě čeká velký počet úkolů, a naopak uzly odebírá, když ve frontě nejsou žádné úkoly nebo žádné úkoly právě neběží.

Vzorec škálování může být založen na následujících metrikách:

  • Časové metriky jsou založeny na statistikách shromažďovaných každých pět minut po zadaný počet hodin.
  • Metriky prostředků jsou založeny na využití procesoru, šířky pásma a paměti a na počtu uzlů.
  • Metriky úkolů jsou založeny na stavu úkolů, jako je například Aktivní (zařazený do fronty), Spuštěný nebo Dokončený.

Když automatické škálování snižuje počet výpočetních uzlů ve fondu, je nutné zvážit, jak naložit s úkoly, které v okamžiku snižování již běží. K tomuto účelu poskytuje služba Batch možnost zrušení přidělení uzlu, kterou můžete ve vzorcích používat. Můžete například zadat, že spuštěné úkoly se mají okamžitě zastavit a pak znovu zařadit do fronty pro provedení na jiném uzlu, nebo nechat dokončit před odebráním uzlu z fondu. Všimněte si, že nastavení možnosti zrušení přidělení uzlu jako taskcompletion nebo retaineddata zabrání operacím změny velikosti fondu, dokud se nedokončí všechny úkoly nebo nevyprší platnost všech období uchovávání úkolů.

Další informace o automatickém škálování aplikace najdete v tématu Automatické škálování výpočetních uzlů ve fondu Azure Batch.

Tip

Chcete-li maximalizovat využití výpočetních prostředků, nastavte cílový počet uzlů na konci úlohy na hodnotu nula, ale povolte dokončení spouštěných úkolů.

Zásady plánování úkolů

Možnost konfigurace maximálního počtu úkolů na uzel určuje maximální počet úkolů, které lze spustit souběžně na jednotlivých výpočetních uzlech v rámci fondu.

Výchozí konfigurace určuje, že na uzlu běží současně jen jeden úkol, ale existují scénáře, kdy je výhodné mít na uzlu spuštěno ve stejnou dobu dva a více úkolů. Jaké výhody vám může přinést více úkolů na jednom uzlu je popsáno v části příklad scénáře v článku souběžné úkoly na uzlu.

Můžete také zadat typ výplně, který určuje, jestli služba Batch rozdělí úkoly rovnoměrně mezi všechny uzly ve fondu, nebo zabalí každý uzel s maximálním počtem úkolů před přiřazením úkolů k jinému uzlu.

Stav komunikace

Ve většině scénářů pracují úkoly nezávisle a nepotřebují mezi sebou komunikovat. Existují však aplikace, ve kterých úkoly musí komunikovat, například scénáře MPI.

Fond můžete nakonfigurovat tak, aby umožňoval komunikaci mezi uzly, aby uzly ve fondu mohly komunikovat za běhu. Pokud je komunikace mezi uzly povolena, uzly ve fondech z konfigurace služby Cloud Services mohou vzájemně komunikovat na portech vyšších než 1100. Fondy z konfigurace virtuálního počítače neomezují provoz na žádném portu.

Povolení komunikace mezi uzly má vliv také na umístění uzlů v clusterech a kvůli omezením nasazení může omezit maximální počet uzlů ve fondu. Pokud aplikace nevyžaduje komunikaci mezi uzly, služba Batch můžete fondu přidělit potenciálně velký počet uzlů z mnoha různých clusterů a datových center, aby umožnila zvýšený výkon paralelního zpracování.

Zahájení úkolů

V případě potřeby můžete přidat spouštěcí úlohu , která se spustí na každém uzlu, protože se tento uzel připojí k fondu, a pokaždé, když se uzel restartuje nebo znovu zmage. Spouštěcí úkol je obzvlášť užitečný pro přípravu výpočetních uzlů k provádění úkolů, jako je instalace aplikací, které budou vaše úkoly na výpočetních uzlech spouštět.

Balíčky aplikací

Můžete určit balíčky aplikací pro nasazení do výpočetních uzlů ve fondu. Balíčky aplikací poskytují možnost zjednodušeného nasazení a správy verzí aplikací, které provádějí vaše úkoly. Balíčky aplikací, které pro fond určíte, se nainstalují na každý uzel, který se do daného fondu připojí, a také pokaždé, když se uzel restartuje nebo obnoví z image.

Další informace o používání balíčků aplikací k nasazení aplikací do uzlů služby Batch najdete v tématu Nasazení aplikací do výpočetních uzlů pomocí balíčků aplikací služby Batch.

Konfigurace virtuální sítě a brány firewall

Při zřizování fondu výpočetních uzlů ve službě Batch můžete k fondu přidružit podsíť virtuální sítě Azure. Pokud chcete použít virtuální síť Azure, musí rozhraní API klienta batch používat ověřování Microsoft Entra. Podpora služby Azure Batch pro Microsoft Entra ID je zdokumentovaná v řešeních pro ověřování služby Batch pomocí služby Active Directory.

Požadavky na virtuální síť

Další informace o nastavení fondu Batch ve virtuální síti najdete v tématu Vytvoření fondu virtuálních počítačů s vlastní virtuální sítí.

Tip

Pokud chcete zajistit, aby se veřejné IP adresy používané pro přístup k uzlům nezměnily, můžete vytvořit fond se zadanými veřejnými IP adresami, které řídíte.

Životnost fondu a výpočetního uzlu

Při návrhu řešení Azure Batch musíte určit, jak a kdy se fondy vytvářejí a jak dlouho budou výpočetní uzly v rámci těchto fondů dostupné.

Na jednom konci spektra můžete vytvořit fond pro každou úlohu, kterou odešlete, a odstranit jej, jakmile se dokončí provádění příslušných úkolů. Tím se maximalizuje využití, protože uzly se přidělují jenom v případě potřeby a jsou vypnuté, jakmile jsou nečinné. I když to znamená, že úloha musí čekat na přidělení uzlů, je důležité si uvědomit, že úkoly jsou naplánované na spuštění, jakmile budou uzly přiděleny jednotlivě a spouštěcí úkol se dokončí. Služba Batch před přiřazením úkolů k uzlům nečeká, až budou všechny uzly v rámci fondu dostupné. Tím je zajištěno maximální využití všech dostupných uzlů.

Na druhém konci spektra, pokud je nejvyšší prioritou okamžité spuštění úloh, můžete fond vytvořit s předstihem, aby jeho uzly byly k dispozici před odesláním úloh. V tomto scénáři se mohou úkoly spustit okamžitě, ale uzly mohou „nečinně sedět“ a čekat na jejich přiřazení.

Kombinovaný přístup se obvykle používá pro zpracování proměnné, ale průběžné zatížení. Můžete mít fond, ve kterém se odesílá více úloh, a podle zatížení úlohy můžete škálovat počet uzlů nahoru nebo dolů. Toto přizpůsobování kapacity můžete provádět reaktivně, na základě aktuálního zatížení, nebo proaktivně, pokud lze zatížení předpovídat. Další informace najdete v tématu Zásady automatického škálování.

Automatické zařazování

Automatické zařazování je fond vytvořený službou Batch při odeslání úlohy, nikoli vytvoření před úlohami, které se budou spouštět ve fondu. Služba Batch bude spravovat životnost automatického fondu podle zadaných charakteristik. Tyto fondy jsou většinou také nastavené tak, aby se po dokončení úloh automaticky odstranily.

Zabezpečení pomocí certifikátů

Při šifrování nebo dešifrování citlivých informací pro úkoly, jako je klíč pro účet Azure Storage, je obvykle třeba použít certifikáty. Z toho důvodu můžete na uzly nainstalovat certifikáty. Šifrované tajné klíče jsou předány na úkoly prostřednictvím parametrů příkazového řádku nebo vložené v jednom prostředků úkolu a nainstalované certifikáty lze použít pro jejich dešifrování.

K přidání certifikátu do účtu služby Batch můžete použít operaci Přidat certifikát (Batch REST) nebo metodu CertificateOperations.CreateCertificate (Batch .NET). Poté můžete certifikát přidružit k novému nebo existujícímu fondu.

Pokud je certifikát přidružený k fondu, služba Batch nainstaluje certifikát na každý uzel ve fondu. Služba Batch nainstaluje příslušné certifikáty při spuštění uzlu před spuštěním všech úkolů (včetně spouštěcího úkolu a úlohy správce úloh).

Pokud přidáte certifikát do existujícího fondu, musíte restartovat jeho výpočetní uzly, aby se certifikát použil na uzly.

Další kroky