Partilhar via


Usar nós de disco efémeros do sistema operativo para pools de Lotes do Azure

Algumas séries de máquinas virtuais (VM) do Azure dão suporte ao uso de discos efémeros do sistema operacional, que criam o disco do sistema operativo no armazenamento local da máquina virtual do nó. A configuração padrão do pool de lotes usa discos gerenciados do Azure para o disco do sistema operacional do nó, onde o disco gerenciado é como um disco físico, mas virtualizado e persistido no Armazenamento remoto do Azure.

Para cargas de trabalho em lote, os principais benefícios do uso de discos temporários do sistema operativo são a redução dos custos associados aos pools, o arranque mais rápido dos nós e um melhor desempenho das aplicações devido ao melhor desempenho dos discos do sistema operativo. Ao escolher se discos de sistema operacional efêmeros devem ser usados para sua carga de trabalho, considere os seguintes impactos:

  • Há menor latência de leitura/gravação em discos efêmeros do sistema operacional, o que pode levar a um melhor desempenho do aplicativo.
  • Não há custo de armazenamento para discos de sistema operacional efêmeros, enquanto há um custo para cada disco de sistema operacional gerenciado.
  • A reimagem para nós de computação é mais rápida para discos efêmeros em comparação com discos gerenciados, quando suportada pelo Batch.
  • O tempo de início do nó pode ser um pouco mais rápido quando discos efêmeros do sistema operacional são usados.
  • Os discos efêmeros do sistema operacional não são altamente duráveis e disponíveis; quando uma VM é removida por qualquer motivo, o disco do sistema operacional é perdido. Como as cargas de trabalho em lote são inerentemente sem estado e normalmente não dependem de que alterações no disco do sistema operativo perdurem, os discos efémeros do sistema operativo são apropriados para a maioria das cargas de trabalho em lote.
  • Atualmente, os discos efêmeros do sistema operacional não são suportados por todas as séries de VMs do Azure. Se um tamanho de VM não suportar um disco de sistema operacional efêmero, um disco de sistema operacional gerenciado deverá ser usado.

Nota

A configuração efêmera do disco do sistema operacional só é aplicável a pools 'virtualMachineConfiguration' e não é suportada por pools 'cloudServiceConfiguration'. Recomendamos o uso de 'virtualMachineConfiguration' para os seus pools Batch, pois os pools de 'cloudServiceConfiguration' não suportam todos os recursos e não estão planeadas novas funcionalidades.

Suporte da série VM

Para determinar se uma série de VMs suporta discos de SO efêmeros, verifique a documentação de cada instância de VM. Por exemplo, as séries Ddv4 e Ddsv4 suportam discos de SO efémeros.

Como alternativa, você pode consultar programaticamente para verificar o recurso 'EphemeralOSDiskSupported'. Um exemplo de cmdlet do PowerShell para consultar esse recurso é fornecido nas perguntas freqüentes sobre o disco efêmero do sistema operacional.

Criar um pool que usa discos efêmeros do sistema operacional

A EphemeralOSDiskSettings propriedade não está definida por padrão. Você deve definir esta propriedade para configurar o uso temporário do disco do sistema operativo nos nós do pool.

Gorjeta

Os discos de SO temporários não podem ser usados em conjunto com Spot VMs em pools Batch devido à política de remoção gerida pelo serviço.

O exemplo a seguir mostra como criar um pool de lotes onde os nós usam discos efêmeros do sistema operacional e não discos gerenciados.

Exemplos de código

Este trecho de código mostra como criar um pool com discos efêmeros do sistema operacional usando o SDK Python do Azure Batch com o disco do sistema operacional efêmero usando o disco temporário (cache).

virtual_machine_configuration=batch.models.VirtualMachineConfiguration(
    image_reference=image_ref_to_use,
    node_agent_sku_id=node_sku_id,
    os_disk=batch.models.OSDisk(
        ephemeral_os_disk_settings=batch.models.DiffDiskSettings(
            placement=batch.models.DiffDiskPlacement.cache_disk
        )
    )
)

Este é o mesmo trecho de código, mas para criar um pool com discos efêmeros do sistema operacional usando o SDK do Azure Batch .NET e C#.

VirtualMachineConfiguration virtualMachineConfiguration = new VirtualMachineConfiguration(
        imageReference: imageReference,
        nodeAgentSkuId: nodeAgentSku
        );
virtualMachineConfiguration.OSDisk = new OSDisk();
virtualMachineConfiguration.OSDisk.EphemeralOSDiskSettings = new DiffDiskSettings();
virtualMachineConfiguration.OSDisk.EphemeralOSDiskSettings.Placement = DiffDiskPlacement.CacheDisk;

Próximos passos