Azure Batch pools en knooppunten
In een Azure Batch-werkstroom is een rekenknooppunt (of knooppunt) een virtuele machine die een deel van de workload van uw toepassing verwerkt. Een pool is een verzameling van deze knooppunten waarop uw toepassing kan worden uitgevoerd. In dit artikel wordt meer uitgelegd over knooppunten en pools, samen met overwegingen bij het maken en gebruiken ervan in een Azure Batch-werkstroom.
Knooppunten
Een knooppunt is een virtuele Azure-machine (VM) of cloudservice-VM die is toegewezen aan het verwerken van een deel van de workload van uw toepassing. De grootte van een knooppunt bepaalt het aantal CPU-kernen, de geheugencapaciteit en de grootte van het lokale bestandssysteem die aan het knooppunt worden toegewezen.
U kunt pools van Windows- of Linux-knooppunten maken met behulp van Azure Cloud Services, Azure Virtual Machines Marketplace-installatiekopieën of aangepaste installatiekopieën die u voorbereidt.
Knooppunten kunnen elk uitvoerbaar bestand of script uitvoeren dat wordt ondersteund door de besturingssysteemomgeving van het knooppunt. Uitvoerbare bestanden of scripts bevatten *.exe, *.cmd, *.bat en PowerShell-scripts (voor Windows) en binaire bestanden, shell en Python-scripts (voor Linux).
Alle rekenknooppunten in Batch omvatten ook:
- Een standaardmapstructuur en daaraan gekoppelde omgevingsvariabelen die beschikbaar zijn voor verwijzing door taken.
- Firewallinstellingen die zijn geconfigureerd om de toegang te beheren.
- Externe toegang tot zowel Windows-knooppunten (Remote Desktop Protocol (RDP) als Linux-knooppunten (Secure Shell (SSH)) (tenzij u uw pool maakt waarvoor externe toegang is uitgeschakeld).
Standaard kunnen knooppunten met elkaar communiceren, maar ze kunnen niet communiceren met virtuele machines die geen deel uitmaken van dezelfde pool. Als u wilt dat knooppunten veilig kunnen communiceren met andere virtuele machines of met een on-premises netwerk, kunt u de pool inrichten in een subnet van een virtueel Azure-netwerk (VNet). Wanneer u dit doet, kunnen uw knooppunten worden geopend via openbare IP-adressen. Deze openbare IP-adressen worden gemaakt door Batch en kunnen gedurende de levensduur van de pool veranderen. U kunt ook een groep maken met statische openbare IP-adressen die u beheert, waardoor ze niet onverwacht worden gewijzigd.
Groepen
Een pool is de verzameling knooppunten waarop uw toepassing wordt uitgevoerd.
Azure Batch-groepen worden gebouwd boven op het kernrekenplatform van Azure. Ze bieden grootschalige toewijzing, installatie van toepassingen, gegevensdistributie, statuscontrole en flexibele aanpassing (schalen) van het aantal rekenknooppunten binnen een pool.
Aan elk knooppunt dat aan een pool wordt toegevoegd, wordt een unieke naam en een uniek IP-adres toegewezen. Wanneer een knooppunt uit een pool wordt verwijderd, gaan alle wijzigingen in het besturingssysteem of de bestanden verloren. De naam en het IP-adres van het verwijderde knooppunt worden vrijgegeven voor toekomstig gebruik. Wanneer een knooppunt een pool verlaat, is de levensduur ervan beëindigd.
Een pool kan alleen worden gebruikt door de Batch-account waarin deze is gemaakt. Een Batch-account kan meerdere pools maken om te voldoen aan de resourcevereisten van de toepassingen die worden uitgevoerd.
De pool kan handmatig of automatisch door de Batch-service worden gemaakt wanneer u het werk opgeeft dat moet worden uitgevoerd. Wanneer u een pool maakt, kunt u de volgende kenmerken opgeven:
- Azure Batch pools en knooppunten
- Knooppunten
- Groepen
- Besturingssysteem en versie
- Configuraties
- Knooppunttype en doel
- Knooppuntgrootte
- Beleid voor automatisch schalen
- Taakplanningsbeleid
- Communicatiestatus
- Taken starten
- Toepassingspakketten
- Configuratie van virtueel netwerk (VNet) en firewall
- Levensduur van pool- en rekenknooppunten
- Autopools
- Beveiliging met certificaten
- Volgende stappen
Belangrijk
Batch-accounts hebben een standaardquotum dat het aantal kernen in een Batch-account beperkt. Het aantal kernen komt overeen met het aantal rekenknooppunten. U vindt de standaardquota en instructies voor het verhogen van een quotum in Quotas and limits for the Azure Batch service (Quota en limieten voor de Azure Batch-service). Als een pool niet het beoogde aantal knooppunten bereikt, ligt dit mogelijk aan het kernquotum.
Besturingssysteem en versie
Wanneer u een Batch-pool maakt, geeft u de configuratie van de virtuele Azure-machine en het type besturingssysteem op dat u wilt uitvoeren op elk rekenknooppunt in de pool.
Configuraties
Configuratie van virtuele machine
De configuratie van de virtuele machine geeft aan dat de pool bestaat uit virtuele Azure-machines. Deze virtuele machines kunnen worden gemaakt met Linux- of Windows-installatiekopieën.
De Batch-knooppuntagent is een programma dat wordt uitgevoerd op elk knooppunt in de pool en biedt de opdracht-en-beheerinterface tussen het knooppunt en de Batch-service. Er zijn verschillende implementaties van de knooppuntagent, ook wel SKU's genoemd, voor verschillende besturingssystemen. Wanneer u een pool maakt op basis van de virtuele-machineconfiguratie, moet u niet alleen de grootte van de knooppunten opgeven en de bron van de installatiekopieën waarmee u ze hebt gemaakt, maar ook de verwijzing naar de installatiekopie van de virtuele machine en de Batch-knooppuntagent-SKU die op de knooppunten moet worden geïnstalleerd. Zie Linux-rekenknooppunten in Azure Batch-pools inrichten voor meer informatie over het opgeven van deze pooleigenschappen. U kunt desgewenst een of meer lege gegevensschijven koppelen aan pool-VM's die zijn gemaakt op basis van Marketplace-installatiekopieën of gegevensschijven opnemen in aangepaste installatiekopieën die worden gebruikt voor het maken van de virtuele machines. Wanneer u gegevensschijven opbrengt, moet u de schijven koppelen en formatteren vanuit een VIRTUELE machine om ze te kunnen gebruiken.
Knooppuntagent-SKU's
Wanneer u een pool maakt, moet u afhankelijk van het besturingssysteem van de basisinstallatiekopie van uw VHD de juiste nodeAgentSkuId selecteren. U kunt een toewijzing krijgen van de beschikbare SKU-id's van de knooppuntagent aan hun verwijzingen naar de installatiekopieën van het besturingssysteem door de bewerking Ondersteunde knooppuntagent-SKU's aan te roepen.
Aangepaste installatiekopieën voor VM-pools
Ondersteuning voor containers in virtuele machine-pools
Bij het maken van een virtuele machine-pool met de Batch-API's, kunt u de pool instellen voor het uitvoeren van taken in Docker-containers. Momenteel moet u de pool maken met behulp van een installatiekopie die ondersteuning biedt voor Docker-containers. Gebruik Windows Server 2016 Datacenter met de Containers-installatiekopie van Azure Marketplace of geef een aangepaste VM-installatiekopie op die Docker Community Edition of Enterprise Edition en alle vereiste stuurprogramma's bevat. De poolinstellingen moeten een containerconfiguratie bevatten die containerinstallatiekopieën naar de virtuele machines kopieert wanneer de pool wordt gemaakt. Taken die worden uitgevoerd op de pool kunnen vervolgens verwijzen naar de containerinstallatiekopieën en uitvoeringsopties voor containers.
Zie voor meer informatie Docker-containertoepassingen uitvoeren op Azure Batch.
Knooppunttype en doel
Wanneer u een pool maakt, kunt u opgeven welke typen knooppunten u wilt en het doelnummer voor elke groep. De twee typen knooppunten zijn:
- Toegewezen knooppunten. Toegewezen rekenknooppunten zijn gereserveerd voor uw workloads. Ze zijn duurder dan Spot-knooppunten, maar ze worden gegarandeerd nooit vervlekt.
- Spot-knooppunten. Spot-knooppunten profiteren van overtollige capaciteit in Azure om uw Batch-workloads uit te voeren. Spot-knooppunten zijn minder duur per uur dan toegewezen knooppunten en maken workloads mogelijk die aanzienlijke rekenkracht vereisen. Zie Spot-VM's gebruiken met Batch voor meer informatie.
Spot-knooppunten kunnen worden vervlekt wanneer Azure onvoldoende overcapaciteit heeft. Als een knooppunt wordt verschoven tijdens het uitvoeren van taken, worden de taken opnieuw ingepland en uitgevoerd zodra er weer een rekenknooppunt beschikbaar is. Spot-knooppunten zijn een goede optie voor workloads waarbij de voltooiingstijd van de taak flexibel is en het werk over veel knooppunten wordt verdeeld. Voordat u besluit spot-knooppunten voor uw scenario te gebruiken, moet u ervoor zorgen dat werk verloren gaat als gevolg van voorrang minimaal en eenvoudig opnieuw te maken.
U kunt zowel spot- als toegewezen rekenknooppunten in dezelfde pool hebben. Elk type knooppunt heeft een eigen doelinstelling, waarvoor u het gewenste aantal knooppunten kunt opgeven.
Het aantal rekenknooppunten wordt aangeduid als beoogd omdat de pool in sommige gevallen mogelijk niet het gewenste aantal knooppunten bereikt. Een pool kan het doel bijvoorbeeld mogelijk niet bereiken als het eerst het quotum voor kernen voor uw Batch-account bereikt. Of de pool bereikt mogelijk niet het doel als u een formule voor automatisch schalen hebt toegepast op de pool die het maximum aantal knooppunten beperkt.
Zie Batch-prijzen voor prijsinformatie voor spot- en toegewezen knooppunten.
Knooppuntgrootte
Wanneer u een Azure Batch-groep maakt, kunt u kiezen uit bijna alle reeksen en grootten virtuele machines die beschikbaar zijn in Azure. Azure biedt verscheidene VM-grootten voor verschillende workloads, met inbegrip van VM-grootten die speciaal zijn bedoeld voor HPC of GPU. Houd er rekening mee dat knooppuntgrootten alleen kunnen worden gekozen op het moment dat een pool wordt gemaakt. Met andere woorden, zodra een pool is gemaakt, kan de knooppuntgrootte ervan niet worden gewijzigd.
Zie Choose a VM size for compute nodes in an Azure Batch pool (Een VM-grootte voor rekenknooppunten in een Azure Batch-groep kiezen) voor meer informatie.
Beleid voor automatisch schalen
Voor dynamische workloads kunt u een beleid voor automatisch schalen toepassen op een pool. De Batch-service evalueert uw formule periodiek en past het aantal knooppunten in de pool dynamisch aan op basis van de huidige workload en het resourcegebruik van uw rekenscenario. Zo kunt u de totale kosten van het uitvoeren van uw toepassing verlagen door alleen de benodigde resources te gebruiken en de resources die u niet nodig hebt, vrij te geven.
U schakelt automatische vergroting/verkleining in door een formule voor automatisch vergroten/verkleinen te schrijven en die formule te koppelen aan een pool. De Batch-service gebruikt deze formule om het doelaantal knooppunten in de pool te bepalen voor het volgende interval voor vergroten/verkleinen (een interval dat u kunt configureren). U kunt de instellingen voor automatisch vergroten/verkleinen voor een pool opgeven wanneer u deze maakt of op een later moment voor een pool inschakelen. U kunt de instellingen voor automatisch vergroten/verkleinen ook bijwerken in een pool waarvoor vergroten/verkleinen is ingeschakeld.
Een voorbeeld: voor een taak moet u bijvoorbeeld een groot aantal taken indienen dat moet worden uitgevoerd. U kunt aan de pool een formule voor vergroten/verkleinen toewijzen die het aantal knooppunten in de pool aanpast op basis van het huidige aantal taken in de wachtrij en de snelheid waarmee de taken in de job worden voltooid. De Batch-service evalueert periodiek de formule en vergroot/verkleint de pool op basis van de workload en uw andere formule-instellingen. De service voegt naar behoefte knooppunten toe, bijvoorbeeld wanneer er veel taken in de wachtrij staan. Ook worden er knooppunten verwijderd wanneer er geen taken actief zijn of in de wachtrij staan.
Een formule voor vergroten/verkleinen kan op de volgende metrische gegevens worden gebaseerd:
- Metrische gegevens voor tijd zijn gebaseerd op statistieken die om de vijf minuten worden verzameld binnen het opgegeven aantal uren.
- Metrische gegevens voor resources zijn gebaseerd op CPU-gebruik, bandbreedtegebruik, geheugengebruik en het aantal knooppunten.
- Metrische gegevens voor taken zijn gebaseerd op de taakstatus, zoals Actief (in de wachtrij) Wordt uitgevoerd of Voltooid.
Wanneer met automatisch vergroten/verkleinen het aantal rekenknooppunten in een groep vermindert, moet u bedenken hoe taken moeten worden afgehandeld die worden uitgevoerd op het moment van de verkleining. Hiervoor voorziet Batch in een optie voor knooppunttoewijzing die u kunt opnemen in uw formules. U kunt bijvoorbeeld opgeven dat actieve taken worden gestopt en vervolgens opnieuw in de wachtrij worden geplaatst om te worden uitgevoerd op een ander knooppunt, of moeten worden voltooid voordat het knooppunt uit de pool wordt verwijderd. Houd er rekening mee dat het instellen van de optie voor deallocatie van knooppunten als taskcompletion
of retaineddata
het wijzigen van de grootte van de pool wordt voorkomen totdat alle taken zijn voltooid of dat alle taakretentieperioden zijn verlopen.
Zie Automatically scale compute nodes in an Azure Batch pool (Rekenknooppunten in een Azure Batch-pool automatisch vergroten/verkleinen) voor meer informatie over het automatisch vergroten/verkleinen van een toepassing.
Tip
Als u het gebruik van rekenresources wilt maximaliseren, stelt u het doelaantal knooppunten aan het einde van een job in op nul, maar staat u toe dat actieve taken mogen worden voltooid.
Taakplanningsbeleid
De configuratieoptie Maximumaantal taken per knooppunt bepaalt het maximumaantal taken dat parallel kan worden uitgevoerd op elk rekenknooppunt in de pool.
Bij de standaardconfiguratie wordt er op een knooppunt één taak tegelijk uitgevoerd, maar er zijn scenario's waarin het nuttig is om op een knooppunt twee of meer taken tegelijk uit te voeren. Zie het voorbeeldscenario in het artikel over gelijktijdige knooppunttaken om te bekijken hoe u kunt profiteren van meerdere taken per knooppunt.
U kunt ook een opvultype opgeven, waarmee wordt bepaald of Batch de taken gelijkmatig verspreidt over alle knooppunten in een pool of elk knooppunt inpakt met het maximum aantal taken voordat u taken toewijst aan een ander knooppunt.
Communicatiestatus
In de meeste gevallen functioneren taken onafhankelijk en hoeven ze niet met elkaar te communiceren. Maar mogelijk hebt u ook toepassingen waarin taken moeten communiceren, bijvoorbeeld MPI-scenario's.
U kunt een pool zo configureren dat communicatie tussen knooppunten mogelijk is, zodat knooppunten in een pool tijdens runtime kunnen communiceren. Wanneer communicatie tussen knooppunten is ingeschakeld, kunnen knooppunten in de configuratie voor Cloud Services-pools met elkaar communiceren op poorten die groter zijn dan 1100. Voor virtuele-machineconfiguratiepools is verkeer op geen enkele poort beperkt.
Het inschakelen van communicatie tussen knooppunten heeft ook invloed op de plaatsing van de knooppunten binnen clusters en kan het maximum aantal knooppunten in een pool beperken vanwege implementatiebeperkingen. Als voor uw toepassing geen communicatie tussen knooppunten is vereist, kan de Batch-service een potentieel groter aantal knooppunten aan de pool toewijzen vanuit vele verschillende clusters en datacenters, om meer parallelle verwerkingskracht mogelijk te maken.
Taken starten
Desgewenst kunt u een begintaak toevoegen die op elk knooppunt wordt uitgevoerd wanneer dat knooppunt lid wordt van de pool en telkens wanneer een knooppunt opnieuw wordt opgestart of opnieuw wordt gemaakt. De begintaak is vooral handig voor de voorbereiding van rekenknooppunten voor het uitvoeren van taken, zoals het installeren van de toepassingen die door de taken worden uitgevoerd.
Toepassingspakketten
U kunt toepassingspakketten opgeven die moeten worden geïmplementeerd in de rekenknooppunten in de groep. Toepassingspakketten bieden vereenvoudigde implementatie en versies van de toepassingen die de taken uitvoeren. Toepassingspakketten die u voor een groep van toepassingen opgeeft, worden geïnstalleerd op elk knooppunt dat lid wordt van de groep, en elke keer dat er een knooppunt opnieuw wordt opgestart of er een installatiekopie wordt hersteld.
Zie Deploy applications to compute nodes with Batch application packages (Toepassingen implementeren naar rekenknooppunten met Batch-toepassingspakketten) voor meer informatie over het gebruiken van toepassingspakketten om toepassingen te implementeren naar Batch-knooppunten.
Configuratie van virtuele netwerken (VNet) en firewalls
Wanneer u een pool rekenknooppunten inricht in Batch kunt u deze pool koppelen aan een subnet van een virtueel netwerk van Azure (VNet). Als u een Azure VNet wilt gebruiken, moet de Batch-client-API gebruikmaken van Microsoft Entra-verificatie. Azure Batch-ondersteuning voor Microsoft Entra-id wordt beschreven in Batch-serviceoplossingen verifiëren met Active Directory.
Vereisten voor VNet
Zie Een pool van virtuele machines maken met uw virtuele netwerk voor meer informatie over het instellen van een Batch-pool in een VNet.
Tip
Om ervoor te zorgen dat de openbare IP-adressen die worden gebruikt voor toegang tot knooppunten niet veranderen, kunt u een groep maken met opgegeven openbare IP-adressen die u bepaalt.
Levensduur van pool en rekenknooppunt
Wanneer u uw Azure Batch-oplossing ontwerpt, moet u opgeven hoe en wanneer pools worden gemaakt en hoe lang rekenknooppunten in die pools beschikbaar blijven.
Aan het ene uiteinde van het spectrum kunt u een pool maken voor elke job wanneer deze wordt verzonden en kunt u de pool verwijderen zodra taken zijn uitgevoerd. Dit maximaliseert het gebruik omdat de knooppunten alleen worden toegewezen wanneer dat nodig is en ze worden afgesloten zodra ze niet actief zijn. Hoewel dit betekent dat de taak moet wachten tot de knooppunten zijn toegewezen, is het belangrijk om te weten dat taken zijn gepland voor uitvoering zodra knooppunten afzonderlijk worden toegewezen en de begintaak is voltooid. Batch wacht niet tot alle knooppunten in een pool beschikbaar zijn alvorens taken aan de knooppunten toe te wijzen. Hiermee zorgt u voor maximaal gebruik van alle beschikbare knooppunten.
Als, aan het andere uiteinde van het spectrum, het onmiddellijk starten van jobs de hoogste prioriteit heeft, kunt u een pool voortijdig maken en de knooppunten ervan beschikbaar stellen voordat er jobs worden verzonden. In dit scenario kunnen taken onmiddellijk worden gestart, maar blijven knooppunten mogelijk inactief terwijl wordt gewacht tot er taken worden toegewezen.
Een gecombineerde benadering wordt doorgaans gebruikt voor het verwerken van een variabele, maar doorlopende belasting. U kunt een pool hebben waarin meerdere taken worden verzonden en het aantal knooppunten omhoog of omlaag kan schalen op basis van de taakbelasting. U kunt dit reactief doen, op basis van de huidige workload, of proactief als de workload kan worden voorspeld. Zie Beleid voor automatisch schalen voor meer informatie.
Autopools
Een autopool is een pool die door de Batch-service wordt gemaakt wanneer een taak wordt verzonden, in plaats van te worden gemaakt vóór de taken die in de pool worden uitgevoerd. De Batch-service beheert de levensduur van een autopool op basis van de kenmerken die u opgeeft. Meestal worden deze pools ook automatisch verwijderd nadat hun taken zijn voltooid.
Beveiliging met certificaten
Certificaten gebruikt u doorgaans bij het versleutelen of ontsleutelen van gevoelige gegevens voor taken, zoals de sleutel voor een Azure Storage-account. Ter ondersteuning hiervan installeert u certificaten op knooppunten. Versleutelde geheimen worden via opdrachtregelparameters doorgegeven aan taken of worden ingesloten in een van de taakresources. De geïnstalleerde certificaten kunnen dan worden gebruikt om ze te ontsleutelen.
U gebruikt de bewerking Certificaat toevoegen (Batch REST) of de methode CertificateOperations.CreateCertificate (Batch .NET) om een certificaat aan een Batch-account toe te voegen. Daarna kunt u het certificaat aan een nieuwe of bestaande pool koppelen.
Wanneer een certificaat aan een pool is gekoppeld, wordt het door de Batch-service in elk knooppunt in de pool geïnstalleerd. De Batch-service installeert de juiste certificaten wanneer het knooppunt wordt gestart, voordat u taken start (inclusief de begintaak en taakbeheertaak).
Als u een certificaat aan een bestaande pool toevoegt, moet u de rekenknooppunten opnieuw opstarten om het certificaat op de knooppunten toe te passen.
Volgende stappen
- Meer informatie over taken en taken.
- Meer informatie over het detecteren en voorkomen van fouten in bewerkingen op de achtergrond van pools en knooppunten.