Vytvoření vlastního fondu imagí pomocí Galerie výpočetních prostředků Azure

Při vytváření fondu Azure Batch pomocí konfigurace virtuálního počítače zadáte image virtuálního počítače, která poskytuje operační systém pro každý výpočetní uzel ve fondu. Můžete vytvořit fond virtuálních počítačů s podporovanou imagí Azure Marketplace nebo vytvořit vlastní image s imagí Galerie výpočetních prostředků Azure.

Pokud pro vlastní image používáte Galerii výpočetních prostředků Azure, máte kontrolu nad typem a konfigurací operačního systému a typem datových disků. Sdílená image může obsahovat aplikace a referenční data, která budou dostupná na všech uzlech fondu Batch, jakmile budou zřízeny.

Podle potřeby můžete mít také několik verzí image. Pokud k vytvoření virtuálního počítače použijete verzi image, použije se verze image k vytvoření nových disků pro virtuální počítač.

Použití sdílené image šetří čas při přípravě výpočetních uzlů fondu na spuštění úlohy Batch. Po zřízení je možné použít image Azure Marketplace a nainstalovat software na každý výpočetní uzel, ale použití sdílené image je obvykle efektivnější. Kromě toho můžete pro sdílenou image zadat více replik, takže při vytváření fondů s mnoha virtuálními počítači (více než 600 virtuálních počítačů) ušetříte čas při vytváření fondu.

Použití sdílené image nakonfigurované pro váš scénář může poskytnout několik výhod:

  • Použijte stejné obrázky napříč oblastmi. Repliky sdílených imagí můžete vytvářet v různých oblastech, takže všechny fondy využívají stejnou image.
  • Nakonfigurujte operační systém (OS). Konfiguraci disku operačního systému image můžete přizpůsobit.
  • Předinstalujte aplikace. Předinstalace aplikací na disk s operačním systémem je efektivnější a méně náchylná k chybám než instalace aplikací po zřízení výpočetních uzlů pomocí spouštěcí úlohy.
  • Zkopírujte velké objemy dat jednou. Vytvořte statická data ze spravované sdílené image tak, že ji zkopírujete na datové disky spravované image. Stačí to udělat jenom jednou a zpřístupnit data pro každý uzel fondu.
  • Zvětší fondy na větší velikosti. V Galerii výpočetních prostředků Azure můžete vytvářet větší fondy s přizpůsobenými imagemi spolu s dalšími replikami sdílených imagí.
  • Lepší výkon než použití spravované image jako vlastní image U fondu vlastních imagí sdílené image je doba dosažení stabilního stavu až o 25 % rychlejší a latence nečinnosti virtuálního počítače je až o 30 % kratší.
  • Správa verzí imagí a seskupování pro snadnější správu Definice seskupení obrázků obsahuje informace o tom, proč byla image vytvořena, o jaký operační systém se jedná, a informace o použití image. Seskupování imagí umožňuje snadnější správu imagí. Další informace najdete v tématu Definice obrázků.

Požadavky

  • Účet Azure Batch. Pokud chcete vytvořit účet Batch, podívejte se na rychlé starty služby Batch pomocí webu Azure Portal nebo Azure CLI.

Poznámka:

Vyžaduje se ověřování pomocí ID Microsoft Entra. Pokud používáte ověřování pomocí sdíleného klíče, zobrazí se chyba ověřování.

  • obrázek galerie výpočetních prostředků Azure. Pokud chcete vytvořit sdílenou image, musíte mít nebo vytvořit prostředek spravované image. Image by se měla vytvořit ze snímků disku s operačním systémem virtuálního počítače a volitelně z připojených datových disků.

Poznámka:

Pokud sdílená image není ve stejném předplatném jako účet Batch, musíte pro toto předplatné zaregistrovat poskytovatele prostředků Microsoft.Batch. Tato dvě předplatná musí být ve stejném tenantovi Microsoft Entra.

Image může být v jiné oblasti, pokud má repliky ve stejné oblasti jako váš účet Batch.

Pokud k vytvoření vlastního fondu imagí s imagí Galerie výpočetních prostředků Azure používáte aplikaci Microsoft Entra, musí mít tato aplikace udělenou integrovanou roli Azure, která jí dává přístup ke sdílené imagi. Tento přístup můžete udělit na webu Azure Portal tak, že přejdete na sdílenou image, vyberete Řízení přístupu (IAM) a přidáte přiřazení role pro aplikaci.

Poznámka:

Oprávnění čtenáře pro image Galerie výpočetních prostředků Azure jsou nedostatečná, protože vyžadují provedení následující minimální akce: Microsoft.Compute/disks/beginGetAccess/action pro odpovídající přístup.

Příprava sdílené image

V Azure můžete připravit sdílenou image ze spravované image, kterou je možné vytvořit z:

  • Snímky operačního systému a datových disků virtuálního počítače Azure
  • Generalizovaný virtuální počítač Azure se spravovanými disky
  • Generalizovaný místní virtuální pevný disk nahraný do cloudu

Poznámka:

Služba Batch podporuje pouze generalizované sdílené image; Specializovaná sdílená image se nedá použít k vytvoření fondu.

Následující kroky ukazují, jak připravit virtuální počítač, pořídit snímek a vytvořit image ze snímku.

Příprava virtuálního počítače

Pokud vytváříte nový virtuální počítač pro image, použijte image Azure Marketplace podporovanou službou Batch jako základní image pro spravovanou image.

Pokud chcete získat úplný seznam aktuálních odkazů na image z Azure Marketplace podporovaných službou Azure Batch, použijte jedno z následujících rozhraní API k vrácení seznamu imagí virtuálních počítačů s Windows a Linuxem:

Při vytváření virtuálních počítačů postupujte podle těchto pokynů:

  • Ujistěte se, že je virtuální počítač vytvořený se spravovaným diskem. Toto je výchozí nastavení úložiště při vytváření virtuálního počítače.
  • Nenainstalujte na virtuální počítač rozšíření Azure, jako je rozšíření vlastních skriptů. Pokud image obsahuje předinstalované rozšíření, azure může při nasazování fondu Batch narazit na problémy.
  • Při použití připojených 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.
  • Ujistěte se, že základní image operačního systému, kterou zadáte, používá výchozí dočasnou jednotku. Agent uzlu Batch aktuálně očekává výchozí dočasnou jednotku.
  • Ujistěte se, že disk s operačním systémem není šifrovaný.
  • Po spuštění virtuálního počítače se k němu připojte přes protokol RDP (pro Windows) nebo SSH (pro Linux). Nainstalujte veškerý potřebný software nebo zkopírujte požadovaná data.
  • Pro rychlejší zřizování fondu použijte nastavení mezipaměti disku ReadWrite pro disk s operačním systémem virtuálního počítače.

Abyste mohli vlastní image zpřístupnit, musíte vytvořit galerii výpočetních prostředků Azure. Tuto galerii vyberte při vytváření image v následujících krocích. Informace o tom, jak vytvořit galerii výpočetních prostředků Azure pro vaše image, najdete v tématu Vytvoření galerie výpočetních prostředků Azure.

Vytvoření image

Pokud chcete vytvořit image z virtuálního počítače na portálu, přečtěte si téma Zachycení image virtuálního počítače.

Pokud chcete vytvořit image pomocí jiného zdroje než virtuálního počítače, přečtěte si téma Vytvoření image.

Poznámka:

Pokud základní image obsahuje informace o plánu nákupu, ujistěte se, že image galerie obsahuje stejné informace o nákupním plánu jako základní image. Další informace o vytvoření image s plánem nákupu najdete v tématu Dodání informací o nákupním plánu Azure Marketplace při vytváření imagí.

Pokud základní image neobsahuje informace o plánu nákupu, vyhněte se zadávání informací o nákupním plánu pro image galerie.

Informace o nákupním plánu těchto imagí z Marketplace najdete v doprovodných materiálech pro virtuální počítače s Linuxem nebo Windows .

Pomocí rutiny Get-AzGalleryImageDefinition nebo Azure CLI az sig image-definition show zkontrolujte, jestli má obrázek galerie správné informace o plánu.

Vytvoření fondu ze sdílené image pomocí Azure CLI

Pokud chcete vytvořit fond ze sdílené image pomocí Azure CLI, použijte az batch pool create tento příkaz. Zadejte ID sdíleného obrázku --image v poli. Ujistěte se, že typ operačního systému a skladová položka odpovídají verzím určeným --node-agent-sku-id

Důležité

Id skladové položky agenta uzlu musí být v souladu s vydavatelem, nabídkou nebo skladovou jednotkou, aby se uzel spustil.

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}

Vytvoření fondu ze sdílené image pomocí jazyka C#

Případně můžete vytvořit fond ze sdílené image pomocí sady SDK jazyka C#.

private static VirtualMachineConfiguration CreateVirtualMachineConfiguration(ImageReference imageReference)
{
    return new VirtualMachineConfiguration(
        imageReference: imageReference,
        nodeAgentSkuId: {});
}

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();
    }
    ...
}

Vytvoření fondu ze sdílené image pomocí Pythonu

Fond můžete vytvořit také ze sdílené image pomocí sady 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}
)

# 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)

Vytvoření fondu ze sdílené image nebo vlastní image pomocí webu Azure Portal

Pomocí následujícího postupu vytvořte fond ze sdílené image na webu Azure Portal.

  1. Otevřete Azure Portal.
  2. Přejděte na účty Batch a vyberte svůj účet.
  3. Vyberte Fondy a pak přidejte nový fond.
  4. V části Typ image vyberte Galerii výpočetních prostředků Azure.
  5. Dokončete zbývající části s informacemi o spravované imagi.
  6. Vyberte OK.
  7. Po přidělení uzlu použijte Připojení k vygenerování uživatele a souboru RDP pro Windows NEBO použijte SSH k Linuxu, abyste se přihlásili k přidělenému uzlu a ověřili.

Vytvořte fond ze sdílené image pomocí portálu.

Důležité informace pro velké fondy

Pokud plánujete vytvořit fond se stovkami nebo tisíci virtuálních počítačů nebo více pomocí sdílené image, postupujte podle následujících pokynů.

  • Čísla repliky galerie služby Azure Compute Pro každý fond s až 300 instancemi doporučujeme uchovávat aspoň jednu repliku. Pokud například vytváříte fond s 3 000 virtuálními počítači, měli byste zachovat alespoň 10 replik image. Kvůli lepšímu výkonu vždy doporučujeme zachovat více replik než minimální požadavky.

  • Změna časového limitu Pokud váš fond obsahuje pevný počet uzlů (pokud se automaticky neškálování), zvětšete resizeTimeout vlastnost fondu v závislosti na velikosti fondu. Pro každých 1 000 virtuálních počítačů je doporučený časový limit změny velikosti alespoň 15 minut. Například doporučený časový limit změny velikosti fondu s 2 000 virtuálními počítači je alespoň 30 minut.

Další kroky