Compartir a través de


Expansión a Azure Batch con Microsoft HPC Pack

Este tema contiene información sobre cómo extender el clúster de HPC Pack para incluir grupos de Azure Batch como recursos de proceso. Con estos grupos de Azure Batch, puede aumentar ("ráfaga") la capacidad del clúster de HPC a petición. Consulte la documentación de Azure.com para más información sobre el servicio Azure Batch.

En este tema:

Prerrequisitos

  • Clúster de HPC Pack : debe crear y configurar al menos el nodo principal de un clúster. La característica de ráfaga a Batch está disponible a partir de HPC Pack 2012 R2 Update 3.

  • Suscripción de Azure : si aún no tiene una suscripción, regístrese para obtener una evaluación gratuita, use las ventajas del suscriptor de MSDN o explore otras opciones de compra.

Paso 1: Creación de una cuenta de Azure Batch

  • Cuenta de Azure Batch: consulte Creación y administración de una cuenta de Azure Batch para crear una cuenta de Batch en Azure Portal. Necesitará la siguiente información de cuenta (disponible en el portal) para expandirse a Batch desde HPC Pack 2012 R2 Update 3.

    • Nombre de la cuenta de Batch

    • Dirección URL de la cuenta de Batch

    • Clave de cuenta de Batch

Desde HPC Pack 2016 Update 1 on, es posible que necesite la siguiente información de cuenta para expandirse a Batch desde HPC Pack según los diferentes modos de asignación de recursos de Azure Batch (Servicio de Batch o Suscripción de usuario) y métodos de autenticación de cliente (clave de acceso de Batch o Azure AD):

  1. Batch Serivce con clave de acceso
    • Nombre de la cuenta de Batch
    • Dirección URL de la cuenta de Batch
    • Clave de cuenta de Batch
  2. Servicio batch o suscripción de usuario con Azure AD
    • Instancia de AAD de Batch
    • Identificador de inquilino de Batch AAD
    • Id. de ClientApp de Batch AAD
    • Clave de aplicación cliente de AAD por lotes
    • Nombre de la cuenta de Batch
    • Dirección URL de la cuenta de Batch

Compruebe la tabla siguiente para decidir qué tipo de cuenta de Batch y método de autenticación elegir. También puede consultar este blog y este documento para obtener más información sobre el modo de asignación del grupo de suscripciones de usuario y cómo usar la autenticación de Azure AD para el servicio Azure Batch.

Modo de asignación de grupo o tipo de cuenta Métodos de autenticación Tipos de imagen de máquina virtual Máquina virtual de prioridad baja Red virtual
Servicio por lotes Clave de acceso/ Azure AD PaaS/IaaS (MarketPlaceImage) / IaaS (CustomImage a través de Azure AD) Sí (a través de Azure AD)
Suscripción de usuario Azure AD IaaS (MarketPlaceImage)/ IaaS (CustomImage) No

Use la CLI de Azure para crear una cuenta de Batch con el modo de asignación del grupo de servicios de Batch y use la clave de acceso de Batch para la autenticación como se indica a continuación:

# Authenticate CLI session.
az login

# Select the subscription
az account set -s mysubscription

# Create a resource group.
az group create --name myresourcegroup --___location mylocation

# Let's add a storage account reference to the Batch account for use as 'auto-storage'
# for applications. We'll start by creating the storage account.
az storage account create -g myresourcegroup -n mystorageaccount -l mylocation --sku Standard_LRS

# Create a Batch account.
az batch account create -g myresourcegroup -n mybatchaccount -l mylocation --storage-account mystorageaccount

# Now we can display the details of our created account.
az batch account show -g myresourcegroup -n mybatchaccount

# We can view the access keys to the Batch Account for future client authentication.
az batch account keys list -g myresourcegroup -n mybatchaccount

Uso de la CLI de Azure para crear una cuenta de Batch con el modo de asignación del grupo de suscripciones de usuario

# Authenticate CLI session.
az login

# Select the subscription
az account set -s mysubscription

# Allow Azure Batch to access the subscription (one-time operation).
az role assignment create --assignee MicrosoftAzureBatch --role contributor

# Create a resource group.
az group create --name myresourcegroup --___location mylocation

# A Batch account that will allocate pools in the user's subscription must be configured
# with a Key Vault located in the same region. Let's create this first.
az keyvault create --resource-group myresourcegroup --name mykeyvault --___location mylocation --enabled-for-deployment true     --enabled-for-disk-encryption true --enabled-for-template-deployment true

# We will add an access-policy to the Key Vault to allow access by the Batch Service.
az keyvault set-policy --resource-group myresourcegroup --name mykeyvault --spn ddbf3205-c6bd-46ae-8127-60eb93363864 --key-permissions all --secret-permissions all

# Now we can create the Batch account, referencing the Key Vault either by name (if they exist in the same resource group) or by its full resource ID.
az batch account create --resource-group myresourcegroup --name mybatchaccount –___location mylocation --keyvault mykeyvault

Para configurar Azure AD para la autenticación de Batch y obtener información de Batch AAD

  1. Obtenga la instancia de AAD de Batch. Si usa la nube global de Azure, la instancia de AAD es https://login.microsoftonline.com/.
  2. Obtenga el identificador de inquilino de AAD de Batch. En Azure Portal, haga clic en Más servicios, busque y elija Azure Active Directory, seleccione Active Directory seleccionando su cuenta en la esquina superior derecha de la página y haga clic en Propiedades. Copie el valor GUID proporcionado para el identificador de directorio. Este valor también se denomina id. de inquilino.
  3. Registre la aplicación cliente de Batch y obtenga el id. de clientApp de Batch AAD.
  • En Azure Portal, elija el inquilino de Azure AD seleccionando su cuenta en la esquina superior derecha de la página. - Elija Más servicios, busque y elija Registros de aplicaciones. - Haga clic en +Nuevo registro de aplicaciones. - Rellene el nombre, elija Aplicación web o API como Tipo de aplicación y rellene un valor específico de la aplicación, por ejemplo, https://myAppName para el URI de inicio de sesión. Haga clic en Crear. - Una vez creada correctamente la aplicación, seleccione la aplicación en la lista de Registros de aplicaciones y haga clic en Propiedades. Copie el valor GUID proporcionado para el identificador de aplicación; se usará como id. de clientApp de Batch AAD.
  1. Configure para usar una entidad de servicio para la autenticación y obtener la clave clientApp de Batch AAD.
  • Solicite una clave secreta para la aplicación. Seleccione la aplicación creada en la lista de registros de aplicaciones y haga clic en Claves, escriba Descripción de la clave y elija Duración y, a continuación, haga clic en Guardar. Copie el valor mostrado que se usará como clave clientApp de Batch AAD. - Asigne un rol RBAC a la aplicación para autenticarse con una entidad de servicio. Elija Más servicios, busque y elija Cuentas de Batch, haga clic en la cuenta por lotes creada y seleccione Control de acceso (IAM) . Haga clic en +ADD, seleccione Rol de colaborador y la aplicación registrada. Haz clic en Guardar.

Nota:

Tenga en cuenta que tanto el modo de servicio de Batch como el modo de suscripción de usuario de Batch admiten la autenticación de Azure AD.

Importante: Una vez configurada la autenticación de Azure AD para Batch con la siguiente información de Batch AAD obtenida, abra administrador de clústeres de HPC, en Configuración-> Lista de tareas pendientes de implementación, haga clic en Establecer configuración de Azure Batch para rellenar la información en consecuencia en el formulario y, a continuación, haga clic en Aceptar. Este paso es necesario cuando se usa Azure AD para la autenticación de Batch en HPC Pack.

  • Instancia de AAD de Batch
  • Identificador de inquilino de Batch AAD
  • Id. de ClientApp de Batch AAD
  • Clave de aplicación cliente de AAD por lotes

Como alternativa, puede usar el cmdlet de PowerShell de HPC para establecer la información de Batch AAD, como se muestra a continuación:

# HPC PowerShell
Set-HpcClusterRegistry -BatchAADInstance '<AAD Instance e.g. https://login.microsoftonline.com/>' -BatchAADTenantId <TenantGUID> -BatchAADClientAppId <AppGUID> -BatchAADClientAppKey '<AppKey>'

Paso 2: Creación de una plantilla de grupo de Azure Batch

Para crear una plantilla de grupo de Azure Batch, use el Asistente para crear plantillas de nodo en el Administrador de clústeres de HPC.

Para crear una plantilla de grupo de Batch

  1. Inicie el Administrador de clústeres de HPC.

  2. En Configuración, en el panel de navegación, haga clic en Plantillas de nodo.

  3. En el panel Acciones , haga clic en Nuevo.
    Aparece el Asistente para crear plantillas de nodo.

  4. En la página Elegir tipo de plantilla de nodo , haga clic en plantilla de grupo de Azure Batch y, a continuación, haga clic en Siguiente.

  5. En la página Especificar nombre de plantilla , escriba un nombre para la plantilla de nodo y, opcionalmente, escriba una descripción para ella. Haga clic en Next.

  6. En la página Proporcionar la información de la cuenta de Azure Batch , rellene el nombre de la cuenta de Batch. Si el tipo de cuenta de Batch es Servicio de Batch, elija BatchService como tipo de cuenta de Batch. Si usa la clave de acceso por lotes para la autenticación, rellene la clave como clave de cuenta, si usa la autenticación de Azure AD, déjela en blanco. Si el tipo de cuenta de Batch es Suscripción de usuario, elija UserSubscription como tipo de cuenta de Batch. Rellene la dirección URL de la cuenta de Batch y la cadena de conexión de Azure Storage que obtuvimos anteriormente y, a continuación, haga clic en Siguiente.

Nota:

cuando se requiera la autenticación de AAD, asegúrese de que la instancia de Batch AAD, el identificador de inquilino de Batch AAD, el identificador de clientApp de Batch AAD y la clave de aplicación de aplicaciones de Batch AAD ya están establecidas en la lista de tareas pendientes de implementación o la validación de la cuenta produciría un error "Cuenta de Azure Batch no válida. Compruebe la configuración de la cuenta de Azure Batch." al hacer clic en Siguiente.

  1. En la página Configuración de escalabilidad automática de Azure Batch , deje Habilitar escalado automático desactivado y haga clic en Siguiente.

  2. En la página Configurar credenciales de Escritorio remoto y SSH , proporcione opcionalmente las credenciales de un usuario que se creará en los nodos de proceso del grupo de Azure Batch durante la implementación. Puede usar las credenciales más adelante para conectarse a los nodos de proceso del grupo. En el caso de los nodos de Linux, también puede especificar SSH Public Key y SSH Private Key File(.ppk) para SSH en el nodo a través de putty.exe. Consulte aquí cómo generar una clave pública y un archivo de clave privada para PuTTY. Tenga en cuenta que si especifica claves SSH y contraseña, las claves SSH se usarán para la conexión. También debe copiar el archivo de clave privada generado (.ppk) en %CCP_HOME%Bin carpeta para abrir SSH en los nodos del Administrador de clústeres de HPC. Haga clic en Siguiente.

  3. En la página Especificar script de inicio , con HPC Pack 2012 R2 Update 3, especifique opcionalmente una tarea de inicio de Azure Batch.

    • Línea de comandos : el comando ejecutado cuando se inician los nodos de proceso de Azure Batch
    • Dirección URL del origen del blob : ubicación de Almacenamiento de Azure de los archivos que cargó anteriormente y que se descargará automáticamente en los nodos de proceso de Azure Batch.
    • Ruta de acceso del archivo local : la ubicación para descargar los archivos en los nodos de proceso de Azure Batch.
      En HPC Pack 2016 Update 1 o una versión posterior, especifique opcionalmente una línea de comandos o el nombre de un script de inicio para ejecutarse en todos los nodos de proceso de Azure Batch del grupo de Batch. Actualmente, el script de inicio solo se admite para los nodos de Linux. Por ejemplo, si desea ejecutar un script denominado startup.sh en todos los nodos de Linux de un grupo de Batch cuando se inician, debe usar la herramienta de línea de comandos HpcPack.exe para comprimir y cargar el script en la cuenta de almacenamiento de Azure, como se indica a continuación, y especificar startup.sh en la línea de comandos:
    HpcPack.exe create startup.sh.zip startup.sh 
    HpcPack.exe upload startup.sh.zip /account:<StorageAccountName> /key:<StorageAccountKey>
    
  4. Haga clic en Siguiente y revise toda la configuración de plantilla especificada. Haga clic en Crear para generar la plantilla de nodo del grupo de Azure Batch.

Paso 3: Adición de un grupo de Azure Batch

Use el Asistente para agregar nodos en el Administrador de clústeres de HPC para agregar los nodos de proceso del grupo de Batch.

Para agregar un grupo de Azure Batch

  1. En Administrador de clústeres de HPC, en Administración de recursos, en el panel Acciones , haga clic en Agregar nodo. Aparece el Asistente para agregar nodos.

  2. En la página Seleccionar método de implementación , haga clic en Agregar grupo de Azure Batch y, a continuación, haga clic en Siguiente.

  3. En la página Especificar información del grupo de Azure Batch , seleccione una plantilla de grupo de Azure Batch. Según el tipo de cuenta de Batch de la plantilla seleccionada, especifique la información del grupo como se indica a continuación:
    Si el tipo de cuenta de Batch es Servicio batch,

    • Número de nodos de proceso: el número de nodos de proceso (instancias de máquina virtual) en el nuevo grupo de Azure Batch
    • Si las máquinas virtuales son máquinas virtuales dedicadas o máquinas virtuales de prioridad baja
    • Elija el tipo de imagen para PaaS o IaaSMarketPlace. En PaaS, elija la familia del sistema operativo. Por ejemplo, Windows Server 2016. En IaaSMarketPlace, elija Publicador, Oferta y SKU. Por ejemplo, Canonical, UbuntuServer, 16.04-LTS.
    • Tamaño de los nodos de proceso: el tamaño del rol de cada nodo de proceso.
    • Tareas máximas por nodo de proceso: el número máximo de tareas simultáneas que se ejecutarán en cada nodo de proceso. El número predeterminado es igual al número de núcleos del tamaño de rol seleccionado. El número máximo es tres veces mayor que el número real de núcleos. Tenga en cuenta que el número máximo de tareas por nodo de proceso multiplicado por el número de nodos de proceso es igual a los núcleos totales del nodo del grupo de Batch.
    • Paquetes de aplicaciones: opcionalmente, especifique los paquetes de aplicación que ya se han agregado en la cuenta de Batch con el formato Id:Version,Id<><:>Version<, ...><> Si el tipo de cuenta de Batch es Suscripción de usuario,
    • Número de nodos de proceso: (por ejemplo, arriba)
    • Elija el tipo de imagen para IaaSMarketPlace o IaaSCustomImage. En IaaSMarketPlace, elija Publicador, Oferta y SKU. Por ejemplo, Canonical, UbuntuServer, 16.04-LTS. Para IaaSCustomImage, además de Publisher, Offer y SKU, también se requiere el identificador de recurso de imagen personalizada en el formato /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}
    • Tamaño de los nodos de proceso: (por ejemplo, arriba)
    • Tareas máximas por nodo de proceso: (como se ha indicado anteriormente)
    • Paquetes de aplicaciones: (por ejemplo, arriba)
    • Red virtual: opcionalmente, especifique el identificador de subred para el grupo de Batch. Consulte este documento para obtener información sobre cómo crear una red virtual personalizada y una subred y obtener el identificador de subred. Compruebe también los requisitos de Batch de una red virtual personalizada especificada en este documento.

    Nota:

    Consulte este documento para obtener información sobre cómo capturar la imagen de una máquina virtual Linux y obtener el identificador de recurso de imagen. Para una imagen de máquina virtual personalizada o una red virtual personalizada (consulte a continuación), es necesario asignar explícitamente el rol Colaborador de la aplicación cliente de Batch al recurso a través de su control de acceso (IAM). O bien, podría producirse un error de "BadRequest" al iniciar el grupo de Batch.

Paso 4: Iniciar el grupo

Debe iniciar el grupo antes de ejecutar trabajos en él.

Para iniciar un grupo de Azure Batch

  1. En Administración de recursos, en el panel de navegación, haga clic en Nodos o grupos de Azure Batch.

  2. En la vista Lista o Mapa térmico , seleccione uno o varios grupos de Azure Batch.

  3. En el panel Acciones , haga clic en Iniciar.

    Aparece el cuadro de diálogo Iniciar grupos de Azure Batch . Haga clic en Iniciar.

  4. El estado de los nodos cambia de No implementado a Aprovisionamiento.

    Si desea realizar un seguimiento del progreso del aprovisionamiento, seleccione el grupo y, a continuación, en el panel Detalles, haga clic en la pestaña Registro de aprovisionamiento . El grupo de Azure Batch debe crearse en menos de 1 minuto y el estado cambia a Sin conexión.

Consideraciones adicionales

  • Supervisión del estado de los nodos de proceso de Azure Batch: después de que el grupo de Azure Batch esté listo, los nodos de proceso de Azure Batch se siguen creando e iniciando. Para supervisar el estado del nodo, seleccione el grupo y, después, en el panel Detalles, haga clic en Nodos de proceso de Azure Batch.

  • Escritorio remoto o SSH a nodos de proceso: después de iniciar los nodos de proceso en el grupo de Azure Batch (el estado del nodo es Inactivo), puede conectarse mediante Escritorio remoto o SSH a cada nodo de proceso si ha configurado las opciones de plantilla para hacerlo, por ejemplo, para realizar alguna configuración manual o solución de problemas. Para ello, seleccione uno o varios grupos de Azure Batch y, después, en el panel Acciones , haga clic en Escritorio remoto/SSH. Al conectarse a nodos de Linux a través de SSH, es necesario copiar el archivo de clave privada generado (.ppk) en la carpeta %CCP_HOME%Bin del equipo cliente.

  • Ver las tareas de inicio : si especificó una tarea de inicio en la plantilla de grupo de Azure Batch, una vez iniciado el grupo de Azure Batch, puede ver la salida detallada de la tarea de inicio ejecutando el siguiente cmdlet de PowerShell de HPC:

    Get-HpcBatchPoolStartTask -Name <PoolName>   
    
  • Vista de mapa térmico : mientras se ejecuta el grupo de Azure Batch, vea el mapa térmico del grupo. En el panel de navegación Administración de recursos , haga clic en Nodos y, a continuación, elija Vista mapa térmico . También puede comprobar el mapa térmico por máquina virtual para los nodos de Linux del grupo. En el panel de navegación Administración de recursos , haga clic en Grupos de Azure Batch y, después, elija Vista mapa térmico . Actualmente se recopilan los siguientes contadores de rendimiento:

    • Uso de CPU
    • Rendimiento del disco
    • Espacio libre en disco
    • Uso de red
    • Memoria física disponible

.

Paso 5: Ejecución de un trabajo en el grupo

Actualmente, HPC Pack admite la ejecución de comandos normales por lotes, parametric/mpi y clusrun en grupos de Azure Batch. Tenga en cuenta las siguientes recomendaciones para usar clusrun con Batch:

  • Ejecute trabajos de ejecución en un grupo de Azure Batch cuando no haya otros trabajos que se ejecuten en el grupo. Si hay otros trabajos o tareas en ejecución, es posible que el trabajo clusrun tenga que esperar a que finalicen las tareas en ejecución.

  • Los trabajos que se ejecutan en un grupo de Azure Batch de forma predeterminada no devuelven la salida de la tarea a HPC Pack, debido al posible impacto en el rendimiento. Puede definir tareas de versión de nodo en el trabajo para recuperar la salida de la tarea si lo desea. Para recuperar la salida de la tarea, cambie la siguiente propiedad de clúster a través de HPC PowerShell:

    Set-HpcClusterProperty -GetAzureBatchTaskOutput $true  
    

Paso 6: Detener el grupo

Cuando no use el grupo de Batch, detenga los recursos de Azure. Esto desaprovisiona los nodos de proceso del grupo, lo que reduce los costos de usar un grupo de Batch.

Para detener el grupo

  1. En Administración de recursos, en el panel de navegación, haga clic en Nodos o grupos de Azure Batch.

  2. En la vista Lista o Mapa térmico , seleccione uno o varios grupos de Azure Batch que quiera detener.

  3. En el panel Acciones , haga clic en Detener.

    Aparece el cuadro de diálogo Detener grupos de Azure Batch . Haga clic en Detener.

  4. Si desea realizar un seguimiento del progreso de detención, seleccione un nodo y, a continuación, en el panel Detalles, haga clic en la pestaña Registro de aprovisionamiento .

Véase también

Microsoft HPC Pack: Implementación de nodos