Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V rámci pracovního postupu Azure Batch je výpočetní uzel (nebo uzel) virtuální stroj, který zpracovává část zatížení vaší aplikace. Kolekce pool je soubor těchto uzlů, na kterých může vaše aplikace běžet. Tento článek podrobněji vysvětluje uzly a fondy, spolu se zřetelem na úvahy při jejich vytváření a používání v pracovním postupu Azure Batch.
Uzly
Uzel je virtuální stroj (VM) Azure nebo VM cloudové služby, který je určen ke zpracování části pracovní zátěže vaší aplikace. Velikost uzlu určuje počet jader CPU, kapacitu paměti a velikost lokálního souborového systému, které jsou přiděleny uzlu.
Můžete vytvořit fondy uzlů Windows nebo Linux pomocí Azure Cloud Services, obrázků z Azure Virtual Machines Marketplace nebo vlastních verzí obrázků, které připravíte.
Uzly můžou spouštět jakýkoli spustitelný soubor nebo skript podporovaný prostředím operačního systému uzlu. Spustitelné soubory nebo skripty zahrnují *.exe, *.cmd, *.bat a skripty PowerShell (pro Windows), a binární soubory, shell a Python skripty (pro Linux).
Všechny výpočetní uzly v Batch také zahrnují:
- Standardní struktura složek a přidružené proměnné prostředí, které jsou k dispozici pro odkazy úkolů.
- Nastavení firewallu jsou nakonfigurována pro kontrolu přístupu.
- Vzdálený přístup k uzlům Windows (Remote Desktop Protocol (RDP)) a Linux (Secure Shell (SSH)) (pokud nevytvoříte svůj pool s vypnutým vzdáleným přístupem).
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. Aby se umožnila bezpečná komunikace uzlů s jinými virtuálními počítači nebo s místní sítí, můžete konfigurovat fond v podsíti virtuální sítě Azure (VNet). Když to uděláte, vaše uzly budou přístupné přes veřejné IP adresy. Služba Batch vytvoří tyto veřejné IP adresy a ty se mohou v průběhu životnosti fondu změ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í.
Bazény
Pool je soubor uzlů, na kterých vaše aplikace běží.
Azure Batch fondy se vytvářejí na vrcholu základní platformy Azure pro výpočty. Poskytují alokaci ve velkém rozsahu, instalaci aplikací, distribuci dat, monitorování zdravotního stavu a flexibilní úpravu (š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řazeno jedinečné jméno a IP adresa. Pokud je uzel odstraněn z fondu, veškeré změny, které se provedly v operačním systému nebo souborech, jsou ztraceny, a jeho název a IP adresa jsou uvolněny pro budoucí použití. Když uzel opustí fond, jeho životnost končí.
Fond lze používat pouze u účtu Batch, ve kterém byl vytvořen. Účet Batch může vytvořit více poolů, aby splnil požadavky na prostředky aplikací, které potřebují být spuštěny.
Bazén může být vytvořen ručně nebo automaticky službou Batch, když zadáte práci, která má být provedena. Při vytváření fondu můžete určit následující atributy:
-
Uzly a bazény v Azure Batch
- Uzly
- Bazény
- Operační systém a verze
- Konfigurace
- Typ uzlu a cíl
- Velikost uzlu
- Politika automatického škálování
- Politika plánování úloh
- Stav komunikace
- Spustit úkoly
- Balíčky aplikací
- Konfigurace virtuální sítě (VNet) a firewallu
- Životnost fondu a výpočetního uzlu
- Automatické bazény
- Zabezpečení pomocí certifikátů
- Další kroky
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ů. Můžete najít výchozí kvóty a pokyny, jak zvýšit kvótu v kvótách a omezeních pro službu Azure Batch. Pokud váš fond nedosáhne cílového počtu uzlů, může být důvodem kvóta jader.
Operační systém a verze
Při vytváření Batch poolu specifikujete konfiguraci virtuálního stroje Azure a typ operačního systému, který chcete spustit na každém výpočetním uzlu v poolu.
Konfigurace
Konfigurace virtuálního stroje
Konfigurace virtuálních počítačů Virtual Machine Configuration uvádí, že pool se skládá z virtuálních počítačů Azure. Tyto virtuální počítače se můžou vytvářet z imagí Linuxu nebo Windows.
Agent uzlu dávky je program, který běží na každém uzlu v poolu a poskytuje rozhraní pro příkazové a kontrolní propojení mezi uzlem a službou Batch. Existují různé implementace uzlového agenta, známé 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 k jejich vytvoření, ale také odkaz na image virtuálního počítače a skladovou položku agenta uzlu Batch, která se má nainstalovat na uzly. Další informace o určení těchto vlastností fondu najdete v tématu Zřízení linuxových výpočetních uzlů ve fondech Azure Batch. Libovolně můžete připojit jeden nebo více prázdných datových disků k virtuálním počítačům v poolu vytvořeným z obrazů z Marketplace nebo zahrnout datové disky do vlastních obrazů použitých k vytvoření těchto virtuálních počítačů. Pokud zahrnujete datové disky, musíte je připojit a naformátovat z virtuálního počítače, abyste je mohli používat.
Skladové položky agenta uzlu
Když vytvoříte pool, musíte vybrat vhodný nodeAgentSkuId v závislosti na operačním systému základního obrazu vašeho VHD. Můžete získat mapování dostupných SKU ID agentů uzlů k jejich OS Image odkazům zavoláním operace Seznam podporovaných SKU agentů uzlů.
Vlastní obrazy pro fondy virtuálních strojů
Abyste se naučili, jak vytvořit fond s vlastními obrázky, podívejte se na Use the Azure Compute Gallery to create a custom pool.
Podpora kontejnerů ve skupinách virtuálních strojů
Při vytváření fondu konfigurace virtuálního počítače pomocí Batch API můžete nastavit fond pro spuštění úloh v kontejnerech Docker. Aktuálně musíte vytvořit fond pomocí obrazu, který podporuje Docker kontejnery. Použijte obraz Windows Server 2016 Datacenter s kontejnery z Azure Marketplace, nebo poskytněte vlastní obrázek virtuálního počítače, který zahrnuje Docker Community Edition nebo Enterprise Edition a všechny potřebné ovladače. Nastavení fondu musí obsahovat konfiguraci kontejneru, která kopíruje obrazy kontejnerů do virtuálních strojů při vytvoření fondu. Úkoly, které běží na fondu, mohou následně odkazovat na obrazy kontejnerů a možnosti spuštění kontejnerů.
Pro další informace viz Run Docker container applications on Azure Batch.
Typ uzlu a cíl
Když vytvoříte fond, můžete specifikovat typy uzlů, které chcete, a cílový počet pro každý z nich. Dva typy uzlů jsou:
- Vyhrazené uzly. Vyhrazené výpočetní uzly jsou rezervovány pro vaše pracovní úlohy. Obvykle jsou dražší než spotové uzly, ale jsou zaručené, že nikdy nebudou předem zrušeny.
- Spotové uzly Uzlové body typu Spot využívají přebytečnou kapacitu v Azure pro provoz vašich úloh Batch. Spotové uzly jsou levnější za hodinu než vyhrazené uzly a umožňují úlohy vyžadující značný výpočetní výkon. Další informace najdete v tématu Použití spotových virtuálních počítačů se službou Batch.
Uzly spot mohou být přerušeny, když Azure nemá dostatečnou přebytečnou kapacitu. Pokud je uzel při spouštění úloh zrušený, úkoly se znovu zařadí do fronty a spustí se znovu, jakmile bude výpočetní uzel znovu dostupný. 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 použít Spot uzly pro svůj scénář, ujistěte se, že veškeré případné ztráty práce kvůli preempci jsou minimální a snadno se obnoví nebo znovu vytvoří.
Ve stejném fondu můžete mít spotové i vyhrazené výpočetní uzly. Každý typ uzlu má vlastní nastavení cíle, pro které můžete specifikovat požadovaný počet uzlů.
Počet výpočetních uzlů se označuje jako cíl , protože v některých situacích nemusí váš fond dosáhnout požadovaného počtu uzlů. Například fond nemusí dosáhnout cíle, pokud nejprve dosáhne kvóty jader pro váš Batch účet. Nebo fond nemusí dosáhnout cíle, pokud jste u fondu použili vzorec automatického škálování, který omezuje maximální počet uzlů.
Poznámka:
Když jsou spotové výpočetní uzly služby Batch předem zrušené, nejprve se přejdou do unusable stavu. Po nějaké době se tyto výpočetní uzly převedou tak, aby odrážely preempted stav. Služba Batch automaticky aktivuje chování Zkusit a obnovit k obnovení pozastavených spotových instancí s cílem co nejlépe udržet počty cílových instancí.
Pro informace o cenách pro uzly Spot a vyhrazené uzly se podívejte na Ceny dávkového zpracování.
Velikost uzlu
Při vytváření fondu Azure Batch si můžete vybrat z téměř všech rodin a velikostí virtuálních počítačů dostupných v Azure. Azure nabízí řadu velikostí virtuálních počítačů pro různé typy zátěže, včetně specializovaných velikostí VM s podporou HPC nebo GPU. Velikosti virtuálních počítačů uzlu je možné zvolit pouze v okamžiku vytvoření fondu. Jinými slovy, jakmile je fond vytvořen, velikost jeho virtuálního počítače už nelze změnit.
Pro více informací si přečtěte Výběr velikosti VM pro výpočetní uzly v Azure Batch poolu.
Automatická škálovací politika
Pro dynamické pracovní zátěže můžete na fond aplikovat zásady automatického škálování. Služba Batch pravidelně vyhodnocuje 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. Tímto způsobem můžete snížit celkové náklady na provozování vaší aplikace tím, že využijete pouze potřebné zdroje a uvolníte ty, které nepotřebujete.
Automatické škálování povolíte napsáním vzorce pro automatické škálování a přiřazením tohoto vzorce k fondu. Služba Batch používá vzorec k určení cílového počtu uzlů v fondu pro další interval škálování (interval, který můžete konfigurovat). Nastavení automatického škálování pro pool můžete specifikovat při jeho vytvoření nebo později povolit škálování v poolu. Můžete také aktualizovat nastavení škálování v poolu s povoleným škálováním.
Jako příklad může být úkolem požadováno, abyste podali velké množství úloh k provedení. Můžete přiřadit škálovací vzorec do fondu, který upraví počet uzlů ve fondu na základě aktuálního počtu úkolů ve frontě a míry dokončení úkolů v úloze. Služba Batch pravidelně vyhodnocuje vzorec a upravuje velikost fondu na základě pracovní zátěže a ostatních nastavení vašeho vzorce. Služba přidává uzly podle potřeby, když je velký počet úkolů ve frontě, a odebírá uzly, když nejsou žádné úkoly ve frontě nebo spuštěné.
Filtrační vzorec může být založen na následujících metrikách:
- Časové metriky jsou založeny na statistikách sbíraných každých pět minut v určeném počtu hodin.
- Resource metrics jsou založeny na využití CPU, využití šířky pásma, využití paměti a počtu uzlů.
- Metriky úloh jsou založeny na stavu úloh, jako je Aktivní (v frontě), Probíhá, nebo Dokončeno.
Když automatické škálování sníží počet výpočetních uzlů v poli, musíte zvážit, jak naložit s úlohami, které běží v době operace snižování. Aby to bylo možné, Batch poskytuje možnost uvolnění uzlu, kterou můžete zahrnout do svých vzorců. Například můžete určit, že běžící úlohy jsou okamžitě zastaveny a následně znovu zařazeny k provedení na jiném uzlu, nebo jim umožnit dokončení předtím, než je uzel odstraněn z fondu. Nastavení možnosti zrušení přidělení uzlu jako taskcompletion nebo retaineddata brání operacím změny velikosti fondu, dokud se nedokončí všechny úkoly, nebo když vyprší platnost všech období uchovávání úkolů.
Pro více informací o automatickém škálování aplikace si přečtěte Automatické škálování výpočetních uzlů v poolu Azure Batch.
Návod
Aby bylo dosaženo maximálního využití výpočetních zdrojů, nastavte cílový počet uzlů na nulu na konci úlohy, ale umožněte běžícím úlohám dokončit se.
Politika plánování úkolů
Konfigurační možnost max tasks per node určuje maximální počet úloh, které mohou běžet paralelně na každém výpočetním uzlu v rámci fondu.
Výchozí konfigurace určuje, že na uzlu běží jeden úkol najednou, ale existují scénáře, ve kterých je výhodné mít současně spuštěné dva nebo více úloh na uzlu. Podívejte se na ukázkový scénář v článku o souběžných úkolech uzlů o tom, jak můžete potenciálně těžit z více úkolů na uzel.
Můžete také specifikovat typ vyplnění, který určuje, zda Batch rovnoměrně rozprostře úlohy po všech uzlech v sadě, nebo naplní každý uzel maximálním počtem úloh, než přiřadí úlohy dalšímu uzlu.
Stav komunikace
Ve většině scénářů fungují úkoly nezávisle a nepotřebují vzájemně komunikovat. Nicméně existují některé aplikace, ve kterých musí úlohy 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 povolená komunikace mezi uzly, můžou uzly ve fondech konfigurace cloudových služeb vzájemně komunikovat na portech větších než 1100 a fondy konfigurace virtuálních počítačů neomezují provoz na žádném portu.
Povolení komunikace mezi uzly také ovlivňuje umístění uzlů v rámci klastrů a může omezit maximální počet uzlů v rámci skupiny kvůli omezením nasazení. Pokud vaše aplikace nevyžaduje komunikaci mezi uzly, služba Batch může fondu přidělit potenciálně velký počet uzlů z mnoha různých clusterů a datových center, aby bylo možné zvýšit výkon paralelního zpracování.
Spustit úkoly
V případě potřeby můžete přidat spouštěcí úlohu, která se spustí na každém uzlu, jakmile se tento uzel připojí k fondu, a pokaždé, když se uzel restartuje nebo znovu se vytvoří obraz. Úkol při spuštění je užitečný zejména pro přípravu výpočetních uzlů pro provádění úkolů, jako je instalace aplikací, které vaše úkoly používají na výpočetních uzlech.
Aplikační balíčky
Můžete určit balíčky aplikací, které se nasadí na výpočetní uzly v rámci této skupiny. Balíky aplikací poskytují zjednodušené nasazení a verzování aplikací, které vaše úkoly provozují. Aplikační balíčky, které zadáte pro fond, jsou instalovány na každém uzlu, který se k tomuto fondu připojí, a při každém restartu nebo obnovení obrazu uzlu.
Pro více informací o používání balíčků aplikací k nasazení aplikací na vaše uzly Batch se podívejte na Nasazení aplikací na výpočetní uzly pomocí balíčků aplikací Batch.
Konfigurace virtuální sítě (VNet) a firewallu
Když poskytnete fond výpočetních uzlů v systému Batch, můžete fond spojit s podsítí v rámci Azure virtuální sítě (VNet). Pro použití Azure VNet musí Batch klientská API používat ověřování Microsoft Entra. Podpora Azure Batch pro Microsoft Entra ID je zdokumentována v Ověřování řešení služby Batch pomocí Active Directory.
Požadavky pro VNet
Pro více informací o nastavení skupiny Batch v síti VNet si přečtěte Vytvoření skupiny virtuálních strojů s vaší virtuální sítí.
Návod
Aby se zajistilo, že se veřejné IP adresy používané pro přístup k uzlům nezmění, můžete vytvořit pool se specifikovanými veřejnými IP adresami, které máte pod kontrolou.
Doba životnosti poolu a výpočetních uzlů
Při navrhování řešení Azure Batch musíte určit, jak a kdy jsou vytvářeny fondy a jak dlouho jsou výpočetní uzly v těchto fondech dostupné.
Na jednom konci spektra můžete vytvořit skupinu pro každou úlohu, kterou zadáte, a smazat tuto skupinu, jakmile její úkoly dokončí provádění. Tím se maximalizuje využití, protože uzly se přidělují jenom v případě potřeby a po nečinnosti se vypnou. 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é ke spuštění, jakmile jsou uzly jednotlivě přiděleny a počáteční úkol je dokončen, pokud je specifikováno, že se má čekat na jeho dokončení. Služba Batch nečeká , dokud nebudou všechny uzly ve fondu k dispozici před přiřazením úkolů k uzlům. Toto zajišťuje maximální využití všech dostupných uzlů.
Na opačném konci spektra, pokud je nejvyšší prioritou okamžitý start úloh, můžete předem vytvořit fond a zpřístupnit jeho uzly ještě před odesláním úloh. V tomto scénáři mohou úkoly začít okamžitě, ale uzly mohou zůstat nečinné, zatímco čekají na jejich přiřazení.
Kombinovaný přístup je obvykle používán pro zvládání proměnlivého, ale neustále probíhajícího zatížení. Můžete mít pool, do kterého je zadáno více úloh, a můžete upravovat počet uzlů nahoru nebo dolů podle zatížení úloh. Můžete to udělat reaktivně, na základě aktuálního zatížení, nebo proaktivně, pokud lze zatížení předpovědět. Pro více informací viz Automatic scaling policy.
Automatické zařazování
Automatický fond je fond, který služba Batch vytváří při odeslání úkolu, místo aby byl explicitně vytvořen před úkoly, které se budou spouštět ve fondu. Služba Batch spravuje životnost automatického fondu podle zadaných charakteristik. Nejčastěji jsou tyto fondy také nastaveny tak, že se po dokončení úloh automaticky smažou.
Zabezpečení pomocí certifikátů
Obvykle potřebujete používat certifikáty, když šifrujete nebo dešifrujete citlivé informace pro úkoly, jako je například klíč pro účet Azure Storage. Pro podporu tohoto můžete nainstalovat certifikáty na uzly. Šifrované tajemství jsou předávána úkolům prostřednictvím parametrů příkazové řádky nebo jsou vložena do jednoho z prostředků úkolu a instalované certifikáty lze využít k jejich dešifrování.
Při přidávání certifikátu do účtu Batch použijete operaci Add certificate (Batch REST) nebo metodu CertificateOperations.CreateCertificate (Batch .NET). Pak můžete certifikát přiřadit novému nebo stávajícímu poolu.
Když se certifikát spojí s bazénem, Batch služba nainstaluje certifikát na každý uzel v bazénu. 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 stávajícího fondu, musíte restartovat jeho výpočetní uzly, aby se certifikát na uzly aplikoval.
Další kroky
- Seznamte se s úlohami a úkoly.
- Zjistěte, jak detekovat a vyhnout se chybám v pozadí operací ve fondu a uzlu.