Uso de nodos de disco de SO efímero para grupos de Azure Batch

Algunas series de máquinas virtuales (VM) de Azure admiten el uso de discos de SO efímeros, que crean el disco de SO en el almacenamiento local de la máquina virtual del nodo. La configuración predeterminada del grupo de Batch usa discos administrados de Azure para el disco de SO del nodo, donde el disco administrado es como un disco físico, pero virtualizado y persistente en la instancia remota de Azure Storage.

Para las cargas de trabajo de Batch, las principales ventajas de usar discos de SO efímeros son los costos reducidos asociados a los grupos, la posibilidad de un tiempo de inicio de nodo más rápido y un mejor rendimiento de la aplicación debido a un mejor rendimiento del disco de SO. Al elegir si se deben usar discos de SO efímeros para la carga de trabajo, tenga en cuenta los siguientes efectos:

  • Hay una menor latencia de lectura y escritura en los discos de SO efímeros, lo que puede dar lugar a un mejor rendimiento de la aplicación.
  • No hay ningún costo de almacenamiento para los discos de SO efímeros, mientras que sí lo hay por cada disco de SO administrado.
  • En el caso de los nodos de ejecución, restablecer la imagen inicial es más rápido para los discos efímeros que para los discos administrados, cuando se admiten en Batch.
  • El tiempo de inicio del nodo puede ser ligeramente más rápido cuando se usan discos de SO efímeros.
  • La durabilidad y disponibilidad de los discos de SO efímeros es reducida; cuando se quita una máquina virtual por cualquier motivo, se pierde el disco de SO. Como las cargas de trabajo de Batch son sin estado de forma intrínseca y normalmente no dependen de los cambios en el disco de SO que se conserva, los discos de SO efímeros son adecuados para su uso en la mayoría de las cargas de trabajo de Batch.
  • Los discos de SO efímeros no son compatibles actualmente con todas las series de máquinas virtuales de Azure. Si un tamaño de máquina virtual no admite un disco de SO efímero, se debe usar un disco de SO administrado.

Nota

La configuración de discos de SO efímeros solo se aplica a los grupos "virtualMachineConfiguration" y no se admite en los grupos "cloudServiceConfiguration". Se recomienda usar "virtualMachineConfiguration" para los grupos de Batch, ya que los grupos "cloudServiceConfiguration" no admiten todas las características y no se planea ninguna funcionalidad nueva. No podrá crear nuevos grupos "cloudServiceConfiguration" ni agregar nuevos nodos a los grupos existentes después del 29 de febrero de 2024. Para más información, consulte Migración de la configuración del grupo de Batch de Cloud Services a máquina virtual.

Compatibilidad con series de máquina virtual

Para determinar si una serie de máquinas virtuales admite discos de SO efímeros, consulte la documentación de cada instancia de máquina virtual. Por ejemplo, las series Ddv4 y Ddsv4 admiten discos de SO efímeros.

Como alternativa, puede consultar mediante programación para comprobar la funcionalidad "EphemeralOSDiskSupported". En las preguntas más frecuentes sobre discos de SO efímeros se proporciona un cmdlet de PowerShell de ejemplo para consultar esta funcionalidad.

Creación de un grupo que use discos de SO efímeros

La propiedad EphemeralOSDiskSettings no se establece de manera predeterminada. Debe establecer esta propiedad para configurar el uso de discos de SO efímeros en los nodos del grupo.

Sugerencia

Los discos de SO efímeros no se pueden usar junto con máquinas virtuales de acceso puntual en grupos de Batch debido a la directiva de expulsión administrada por el servicio.

En el ejemplo siguiente se muestra cómo crear un grupo de Batch donde los nodos usan discos de SO efímeros y no discos administrados.

Ejemplos de código

Este fragmento de código muestra cómo crear un grupo con discos de SO efímeros mediante el SDK de Azure Batch para Python con el disco del SO efímero mediante el disco temporal (caché).

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 es el mismo fragmento de código, pero para crear un grupo con discos de SO efímeros mediante el SDK de Azure Batch para .NET y C#.

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

Pasos siguientes