Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Al crear un grupo en Azure Batch con Configuración de máquina virtual, se especifica una imagen de máquina virtual (VM) que proporciona el sistema operativo para cada nodo de proceso en el grupo. Puede crear un grupo de máquinas virtuales con una imagen de Azure Marketplace admitida o crear una imagen personalizada con una imagen de Azure Compute Gallery.
Ventajas de Azure Compute Gallery
Al usar Azure Compute Gallery para la imagen personalizada, tiene el control sobre la configuración y el tipo del sistema operativo, así como el tipo de discos de datos. La imagen compartida puede incluir aplicaciones y datos de referencia que estén disponibles en todos los nodos del grupo de Batch tan pronto como se aprovisionen.
También puede tener varias versiones de una imagen según sea necesario para su entorno. Cuando se usa una versión de la imagen para crear una VM, la versión de la imagen se usa para crear nuevos discos para la VM.
El uso de una imagen compartida ahorra tiempo en preparar los nodos de proceso del grupo para ejecutar la carga de trabajo de Batch. Se puede usar una imagen de Azure Marketplace e instalar el software en cada nodo de ejecución una vez que se haya aprovisionado, pero el uso de una imagen de Shared Image podría ser más eficiente. Además, puede especificar varias réplicas para la imagen compartida, de modo que, al crear grupos con muchas máquinas virtuales (más de 600), ahorrará tiempo en la creación de los grupos.
El uso de una imagen de Shared Image configurada para su escenario puede proporcionar varias ventajas:
- Uso de las mismas imágenes en todas las regiones. Puede crear réplicas de una imagen compartida en distintas regiones para que todos los pools utilicen la misma imagen.
- Configuración del sistema operativo (SO). La configuración del disco de sistema operativo de la imagen se puede personalizar.
- Preinstalar las aplicaciones. Preinstalar las aplicaciones en el disco del sistema operativo es más eficaz y menos propenso a errores que instalar las aplicaciones después de aprovisionar los nodos de ejecución con una tarea de inicio.
- Copie grandes cantidades de datos de una sola vez. Haga que los datos estáticos formen parte de la imagen compartida administrada copiándolos en los discos de datos de una imagen administrada. Solo debe hacerse una vez y los datos estarán disponibles para cada nodo del grupo.
- Aumente los grupos a tamaños mayores. Con Azure Compute Gallery, puede crear grupos más grandes con las imágenes personalizadas junto con más réplicas de imágenes compartidas.
- Mejor rendimiento que el uso de una imagen administrada como imagen personalizada. Para un grupo de imágenes personalizadas de Shared Image, el tiempo necesario para alcanzar el estado estable es hasta un 25 % más rápido y la latencia de inactividad de la máquina virtual es hasta un 30 % más breve.
- Control de versiones y agrupación de imágenes para facilitar su administración. La definición de la agrupación de imágenes contiene información acerca de por qué se creó la imagen, para qué sistema operativo sirve e información acerca del uso de la imagen. La agrupación de imágenes permite una administración más sencilla de las imágenes. Para más información, consulte Definiciones de imagen.
Requisitos previos
- Una cuenta de Azure Batch Para crear una cuenta de Batch, consulte las guías de inicio rápido de Batch con Azure Portal o la CLI de Azure.
Nota:
Se requiere autenticación mediante Microsoft Entra ID. Si utiliza la autenticación con clave compartida, obtendrá un error de autenticación.
- una imagen de Azure Compute Gallery Para crear una imagen compartida, debe disponer de o crear un recurso de imagen administrada. La imagen debe crearse desde instantáneas del disco del sistema operativo de la máquina virtual y, opcionalmente, de sus discos de datos conectados.
Nota:
Si la imagen compartida está en una suscripción diferente a la cuenta de Batch, debe registrar el proveedor de recursos Microsoft.Batch en la suscripción donde reside la imagen compartida. Ambas suscripciones deben pertenecer al mismo inquilino de Microsoft Entra.
La imagen puede estar en una región diferente siempre que tenga réplicas en la misma región que la cuenta de Batch.
Si usa una aplicación de Microsoft Entra para crear un grupo de imágenes personalizadas con una imagen de Azure Compute Gallery, debe haberse concedido a la aplicación un rol integrado de Azure que le proporcione acceso a Shared Image. Para conceder este acceso en Azure Portal, navegue a la imagen compartida, seleccione Control de acceso (IAM) y agregue una asignación de roles para la aplicación.
Nota:
Los permisos de lectura para la imagen Azure Compute Gallery son inadecuados, ya que requieren la ejecución de la siguiente acción mínima: Microsoft.Compute/disks/beginGetAccess/action para obtener el acceso adecuado.
Preparación de una imagen compartida
En Azure, puede preparar una imagen compartida a partir de una imagen administrada, que se puede crear a partir de:
- Instantáneas del sistema operativo y los discos de datos de una máquina virtual de Azure
- Una máquina virtual de Azure generalizada con discos administrados
- Un VHD local generalizado cargado en la nube
Nota:
Batch solo admite imágenes compartidas generalizadas; no se puede usar una imagen compartida especializada para crear un grupo.
Consulte los siguientes pasos para preparar la máquina virtual, tome una instantánea y cree una imagen a partir de ella.
Preparación de la máquina virtual
Si va a crear una máquina virtual para la imagen, use una imagen de Azure Marketplace admitida por Batch como imagen base para la imagen administrada.
Para obtener una lista completa de las referencias de imágenes de Azure Marketplace actuales compatibles con Azure Batch, use una de las siguientes API para obtener una lista de imágenes de máquinas virtuales Windows y Linux:
- PowerShell: Imágenes compatibles con Azure Batch
- CLI de Azure: Imágenes compatibles con el grupo de Azure Batch
- API de servicio de Batch: API de servicio de Batch e imágenes compatibles con el servicio de Azure Batch
Siga estas instrucciones al crear máquinas virtuales.
- Asegúrese de que la máquina virtual se crea con un disco administrado. Se trata de la configuración de almacenamiento predeterminada cuando se crea una máquina virtual.
- No instale extensiones de Azure, como la extensión de script personalizado, en la máquina virtual. Si la imagen contiene una extensión preinstalada, Azure podría experimentar problemas al implementar el grupo de Batch.
- Cuando use discos de datos conectados, debe montar y dar formato a los discos desde una máquina virtual para usarlos.
- Asegúrese de que la imagen del sistema operativo base que proporcione usa la unidad temporal predeterminada. El agente de nodo de Batch actualmente espera la unidad temporal predeterminada.
- Asegúrese de que el disco del sistema operativo no esté cifrado.
- Una vez que la máquina virtual está en ejecución, conéctese a ella a través de RDP (para Windows) o SSH (para Linux). Instale el software necesario o copie los datos deseados.
- Para que el aprovisionamiento de grupo se realice más rápidamente, use la configuración de caché de disco ReadWrite para el disco del sistema operativo de la máquina virtual.
Crear una Azure Compute Gallery
Debe crear una instancia de Azure Compute Gallery para que la imagen personalizada esté disponible. Seleccione esta galería al crear la imagen en los siguientes pasos. Para obtener información sobre cómo crear una instancia de Azure Compute Gallery para las imágenes, consulte Creación de una instancia de Azure Compute Gallery.
Crear una imagen
Para crear una imagen a partir de una máquina virtual en el portal, consulte Captura de una imagen de una máquina virtual.
Para crear una imagen con un origen distinto de una máquina virtual, consulte Crear una imagen.
Nota:
Si la imagen base tiene información del plan de compra, asegúrese de que la imagen de la galería tenga información de plan de compra idéntica como imagen base. Para más información sobre la creación de una imagen que tiene un plan de compra, consulte Proporcionar información del plan de compra de Azure Marketplace al crear imágenes.
Si la imagen base no tiene información del plan de compra, evite especificar la información del plan de compra para la imagen de la galería.
Para obtener información sobre el plan de compra de estas imágenes de Marketplace, consulte la guía para las VM de Linux o Windows.
Use Azure PowerShell Get-AzGalleryImageDefinition o la CLI de Azure az sig image-definition show para comprobar si la imagen de la galería tiene la información del plan correcta.
Creación de un grupo a partir de una imagen de Shared Image con la CLI de Azure
Para crear un grupo a partir de la imagen de Shared Image mediante la CLI de Azure, use el comando az batch pool create. Especifique el identificador de la imagen de Shared Image en el campo --image. Asegúrese de que el tipo de sistema operativo y la SKU coinciden con las versiones especificadas por --node-agent-sku-id.
Importante
El identificador de SKU del agente de nodo debe coincidir con publisher/offer/SKU para que el nodo pueda iniciarse.
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}
Creación de un grupo a partir de una imagen de Shared Image mediante C#
Como alternativa, puede crear un grupo a partir de una imagen compartida mediante el Azure. ResourceManager.Batch SDK.
BatchImageReference imageReference = new BatchImageReference()
{
Id = new ResourceIdentifier(
"/subscriptions/{sub id}/resourceGroups/{resource group name}/providers/Microsoft.Compute/galleries/{gallery name}/images/{image definition name}/versions/{version id}")
};
BatchAccountPoolData poolData = new BatchAccountPoolData()
{
VmSize = PoolVMSize,
DeploymentConfiguration = new BatchDeploymentConfiguration()
{
VmConfiguration = new BatchVmConfiguration(
imageReference: imageReference,
nodeAgentSkuId: "batch.node.ubuntu 22.04")
},
ScaleSettings = new BatchAccountPoolScaleSettings()
{
FixedScale = new BatchAccountFixedScaleSettings() { TargetDedicatedNodes = PoolNodeCount }
}
};
ArmOperation<BatchAccountPoolResource> pool = await batchAccount.GetBatchAccountPools()
.CreateOrUpdateAsync(WaitUntil.Completed, PoolId, poolData);
Creación de un grupo a partir de una imagen compartida mediante Python
También puede crear un grupo a partir de una imagen compartida mediante el SDK de Python:
# Import the required modules from the
# Azure Batch Client Library for Python
from azure.batch import BatchClient, models
from azure.identity import DefaultAzureCredential
# Specify Batch account credentials
account_endpoint = "https://{batch-account-name}.{region}.batch.azure.com"
# Pool settings
pool_id = "LinuxNodesSamplePoolPython"
vm_size = "STANDARD_D2_V3"
node_count = 1
# Initialize the Batch client with Microsoft Entra ID authentication
client = BatchClient(endpoint=account_endpoint, credential=DefaultAzureCredential())
# Configure the start task for the pool
start_task = models.BatchStartTask(
command_line="printenv AZ_BATCH_NODE_STARTUP_DIR",
user_identity=models.UserIdentity(
auto_user=models.AutoUserSpecification(
elevation_level=models.ElevationLevel.ADMIN,
scope=models.AutoUserScope.POOL,
)
),
)
# Create an image reference that points to an Azure Compute Gallery image.
ir = models.BatchVmImageReference(
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
vmc = models.VirtualMachineConfiguration(
image_reference=ir,
node_agent_sku_id="batch.node.ubuntu 22.04",
)
# Create the unbound pool
new_pool = models.BatchPoolCreateOptions(
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.create_pool(pool=new_pool)
Crear un grupo a partir de una imagen compartida o una imagen personalizada mediante Azure Portal
Use los pasos siguientes para crear un grupo a partir de una imagen compartida en Azure Portal.
- Abra Azure Portal.
- Vaya a Cuentas de Batch y seleccione su cuenta.
- Seleccione Grupos y, luego, Agregar para crear un grupo.
- En la sección Tipo de imagen, seleccione Azure Compute Gallery.
- Complete el resto de secciones con información sobre la imagen administrada.
- Seleccione Aceptar.
- Una vez asignado el nodo, utilice Conectar para generar usuario y el archivo RDP para Windows O utilice SSH para Linux para iniciar sesión en el nodo asignado y verificar.
Consideraciones para grandes agrupaciones
Si tiene previsto crear un conjunto con cientos o miles de máquinas virtuales, o más, mediante una imagen compartida, siga estas recomendaciones.
Número de réplicas de Azure Compute Gallery. Para cada grupo con hasta 300 instancias, se recomienda conservar al menos una réplica. Por ejemplo, si va a crear un grupo con 3000 máquinas virtuales, debe mantener al menos 10 réplicas de la imagen. Siempre se recomienda mantener más réplicas que las indicadas por los requisitos mínimos para un mejor rendimiento.
Tiempo de espera del cambio de tamaño. Si el grupo contiene un número de nodos fijo (no se escala automáticamente), aumente la propiedad
resizeTimeoutdel grupo en función de su tamaño. Por cada 1 000 MV, el tiempo de espera recomendado para redimensionar es de al menos 15 minutos. Por ejemplo, el tiempo de espera recomendado para redimensionar un grupo con 2 000 MV es de al menos 30 minutos.
Pasos siguientes
- Para obtener información general detallada sobre Batch, consulte Recursos y flujo de trabajo del servicio de Batch.
- Más información sobre Azure Compute Gallery.