Ejercicio: Incorporación de un disco al nodo de programador de un clúster de HPC
Azure CycleCloud se basa en plantillas para definir configuraciones de clúster. Su implementación predeterminada incluye plantillas integradas para los programadores más comunes, pero puede encontrar otros en el repositorio de GitHub de Azure CycleCloud.
Recuerde que quería probar el proceso de implementación de un clúster mediante una plantilla personalizada de Azure CycleCloud. Para ello, aprovechará el repositorio de GitHub de Azure CycleCloud que hospeda el proyecto Slurm mantenido por Microsoft. Para modificar una plantilla de clúster existente desde este repositorio, cambie la configuración de almacenamiento del nodo del programador, importe la plantilla recién modificada en la aplicación Azure CycleCloud, use la interfaz gráfica de la aplicación para crear un clúster y, por último, valide el cambio de configuración de almacenamiento.
Importante
Para completar los ejercicios de este módulo, debe cumplir los siguientes requisitos previos:
- Tener una suscripción de Azure con disponibilidad de núcleos de vCPU en los tres grupos de tamaños de máquina virtual:
- al menos 4 núcleos vCPU de la serie DSv3
- al menos 100 núcleos de vCPU de la serie FSv2
- al menos 48 núcleos vCPU de la serie NC
- Tener una cuenta Microsoft o una cuenta de Microsoft Entra con el rol Propietario o Colaborador en la suscripción de Azure.
- Implemente una aplicación de Azure CycleCloud en una máquina virtual de Azure accesible con una dirección IP pública asociada a su interfaz de red.
- Configurar la aplicación de Azure CycleCloud con el acceso de nivel de rol Propietario o Colaborador a la suscripción a Azure.
- Tener una cuenta de usuario de aplicación de Azure CycleCloud con el rol De administrador.
- Cree una subred de red virtual de Azure en la que pueda implementar nodos de clúster.
- Tenga la clave privada del par de claves SSH que se usa para configurar la aplicación Azure CycleCloud.
Nota:
Para obtener información sobre cómo identificar y aumentar las cuotas de vCPU en una suscripción de Azure, consulte la siguiente documentación:
Nota:
Necesitará la clave privada para conectarse directamente a los nodos del clúster en el último ejercicio de este módulo.
En este ejercicio, realizará las siguientes tareas:
- Tarea 1: Instalación y configuración de la CLI de Azure CycleCloud
- Tarea 2: Configuración de un proyecto de Slurm de Azure CycleCloud
- Tarea 3: Implementación de una plantilla personalizada de Azure CycleCloud
- Tarea 4: Iniciar un nuevo clúster y examinar su configuración de almacenamiento
Tarea 1: Instalación y configuración de la CLI de Azure CycleCloud
La mayoría de las tareas de administración de este y los ejercicios posteriores usan la CLI de Azure CycleCloud, por lo que empezará por instalarla y conectarla a la aplicación Azure CycleCloud. Para simplificar la configuración inicial, usará Azure Cloud Shell.
Nota:
Como alternativa, puede iniciar sesión en la máquina virtual de Azure hospedada en la aplicación Azure CycleCloud, donde la CLI de Azure CycleCloud ya está instalada.
Desde el equipo, inicie cualquier explorador web compatible con Azure Portal, vaya a Azure Portal y, cuando se le solicite, autentíquese con una cuenta microsoft o una cuenta de Microsoft Entra que tenga el rol Colaborador o Propietario en la suscripción de Azure que usará en este módulo.
Nota:
Azure Portal admite los exploradores web modernos más comunes, incluidas las versiones actuales de Microsoft Edge, Google Chrome, Mozilla Firefox y Apple Safari.
En Azure Portal, abra Cloud Shell seleccionando su icono en la barra de herramientas situada junto al cuadro de texto de búsqueda.
Si se le pide que seleccione Bash o PowerShell, seleccione Bash.
Nota:
Si es la primera vez que inicia Azure Cloud Shell y se le presenta el mensaje No tiene ningún almacenamiento montado , seleccione la suscripción que usa en este ejercicio y, a continuación, seleccione Crear almacenamiento.
En la sesión de Bash del panel de Azure Cloud Shell , ejecute el siguiente comando para establecer el valor de una variable en la dirección IP pública del servidor de aplicaciones de Azure CycleCloud (reemplace el marcador de posición
<public_ip_address>por la dirección IP pública real):PIP=<public_ip_address>Ejecute el siguiente comando para descargar el archivo .zip que contiene el instalador de la CLI específica de la instancia de Azure CycleCloud:
curl -O --insecure https://$PIP/static/tools/cyclecloud-cli.zipEjecute los siguientes comandos en sucesión para extraer y ejecutar el script que realiza la instalación de la CLI de Azure CycleCloud:
unzip ./cyclecloud-cli.zip cd ./cyclecloud-cli-installer ./install.shNota:
Omita los mensajes relacionados con la variable de entorno path y continúe con el paso siguiente.
Ejecute el siguiente comando para establecer una conexión a la instancia de Azure CycleCloud, donde los marcadores de posición
<username>y<password>designan las credenciales de la cuenta de usuario de la aplicación Azure CycleCloud con el rol de Administrador.cyclecloud initialize --batch --url=https://$PIP --username=<username> --password=<password> --verify-ssl=falseNota:
El
--verify-sslparámetro establecido enfalseadmite escenarios en los que la aplicación Azure CycleCloud está configurada con un certificado autofirmado o un certificado de una entidad de certificación que no es de confianza.Ejecute el siguiente comando para comprobar la conexión a la instancia de Azure CycleCloud mostrando la configuración del locker:
cyclecloud locker listNota:
La salida debe incluir los nombres de los almacenes de cada suscripción a Azure registrada en CycleCloud y sus respectivos contenedores en cuentas de Azure Storage individuales. Debe registrar el nombre del almacén correspondiente a la suscripción a Azure que piensa usar para este laboratorio, ya que lo va a necesitar más adelante en este ejercicio. La salida del comando está en el siguiente formato (donde el
<locker-name>marcador de posición representa el nombre de la caja de seguridad, el<storage_account_name>marcador de posición representa el nombre de la cuenta de almacenamiento que hospeda esa caja de seguridad y el<container_name>marcador de posición representa el nombre del contenedor delocker dentro de esa cuenta de almacenamiento):<locker-name> (az://<storage_account_name>/<container_name>)
Tarea 2: Configuración de un proyecto de Slurm de Azure CycleCloud
A continuación, configurará un proyecto de Azure CycleCloud Slurm de ejemplo. Utilizarás un proyecto de Slurm existente desde el repositorio de GitHub de Azure CycleCloud. Lo trasladará a su directorio personal en Azure Cloud Shell y, a continuación, lo cargará en el locker de Azure CycleCloud.
En tu ordenador, dentro de la sesión de Bash en el panel Azure Cloud Shell, ejecuta los siguientes comandos para crear un directorio de proyecto y obtener un proyecto de Slurm desde el repositorio correspondiente de GitHub dentro de él.
mkdir ~/cyclecloud-slurm && cd ~/cyclecloud-slurm cyclecloud project fetch https://github.com/Azure/cyclecloud-slurm .Nota:
Asegúrese de incluir el punto final del segundo comando.
Ejecute el siguiente comando para designar la caja de seguridad predeterminada y cargar el proyecto en él (reemplace el marcador
<locker_name>de posición por el nombre de la caja de seguridad que identificó en la tarea anterior, comocc-lab-subscription-storage):cyclecloud project default_locker <locker_name> cyclecloud project uploadNota:
Como alternativa, puede ejecutar
cyclecloud project upload <locker_name>, donde el marcador de posición<locker_name>designa el nombre del almacén.Nota:
Omita el mensaje de error relacionado con azcopy que indica
Cannot perform sync due to error: sync must happen between source and destination of the same type, e.g., either file <-> file, or directory/container <-> directory/containerseguido deUpload failed!siempre que las copias individuales de los archivos del proyecto se realicen correctamente. Para confirmar esto, compruebe que el estado final del trabajo aparece comoCompleted, con cero transferencias con error.
Tarea 3: Implementación de una plantilla personalizada de Azure CycleCloud
Ahora va a descargar y modificar la plantilla de ejemplo de Azure CycleCloud compatible con el proyecto basado en GitHub capturado. Lo usará para definir una configuración de almacenamiento personalizada que incluya un disco adicional conectado al nodo del programador y exportado a través del sistema de archivos de red (NFS). Después de esta modificación, lo importarás en tu aplicación Azure CycleCloud.
Nota:
Para examinar el contenido de la plantilla con un explorador web, vaya al repositorio Azure/cyclecloud-slurm.
En el equipo, en la ventana del explorador web que muestra la sesión de Bash en el panel Azure Cloud Shell , ejecute el siguiente comando para cambiar el directorio de trabajo al repositorio recién capturado:
cd ~/cyclecloud-slurm/templatesEjecute los siguientes comandos para crear una copia de seguridad de la plantilla de clúster original:
cp slurm.txt slurm.bak.txtEjecute el siguiente comando para abrir la plantilla descargada en el editor nano:
nano slurm.txtNota:
En lugar del editor nano, puede usar cualquier otro editor de texto disponible, incluido el editor integrado de Azure Cloud Shell.
Dentro de la interfaz del editor nano, vaya a la sección
[[node scheduler]]. En esa sección, busque la[[[volume shared]]]subsección, vaya a la líneaPersistent = ${NFSType == "Builtin"}y agregue el siguiente contenido después de ella:# Add 2 premium disks in a RAID 0 configuration to the NFS export [[[volume nfs-1]]] Size = 128 StorageAccountType = Premium_LRS Mount = nfs Persistent = true [[[volume nfs-2]]] Size = 128 StorageAccountType = Premium_LRS Mount = nfs Persistent = true [[[configuration cyclecloud.mounts.nfs]]] mountpoint = /mnt/exports/lab fs_type = ext4 raid_level = 0Nota:
Si usa un equipo Windows, puede pegar el contenido del Portapapeles mediante la combinación de teclas Mayús + Insertar .
Nota:
Los cambios definen dos discos de almacenamiento Premium de 128 GB en un volumen basado en franjas que se montan automáticamente en el nodo principal durante su aprovisionamiento. El volumen usará el punto de montaje /mnt/exports/ y se formateará automáticamente como sistema de archivos ext4. La
Persistent = trueconfiguración indica que los discos se conservarán al finalizar el clúster, pero se eliminarán automáticamente si elimina el clúster.Nota:
Azure CycleCloud implementa los volúmenes como discos administrados de Azure.
En la interfaz del editor Nano, seleccione la combinación de teclas Ctrl + O , seleccione la tecla Entrar y, a continuación, seleccione la combinación de teclas Ctrl + X para guardar los cambios realizados y cerrar el archivo.
Nota:
En este momento, puede usar la conexión a la aplicación Azure CycleCloud a través de la CLI para importar la plantilla.
Ejecute el siguiente comando para importar la plantilla que modificó en la tarea anterior en la aplicación Azure CycleCloud:
cyclecloud import_template -f ~/cyclecloud-slurm/templates/slurm.txtNota:
El comando mostrará el nombre de la plantilla importada, el estado del programador (
scheduler: Off -- --) y el número de nodos totales (Total nodes: 1).
Tarea 4: Iniciar un nuevo clúster y examinar su configuración de almacenamiento
Para concluir este ejercicio, comprobará que la plantilla que importó en la aplicación Azure CycleCloud ofrece la funcionalidad prevista mediante la creación de un nuevo clúster y la revisión de la configuración de almacenamiento de su nodo principal para asegurarse de que incluye un volumen que consta de dos discos persistentes.
En el equipo, abra otra ventana del explorador y vaya a la dirección URL https://<IP_address> (reemplace el marcador de posición <IP_address> por la dirección IP pública del servidor de aplicaciones de Azure CycleCloud). Si se le solicita, confirme que desea continuar.
Si se le pide que se autentique, inicie sesión proporcionando credenciales de la misma cuenta de usuario de aplicación de Azure CycleCloud que usó para configurar la CLI de Azure CycleCloud.
En la interfaz gráfica de Azure CycleCloud, vaya a la página Clústeres y seleccione +.
En la página Crear un nuevo clúster , seleccione el icono con la etiqueta Slurm en forma de triángulo isósceles con círculos pequeños en cada uno de sus vértices.
En la pestaña Acerca de la página Nuevo clúster de Slurm , escriba contoso-custom-slurm-lab-cluster en el cuadro de texto Nombre del clúster .
En la pestaña Configuración necesaria de la página Nuevo clúster de Slurm , configure los valores siguientes (deje otros con sus valores predeterminados) y seleccione Siguiente:
Configuración Importancia Región Seleccione el nombre de la región de Azure donde quiere implementar el clúster en este ejercicio. Tipo de máquina virtual del planificador Seleccione Elegir en la ventana emergente Seleccionar un tipo de máquina . En el cuadro de texto Búsqueda de SKU , escriba D4s_v3. En la lista de resultados, active la casilla situada junto a la entrada D4s_v3 y, a continuación, seleccione Aplicar. Nota:
Asegúrese de seleccionar el tamaño de máquina virtual que admite el nivel Premium de Azure Storage, que es necesario para aprovisionar discos del nodo principal según la configuración personalizada.
Configuración Importancia Máximo de núcleos de HPC Escriba 100. Máximo de núcleos de HTC Escriba 100. Máximo de máquinas virtuales por conjunto de escalado Escriba 40. Id. de subred Seleccione cyclecloud-rg: cyclecloud-rg-vnet-contoso-slurm-lab-cluster-subnet. En la pestaña Almacenamiento conectado a la red de la página Nuevo clúster de Slurm , compruebe que el tipo NFS está establecido en Builtin, acepte el valor predeterminado de Tamaño (GB) esté establecido en 100 y seleccione Siguiente.
En la pestaña Configuración avanzada de la página Nuevo clúster de Slurm , revise las opciones disponibles sin realizar ningún cambio y seleccione Siguiente.
En la pestaña Cloud-init de la página Nuevo clúster de Slurm , revise las opciones disponibles sin realizar ningún cambio y seleccione Guardar.
En la página contoso-custom-slurm-lab-cluster , seleccione el vínculo Inicio . Cuando se le pida confirmación, seleccione Aceptar.
Supervise el proceso de inicio.
Nota:
El proceso implica el aprovisionamiento de la máquina virtual de Azure que actúa como rol del nodo maestro del clúster, la instalación y la configuración del programador de Swarm, y la creación y montaje de volúmenes de disco. Esto puede tardar unos cinco minutos.
Después de que el estado del nodo programador cambie a Listo, seleccione su entrada en la pestaña Nodos y, a continuación, seleccione Mostrar detalle para mostrar su vista detallada.
En la ventana emergente Showing scheduler in contoso-custom-slurm-lab- cluster (Mostrando programador en el clúster contoso-custom-slurm-lab-cluster), vaya a la pestaña Nodo, desplácese a la sección Volúmenes y compruebe que las entradas nfs-1 y nfs-2 aparecen en la lista de volúmenes.
¡Felicidades! Ha completado correctamente el primer ejercicio de este módulo. En este ejercicio, implementó un clúster basado en una plantilla personalizada de Azure CycleCloud. Ha usado la CLI de Azure CycleCloud para importar un proyecto de ejemplo hospedado en el repositorio de GitHub de Azure CycleCloud, incluida una copia personalizada de una de sus plantillas. A continuación, ha creado un clúster basado en la plantilla importada con la interfaz gráfica de Azure CycleCloud, la inició y comprobó que el cambio personalizado surtió efecto.
Nota:
No elimine los recursos que implementó y configuró en este ejercicio si tiene previsto ejecutar el siguiente ejercicio en este módulo. Estos recursos son necesarios para completar el ejercicio siguiente.