De galerie Azure Compute gebruiken om een aangepaste groep met afbeeldingen te maken
Wanneer u een Azure Batch maakt met behulp van de configuratie van de virtuele machine, geeft u een VM-installatiebestand op dat het besturingssysteem biedt voor elk rekenpunt in de pool. U kunt een pool met virtuele machines maken met een ondersteunde Azure Marketplace of een aangepaste afbeelding maken met een Azure Compute Galerie-afbeelding.
Voordelen van Azure Compute Gallery
Wanneer u de Azure Compute Gallery gebruikt voor uw aangepaste installatie afbeelding, hebt u controle over het type en de configuratie van het besturingssysteem, evenals het type gegevensschijven. Uw gedeelde afbeelding kan toepassingen en referentiegegevens bevatten die beschikbaar komen op alle Batch-poolknooppunten zodra deze zijn ingericht.
U kunt ook meerdere versies van een afbeelding hebben als dat nodig is voor uw omgeving. Wanneer u een installatiekopieversie gebruikt om een VM te maken, wordt de installatiekopieversie gebruikt voor het maken van nieuwe schijven voor de VM.
Het gebruik van een gedeelde afbeelding bespaart tijd bij het voorbereiden van de rekenknooppunten van uw pool om uw Batch-workload uit te voeren. Het is mogelijk om na het inrichten een Azure Marketplace te gebruiken en software te installeren op elk reken knooppunt, maar het gebruik van een gedeelde installatie afbeelding is doorgaans efficiënter. Daarnaast kunt u meerdere replica's opgeven voor de gedeelde afbeelding, zodat u bij het maken van pools met veel VM's (meer dan 600 VM's) tijd bespaart bij het maken van een groep.
Het gebruik van een gedeelde afbeelding die is geconfigureerd voor uw scenario kan verschillende voordelen bieden:
- Gebruik dezelfde afbeeldingen in de verschillende regio's. U kunt replica's van gedeelde afbeeldingen maken in verschillende regio's, zodat al uw pools dezelfde afbeelding gebruiken.
- Het besturingssysteem configureren. U kunt de configuratie van de besturingssysteemschijf van de installatier aanpassen.
- Toepassingen vooraf installeren. Het vooraf installeren van toepassingen op de besturingssysteemschijf is efficiënter en minder foutgevoelig dan het installeren van toepassingen na het inrichten van de rekenknooppunten met een begintaak.
- Kopieer grote hoeveelheden gegevens eenmaal. Maak statische gegevens onderdeel van de beheerde gedeelde afbeelding door deze te kopiëren naar de gegevensschijven van een beheerde afbeelding. Dit hoeft slechts één keer te worden gedaan en maakt gegevens beschikbaar voor elk knooppunt van de pool.
- Pools groter maken. Met de Azure Compute Gallery kunt u grotere pools maken met uw aangepaste afbeeldingen, samen met meer replica's van gedeelde afbeeldingen.
- Betere prestaties dan alleen een beheerde afbeelding als aangepaste afbeelding gebruiken. Voor een aangepaste groep met gedeelde afbeeldingen is de tijd om de stabiele status te bereiken tot 25% sneller en is de niet-actieve latentie van de VM tot 30% korter.
- Versiebeheer en groepering van afbeeldingen voor eenvoudiger beheer. De definitie voor het groeperen van afbeeldingen bevat informatie over waarom de afbeelding is gemaakt, voor welk besturingssysteem deze is gebruikt en informatie over het gebruik van de afbeelding. Het groeperen van afbeeldingen maakt eenvoudiger beheer van afbeeldingen mogelijk. Zie Definities van afbeeldingen voor meer informatie.
Vereisten
Notitie
U moet verifiëren met behulp van Azure AD. Als u shared-key-auth gebruikt, wordt er een verificatiefout weergegeven.
Een Azure Batch-account. Zie de Batch-quickstarts met behulp van de Azure Portal of Azure CLI om een Batch-account te maken.
een Azure Compute galerieafbeelding. Als u een gedeelde afbeelding wilt maken, moet u een resource voor een beheerde afbeelding hebben of maken. De afbeelding moet worden gemaakt op momentopnamen van de besturingssysteemschijf van de VM en eventueel de gekoppelde gegevensschijven.
Notitie
Als de gedeelde afbeelding zich niet in hetzelfde abonnement als het Batch-account, moet u de resourceprovider Microsoft.Batch voor dat abonnement registreren. De twee abonnementen moeten zich in dezelfde Azure AD-tenant hebben.
De afbeelding kan zich in een andere regio zolang deze replica's heeft in dezelfde regio als uw Batch-account.
Als u een Azure AD-toepassing gebruikt om een aangepaste groep met afbeeldingen te maken met een Azure Compute Gallery-afbeelding, moet aan die toepassing een ingebouwde Azure-rol zijn verleend die deze toegang geeft tot de gedeelde afbeelding. U kunt deze toegang verlenen in de Azure Portal door te navigeren naar de gedeelde afbeelding, Toegangsbeheer (IAM) te selecteren en een roltoewijzing toe te voegen voor de toepassing.
Een gedeelde afbeelding voorbereiden
In Azure kunt u een gedeelde afbeelding van een beheerde afbeelding voorbereiden, die kan worden gemaakt op de volgende gegevens:
- Momentopnamen van het besturingssysteem en de gegevensschijven van een Azure-VM
- Een ge generaliseerde Azure-VM met beheerde schijven
- Een ge generaliseerde on-premises VHD geüpload naar de cloud
Notitie
Batch ondersteunt alleen ge generaliseerde gedeelde afbeeldingen; Een gespecialiseerde gedeelde afbeelding kan niet worden gebruikt om een pool te maken.
De volgende stappen laten zien hoe u een VM voorbereidt, een momentopname maakt en een afbeelding van de momentopname maakt.
Een VM voorbereiden
Als u een nieuwe VM voor de afbeelding maakt, gebruikt u een eigen Azure Marketplace die door Batch wordt ondersteund als basisafbeelding voor uw beheerde afbeelding. Alleen eigen afbeeldingen kunnen worden gebruikt als basisafbeelding. Zie de bewerking List node agent SKU'Azure Marketplace een volledige lijst met naslagafbeeldingen die door Azure Batch worden ondersteund.
Notitie
U kunt geen afbeelding van derden gebruiken met aanvullende licentie- en aankoopvoorwaarden als basisafbeelding. Zie de richtlijnen voor Linux of virtuele Windows Marketplace-VM's voormeer informatie over deze Marketplace-afbeeldingen.
Volg deze richtlijnen bij het maken van VM's:
- Zorg ervoor dat de VM is gemaakt met een beheerde schijf. Dit is de standaardopslaginstelling wanneer u een VM maakt.
- Installeer geen Azure-extensies, zoals de aangepaste scriptextensie, op de VM. Als de installatie afbeelding een vooraf geïnstalleerde extensie bevat, kan Azure problemen ondervinden bij het implementeren van de Batch-pool.
- Wanneer u gekoppelde gegevensschijven gebruikt, moet u de schijven koppelen en formatteren vanuit een VM om ze te kunnen gebruiken.
- Zorg ervoor dat de basisbesturingssysteemafbeelding die u op geeft, gebruikmaakt van het standaard temp-station. De Batch-knooppuntagent verwacht momenteel het standaard temp-station.
- Zorg ervoor dat de besturingssysteemschijf niet is versleuteld.
- Zodra de VM wordt uitgevoerd, maakt u er verbinding mee via RDP (voor Windows) of SSH (voor Linux). Installeer de benodigde software of kopieer de gewenste gegevens.
- Gebruik voor snellere inrichting van de pool de instelling ReadWrite disk cache voor de besturingssysteemschijf van de VM.
Een VM-momentopname maken
Een momentopname is een volledige, alleen-lezen kopie van een VHD. Als u een momentopname wilt maken van het besturingssysteem of de gegevensschijven van een VM, kunt u de Azure Portal of opdrachtregelprogramma's gebruiken. Zie de richtlijnen voor VM's voor stappen en opties voor het maken van een momentopname.
Een afbeelding maken van een of meer momentopnamen
Als u een beheerde afbeelding wilt maken op basis van een momentopname, gebruikt u opdrachtregelprogramma's van Azure, zoals de opdracht az image create. Maak een afbeelding door een momentopname van de besturingssysteemschijf en eventueel een of meer momentopnamen van de gegevensschijf op te geven.
Een galerie Azure Compute maken
Zodra u de beheerde afbeelding hebt gemaakt, moet u een Azure Compute Gallery maken om uw aangepaste afbeelding beschikbaar te maken. Zie Create an Azure Compute Gallery (Een galerie Azure Compute maken) voor meer informatie over het maken van Azure Compute Galerie voor uw afbeeldingen.
Een pool maken op basis van een gedeelde afbeelding met behulp van de Azure CLI
Gebruik de opdracht om een pool te maken op basis van uw gedeelde afbeelding met behulp van de Azure az batch pool create CLI. Geef de id van de gedeelde afbeelding op in het --image veld . Zorg ervoor dat het type besturingssysteem en de SKU overeenkomt met de versies die zijn opgegeven door --node-agent-sku-id
Notitie
U moet verifiëren met behulp van Azure AD. Als u shared-key-auth gebruikt, wordt er een verificatiefout weergegeven.
az batch pool create \
--id mypool --vm-size Standard_A1_v2 \
--target-dedicated-nodes 2 \
--image "/subscriptions/{sub id}/resourceGroups/{resource group name}/providers/Microsoft.Compute/galleries/{gallery name}/images/{image definition name}/versions/{version id}" \
--node-agent-sku-id "batch.node.ubuntu 16.04"
Een pool maken op basis van een gedeelde afbeelding met C
U kunt ook een pool maken op basis van een gedeelde afbeelding met behulp van de C#-SDK.
private static VirtualMachineConfiguration CreateVirtualMachineConfiguration(ImageReference imageReference)
{
return new VirtualMachineConfiguration(
imageReference: imageReference,
nodeAgentSkuId: "batch.node.windows amd64");
}
private static ImageReference CreateImageReference()
{
return new ImageReference(
virtualMachineImageId: "/subscriptions/{sub id}/resourceGroups/{resource group name}/providers/Microsoft.Compute/galleries/{gallery name}/images/{image definition name}/versions/{version id}");
}
private static void CreateBatchPool(BatchClient batchClient, VirtualMachineConfiguration vmConfiguration)
{
try
{
CloudPool pool = batchClient.PoolOperations.CreatePool(
poolId: PoolId,
targetDedicatedComputeNodes: PoolNodeCount,
virtualMachineSize: PoolVMSize,
virtualMachineConfiguration: vmConfiguration);
pool.Commit();
}
...
}
Een pool maken op basis van een gedeelde afbeelding met behulp van Python
U kunt ook een pool maken op basis van een gedeelde afbeelding met behulp van de Python SDK:
# Import the required modules from the
# Azure Batch Client Library for Python
import azure.batch as batch
import azure.batch.models as batchmodels
from azure.common.credentials import ServicePrincipalCredentials
# Specify Batch account and service principal account credentials
account = "{batch-account-name}"
batch_url = "{batch-account-url}"
ad_client_id = "{sp-client-id}"
ad_tenant = "{tenant-id}"
ad_secret = "{sp-secret}"
# Pool settings
pool_id = "LinuxNodesSamplePoolPython"
vm_size = "STANDARD_D2_V3"
node_count = 1
# Initialize the Batch client with Azure AD authentication
creds = ServicePrincipalCredentials(
client_id=ad_client_id,
secret=ad_secret,
tenant=ad_tenant,
resource="https://batch.core.windows.net/"
)
client = batch.BatchServiceClient(creds, batch_url)
# Configure the start task for the pool
start_task = batchmodels.StartTask(
command_line="printenv AZ_BATCH_NODE_STARTUP_DIR"
)
start_task.run_elevated = True
# Create an ImageReference which specifies the image from
# Azure Compute Gallery to install on the nodes.
ir = batchmodels.ImageReference(
virtual_machine_image_id="/subscriptions/{sub id}/resourceGroups/{resource group name}/providers/Microsoft.Compute/galleries/{gallery name}/images/{image definition name}/versions/{version id}"
)
# Create the VirtualMachineConfiguration, specifying
# the VM image reference and the Batch node agent to
# be installed on the node.
vmc = batchmodels.VirtualMachineConfiguration(
image_reference=ir,
node_agent_sku_id="batch.node.ubuntu 18.04"
)
# Create the unbound pool
new_pool = batchmodels.PoolAddParameter(
id=pool_id,
vm_size=vm_size,
target_dedicated_nodes=node_count,
virtual_machine_configuration=vmc,
start_task=start_task
)
# Create pool in the Batch service
client.pool.add(new_pool)
Maak een pool op basis van een gedeelde afbeelding met behulp van de Azure Portal
Gebruik de volgende stappen om een pool te maken van een gedeelde afbeelding in de Azure Portal.
- Open de Azure Portal.
- Ga naar Batch-accounts en selecteer uw account.
- Selecteer Pools en vervolgens Toevoegen om een nieuwe pool te maken.
- Selecteer in de sectie Type afbeelding de optie Azure Compute Galerie.
- Voltooi de resterende secties met informatie over uw beheerde afbeelding.
- Selecteer OK.

Overwegingen voor grote pools
Als u van plan bent om een pool te maken met honderden of duizenden VM's of meer met behulp van een gedeelde afbeelding, gebruikt u de volgende richtlijnen.
Azure Compute galeriereplicanummers. Voor elke pool met maximaal 300 exemplaren wordt u aangeraden ten minste één replica te bewaren. Als u bijvoorbeeld een pool met 3000 VM's maakt, moet u ten minste 10 replica's van uw afbeelding bewaren. We raden altijd aan om meer replica's te bewaren dan de minimale vereisten voor betere prestaties.
De time-out voor het in- of uitsparen van het aantal. Als uw pool een vast aantal knooppunten bevat (als deze niet automatisch wordt geschaald), verhoogt u de eigenschap van de pool, afhankelijk
resizeTimeoutvan de grootte van de pool. Voor elke 1000 VM's is de aanbevolen time-out voor het resize ten minste 15 minuten. De aanbevolen time-out voor het resize voor een pool met 2000 VM's is bijvoorbeeld ten minste 30 minuten.
Volgende stappen
- Zie Batch-servicewerkstroom en -resourcesvoor een uitgebreid overzicht van Batch.
- Meer informatie over Azure Compute Gallery.